Skip to content

Test Block Access Lists

Documentation for tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists.py@5c024cbb.

Generate fixtures for these test cases for Amsterdam with:

fill -v tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists.py --fork Amsterdam

Tests for EIP-7928 using the consistent data class pattern.

Test Functions Overview

Name Type Cases (Amsterdam) Description
test_bal_2930_account_listed_but_untouched blockchain_test 1 Ensure BAL excludes untouched access list accounts.
test_bal_2930_slot_listed_and_unlisted_reads blockchain_test 1 Ensure BAL includes storage reads regardless of access list presence.
test_bal_2930_slot_listed_and_unlisted_writes blockchain_test 1 Ensure BAL includes storage writes regardless of access list presence.
test_bal_2930_slot_listed_but_untouched blockchain_test 1 Ensure BAL excludes untouched access list storage slots.
test_bal_aborted_account_access blockchain_test 16 Ensure BAL captures account access in aborted transactions.
test_bal_aborted_storage_access blockchain_test 2 Ensure BAL captures storage access in aborted transactions correctly.
test_bal_account_access_target blockchain_test 8 Ensure BAL captures target address of account access opcodes.
test_bal_all_transaction_types blockchain_test 1 Test BAL with all 5 tx types in single block.
test_bal_balance_changes blockchain_test 1 Ensure BAL captures changes to balance.
test_bal_block_rewards blockchain_test 1 Ensure BAL captures fee recipient balance changes from block rewards.
test_bal_callcode_nested_value_transfer blockchain_test 1 Ensure BAL captures balance changes from nested value transfers
test_bal_code_changes blockchain_test 1 Ensure BAL captures changes to account code.
test_bal_coinbase_zero_tip blockchain_test 1 Ensure BAL includes coinbase even when priority fee is zero.
test_bal_create_transaction_empty_code blockchain_test 1 Ensure BAL does not record spurious code changes when a CREATE transaction
test_bal_cross_block_ripemd160_state_leak blockchain_test 1 Ensure internal EVM state for RIMPEMD-160 precompile handling does not
test_bal_cross_tx_balance_dependency blockchain_test 2 Verify clients apply Tx1's balance change before executing Tx2 in
test_bal_cross_tx_deploy_then_call blockchain_test 2 Verify clients apply Tx1's CREATE to their state view before
test_bal_cross_tx_factory_nonce_create_chain blockchain_test 3 Cross-tx CREATE chain: 8 senders share a factory whose CREATE
test_bal_cross_tx_funding_chain blockchain_test 3 Funding chain: alice → bob → charlie → dan → eunice → target. Each
test_bal_cross_tx_storage_chain blockchain_test 1 Verify clients apply BAL state changes from prior transactions before
test_bal_cross_tx_storage_write blockchain_test 2 Tx1's storage_change must be preserved regardless of tx2's write.
test_bal_delegated_storage_reads blockchain_test 2 Ensure BAL captures delegated storage reads via
test_bal_delegated_storage_writes blockchain_test 2 Ensure BAL captures delegated storage writes via
test_bal_empty_block_no_coinbase blockchain_test 1 Ensure BAL correctly handles empty blocks without including coinbase.
test_bal_fully_unmutated_account blockchain_test 1 Test that BAL captures account that has zero net mutations.
test_bal_gas_limit_boundary blockchain_test 8 BAL max-items cap (``bal_items <= block_gas_limit //
test_bal_intra_tx_multiple_sstores_same_slot blockchain_test 3 Test that consecutive SSTOREs to the same slot within one tx produce a
test_bal_intra_tx_sstores_same_slot_net_zero blockchain_test 2 Test that consecutive SSTOREs to the same slot within one tx with a
test_bal_lexicographic_address_ordering blockchain_test 1 Test BAL enforces strict lexicographic byte-wise address ordering.
test_bal_many_storage_writes_single_account blockchain_test 3 Verify the BAL records many distinct storage changes for a single
test_bal_multiple_balance_changes_same_account blockchain_test 1 Ensure BAL correctly tracks multiple balance changes to same account
test_bal_multiple_storage_writes_same_slot blockchain_test 1 Test that BAL tracks multiple writes to the same storage slot across
test_bal_nested_delegatecall_storage_writes_net_zero blockchain_test 3 Test BAL correctly handles nested DELEGATECALL frames where intermediate
test_bal_net_zero_balance_transfer blockchain_test 4 Test that BAL does not record balance changes when net change is zero.
test_bal_nonce_changes blockchain_test 1 Ensure BAL captures changes to nonce.
test_bal_nonexistent_account_access_read_only blockchain_test 6 Ensure BAL captures non-existent account access via read-only opcodes.
test_bal_nonexistent_account_access_value_transfer blockchain_test 4 Ensure BAL captures non-existent account access via CALL/CALLCODE
test_bal_nonexistent_value_transfer blockchain_test 2 Ensure BAL captures non-existent account on value transfer.
test_bal_noop_storage_write blockchain_test 1 Test that BAL correctly handles no-op storage write.
test_bal_outer_revert_with_inner_insufficient_funds state_test 2 Outer REVERT + inner CALL/CREATE that fails on insufficient funds.
test_bal_parent_revert_state_access state_test 8 Ensure BAL captures child-frame state access when the parent reverts.
test_bal_precompile_call_opcode blockchain_test 72 Ensure BAL records the precompile address regardless of call opcode.
test_bal_precompile_funded blockchain_test 36 Ensure BAL records precompile value transfer.
test_bal_pure_contract_call blockchain_test 1 Test that BAL captures contract access for pure computation calls.
test_bal_self_transfer blockchain_test 1 Test that BAL correctly handles self-transfers.
test_bal_selfdestruct_to_coinbase state_test 2 Ensure BAL records SELFDESTRUCT when the beneficiary is the coinbase.
test_bal_zero_value_transfer blockchain_test 1 Test that BAL correctly handles zero-value transfers.