gpt4 book ai didi

blockchain - Metamask注入(inject)的window.ethereum和web3.js之间有什么关系吗?我们可以两者都使用吗?

转载 作者:行者123 更新时间:2023-12-03 08:11:21 25 4
gpt4 key购买 nike

我正在学习 DApp 编程,出现的一个问题是 Metamask 和 web3.js 注入(inject)的 API 之间的区别。据我了解,MetaMask 注入(inject)一个有自己的 API 的对象,与 web3.js 库无关。它是否正确?我仍然可以将 web3.js 库与 MetaMask 一起使用吗?在后一种情况下,我该怎么办?如果有人能进一步解释这种差异,我将不胜感激。谢谢!

最佳答案

web3 是一个较旧的实现,仍有一些客户端可能使用,

window.ethereum 是新的 API。由于某些客户端仍然使用 web3,我们仍然应该检查它。

Metamask 将您连接到区 block 链。区 block 链由数据 block 组成,这些数据 block 存储在节点上。没有节点,就无法访​​问区 block 链数据。

MetaMask 允许通过 Infura (https://infura.io) 上提供的基础设施连接到以太坊区 block 链。这允许用户与区 block 链交互,而无需在本地安装任何节点。 infura 连接到到不同环境的不同节点,例如mainnet、rinkeby、ropsten等。

enter image description here

web3js 或 web3py 库与 Metamask web3 无关。 Metamask 为 web3.js 库提供了一个提供程序。该提供程序告诉 web3.js 库我们将与哪个网络进行通信,然后连接到该网络中的节点。

一旦获得提供程序,就可以实例化一个 web3 实例:

   const web3 = new Web3(provider);

然后创建一个合约实例

contract = new web3.eth.Contract(
Contract.abi,
Contract.address
);

现在使用 contract.methods 您可以调用合约上的方法。 web3js 库还提供了太多的实用函数,例如散列、转换单位等

关于blockchain - Metamask注入(inject)的window.ethereum和web3.js之间有什么关系吗?我们可以两者都使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70736559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com