问题标签 [metamask]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 使用元掩码时检测 web3 默认帐户的更好模式
上下文:我想使用 blockies 在页面上呈现一个身份图标,我从 web3 获取 defaultAccount,为此,用户必须使用钱包中选择的地址登录到 metamask。
问题:web 应用程序似乎没有在页面的加载事件上检测到 web3 对象,建议在 wchih 进行检测。
代码:下面的灵感来自以下建议:
https://github.com/MetaMask/metamask-plugin/issues/1158
我一直有间歇性行为,有时 web3 存在,有时不存在,我能想到的唯一解决方案是有一个计时器,但这在我看来有点过于简单,我更喜欢更优雅的东西。
问题:是否有更好的解决方案来在页面加载时从 web3 中检测 defaultAccount?
electron - 如何在 Electron 中安装 MetaMask 扩展?
我已经从https://github.com/aragon/metamask-plugin成功安装了扩展
当 Electron 应用程序启动时,我可以看到 MetaMask 插件已加载,但不能用它做太多事情。有一些错误:
和
node.js - TestRPC/Ganache:tx 没有正确的随机数
我最近一直在尝试松露并遵循以下教程:http ://truffleframework.com/tutorials/pet-shop
每当我尝试设置交易时,我都会在下面收到相同的错误
错误:错误:tx 没有正确的随机数。帐户的随机数为:14 tx 的随机数为:0
在网上查了很多与此相关的文章,但到目前为止还没有找到可能导致此问题的原因。
- 松露 v3.4.7
- 坚固性 v0.4.13
- npm v5.3.0
- TestRPC v4.0.1(Ganache 也会发生)
- 元掩码 v3.9.5
据我了解,似乎无法找到以前的交易来散列新交易?
ethereum - 在没有 MetaMask 或任何其他类似扩展的情况下开发 Dapp 的想法
到目前为止,很多 Dapp 开发人员已经制作了很多与 MetaMask 或其他类似扩展(如 Parity 和 Web3.js)集成的 Dapp。
有没有关于在没有上述所有扩展的情况下开发一个的想法或建议?
谢谢你。
azure - Azure 中的区块链节点不挖掘区块
我使用预定义模板在 Azure 中设置了私有区块链。设置进行得很顺利,三个节点中的两个也在挖掘区块。但是,由于某种原因,我无法将以太币从管理站点发送到我在 MetaMask 中设置的钱包,即使我通过 RPC 连接到我的区块链。我认为这与第一个节点没有挖掘任何块有关。有人可以告诉我如何解决这种情况吗?先感谢您!
javascript - Web3 版本到处都不一样
我正在以这种方式从 metamask ectension 初始化 web3-
上面的 console.log 给出了 version 1.0.0-beta.22
,但是当我web3.version
在组件内的其他函数内部调用时-
这里console.log(web3.version)
给出version 0.20.2
我使用 npm 安装的 Web3 版本是 version 1.0.0-beta.22
。我猜 0.20.2 版本是由 metamask 以某种方式注入的。我想在1.0.0-beta.22
任何地方使用版本。我怎样才能做到这一点?
ethereum - 如何检测 MetaMask 登录
我们如何在页面加载后检测用户何时登录 MetaMask ?是否有必要诉诸轮询,或者是否存在页面可以监听的事件?
ethereum - 有时我会丢失以太坊智能合约中的数组项
我在我的智能合约中发现了奇怪的问题。我使用 testrpc (v4.1.3) 和最后一个 MetaMask 作为本地开发环境。请看下面的代码(它是简短的版本,只是有问题的地方):
通常一切正常:
- 用户调用函数 payForSomething()
- 用户在浏览器中获取事件 PaymentPlaced
- 用户调用 changeSomething()
但...
有时我有下一个问题:
- 用户调用 payForSomething()
- 用户获取事件 PaymentPlaced(例如:blockNumber = 10,payIndex = 5)。
- 用户调用 changeSomething() - 并得到错误“无效的操作码”
- 如果用户再次调用 payForSomething() - 他会收到事件 PaymentPlaced 和数据 (blockNumber == 15, payIndex = 5)
相同的数组长度,不同的块号,两个插入事件……
所以......有时会发生,有时一切正常。我总是只有一个用户,只有我使用这个智能合约(我还在开发它)。
为什么我会丢失数组中的项目?
security - Is it secure to run public ethereum node?
I'm creating my first Ethereum contract with truffle. I want the web application to be usable without MetaMask so I was wondering if it is a good idea to run my own private node and to connect from the frontend like this:
Are there any security risks with this approach ?
javascript - Web3/Metamask:错误:合约尚未部署到 Kovan 网络上检测到的网络(网络/工件不匹配)
我尝试部署一个已经存在于 Kovan 网络上的合约实例,以便与 web3 和 metamask 进行交互。
所以首先,我将 metamask 设置为我当前的提供者,然后我部署一个合约实例,如下所示:
但是,我收到以下错误:
我发现它是由 web3 的网络 ID 引起的,恰好是错误的。我的 web3 网络 ID 由 Metamask 设置,它应该使用正确的 ID 注入 web3。但是当我得到网络 ID 时,我得到了完全不同的结果:
有没有办法手动设置 web3 的版本网络?我查看了文档和 github,但没有有用的见解。
编辑:
似乎关闭和重新打开 chrome 解决了 ID 问题。所以现在我将两个 ID 都设置为 42 但错误仍然和以前一样。回到原点...