首页 > 解决方案 > 如何从 UI 中的合同修改器获取错误消息?

问题描述

在 Remix 上测试合约时,我注意到如果某个方法没有通过修饰符,您实际上会在合约代码下方的窗口中看到错误消息。这是我可以从 web3 获得的东西,或者我如何在我自己的 UI 中从合同中获取此错误消息?

这是一个简单的合同:

address public owner;

modifier onlyOwner() {
    require(msg.sender == owner, "Owner account is required");
    _;
}

constructor() public {
    owner = msg.sender;
}

function doStuff()
external
view
onlyOwner
returns (bool) {
    return true;
}

当我不是从混音中调用合同时owner,在控制台中我收到以下消息: call to Contract.doStuff errored: VM error: revert. revert The transaction has been reverted to the initial state. Reason provided by the contract: "Owner account is required". Debug the transaction to get more information.

它给出的错误是我可以从 web3 交易中得到的东西吗?我没看到

标签: ethereumsolidityweb3

解决方案


推荐阅读