From b0b2b765094ed4abc490ba26bc3be431c84c5b96 Mon Sep 17 00:00:00 2001 From: jwasinger Date: Sun, 23 Mar 2025 17:38:26 +0100 Subject: [PATCH] internal/ethapi: return code 3 from call/estimateGas even if a revert reason was not returned (#31456) --- internal/ethapi/api.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go index f3975d35a0..979a7e822a 100644 --- a/internal/ethapi/api.go +++ b/internal/ethapi/api.go @@ -761,8 +761,7 @@ func (api *BlockChainAPI) Call(ctx context.Context, args TransactionArgs, blockN if err != nil { return nil, err } - // If the result contains a revert reason, try to unpack and return it. - if len(result.Revert()) > 0 { + if errors.Is(result.Err, vm.ErrExecutionReverted) { return nil, newRevertError(result.Revert()) } return result.Return(), result.Err @@ -842,7 +841,7 @@ func DoEstimateGas(ctx context.Context, b Backend, args TransactionArgs, blockNr // Run the gas estimation and wrap any revertals into a custom return estimate, revert, err := gasestimator.Estimate(ctx, call, opts, gasCap) if err != nil { - if len(revert) > 0 { + if errors.Is(err, vm.ErrExecutionReverted) { return 0, newRevertError(revert) } return 0, err