如何解决 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