Skip to content

Releases: ethereum/execution-spec-tests

v5.4.0

06 Dec 23:55
88e9fb8

Choose a tag to compare

🇯🇵 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 modexp and ripemd precompiled contracts (#1691, #1781).
  • ✨ Add ecrecover precompile tests originating form evmone unittests (#1685).
  • ✨ Add test to validate withdarawls root (#1746).
  • ✨ Add test for old behavior of zero gasprice txs (#1736).
  • ✨ Add stack overflow tests and expand BLOCKHASH tests (#1728).
  • ✨ Ported tests for ripemd precompile 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]

06 Feb 06:25
88e9fb8

Choose a tag to compare

[email protected] Pre-release
Pre-release

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 setup and execution phases.
  • 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_blockhash from this release due to excessive execution time and resource usage; will re-enable after optimization.

Asset

  • Genesis files
  • Fixtures

[email protected]

28 Feb 15:47
88e9fb8

Choose a tag to compare

[email protected] Pre-release
Pre-release

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

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]

30 Jan 12:13
88e9fb8

Choose a tag to compare

[email protected] Pre-release
Pre-release

bal-devnet-2 v3

Spec-alignment release for bal-devnet-2, updating test cases to match recent EIP specification changes.

EIP Spec Alignments

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]

26 Jan 23:46
88e9fb8

Choose a tag to compare

[email protected] Pre-release
Pre-release

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]

23 Jan 21:29
88e9fb8

Choose a tag to compare

[email protected] Pre-release
Pre-release

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

Misc

  • BALs were removed from the block body, but we agreed to keep the BAL in the blockchain_test test 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 the block objects for blockchain_test vector formats #2066.

[email protected]

13 Jan 22:24
88e9fb8

Choose a tag to compare

[email protected] Pre-release
Pre-release

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_list entirely out of the block body in the testing framework (link)

[email protected]

13 Jan 07:42
88e9fb8

Choose a tag to compare

[email protected] Pre-release
Pre-release

⚠️ 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_list is 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/static in execution-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

  • ZeroPaddedHexNumber is used for hex values for consistency in test vectors, e.g.0xc -> 0x0c (link)
  • Specs refactored to simplify gas accounting changes (link)
  • Net-zero filtering refactored in specs (link)

[email protected]

12 Dec 22:38
88e9fb8

Choose a tag to compare

[email protected] Pre-release
Pre-release

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, and DELEGATECALL (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]

25 Nov 22:45
88e9fb8

Choose a tag to compare

[email protected] Pre-release
Pre-release

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

  • Front-load more static gas checks in call opcodes (commit)
  • Remove named forks from blobSchedule and turn off BPOs in hive config (commit)