首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ethers.js忽略恢复

Ethers.js忽略恢复
EN

Ethereum用户
提问于 2022-06-10 12:34:11
回答 1查看 438关注 0票数 1

我使用硬帽子在本地部署我的合同,Ethers.js和Node.js运行一个Javascript文件,该文件对契约进行顺序调用,以模拟用户活动。当契约恢复时(例如,有人用零余额调用transfer()函数),我希望Ethers.js忽略它,而不是停止Javascript的执行。有办法这样做吗?

EN

回答 1

Ethereum用户

发布于 2022-06-10 21:18:17

是的,正如sola24在注释中所说的,您可以使用“尝试和捕捉”块,如下所示:

代码语言:javascript
复制
try {
    //call contract
}catch(error){
   //keep working on javascript code
}

有关try/catch块这里。的详细信息

此外,您还可以使用openzepelin的测试助手,准确地说是expectRevert,只需通过npm安装:

代码语言:javascript
复制
npm install --save-dev @openzeppelin/test-helpers

记住在测试文件中导入@openzeppelin/test-helpers并创建一个测试,如下所示:

代码语言:javascript
复制
it('reverts when transferring tokens you dont have', async function () {
    // Conditions that trigger a require statement can be precisely tested
    await expectRevert(
      this.erc20.transfer(some_address, 5000, { from: sender }),
      'Not enough funds',
    );
  });

更多关于它的信息在他们的自述文件上。

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

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

复制
相关文章

相似问题

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