Skip to content

Add EVM access-list support - #5445

Open
mpapierski wants to merge 3 commits into
feat-evmfrom
evm-access-lists
Open

mpapierski wants to merge 3 commits into
feat-evmfrom
evm-access-lists

Conversation

@mpapierski

Copy link
Copy Markdown
Collaborator

This PR adds end-to-end support for EVM transaction access lists.

Access lists let a transaction declare the accounts and storage keys it expects to use. The transaction pays the access-list cost upfront, and those entries are treated as warm during execution. This can reduce execution gas when the declared state is accessed enough to offset that upfront cost.

The change:

  • Preserves access lists when decoding EIP-2930, EIP-1559, and EIP-7702 transactions.
  • Includes access lists in JSON and Casper binary serialization.
  • Passes the declared addresses and storage keys to revm.
  • Allows non-empty access lists through transaction admission.
  • Rejects an access-list transaction when its gas limit cannot cover the resulting intrinsic gas.
  • Returns a dedicated binary-port error for that intrinsic-gas shortfall.
  • Keeps existing serialized transactions backward compatible by appending the new fields.

Preserve EIP-2930 access-list entries through Ethereum decoding,
signature reconstruction, JSON, and Casper binary serialization. Append
the new binary fields so older transactions continue to decode.

Expose Prague intrinsic-gas calculation so node admission can account
for the upfront cost introduced by an access list.
Translate access-list addresses and storage keys into the revm
transaction environment so Prague execution applies intrinsic charges
and warms the declared state.

Cover EIP-2930, EIP-1559, and EIP-7702 transactions, including the
observable storage-read gas reduction.
Account for access-list prepayments during node admission so a newly
supported non-empty list cannot make revm reject the transaction during
block execution.

Return a dedicated binary-port error for the intrinsic-gas shortfall
and document the access-list validation behavior.
@mpapierski
mpapierski added this pull request to stack #5447 September 23, 2026 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant