Skip to content

Commit

Permalink
internal/ethapi: Set basefee for AccessList based on given block, n…
Browse files Browse the repository at this point in the history
…ot chain tip (ethereum#30538)
  • Loading branch information
jwasinger authored Nov 8, 2024
1 parent 8e00f95 commit 0fc9cca
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 5 deletions.
11 changes: 10 additions & 1 deletion internal/ethapi/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -1287,9 +1287,18 @@ func AccessList(ctx context.Context, b Backend, blockNrOrHash rpc.BlockNumberOrH
}

// Ensure any missing fields are filled, extract the recipient and input data
if err := args.setDefaults(ctx, b, true); err != nil {
if err = args.setFeeDefaults(ctx, b, header); err != nil {
return nil, 0, nil, err
}
if args.Nonce == nil {
nonce := hexutil.Uint64(db.GetNonce(args.from()))
args.Nonce = &nonce
}
blockCtx := core.NewEVMBlockContext(header, NewChainContext(ctx, b), nil)
if err = args.CallDefaults(b.RPCGasCap(), blockCtx.BaseFee, b.ChainConfig().ChainID); err != nil {
return nil, 0, nil, err
}

var to common.Address
if args.To != nil {
to = *args.To
Expand Down
5 changes: 2 additions & 3 deletions internal/ethapi/transaction_args.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ func (args *TransactionArgs) setDefaults(ctx context.Context, b Backend, skipGas
if err := args.setBlobTxSidecar(ctx); err != nil {
return err
}
if err := args.setFeeDefaults(ctx, b); err != nil {
if err := args.setFeeDefaults(ctx, b, b.CurrentHeader()); err != nil {
return err
}

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

// setFeeDefaults fills in default fee values for unspecified tx fields.
func (args *TransactionArgs) setFeeDefaults(ctx context.Context, b Backend) error {
head := b.CurrentHeader()
func (args *TransactionArgs) setFeeDefaults(ctx context.Context, b Backend, head *types.Header) error {
// Sanity check the EIP-4844 fee parameters.
if args.BlobFeeCap != nil && args.BlobFeeCap.ToInt().Sign() == 0 {
return errors.New("maxFeePerBlobGas, if specified, must be non-zero")
Expand Down
2 changes: 1 addition & 1 deletion internal/ethapi/transaction_args_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ func TestSetFeeDefaults(t *testing.T) {
t.Fatalf("failed to set fork: %v", err)
}
got := test.in
err := got.setFeeDefaults(ctx, b)
err := got.setFeeDefaults(ctx, b, b.CurrentHeader())
if err != nil {
if test.err == nil {
t.Fatalf("test %d (%s): unexpected error: %s", i, test.name, err)
Expand Down

0 comments on commit 0fc9cca

Please sign in to comment.