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 GitHub
parent 624a5d8b23
commit b0b2b76509
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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