ethereum / ethereum/execution-specs
Test Release Tracker: `tests@v21.0.0` (Glamsterdam Testnet)
- Dominant language
- Python
- Stars
- 1.2k
- Forks
- 505
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 106
Description
### Overview
Tracker for finalizing EELS specs and test coverage for all Amsterdam EL EIPs, targeting the first "mainnet-scheme" release that includes Amsterdam. Aiming to be ready for the first Glamsterdam testnet launch.
- **Target release tag**: `tests@v21.0.0`
- **EELS branch**: [`forks/amsterdam`](https://github.com/ethereum/execution-specs/tree/forks/amsterdam)
- **Baseline**: `tests@v20.0.1` (mainnet) / `tests-glamsterdam-devnet@v8.0.0` (devnet)
- **Test release date**: At least 2 weeks before October 6th :)
- **Related Trackers**:
- #3167
- #3147
### Scope
EL EIPs only. Requires the glamsterdam devnet 8 to be released so final repricing numbers and spec changes are in.
Each unchecked item is scoped as a standalone task. Effort: `[S]` small, `[M]` medium, `[L]` large. If using Claude set the Fable 5 effort accordingly.
### Per-EIP Status
Baseline items for every EIP (listed per section below): reconcile the stale implementation tracker, refresh the reference-spec pin and review the EIP diff since pin, review test coverage and add missing tests, complete the testing checklist (markers + not-applicable/external-coverage files), execute mode tests sufficient and passing on the most recent devnet with mainnet-marked tests added, and spec tests passing on every client via consume engine and consume enginex.
#### [EIP-2780](https://eips.ethereum.org/EIPS/eip-2780): Resource-based intrinsic transaction gas — #1940 @spencer-tb
- [x] `[S]` Reconcile tracker #1940: closed with implementation evidence and release follow-ups recorded. Closeout PR: #3515.
- [x] `[S]` Refresh ref-spec pin and review spec diff: ethereum/EIPs#12080 merged; #3515 pins `7243c92ba812437c64bae9fc6524ee269b29daa9`.
- [x] `[M]` Devnet-8 spec update implemented: #3205 closed.
- [x] `[M]` Tracker test case list covered: value moves (EOA/contract/7702/precompile/self/empty), creation transactions, call/opcode access, 7702 intrinsic and delegation-target access, and create-and-destroy SELFDESTRUCT. #2175 and subsequent suites; final audit and additions in #3515.
- [x] `[M]` Static test updates: #3051 closed; prior-fork fill groups and static checks pass on #3515's final head.
- [x] `[M]` Review test coverage and add missing tests: #3515; 771 combined fixture cases pass, including shared EIP-8037 creation-collision cases. No missed statements in the seven audited EELS functions; test-code coverage is 1,556/1,561 statements, with five helper fallback statements documented. Warming assertions verified by fault injection.
- [x] `[L]` Complete testing checklist: 11/11 applicable items, with N/A and external-coverage evidence in #3515. This is not exhaustive branch coverage or release sign-off.
- [x] `[M]` Mainnet-marked tests and execute-mode coverage prepared: transaction, creation, and authorization gas tests; 14 execute-mode cases collect.
- [x] `[S]` Final-head CI: all checks pass for #3515 at `b41265f12a89bddbe602c91256305602a9fec512`.
- [ ] `[M]` Run execute-mode tests on the latest live devnet and record passing results; collection and local fills do not establish live execution.
#### [EIP-7708](https://eips.ethereum.org/EIPS/eip-7708): ETH transfers emit a log — #1875 @spencer-tb
- PR: https://github.com/ethereum/execution-specs/pull/3220/
- [ ] `[S]` Reconcile tracker #1875 (only 4 boxes genuinely open)
- [x] `[S]` Refresh ref-spec pin (172188d to latest) + review spec diff
- [ ] `[M]` Review test coverage and add missing tests
- [ ] `[S]` Complete testing checklist (currently 3 of 4)
- [ ] `[M]` Execute mode tests sufficient and passing on the most recent devnet, mainnet-marked tests added
- [ ] `[M]` Spec tests passing on every client (consume engine and consume enginex)
#### [EIP-7778](https://eips.ethereum.org/EIPS/eip-7778): Block gas accounting without refunds — #1874 @marioevz
- [ ] `[S]` Reconcile tracker #1874
- [ ] `[S]` Refresh ref-spec pin (ce17d00 to latest) + review spec diff
- [ ] `[S]` Resolve/close #2855 (invalid `gas_used` field in expected_receipts test)
- [ ] `[M]` Review test coverage and add missing tests
- [ ] `[M]` Complete testing checklist (currently 2 of 15 after N/A trim)
- [ ] `[M]` Execute mode tests sufficient and passing on the most recent devnet, mainnet-marked tests added
- [ ] `[M]` Spec tests passing on every client (consume engine and consume enginex)
#### [EIP-7843](https://eips.ethereum.org/EIPS/eip-7843): SLOTNUM — #1876 @spencer-tb
- PR: https://github.com/ethereum/execution-specs/pull/3221/
- [ ] `[S]` Reconcile tracker #1876
- [ ] `[S]` Refresh ref-spec pin (6bc5d6b to latest) + review spec diff
- [ ] `[M]` Fork-transition boundary tests (SLOTNUM at/around Amsterdam activation)
- [x] `[S]` Benchmark test for SLOTNUM: #3267
- [ ] `[M]` Review test coverage and add missing tests
- [ ] `[L]` Complete testing checklist (markers + N/A files, currently 0 of 268, suite exists but unmarked)
- [ ] `[M]` Execute mode tests sufficient and passing on the most recent devnet (live-network slot semantics), mainnet-marked tests added
- [ ] `[M]` Spec tests passing on every client (consume engine and consume enginex)
#### [EIP-7928](https://eips.ethereum.org/EIPS/eip-7928): Block-level access lists — #1878 @fselmo
- [ ] `[S]` Reconcile tracker #1878 (only hardening/execute/mainnet/benchmark-results open)
- [x] `[S]` Refresh ref-spec pin (aca88aa to latest) + review spec diff https://github.com/ethereum/execution-specs/pull/3482
- [x] `[L]` Edge-case scenarios + spec-clarity questions: #3213
- [ ] `[M]` Benchmark results documented + BAL validation in benchmark tests (#3168)
- [ ] `[M]` Review test coverage and add missing tests
- [ ] `[M]` Complete testing checklist (currently 16 of 18)
- [ ] `[M]` Execute mode tests sufficient and passing on the most recent devnet, mainnet-marked tests added
- [ ] `[M]` Spec tests passing on every client (consume engine and consume enginex)
#### [EIP-7954](https://eips.ethereum.org/EIPS/eip-7954): Increase max contract size — #2028 @LouisTsai-Csie
- [ ] `[S]` Reconcile tracker #2028 + complexity assessment
- [x] `[S]` Refresh ref-spec pin (1dc9bc8 to latest) + review spec diff: https://github.com/ethereum/execution-specs/pull/3546
- [ ] `[M]` 64KiB deploy coverage in execute mode (known hole from #3098 review)
- [ ] `[M]` Review test coverage and add missing tests: https://github.com/ethereum/execution-specs/pull/3546
- [ ] `[L]` Complete testing checklist (markers + N/A files, currently 0 of 268): https://github.com/ethereum/execution-specs/pull/3546
- [ ] `[M]` Execute mode tests sufficient and passing on the most recent devnet, mainnet-marked tests added
- [ ] `[M]` Spec tests passing on every client (consume engine and consume enginex)
#### [EIP-7976](https://eips.ethereum.org/EIPS/eip-7976): Increase calldata floor cost — #1942 @spencer-tb
- PR: brewing
- [ ] `[S]` Reconcile tracker #1942
- [ ] `[S]` Refresh ref-spec pin (83d473b to latest) + review spec diff
- [ ] `[M]` Review test coverage and add missing tests
- [ ] `[L]` Complete testing checklist (markers + N/A files, currently 0 of 268)
- [ ] `[M]` Execute mode tests sufficient and passing on the most recent devnet, mainnet-marked tests added
- [ ] `[M]` Spec tests passing on every client (consume engine and consume enginex)
#### [EIP-7981](https://eips.ethereum.org/EIPS/eip-7981): Increase access list cost — #1943 @danceratopz
- [ ] `[S]` Reconcile tracker #1943
- [ ] `[S]` Refresh ref-spec pin (954963f to latest) + review spec diff
- [ ] `[M]` Review test coverage and add missing tests
- [ ] `[L]` Complete testing checklist (markers + N/A files, currently 0 of 268)
- [ ] `[M]` Execute mode tests sufficient and passing on the most recent devnet, mainnet-marked tests added
- [ ] `[M]` Spec tests passing on every client (consume engine and consume enginex)
#### [EIP-7997](https://eips.ethereum.org/EIPS/eip-7997): Deterministic factory predeploy — #1988 @danceratopz
- [ ] `[S]` Reconcile tracker #1988 (fully unchecked) + complexity assessment
- [ ] `[S]` Refresh ref-spec pin (a0a7f5a to latest) + review spec diff
- [ ] `[M]` Same-block system-contract deployment test: #2270
- [ ] `[M]` Review test coverage and add missing tests
- [ ] `[L]` Complete testing checklist (markers + N/A files, currently 0 of 268)
- [ ] `[M]` Execute mode tests sufficient and passing on the most recent devnet (predeploy-existence skip logic), mainnet-marked tests added
- [ ] `[M]` Spec tests passing on every client (consume engine and consume enginex)
#### [EIP-8024](https://eips.ethereum.org/EIPS/eip-8024): DUPN/SWAPN/EXCHANGE — #1877 @spencer-tb
- PR:
- [ ] `[S]` Reconcile tracker #1877
- [ ] `[S]` Refresh ref-spec pin (380cb02 to latest) + review spec diff
- [ ] `[M]` Coverage improvements: #2726 + missing scenario ([comment](https://github.com/ethereum/execution-specs/issues/1877#issuecomment-3786053583))
- [x] `[M]` Benchmark tests for DUPN/SWAPN/EXCHANGE: #3267
- [ ] `[M]` Review test coverage and add missing tests
- [ ] `[L]` Complete testing checklist (markers + N/A files, currently 3 of 268)
- [ ] `[M]` Execute mode tests sufficient and passing on the most recent devnet, mainnet-marked tests added
- [ ] `[M]` Spec tests passing on every client (consume engine and consume enginex)
#### [EIP-8037](https://eips.ethereum.org/EIPS/eip-8037): State creation gas cost increase — #2040 @LouisTsai-Csie @spencer-tb
- [ ] Follow-up PRs:
- [x] #3383, #3449, #3485, #3511, #3478.
- [ ] #3525 static-call reservoirs and block activation
- [ ] #3524 system gas and code-deposit boundaries (rebase over #3525, they conflict on `test_state_gas_fork_transition.py`)
- [ ] #3322 Pt. 2d, drops the skip list
- [ ] Closeout PR: reference pin and coverage evidence (opens after the three above)
- [x] `[S]` Reconcile tracker #2040
- [ ] `[S]` Refresh ref-spec pin. Pending ethereum/EIPs#12296 (EIP-7610 to EIP-684 collision wording).
- [ ] `[L]` Skipped ported-static tests burn-down (#2601, `amsterdam_skip_list.txt`): 2a #3264, 2b #3320, 2c #3321 merged; 2d #3322 open
- [x] `[M]` Code-deposit 3541 failure mode: #2963
- [ ] `[M]` 7702 auth-refund gaps: #3525
- [ ] `[M]` Tighten CALL NEW_ACCOUNT refund tests: #3524
- [x] `[S]` Pin CREATE static-check vs gas-charge ordering with a test.
- [x] `[M]` Review test coverage and add missing tests: PRs above.
- [ ] `[M]` Complete testing checklist: `uv run checklist --eip 8037` reads 25/29 on the tip, 26/29 with #3524, #3525 and #3322, 28/29 with the closeout PR; the optional second-client item stays open.
- [ ] `[M]` Execute mode tests sufficient and passing on the most recent devnet.
- [ ] `[M]` Spec tests passing on every client (consume engine and consume enginex).
- [x] `[S]` Optional cleanups: #3149, #3015, #3014 closed by #3527
- [x] `[S]` #3301 and #3440 closed: the type-4 validity tests halt in the top frame at the validity boundary by design under EIP-2780, the fixtures pin that outcome, and the execution path is covered by the EIP-2780 floor tests.
#### [EIP-8038](https://eips.ethereum.org/EIPS/eip-8038): State access gas cost increase — #1941 @gurukamath
- [ ] `[S]` Reconcile tracker #1941
- [ ] `[S]` Refresh ref-spec pin (a8862ae to latest) + review spec diff
- [ ] `[M]` Clean-up: #3016 (ported-static magic numbers), #3042 (superfluous gas checks), #3051 (static updates)
- [ ] `[M]` Review test coverage and add missing tests
- [ ] `[L]` Complete testing checklist (currently 7 of 268, highest-complexity EIP in the fork)
- [ ] `[M]` Execute mode tests sufficient and passing on the most recent devnet, mainnet-marked tests added
- [ ] `[M]` Spec tests passing on every client (consume engine and consume enginex)
#### [EIP-8246](https://eips.ethereum.org/EIPS/eip-8246): Remove SELFDESTRUCT burn — #2821 @fselmo
- [ ] `[S]` Reconcile tracker #2821 (fully unchecked, template not customized) + complexity assessment
- [ ] `[S]` Refresh ref-spec pin (3b30ff8 to latest) + review spec diff
- [ ] `[S]` External-coverage file for the fork-aware Cancun 6780 suite
- [ ] `[L]` Dedicated test matrix (burn-removal arms across 6780 same-tx/pre-existing cases)
- [ ] `[M]` Review test coverage and add missing tests
- [ ] `[L]` Complete testing checklist (markers + N/A files, currently 0 of 268)
- [ ] `[M]` Execute mode tests sufficient and passing on the most recent devnet, mainnet-marked tests added
- [ ] `[M]` Spec tests passing on every client (consume engine and consume enginex)
#### [EIP-8282](https://eips.ethereum.org/EIPS/eip-8282): Builder execution requests — #2988 @fselmo
- [ ] `[S]` Reconcile tracker #2988 (fully unchecked, impl merged via #3091 lineage) + complexity assessment
- [ ] `[S]` Refresh ref-spec pin (35ab20c to latest) + review spec diff
- [x] `[M]` 8,192-validator deposit test: #3204
- [x] `[S]` Verify deposit disable-switch coverage landed (#3091) incl. excess-reset discrimination
- [ ] `[M]` Two mined-address (deposit/exit) transition coverage
- [ ] `[M]` Review test coverage and add missing tests
- [ ] `[L]` Complete testing checklist (markers + N/A files, currently 0 of 268)
- [ ] `[M]` Execute mode tests sufficient and passing on the most recent devnet, mainnet-marked tests added
- [ ] `[M]` Spec tests passing on every client (consume engine and consume enginex)
- [ ] `[S]` Optional: system-request helper refactor #2984
### Cross-EIP Gaps
- [ ] `[M]` 2780 x 8037: top-frame calldata-floor half of the #3120 decomposition (flagged as "TBD bucket", never tracked)
- [ ] `[M]` 8037 x 7954: max-size (64KiB) initcode/deploy state-gas costs, incl. execute mode
- [ ] `[M]` 7928 x 7708: transfer-log-only flows vs BAL balance-change entries (fee payments, selfdestruct sweeps)
- [ ] `[M]` 7928 x 7997: factory predeploy writes present in BAL
- [ ] `[M]` 8246 x 6780 x 8037: selfdestruct matrix (burn removal x same-tx rule x state-gas refunds), incl. 7708 sweep logs
- [ ] `[M]` Repricing stack 2780 x 7976 x 7981 x 7778: combined intrinsic/floor/access-list/block-accounting matrix (#2289)
- [ ] `[S]` EIP-7610: DFI'd in [EIP-7773](https://eips.ethereum.org/EIPS/eip-7773), test removal PR: #3417 (#2819)
- [ ] `[S]` Verify BPO-sibling transition coverage in `fill --until=Amsterdam` post-#2955 (BPO2 to BPO3 to BPO4 boundary tests present)
### Status
- [ ] All per-EIP and cross-EIP sections above complete
- [ ] Slow-test failures on `forks/amsterdam` resolved: #2905
- [ ] Ref-spec pin release gate in CI: #3065
- [ ] Engine X fixes for BAL forks (#3160, #3161) or format excluded for Amsterdam
- [ ] Full `fill --until=Amsterdam` green, incl. static and derived formats
- [ ] Fixtures generated and released: `tests@v21.0.0`
- [ ] [`hive-tests`](https://github.com/ethpandaops/hive-tests)/[`hive-ui`](https://github.com/ethpandaops/hive-ui) updated
- [ ] Linked the test fixture release tag within the issue and closed it.
- [ ] All Amsterdam spec tests passing on every client (consume engine and consume enginex)
Contributor guide
Research direction
Start with one unchecked EIP task rather than the whole tracker, using the referenced tracker issue or pull request for context. Run `uv run checklist --eip 8037` where applicable, and inspect `amsterdam_skip_list.txt` and `test_state_gas_fork_transition.py` for the named follow-up work. Done means the selected checklist item has evidence, passing tests, and updated release tracking.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- release, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100