Skip to content

Commit e98a3a4

Browse files
jwasingerzfy0701
authored andcommitted
internal/ethapi: Set basefee for AccessList based on given block, not chain tip (ethereum#30538)
1 parent d9d5637 commit e98a3a4

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

internal/ethapi/api.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1287,9 +1287,18 @@ func AccessList(ctx context.Context, b Backend, blockNrOrHash rpc.BlockNumberOrH
12871287
}
12881288

12891289
// Ensure any missing fields are filled, extract the recipient and input data
1290-
if err := args.setDefaults(ctx, b, true); err != nil {
1290+
if err = args.setFeeDefaults(ctx, b, header); err != nil {
12911291
return nil, 0, nil, err
12921292
}
1293+
if args.Nonce == nil {
1294+
nonce := hexutil.Uint64(db.GetNonce(args.from()))
1295+
args.Nonce = &nonce
1296+
}
1297+
blockCtx := core.NewEVMBlockContext(header, NewChainContext(ctx, b), nil)
1298+
if err = args.CallDefaults(b.RPCGasCap(), blockCtx.BaseFee, b.ChainConfig().ChainID); err != nil {
1299+
return nil, 0, nil, err
1300+
}
1301+
12931302
var to common.Address
12941303
if args.To != nil {
12951304
to = *args.To

internal/ethapi/transaction_args.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ func (args *TransactionArgs) setDefaults(ctx context.Context, b Backend, skipGas
100100
if err := args.setBlobTxSidecar(ctx); err != nil {
101101
return err
102102
}
103-
if err := args.setFeeDefaults(ctx, b); err != nil {
103+
if err := args.setFeeDefaults(ctx, b, b.CurrentHeader()); err != nil {
104104
return err
105105
}
106106

@@ -183,8 +183,7 @@ func (args *TransactionArgs) setDefaults(ctx context.Context, b Backend, skipGas
183183
}
184184

185185
// setFeeDefaults fills in default fee values for unspecified tx fields.
186-
func (args *TransactionArgs) setFeeDefaults(ctx context.Context, b Backend) error {
187-
head := b.CurrentHeader()
186+
func (args *TransactionArgs) setFeeDefaults(ctx context.Context, b Backend, head *types.Header) error {
188187
// Sanity check the EIP-4844 fee parameters.
189188
if args.BlobFeeCap != nil && args.BlobFeeCap.ToInt().Sign() == 0 {
190189
return errors.New("maxFeePerBlobGas, if specified, must be non-zero")

internal/ethapi/transaction_args_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ func TestSetFeeDefaults(t *testing.T) {
238238
t.Fatalf("failed to set fork: %v", err)
239239
}
240240
got := test.in
241-
err := got.setFeeDefaults(ctx, b)
241+
err := got.setFeeDefaults(ctx, b, b.CurrentHeader())
242242
if err != nil {
243243
if test.err == nil {
244244
t.Fatalf("test %d (%s): unexpected error: %s", i, test.name, err)

0 commit comments

Comments
 (0)