未处理的拒绝(错误):调用恢复异常

Posted

技术标签:

【中文标题】未处理的拒绝(错误):调用恢复异常【英文标题】:Unhandled Rejection (Error): call revert exception 【发布时间】:2021-03-05 03:44:30 【问题描述】:

我在我的 react 前端尝试与我的智能合约交互时收到此错误消息。我正在运行 localhost3000 并且需要元掩码才能登录。

Unhandled Rejection (Error): call revert exception (method="symbol()", errorSignature=null, errorArgs=[null], reason=null, code=CALL_EXCEPTION, version=abi/5.0.8)
Logger.makeError
/Users/username/Desktop/final-4/src.ts/index.ts:205
Logger.throwError
/Users/username/Desktop/final-4/src.ts/index.ts:217
Interface.decodeFunctionResult
/Users/username/Desktop/final-4/src.ts/interface.ts:326
  323 |     eventFragment = this.getEvent(eventFragment);
  324 | 
  325 | const topics = [];
> 326 | const dataTypes = [];
      | ^  327 | const dataValues = [];
  328 | if (!eventFragment.anonymous) 
  329 |     topics.push(this.getEventTopic(eventFragment));

View compiled
Contract.<anonymous>
/Users/username/Desktop/final-4/src.ts/index.ts:309
fulfilled
http://localhost:3000/static/js/0.chunk.js:5079:24

同样来自检查中的源选项卡:

未捕获(承诺中)错误:调用还原异常(method="symbol()",errorSignature=null,errorArgs=[null],reason=null,code=CALL_EXCEPTION,version=abi/5.0.8) 未捕获(承诺中)错误:调用还原异常(method="balanceOf(address)", errorSignature=null, errorArgs=[null], reason=null, code=CALL_EXCEPTION, version=abi/5.0.8)

这是我的目录结构:

client
|--node_modules
|-—public
   |—-src
   |—-contracts
      |—-Address.json
      |—-Context.json
      |—-ERC20.json
      |—-IERC20.json
      |—-Migrations.json
      |—-PreciousChicken.json
      |——SafeMath.json
   |—-App.css
   |—-App.js
   |—-App.test.js
   |—-index.css
   |—-logo.svg
   |—-reportWebVitalls.js
   |—-setupTests.js
   |—-gitignore
   |—-package-lock.json
   |—-package.json
   |—-yarn.lock
|—-contracts
   |—-Migrations.sol
   |—-MyPreciousToken
   |—-migrations
      |—-1_initial_migations.js
      |—-2_deploy_contracts.js
|—-node-modules
|—-test

【问题讨论】:

你能贴出导致错误的代码吗? 嗨@FastDeveloper 我不知道如何找到它。 右击页面,点击Inspect,然后进入Console选项卡。 谢谢!您可以发布导致此错误的行吗? 我不知道如何找到它们。它看起来像是在“index.ts”文件中,但不确定它在哪里。 【参考方案1】:

此错误 (CALL_EXCEPTION) 在您的智能合约尚未部署时发生。

等待交易结束:

await contract.deployTransaction.wait()

【讨论】:

【参考方案2】:

对我来说,原因是当我重新部署合同时,构建中生成的合同 json 文件也需要在我的 react 应用程序中替换。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案3】:

当您在测试网络中构建智能合约时,在钱包中连接适当的测试网络可以防止出现此问题。 例如,对我来说,我必须在钱包中连接 Rinkeby 网络,但实际上指向一个主网络。

【讨论】:

以上是关于未处理的拒绝(错误):调用恢复异常的主要内容,如果未能解决你的问题,请参考以下文章

未处理的拒绝错误:无效的 JSON RPC 响应:“”

asp.net求助

如何修复调用 Thread.sleep() 时未处理异常的编译错误?

颤振 - 未处理的异常:SocketException:

未处理的Promise拒绝:NotSupportedError(DOM异常9):不支持该操作

Flutter:未处理的异常:错误状态:调用关闭后无法添加新事件(不一样的情况)