开发者问题收集

如何解决 solidity Remix 中的类型错误

2018-12-01
1829

我的 solidity 智能合约在 remix 中编译时没有任何错误。 我的合约代码如下:

   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;
    }
}

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

"error: Failed to decode output: TypeError: Cannot read property 'length' of undefined"

这个错误。

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

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

2个回答

这通常发生在部署因未知原因失败时 - 可能是您尝试使用注入的 web3 或 web3 提供程序(如 Ganache-cli),但不知何故部署失败,但合约接口仍附加到 UI。这可能会让您混淆合约是否已正确部署。

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

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

Joseph T F
2018-12-03

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

Jen GS
2020-03-24