更新后 Web3.eth.getAccountns() 不工作

Posted

技术标签:

【中文标题】更新后 Web3.eth.getAccountns() 不工作【英文标题】:Web3.eth.getAccoutns() not working after Update 【发布时间】:2019-09-16 08:46:53 【问题描述】:

我正在使用 truffle/ganache/metamask/vue 开发一个 dapp。一切都很顺利,直到我更新了 Google Chrome 和 Metamask 的扩展。现在我无法再登录 metamask 的帐户了。

我已经尝试使用 async/await、promise 等调用 getAccounts()。尽管我已登录 metamask 并且能够查看余额、将 eth 转移到另一个帐户,但没有任何效果...也很好奇web3是在浏览器中正常注入的。

这是在 main.js 中

window.addEventListener('load', function () 
  if (typeof web3 !== 'undefined') 
    console.log('Web3 injected browser: OK.')
    Web3.providers.HttpProvider.prototype.sendAsync = Web3.providers.HttpProvider.prototype.send;

    window.web3 = new Web3(window.web3.currentProvider)
   else 
    console.log('Web3 injected browser: Fail. You should consider trying MetaMask.')
    // fallback - use your fallback strategy (local node / hosted node + in-dapp id mgmt / fail)
    Web3.providers.HttpProvider.prototype.sendAsync = Web3.providers.HttpProvider.prototype.send;

    window.web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'))
  

这是在一个 Vue 组件中

        window.web3.eth.getAccounts((err, res) =>   
          if (err)
            console.log("error")
            console.log(err)
                           
          console.log(res[0]);
);

我期待控制台日志打印我的钱包地址而不是“未定义”。数组 web3.eth.accounts 现在总是空的。

我做错了吗? 提前致谢。

【问题讨论】:

【参考方案1】:

我已经发现了问题。在新版本的 Metamask 中,默认情况下会激活隐私模式。我只需要关闭它并开始正常工作。

【讨论】:

以上是关于更新后 Web3.eth.getAccountns() 不工作的主要内容,如果未能解决你的问题,请参考以下文章

USB3.0更新驱动后用不了了

数据更新后颤振列表视图不更新

华硕bios更新后黑屏?

更新原理图后怎么将改动之处更新到PCB中去?

运行后取消主触发器(更新后)触发器类型

环回“保存后”触发创建和更新,但我只想更新