Joã*_*ais 2 blockchain ethereum smartcontracts web3js metamask
我正在学习 DApp 编程,出现的一个问题是 Metamask 和 web3.js 注入的 API 之间的区别。据我了解,MetaMask 注入一个有自己的 API 的对象,与 web3.js 库无关。它是否正确?我仍然可以将 web3.js 库与 MetaMask 一起使用吗?在后一种情况下,我该怎么办?如果有人能进一步解释这种差异,我将不胜感激。谢谢!
web3是一个较旧的实现,仍然有一些客户可能会使用,
window.ethereum是新的API。由于有些客户仍在使用,web3我们仍应检查它。
Metamask 将您连接到区块链。区块链由数据块组成,这些数据块存储在节点上。没有节点,就无法访问区块链数据。
MetaMask 允许通过 Infura ( https://infura.io )上提供的基础设施连接到以太坊区块链。这允许用户与区块链交互,而无需在本地安装任何节点。infura 连接到不同环境中的不同节点,例如 mainnet、rinkeby、ropsten 等。
web3js 或 web3py 库与 metamask web3 无关。Metamask 为web3.js库提供了一个提供者。该提供程序告诉web3.js库我们将与哪个网络进行通信,然后连接到该网络中的节点。
获得提供程序后,您可以实例化一个 web3 实例:
const web3 = new Web3(provider);
Run Code Online (Sandbox Code Playgroud)
然后你创建一个合约实例
contract = new web3.eth.Contract(
Contract.abi,
Contract.address
);
Run Code Online (Sandbox Code Playgroud)
现在contract.methods你可以调用合约上的方法了。web3js 库还提供了太多的实用函数,例如散列、转换单位等
| 归档时间: |
|
| 查看次数: |
2613 次 |
| 最近记录: |