0

我正在使用 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 现在总是空的。

我做错什么了吗?提前致谢。

4

1 回答 1

0

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

于 2019-04-27T00:00:28.933 回答