diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go index e700164d90..bf8faeacab 100644 --- a/internal/ethapi/api.go +++ b/internal/ethapi/api.go @@ -1200,16 +1200,16 @@ func DoEstimateGas(ctx context.Context, b Backend, args TransactionArgs, blockNr ErrorRatio: estimateGasErrorRatio, } // Set any required transaction default, but make sure the gas cap itself is not messed with - nilGas := args.Gas == nil + // if it was not specified in the original argument list. + if args.Gas == nil { + args.Gas = new(hexutil.Uint64) + } if err := args.CallDefaults(gasCap, header.BaseFee, b.ChainConfig().ChainID); err != nil { return 0, err } - if nilGas && args.Gas != nil { - args.Gas = nil - } call := args.ToMessage(header.BaseFee) - // 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) if err != nil { if len(revert) > 0 {