github ethereum/execution-spec-tests v4.3.0
Vltava (v4.3.0)

latest releases: bal@v2.0.0, v5.4.0, bal@v1.8.0...
7 months ago

Summary

This release introduces more coverage for Prague EIPs, along with many new features described below.

๐Ÿ’ฅ Breaking Change

EIP Changes

Consume engine strict exception checking

consume engine now checks exceptions returned by the execution clients in their Engine API responses, specifically in the validationErrorfield of the engine_newPayloadVX method.

While not strictly a breaking change since tests will continue to run normally, failures are expected if a client modifies their exception messages.

This feature can be disabled by using --disable-strict-exception-matching for specific clients or forks.

๐Ÿ› ๏ธ Framework

fill

  • โœจ The static_filler plug-in now has support for static state tests (from GeneralStateTests) (#1362).
  • โœจ Introduce pytest.mark.exception_test to mark tests that contain an invalid transaction or block (#1436).
  • ๐Ÿž Fix DeprecationWarning: Pickle, copy, and deepcopy support will be removed from itertools in Python 3.14. by avoiding use itertools object in the spec BaseTest pydantic model (#1414).

consume

  • ๐Ÿž Fix fixture tarball downloading with regular, non-Github release URLS and with numerical versions in regular release specs, e.g., stable@v4.2.0 (#1437).
  • โœจ consume engine now has strict exception mapping enabled by default (#1416).

Tools

  • ๐Ÿ”€ generate_system_contract_deploy_test test generator has been updated to handle system contracts that are not allowed to be absent when the fork happens (#1394).
  • โœจ Add generate_system_contract_error_test to generate tests on system contracts that invalidate a block in case of error (#1394).

Exceptions

  • โœจ BlockException.SYSTEM_CONTRACT_EMPTY: Raised when a required system contract was not found in the state by the time it was due to execution with a system transaction call (#1394).
  • โœจ BlockException.SYSTEM_CONTRACT_CALL_FAILED: Raised when a system contract call made by a system transaction fails (#1394).
  • โœจ BlockException.INVALID_BLOCK_HASH: Raised when the calculated block hash does not match the expectation (Currently only during Engine API calls) (#1416).
  • โœจ BlockException.INVALID_VERSIONED_HASHES: Raised when a discrepancy is found between versioned hashes in the payload and the ones found in the transactions (#1416).

๐Ÿงช Test Cases

  • โœจ EIP-7702: Test precompile case in same transaction as delegation without extra gas in case of precompile code execution; parametrize all call opcodes in existing precompile test (#1431).
  • โœจ EIP-7702: Add invalid nonce authorizations tests for the case of multiple signers when the sender's nonce gets increased (#1441).
  • โœจ EIP-7702: Add a test that verifies that set code transactions are correctly rejected before Prague activation (#1463).
  • โœจ EIP-7623: Additionally parametrize transaction validity tests with the to set to an EOA account (previously only contracts) (#1422).
  • โœจ EIP-7251: Add EIP-7251 test cases for modified consolidations contract that allows more consolidations (#1465).
  • โœจ EIP-6110: Add extra deposit request edge cases, sending eth to the deposit contract while sending a deposit request (#1467).
  • โœจ EIP-6110: Add cases for deposit log layout and other topics (ERC-20) transfer (#1371).
  • โœจ EIP-7251: Remove pytest skips for consolidation request cases (#1449).
  • โœจ EIP-7002, EIP-7251: Add cases to verify behavior of contracts missing at fork (#1394).
  • โœจ EIP-7002, EIP-7251: Add cases to verify behavior of system contract errors invalidating a block (#1394).
  • ๐Ÿ”€ Remove EIP-7698: EIP has been removed and the tests related to it have also been removed, while preserving a subset of the tests to verify that functionality is removed in clients (#1451).

๐Ÿ“‹ Misc

โœจ New Contributors

Full Changelog: v4.2.0...v4.3.0

Don't miss a new execution-spec-tests release

NewReleases is sending notifications on new releases.