【发布时间】: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 现在总是空的。
我做错了吗? 提前致谢。
【问题讨论】:
标签: javascript web3 truffle metamask ganache