You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(spec-specs): Calculate all gas we can before accessing state
- Calculate all gas that we can without state access and check this
gas before ever accessing state. This is the most sensible way for
an implementation to behave and indeed was revealed to be the way
clients are behaving, which differed from the specs.
- Use fork.gas_costs to calculate gas costs, NOT hard-coded values.
- Create a BAL expectation for the test that yielded discrepancies
between clients and specs so this doesn't slip through again.
Document this test in `test_cases.md`.
Copy file name to clipboardExpand all lines: tests/amsterdam/eip7928_block_level_access_lists/test_cases.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -93,3 +93,4 @@
93
93
|`test_init_collision_create_tx`| Ensure BAL tracks CREATE collisions correctly (pre-Amsterdam test with BAL) | CREATE transaction targeting address with existing storage aborts | BAL **MUST** show empty expectations for collision address (no changes occur due to abort) | ✅ Completed |
94
94
|`test_call_to_pre_authorized_oog`| Ensure BAL handles OOG during EIP-7702 delegation access (pre-Amsterdam test with BAL) | Call to delegated account that OOGs before accessing delegation contract | BAL **MUST** include auth_signer (code read for delegation check) but **MUST NOT** include delegation contract (OOG before access) | ✅ Completed |
95
95
|`test_selfdestruct_created_in_same_tx_with_revert`| Ensure BAL tracks selfdestruct with revert correctly (pre-Amsterdam test with BAL) | Contract created and selfdestructed in same tx with nested revert | BAL **MUST** track storage reads and balance changes for selfdestruct even with reverts | ✅ Completed |
96
+
|`test_value_transfer_gas_calculation`| Ensure BAL correctly tracks OOG scenarios for CALL/CALLCODE/DELEGATECALL/STATICCALL (pre-Amsterdam test with BAL) | Nested calls with precise gas limits to test OOG behavior. For CALL with OOG: target account read for `is_account_alive` check. For CALLCODE/DELEGATECALL/STATICCALL with OOG: target account **NOT** read (OOG before state access) | For CALL: target in BAL even with OOG. For CALLCODE/DELEGATECALL/STATICCALL: target **NOT** in BAL when OOG (state access deferred until after gas check) | ✅ Completed |
0 commit comments