При тестировании контракта на Remix я замечаю, что если метод не проходит модификатор, вы на самом деле видите сообщение об ошибке, отображаемое в окне под кодом контракта. Это что-то, что я могу получить от web3, или как я могу получить в своем собственном интерфейсе сообщения об ошибках из контракта, когда они предоставляются?
Вот простой контракт:
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? Я не вижу этого