处理事务时VM异常:气体估算错误

时间:2018-12-17 16:47:23

标签: exception solidity remix

通过使用testrpc部署到节点中,它在该节点中不起作用,尤其是transferto函数和提现函数。如何解决此问题。它仅在编译器版本中起作用:0.4.25 + commit.59dbf8f1.Emscripten.clang,它在更高版本的编译器中工作。

2 个答案:

答案 0 :(得分:0)

似乎代码很好,

确保合同中有require(address(this).balance >= amount);余额中有一些以太币

然后您从所有者地址require(msg.sender == _owner);调用这些函数

如果您使用的是Solidity版本> = 5.0.0,请使用退出模式https://solidity.readthedocs.io/en/v0.5.0/common-patterns.html#withdrawal-pattern

答案 1 :(得分:0)

之所以可以在更高版本中使用它,是因为您具有Constructor()函数。如果您想让此合同适用于以前的版本,则在发生还原错误时也很有可能将构造函数创建为ethertransfer()函数,因为您在require()语句中编写的条件很可能会发生此错误。 Require语句还接受第二个参数,您可以在其中添加描述字符串。仔细检查所有require语句,我强烈建议另一个选择是使用remix浏览器ide。在那里,您可以通过调试工具进行调试,因为它将帮助您介入和逐步执行事务流程。这样一来,最终可以很容易地确定问题的根本原因。