diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go index 2025d47b88..0630fe1f03 100644 --- a/internal/ethapi/api.go +++ b/internal/ethapi/api.go @@ -1627,8 +1627,14 @@ func AccessList(ctx context.Context, b Backend, blockNrOrHash rpc.BlockNumberOrH 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) - args.CallDefaults(b.RPCGasCap(), blockCtx.BaseFee, b.ChainConfig().ChainID) + if err := args.CallDefaults(b.RPCGasCap(), blockCtx.BaseFee, b.ChainConfig().ChainID); err != nil { + return types.AccessList{}, 0, nil, err + } var to common.Address if args.To != nil { @@ -1636,6 +1642,7 @@ func AccessList(ctx context.Context, b Backend, blockNrOrHash rpc.BlockNumberOrH } else { to = crypto.CreateAddress(args.from(), uint64(*args.Nonce)) } + fmt.Printf("nonce %d\nto %x\n", *args.Nonce, to) isPostMerge := header.Difficulty.Sign() == 0 // Retrieve the precompiles since they don't need to be added to the access list precompiles := vm.ActivePrecompiles(b.ChainConfig().Rules(header.Number, isPostMerge, header.Time))