代码之家  ›  专栏  ›  技术社区  ›  Ferit

未捕获错误:返回的值无效,是否用完汽油?

  •  3
  • Ferit  · 技术社区  · 6 年前

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

    在ABICoder.push../node_modules/web3 eth abi/src/index.js.ABICoder.decodeParameters (索引js:227) (索引js:277)

    Web3版本:1.0.0-beta36

    元掩码版本:4.16.0

    怎么解决?

    4 回复  |  直到 6 年前
        1
  •  5
  •   nick    6 年前

    试试这个命令 truffle migrate --reset 以便所有先前的值都重置为其原始值

        2
  •  5
  •   Ivan Zakharov    6 年前

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

        3
  •  3
  •   Ferit    6 年前

    这是web3js中的一个bug 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也解决了这个问题。

        4
  •  0
  •   Naveen S Adhikari    6 年前