|
|
|
@ -606,8 +606,7 @@ func (b *SimulatedBackend) callContract(ctx context.Context, call ethereum.CallM |
|
|
|
|
if call.GasPrice != nil && (call.GasFeeCap != nil || call.GasTipCap != nil) { |
|
|
|
|
return nil, errors.New("both gasPrice and (maxFeePerGas or maxPriorityFeePerGas) specified") |
|
|
|
|
} |
|
|
|
|
head := b.blockchain.CurrentHeader() |
|
|
|
|
if !b.blockchain.Config().IsLondon(head.Number) { |
|
|
|
|
if !b.blockchain.Config().IsLondon(header.Number) { |
|
|
|
|
// If there's no basefee, then it must be a non-1559 execution
|
|
|
|
|
if call.GasPrice == nil { |
|
|
|
|
call.GasPrice = new(big.Int) |
|
|
|
@ -629,13 +628,13 @@ func (b *SimulatedBackend) callContract(ctx context.Context, call ethereum.CallM |
|
|
|
|
// Backfill the legacy gasPrice for EVM execution, unless we're all zeroes
|
|
|
|
|
call.GasPrice = new(big.Int) |
|
|
|
|
if call.GasFeeCap.BitLen() > 0 || call.GasTipCap.BitLen() > 0 { |
|
|
|
|
call.GasPrice = math.BigMin(new(big.Int).Add(call.GasTipCap, head.BaseFee), call.GasFeeCap) |
|
|
|
|
call.GasPrice = math.BigMin(new(big.Int).Add(call.GasTipCap, header.BaseFee), call.GasFeeCap) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// Ensure message is initialized properly.
|
|
|
|
|
if call.Gas == 0 { |
|
|
|
|
call.Gas = 50000000 |
|
|
|
|
call.Gas = 10 * header.GasLimit |
|
|
|
|
} |
|
|
|
|
if call.Value == nil { |
|
|
|
|
call.Value = new(big.Int) |
|
|
|
|