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
Follow-up to PR #6518 addressing the test-gap list documented in the
session-3 review. Covers every remaining item in TODO.md except the
upstream zkevm@v0.4.x fixture re-enable (tracked externally).
Tests (10 new):
- `test_cpsb_clamp_to_one_for_tiny_gas_limit`,
`test_cpsb_30m_bin_boundary` — cpsb quantization boundaries. Guards
against an off-by-one in the `if quantized > CPSB_OFFSET` branch and
against bin boundary regressions in the 5M-30M range.
- `test_change_variants_rlp_roundtrip_index_above_u16_max` — RLP
round-trip for all 4 BAL change variants at index 70_000, guarding
against an accidental revert to the pre-devnet-4 `u16` type that
would silently truncate high indices.
- `amsterdam_create_intrinsic_matches_vm_dimensions` — mempool
admission for Amsterdam CREATE txs must match the VM's `(regular,
state)` split (TX_BASE + REGULAR_GAS_CREATE +
STATE_BYTES_PER_NEW_ACCOUNT * cpsb), not the legacy 53000.
- `test_intrinsic_parity_plain_transfer` /
`test_intrinsic_parity_create_tx` /
`test_intrinsic_parity_with_calldata_and_access_list` /
`test_intrinsic_parity_eip7702_auth_list` — parity between the
standalone `intrinsic_gas_dimensions` helper (used by mempool and
payload builder) and `VM::get_intrinsic_gas` (used during execution).
Run across Prague / Osaka / Amsterdam at 30M and 120M block gas
limits.
- `test_call_to_empty_account_with_value_retains_parent_state_gas` —
EIP-8037 CALL-to-empty-with-value charges new-account state gas in
the caller's frame, retained across successful parent continuation.
Pairs with the existing `test_child_charge_then_revert_returns_state_gas_to_parent`
for the revert direction.
Code polish:
- Clarifying comment on the `frame_outstanding_delta` invariant in
`credit_state_gas_refund` (`crates/vm/levm/src/vm.rs`). The
subtraction is fragile — documenting why it must read
`state_gas_spill_outstanding` and not `state_gas_spill`.
- `debug_assert!` guards on tx count vs `u32::MAX` at each block-exec
entry (`execute_block`, `execute_block_pipeline`), keeping the
EIP-7928 `BlockAccessIndex` invariant explicit rather than implicit
in the ~10 downstream `u32::try_from(...).unwrap_or(u32::MAX)` sites.
Docs:
- `docs/roadmaps/forks-roadmap.md` — EIP-7976 / EIP-7981 flipped
🔴→✅, EIP-8037 status line expanded (dynamic cpsb, clamp-and-spill,
2D inclusion, same-tx SELFDESTRUCT refund), priority note updated
for bal-devnet-4 + PR #6518.
All 478 tests pass. No behavior changes — these are regression guards
and documentation for the bal-devnet-4 work landed in PR #6518.
|**8038**| State-Access Gas Cost Update | 🔴 Not implemented · [exec-specs tracking](https://github.com/ethereum/execution-specs/issues/1941)| 🔴 | 🔴 | CFI |
40
40
41
-
> **Priority note:** All core devnet EIPs are merged. EIP-8037 fully implemented with reservoir model, nested revert fixes, and CREATE collision escrow. BAL optimizations shipped: parallel execution ([#6233]), batched reads + parallel state root ([#6227]). bal-devnet-3 tracking PR [#6216] open with bal@v5.4.0 fixtures, Amsterdam consume-engine hive tests in CI. **Up next:** merge PR [#6216], EIP-7954 ([#6214]). Remaining gas repricing EIPs are **low priority** — no other client has started them. Monitor CFI decisions at ACDE calls.
41
+
> **Priority note:** All core devnet EIPs are merged. EIP-8037 fully implemented with reservoir model, clamp-and-spill refunds, 2D inclusion check, and same-tx SELFDESTRUCT refund. EIP-7976 + EIP-7981 shipped with bal-devnet-4 rollup. BAL optimizations shipped: parallel execution ([#6233]), batched reads + parallel state root ([#6227]), shadow-recorder missing-entry detection (PR #6518). bal-devnet-4 tracking PR #6518 open with bal@v5.7.0 fixtures, Amsterdam consume-engine hive 1342/1342 passing. **Up next:** merge PR #6518, EIP-7954 ([#6214]). Remaining gas repricing EIPs are **low priority** — no other client has started them. Monitor CFI decisions at ACDE calls.
0 commit comments