EscanBE / evermint

Evermint is a fork of open source Evmos, maintains bug fixes, customization and enable developers to fork and transform to their chain, fully customized naming, in just 2 steps. For research and development purpose.
GNU Lesser General Public License v3.0
3 stars 3 forks source link

Feature Request: build transaction receipt for EVM-Txs in-case of processed but failure by any reason #102

Closed VictorTrustyDev closed 3 months ago

VictorTrustyDev commented 10 months ago

For example this case

    // pass true to commit the StateDB
    res, err := k.ApplyMessageWithConfig(tmpCtx, msg, nil, true, cfg, txConfig)
    if err != nil {
        // Refer to EIP-140 https://eips.ethereum.org/EIPS/eip-140
        // Opcode REVERT provides a way to stop execution and revert state changes, without consuming all provided gas.
        // Thus, all the other failure will consume all gas.
        // That why we are going to consume all gas here because this is not caused-by-REVERT-opcode.
        k.ResetGasMeterAndConsumeGas(ctx, ctx.GasMeter().Limit())

        return nil, errorsmod.Wrap(err, "failed to apply ethereum core message")
    }