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).
bal@v2.0.0
This is a breaking, major, release following from bal@v1.8.0.
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)
bal@v1.8.0
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.
What's Changed
bal@v1.7.0
This is a minor release building on bal@v1.6.0 fixing issues found with tracking the address in a contract init collision case. These changes also make sure these existing init collision tests include a BAL expectation so they cannot fill if these conditions are not met.
What's Changed
- Track address of contract init collision (commit)
benchmark@v0.0.6
Bloatnet Benchmark
- Additional cases for SLOAD/SSTORE operations
General
- Folder restructuring for compute benchmark cases
- Doc string update for benchmark cases.
Execute Command
- FIx benchmark test wrapper integration for
executemode
Genesis File
Attached.
bal@v1.6.0
This is a minor release, fixing issues found in the specs from running the previous bal@v1.5.0 release. This release adds targeted test cases for each of these fixes, as the previous release did.
What's Changed
- Default code pre to b"" in tracker, skip setting empty code commit
- Fix BAL cross-transaction tracking and nonce dedup issues commit
- Move destroy_account before BAL normalization to read updated values commit
- Check delegation access gas before reading it commit
- Check code per auth; filter pre at transaction frame level commit
- Use child frames for better tracking of system transactions commit
bal@v1.5.0
This is a minor release, fixing known issues in the specs from the previous bal@v1.4.1 release and adding targeted test cases for each of the fixes.
What's Changed
- Improved tracking for code changes, fixing targeted cases where zero changes were recorded (commit)
- Use child call frame for create message call which reverts to record only reads if the child message reverts (commit)
- Normalize transaction changes while still within transaction frame, before merging to block frame (commit)
- Static check on SSTORE early, and fail hard, before any reads can be recorded (commit)
- Track storage writes more appropriately in state tracker wrt BAL index (commit)
- Clean up spec design, fix revert on a contract creation case, add targeted test (commit)
bal@v1.4.1
What's Changed
This is a patch release, with no added test cases following bal@v1.4.0. This release is based off the update to the specs here and aims to fix most of the known issues with the `v1.4.01 release in order to keep development moving forward.
- Fixes an issue with duplicate slot entry changes recorded in some test vectors ethereum/execution-specs#1743.
- Tracks gas more appropriately in call contexts by only tracking an accessed address if we have enough gas for access early on.
benchmark@v0.0.5
Benchmark Tests
Bloatnet Benchmark
- Introduced the
Bloatnetbenchmark test. - Added initial test cases for storage operation.
- Added support for the
bloatnetmarker (-m stateful).
General
- Introduced a test phase manager to separate the execution and testing phases.
- Refactored to use the newly added benchmark test wrapper (partial support for the Osaka fork).
- Added support for
evmoneopcode comparison commands. - Relaxed gas validation rules for benchmark tests.
Execute Command
- Updated to refresh the sender nonce to the latest value before execution.
New Tests
- Added EIP-7702 benchmark tests.
Genesis File
Attached.
bal@v1.4.0
This new minor version for Block-Level Access List (bal) tests fills 99.9% of tests from previous forks to include block access lists. The only previous tests not filled with BALs are the EIP-7934 block rlp limit tests.
Block-Level Access List Targeted Updates
There were also updates to the existing specifications and BAL-targeted tests in the Amsterdam fork since the release of bal@v1.3.0 release.
- Updates to coinbase zero-value cases in specs and tests from on discussions in EIP-7928 breakouts ethereum/execution-specs/commit/f9a0146e...
- New test cases for coinbase, account access, storage, and withdrawals ethereum/execution-specs/commit/55486426...
- Fixes to zero-value withdrawals: ethereum/execution-specs/commit/41f88a85..
- Updates to early, upfront checks for selfdestruct and create ethereum/execution-specs/commis/20e189f8...
Contributions to specs and tests from @nerolation, @raxhvl, @fselmo