On Etherscan, a failed transaction will provide a reason for failure. This can be Reverted, Out of Gas, Bad instruction, etc.

However, there seems to be an inconsistent message on different testnets. I deployed this contract on all the networks:

pragma solidity ^0.5.16;

contract FailedFallback {

    function () external payable {
        require(1==2, "Failed test");

When calling the fallback function on Rinkeby, Etherscan says execution reverted, however any other network simply says Reverted.

Is this an inconsistency with Etherscan or the the VM of the network? At the VM level, are these reversions the exact same? Does this have something to do with a Geth vs. Parity trace?

  • 1
    Looks like somebody on Etherscan has missed the advantages of code-reuse. – goodvibration Apr 20 '20 at 2:55

It's an inconsistency of the different client implementations.

go-ethereum (geth) uses the string execution reverted (source)

OpenEthereum (fomerly parity) uses the string Reverted (source)

The revert error message is returned when execution has been reverted with the REVERT opcode, so they are the exact same.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.