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,
|
State: state,
|
||||||
ErrorRatio: estimateGasErrorRatio,
|
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 {
|
if err := args.CallDefaults(gasCap, header.BaseFee, b.ChainConfig().ChainID); err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
// when gas is over header.GasLimit, just recap with header.GasLimit
|
if nilGas && args.Gas != nil {
|
||||||
if uint64(*args.Gas) > header.GasLimit {
|
args.Gas = nil
|
||||||
*args.Gas = (hexutil.Uint64)(header.GasLimit)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
call := args.ToMessage(header.BaseFee)
|
call := args.ToMessage(header.BaseFee)
|
||||||
|
|
||||||
// Run the gas estimation andwrap any revertals into a custom return
|
// Run the gas estimation andwrap 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 {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue