Releases: ethereum/execution-spec-tests
v5.4.0
🇯🇵 Summary
EEST v5.4.0 is our final Osaka release following the success of the Fusaka upgrade!
This release adds additional tests for Osaka but predominantly includes tests for pre-Osaka forks, catching critical coverage edge cases (added by @chfast and @pdobacz). These edge cases are within both the develop and stable releases. Benchmark tests are skipped in this release.
🧪 Test Cases
- ✨ Expand EIP-6110 modified contract tests, where the extra event log has no topics at all (#1693).
- ✨ Add a CREATE/2 test cases for when it runs OOG on code deposit (#1705).
- ✨ Expand cases to test *CALL opcodes causing OOG (#1703).
- ✨ Add a test case for base fee in block check after London (#1702).
- ✨ Add tests for
modexpandripemdprecompiled contracts (#1691, #1781). - ✨ Add
ecrecoverprecompile tests originating formevmoneunittests (#1685). - ✨ Add test to validate withdarawls root (#1746).
- ✨ Add test for old behavior of zero gasprice txs (#1736).
- ✨ Add stack overflow tests and expand
BLOCKHASHtests (#1728). - ✨ Ported tests for
ripemdprecompile going OOG for all forks (#1732). - ✨ Add tests for ecadd/ecmul/ecpairing constant gas repricing (#1738).
- ✨ Add tests that EIP-1559 and EIP-2930 typed txs are invalid and void before their fork (#1754).
- ✨ Add tests for an old validation rule for gas limit above 5000 (#1731).
- ✨ Add tests for OOG in EXP, LOG and others (#1686).
[email protected]
Summary
- Osaka compatibility for compute & stateful benchmark.
- Support fixed-opcode-count feature, add dedicate repricing marker and opcode count config file support.
- Add necessary benchmarks for repricing analysis, fixing failing scenario for both execute-remote and fill mode.
Changes
- Added fuzzy-compute benchmark tests to support repricing analysis across forks and opcode scenarios.
- Introduced fixed-opcode-count benchmark mode, along with a repricing marker.
- Added transaction phase metadata labeling, clearly separating
setupandexecutionphases. - Introduced new helper utilities (e.g.,
IteratingBytecode), to improve benchmark code readability - Published up-to-date benchmark documentation (Link), covering framework design, developer guidelines, and usage patterns.
Notes:
- Excluded
test_blockhashfrom this release due to excessive execution time and resource usage; will re-enable after optimization.
Asset
- Genesis files
- Fixtures
[email protected]
bal-devnet-3
Our first test release for bal devnet 3 is out in alignment with: https://notes.ethereum.org/@ethpandaops/bal-devnet-3
New EIPs
- EIP-7954: Increase Maximum Contract Size - ethereum/execution-specs#2276.
- EIP-8037: State Creation Gas Cost Increase - ethereum/execution-specs#2363.
- Note we are using a static
cost_per_state_byteof 1174 (for all block gas limits) in devnet-3 only!
- Note we are using a static
EIPs Reference
| EIP | Blob |
|---|---|
| EIP-7708 | EIPS/eip-7708.md |
| EIP-7778 | EIPS/eip-7778.md |
| EIP-7843 | EIPS/eip-7843.md |
| EIP-7928 | EIPS/eip-7928.md |
| EIP-7954 | EIPS/eip-7954.md |
| EIP-8024 | EIPS/eip-8024.md |
| EIP-8037 | EIPS/eip-8037.md |
Full Changelog: https://github.com/ethereum/execution-specs/compare/[email protected]@v5.2.0
[email protected]
bal-devnet-2 v3
Spec-alignment release for bal-devnet-2, updating test cases to match recent EIP specification changes.
EIP Spec Alignments
- EIP-7708: Updated for self-transfer exclusions and
SELFDESTRUCTlog timing (#2086, #2106) - EIP-7778: Aligned with reverted receipt changes (#2093)
- EIP changes: #11191
- EIP-8024: Updated for end-of-code behavior (#2095)
- EIP-7843: Execution-API alignment (#2101)
- API changes: execution-apis#731
Features
- Add logs to state fixtures for easier debugging (#2091)
EIPs Repo Reference
| EIP | Blob |
|---|---|
| EIP-7708 | 04026e9 |
| EIP-7778 | 3929b1a |
| EIP-7843 | c3bfd4b |
| EIP-8024 | 0f224ab |
Full Changelog: https://github.com/ethereum/execution-specs/compare/[email protected]@v5.1.0
[email protected]
Updated release for bal-devnet-2
This is another major bump for the bal pre-release test suite for bal-devnet-2 spec tests. The previous v4.0.0 release included support for the early specifications for bal-devnet-2. As of ACDT #67 this morning, consensus was reached that EIP-7778 would not include changes to transaction receipts. This release includes these updates to the EIP-7778 specs and re-fills all tests to reflect this spec change.
What's Changed
Breaking
- EIP-7778: Revert to post-refund gas in tx receipts PR #2073
Features
- EIP-7778: Add EIP-7778 tests with multiple refund types PR #2074
[email protected]
Release for bal-devnet-2
This is a major bump for the bal pre-release test suite, aligning the test cases with the early specifications for bal-devnet-2. Implemented alongside EIP-7928, this release includes spec implementation and tests for EIP-7708, EIP-7778, EIP-7843, and EIP-8024.
What's Changed
Features
-
Spec implementation and test cases for:
- EIP-7708 eips/amsterdam/eip-7708
- EIP-7778 eips/amsterdam/eip-7778
- EIP-7843 eips/amsterdam/eip-7843
- EIP-8024 eips/amsterdam/eip-8024
-
Adds coverage for
CALLscenarios in static context #1960
Misc
- BALs were removed from the block body, but we agreed to keep the BAL in the
blockchain_testtest vectors as this makes it easier to debug the BAL expectation vs executed BALs on clients. The last release removed the BAL from test vectors but this release puts them back in theblockobjects forblockchain_testvector formats #2066.
[email protected]
This is a patch release following the v3.0.0 release yesterday. There were some issues with the block rlp on the testing framework still including the BAL, even though it was moved out of the block body and is only present as a hash of the BAL in the block header. This affected all tests as the filled rlp field in the vectors included the block_access_list rlp.
Refer to the v3.0.0 release notes for the full set of changes outside of this bugfix.
What's Changed
Bugfix
- Move the
block_access_listentirely out of the block body in the testing framework (link)
[email protected]
⚠️ Important: This release revealed updates needed on the testing framework side to remove the block access list from the block rlp. Use the patch release v3.0.1 for the corrected version of these test vectors.
This is a new major bump on the pre-release for the bal test suite, following from [email protected].
What's Changed
Breaking
block_access_listis no longer in the block body (link)- Tests are filled with BPO1 and BPO2 turned on, reflecting mainnet values. This means they now expect BPO2 blob parameter values (link)
Additional tests
- Extended self-destruct cases with BAL expectations (link)
ethereum/tests(tests/staticinexecution-specs) have all been filled for Amsterdam and are included in this release (link)- Targeted BAL tests for EIP-7002 interactions (link)
- Targeted BAL tests for EIP-4788 interactions (link)
- Target BAL tests for invalid spurious / extraneous entries (link)
Miscellaneous changes
[email protected]
This is a breaking, major, release following from [email protected].
What's Changed
Breaking
- Encode storage keys and slots as uint256 (from bytes32) (changes)
Features
- Expands testing for all known gas boundaries for
CALL,CALLCODE,STATICCALL, andDELEGATECALL(changes) - More targeted BAL tests (changes) for:
- test_bal_create2_collision - CREATE2 address collision handling
- test_bal_create_selfdestruct_to_self_with_call - Init code with external call then selfdestruct to self
- test_bal_selfdestruct_to_7702_delegation - SELFDESTRUCT to EIP-7702 delegated account
- test_bal_revert_insufficient_funds - CALL failure due to insufficient balance
- test_bal_lexicographic_address_ordering - Strict byte-wise address ordering validation with endian-trap addresses
- test_bal_transient_storage_not_tracked - EIP-1153 transient storage exclusion
- test_bal_selfdestruct_to_precompile - SELFDESTRUCT with precompile beneficiary
- test_bal_all_transaction_types - All 5 tx types (Legacy, EIP-2930, EIP-1559, Blob, EIP-7702) in single block
- test_bal_create_early_failure - CREATE failure before track_address
- test_bal_withdrawal_to_7702_delegation - Withdrawal to EIP-7702 delegated account
- Self destruct OOG tests (changes)
- Targeted test for state leak bug in Nethermind related to Parity touch bug and RIPEMD-160 precompile (changes)
[email protected]
This is a new minor release, front-loading more static gas checks ahead of necessitating any state access within opcode logic. This also includes the block access list expectation for the test that revealed this. Along with this change is a change to the hive configuration on the testing side so that named forks are removed from the blobSchedule and BPOs are not set which could cause some clients to use those blob parameters instead.