internal/ethapi: return code 3 from call/estimateGas even if a revert reason was not returned (#31456)

This commit is contained in:
jwasinger 2025-03-23 17:38:26 +01:00 committed by sivaratrisrinivas
parent 937622868d
commit 073e0a6205

View file

@ -761,8 +761,7 @@ func (api *BlockChainAPI) Call(ctx context.Context, args TransactionArgs, blockN
if err != nil { if err != nil {
return nil, err return nil, err
} }
// If the result contains a revert reason, try to unpack and return it. if errors.Is(result.Err, vm.ErrExecutionReverted) {
if len(result.Revert()) > 0 {
return nil, newRevertError(result.Revert()) return nil, newRevertError(result.Revert())
} }
return result.Return(), result.Err 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 // Run the gas estimation and wrap any revertals into a custom return
estimate, revert, err := gasestimator.Estimate(ctx, call, opts, gasCap) estimate, revert, err := gasestimator.Estimate(ctx, call, opts, gasCap)
if err != nil { if err != nil {
if len(revert) > 0 { if errors.Is(err, vm.ErrExecutionReverted) {
return 0, newRevertError(revert) return 0, newRevertError(revert)
} }
return 0, err return 0, err