未捕获的错误:返回的值无效,是否已用完气体?

问题描述 投票:3回答:4

我正在听我部署合同的事件。每当事务完成并触发事件时,接收响应会导致以下错误:

未捕获的错误:返回的值无效,是否已用完气体? ABICoder.push ../ node_modules / web3-eth-abi / src / index.js.ABICoder.decodeParameters(index.js:227)at ABICoder.push ../ node_modules / web3-eth-abi / src / index。 js.ABICoder.decodeLog(index.js:277)

Web3版本:1.0.0-beta36

Metamask版本:4.16.0

怎么解决?

events ethereum solidity abi web3
4个回答
4
投票

尝试命令truffle migrate --reset,以便将所有先前的值重置为其原始值


4
投票

在事务内部引发相同的错误时,它会生成具有相同名称和相同参数的不同事件。就我而言,这是来自ERC721和ERC20的转移事件。重命名其中一个解决了这个问题,但当然这不是正确的方法。


3
投票

这是web3js中的一个错误,讨论了here

以下更改修复了它(source):

patch-package
--- a/node_modules/web3-eth-abi/src/index.js
+++ b/node_modules/web3-eth-abi/src/index.js
@@ -280,7 +280,7 @@ ABICoder.prototype.decodeLog = function (inputs, data, topics) {


     var nonIndexedData = data;
-    var notIndexedParams = (nonIndexedData) ? this.decodeParameters(notIndexedInputs, nonIndexedData) : [];
+    var notIndexedParams = (nonIndexedData && nonIndexedData !== '0x') ? this.decodeParameters(notIndexedInputs, nonIndexedData) : [];

     var returnValue = new Result();
     returnValue.__length__ = 0;

编辑:也降级到web3-1.0.0.beta33也修复了这个问题。


0
投票

请检查您的Metamask登录,当您要么退出Metamask时,通常会填充此问题,或者更糟糕的情况是您的帐户中剩余0以太。

© www.soinside.com 2019 - 2024. All rights reserved.