Skip to content

Test Block Access Lists

Documentation for tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists.py@21507778.

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_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_revert_to_zero blockchain_test 1 Ensure BAL captures storage changes when tx1 writes a non-zero value
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 2 Test the BAL max items gas limit boundary for an empty block.
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_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_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_zero_value_transfer blockchain_test 1 Test that BAL correctly handles zero-value transfers.