我在Python控制台中显示智能合约的require方法的错误消息时遇到麻烦。我正在使用web3.py模块与合约交互。
下面是智能合约代码:
function burn(uint258 amount) public returns(bool){
require(balance[msg.sender]>=amount, "Not enough balance to burn");
...
}
调用此方法试图触发require限制在控制台中不做任何事情。在以太扫描上检查事务是否完成(这是期望的行为)。我在网上找到了一些关于Remix的解决方案,但我希望错误消息显示在我的python代码中。
错误消息是否在某些响应中加密,例如事务的哈希,或者是否有其他方法获得消息?
要获取事务的还原原因,可以使用web3-ethereum-defi库中的fetch_transaction_revert_reason函数。