MetaMask作为钱包,可以用来进行转账和交换等交易。不过MetaMask的强大之处在于为DAPP提供支持,并可以在DAPP页面中注入web3的JavaScript库。注入完成后就可通过window.web3的JavaScript代码为每个网页提供一个对象。
注意: MetaMask新版本不再支持向fille://协议打开的html页面注入web3对象,需要以HTTP或https协议打开html才能正确使用MetaMask的功能。
在当前这个版本中,MetaMask同时存在etherum对象和web3对象。打开火狐浏览器的控制台,分别输入命令“ethereum”和“web3”,可以看到返回了它们的对象,如图3.8所示。
图3.8
虽然当前版本同时存在ethereum对象和web3对象,但是MetaMask官方推荐新版本使用ethereum对象。因为使用web3对象有时会报错,并提示未来可能会移除web3对象,有关详情可参考官方文档,如图3.9所示。
图3.9
下面进行简单测试,使用ethereum对象获取MetaMask账户的信息和余额。这里需要在html页面中导入web3库,否则new Web3()无法使用,有关详细代码可参考第7章的内容。获取的当前账户为0xF154...0eaC,余额为1 eth=10^18 wei,单位默认为wei,如图3.10所示。
图3.10