这段时间在学习以太坊智能合约,用到MetaMask,于是就在chrome应用商店下载了最新的版本MetaMask7.6,正常转账使用是没有任何问题的,但是,当开发智能合约时,遇到一个头疼的问题:web3.eth.getAccounts() 获取不了当前账户的地址。
为什么 web3.eth.getAccounts() 无法使用呢?
经反复验证,确定我的代码是没有问题的,后来实在是想不出什么解决方法,就请教了会智能合约的前辈,得到的回复是:高版本web3无法使用,并发给我一个比较低的版本 MetaMask4.4。经过我的测试,这个版本确实可以正常使用 web3.eth.getAccounts()。
- MetaMask7.6
- MetaMask4.4
如上图所示:是两个版本的MetaMask。使用旧版本后我很不习惯,一是全英文(英文水平不好…),二是,也是最主要的原因,调用的时候经常不能正常唤醒弹出,这个非常让人头疼。
为了能重新用回MetaMask7.6 我决定要深究原因,找出解决办法;
为什么高版本的 MetaMask7.6 无法调用 web3 ?
幸运的我很快就找到了原因,如下图(点击查看下图文章详情):