首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ethers.js版本6调用智能契约方法

使用ethers.js版本6调用智能契约方法
EN

Ethereum用户
提问于 2023-02-08 17:47:32
回答 3查看 933关注 0票数 1

到目前为止,我已经成功地使用了ethers.js的版本5,现在我正在将我的代码库迁移到版本6。

我尝试了下面的代码来调用智能契约上的一个方法,该方法应该返回一个对象数组,但它无法工作:

代码语言:javascript
复制
        const web3Provider = new ethers.BrowserProvider(
          metamaskProvider as any
        );

        const signer = await web3Provider.getSigner();
        const contract = new ethers.Contract(address, abi, signer);

        const res = await contract.myContractMethod();
EN

回答 3

Ethereum用户

发布于 2023-02-08 18:25:48

看看这个话题。

侦听带有NodeJS奇异错误的事件

这是一个非常类似的问题,结果是来自ethers.js 6的一个bug。它仍然是测试版而不是官方版本,所以它也可能包含其他的bug。我认为最好保留旧版本,至少在他们发布版本6的稳定颠覆之前是这样。

票数 1
EN

Ethereum用户

发布于 2023-03-20 16:14:28

是的,这有点奇怪,对开发人员也不太友好,下面是您如何获得合同并打印所有功能的方法

代码语言:javascript
复制
  const contract = new ethers.Contract(CONTRACT_ADDRESS,CONTRACT_ABI,signer)

        console.log("FUNCTIONS", contract.interface.forEachFunction((f)=>console.log(f)))
票数 0
EN

Ethereum用户

发布于 2023-05-04 11:34:43

代码语言:javascript
复制
await contract.getFunction("FUNCTION_NAME").call(null);

这可能对ehters js 6有帮助。

如果存在调用参数,请考虑可以用表示调用参数的对象替换null。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/144557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档