Skip to content

EIP-7928 BAL does NOT include system contract addresss #1886

@raxhvl

Description

@raxhvl

Metadata

  • Hardfork: Amsterdam

What was wrong?

BAL does NOT include system contract address for 4788 pre-execution

Sources

BAL MUST include: System contract addresses accessed during pre/post-execution...

Additional Context

Test case

Function Name Goal Setup Expectation
test_bal_4788_simple Ensure BAL captures beacon root storage writes during pre-execution system call Block with 2 normal user transactions: Alice sends 10 wei to Charlie, Bob sends 10 wei to Charlie. At block start (pre-execution), SYSTEM_ADDRESS calls BEACON_ROOTS_ADDRESS to store parent beacon root BAL MUST include at block_access_index=0: BEACON_ROOTS_ADDRESS with two storage_changes (timestamp slot and beacon root slot), SYSTEM_ADDRESS with empty changes. At block_access_index=1: Alice with nonce_changes, Charlie with balance_changes (10 wei). At block_access_index=2: Bob with nonce_changes, Charlie with balance_changes (20 wei total).

Gets the following error:

BlockAccessListValidationError: Expected address 0xfffffffffffffffffffffffffffffffffffffffe not found in actual BAL

cc: @nerolation @fselmo

Metadata

Metadata

Assignees

Labels

C-bugCategory: this is a bug, deviation, or other problem

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions