mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 18:32:23 +00:00
internal/ethapi: fix gas estimator capping code
This commit is contained in:
parent
97a4b1257c
commit
8465891486
1 changed files with 5 additions and 4 deletions
|
|
@ -1199,15 +1199,16 @@ func DoEstimateGas(ctx context.Context, b Backend, args TransactionArgs, blockNr
|
|||
State: state,
|
||||
ErrorRatio: estimateGasErrorRatio,
|
||||
}
|
||||
// Set any required transaction default, but make sure the gas cap itself is not messed with
|
||||
nilGas := args.Gas == nil
|
||||
if err := args.CallDefaults(gasCap, header.BaseFee, b.ChainConfig().ChainID); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
// when gas is over header.GasLimit, just recap with header.GasLimit
|
||||
if uint64(*args.Gas) > header.GasLimit {
|
||||
*args.Gas = (hexutil.Uint64)(header.GasLimit)
|
||||
if nilGas && args.Gas != nil {
|
||||
args.Gas = nil
|
||||
}
|
||||
|
||||
call := args.ToMessage(header.BaseFee)
|
||||
|
||||
// Run the gas estimation andwrap any revertals into a custom return
|
||||
estimate, revert, err := gasestimator.Estimate(ctx, call, opts, gasCap)
|
||||
if err != nil {
|
||||
|
|
|
|||
Loading…
Reference in a new issue