Web3.eth.getAccoutns()在更新后无法正常工作

问题描述 投票:0回答:1

我正在使用truffle / ganache / metamask / vue开发一个dapp。在我更新Google Chrome和Metamask的扩展程序之前,一切都很顺利。现在我再也无法将帐户登录到元掩码中。

我已经尝试使用async / await,promises等调用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始终为空。

我做错了吗?提前致谢。

javascript web3 truffle metamask ganache
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.