1

我的solidity 智能合约正在混音中编译,没有任何错误。我的合同代码如下:

   pragma solidity >=0.4.0 <0.6.0;
   contract NewConreact {
     uint storedData;

     function set(uint x) public {
        storedData = x;
     }

    function get() public view returns (uint) {
        return storedData;
    }
}

它在混音中完美编译,但是当我将它运行到触发 set() 和 get() 时,我得到了:

“错误:无法解码输出:TypeError:无法读取未定义的属性'长度'”

这个错误。

我在solidity git repo 中发现了一个已关闭的问题,但没有找到任何解决方案。我也增加了气体限制,但没有奏效。

有人,请帮我找出问题所在。

4

2 回答 2

1

这通常在部署因未知原因而失败时发生 - 可能是您尝试使用注入的 web3 或像 Ganache-cli 之类的 web3 提供程序,但它以某种方式失败了部署,但是合同界面仍然附加到 UI。这可能会让您混淆合同是否正确部署。

解决方法是查看和扩展事务的日志输出以部署合约。在进行交易之前,请确保您的合同是成功的。

如果您在成功部署合约后仍然无法进行交易,请提供您的日志。

于 2018-12-03T03:20:24.380 回答
0

尝试使用 Chrome,避免使用 Safari,并确保从solidity Remix 站点中删除“s”> 不起作用> https://remixhttp://remix会。一旦我搬到 Chrome 上,它就可以工作了

于 2020-03-24T03:00:33.373 回答