Releases: ethereum/execution-spec-tests
Vltava (v4.3.0)
Summary
This release introduces more coverage for Prague EIPs, along with many new features described below.
💥 Breaking Change
EIP Changes
- EIP-6110: Spec parse_deposit_data
- EIP-7002: Add system call gas aspects and directive for handling failures
- EIP-7251: Add system call properties and directive for failure cases
Consume engine strict exception checking
consume engine
now checks exceptions returned by the execution clients in their Engine API responses, specifically in the validationError
field 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 useitertools
object in the specBaseTest
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
- 🐞 Configure
markdownlint
to expect an indent of 4 with unordered lists (otherwise HTML documentation is rendered incorrectly, #1460). - 🔀 Update
eels_resolutions.json
to point to temporary commitbb0eb750d643ced0ebf5dec732cdd23558d0b7f2
, which is based onforks/prague
branch, commitd9a7ee24db359aacecd636349b4f3ac95a4a6e71
, with PRs ethereum/execution-specs#1182, ethereum/execution-specs#1183 and ethereum/execution-specs#1191 merged (#1394).
✨ New Contributors
- @GarmashAlex made their first contribution in #1370
Full Changelog: v4.2.0...v4.3.0
Vyšehrad (v4.2.0)
Summary
This release introduces more coverage for Prague EIPs, along with many new features described below.
💥 Breaking Change
Note: Although not a breaking change, consume
users should delete the cache directory (typically located at ~/.cache/ethereum-execution-spec-tests
) used to store downloaded fixture release tarballs. This release adds support for ethereum/tests and ethereum/legacytests fixture release downloads and the structure of the cache directory has been updated to accommodate this change.
To try this feature:
consume direct --input=https://github.com/ethereum/tests/releases/download/v17.0/fixtures_blockchain_tests.tgz
To determine the cache directory location, see the --cache-folder
entry from the command:
consume cache --help
🛠️ Framework
consume
- ✨ Add support for ethereum/tests and ethereum/legacytests release tarball download via URL to the
--input
flag ofconsume
commands (#1306). - ✨ Add support for Nethermind's
nethtest
command toconsume direct
(#1250). - ✨ Allow filtering of test cases by fork via pytest marks (e.g.,
-m "Cancun or Prague"
) (#1304, #1318). - ✨ Allow filtering of test cases by fixture format via pytest marks (e.g.,
-m blockchain_test
) (#1314). - ✨ Add top-level entries
forks
andfixture_formats
to the index file that list all the forks and fixture formats used in the indexed fixtures (#1318). - ✨ Enable logging from
consume
commands (#1361). - ✨ Propagate stdout and stderr (including logs) captured during test execution to the Hive test result (#1361).
- 🐞 Don't parametrize tests for unsupported fixture formats; improve
consume
test collection (#1315). - 🐞 Fix the the hive command printed in test reports to reproduce tests in isolation by prefixing the
--sim.limit
flag value withid:
(#1333). - 🐞 Improve index generation of ethereum/tests fixtures: Allow generation at any directory level and include
generatedTestHash
in the index file for thefixture_hash
(#1303). - 🐞 Fix loading of ethereum/tests and ethereum/legacytests fixtures for the case of mixed
0x0
and0x1
transaction types in multi-index (data
,gas
,value
) state test fixtures (#1330). - ✨ Add Osaka to the hive ruleset, includes a small ruleset refactor (#1355).
fill
- 🐞 Fix
--fork/from/until
for transition forks when usingfill
#1311. - 🐞 Fix the node id for state tests marked by transition forks (#1313).
- ✨ Add
static_filler
plug-in which allows to fill static YAML and JSON tests (from ethereum/tests) by adding flag--fill-static-tests
touv run fill
(#1336).
execute
- 🔀 Test IDs have changed to include the name of the test spec where the test came from (e.g.
state_test
,blockchain_test
, etc) (#1367). - ✨ Markers can now be used to execute only tests from a specific test spec type (e.g.
-m state_test
,-m blockchain_test
, etc) (#1367).
📋 Misc
- 🔀 Bump the version of
execution-specs
used by the framework to the packageethereum-execution==1.17.0rc6.dev1
; bump the version used for test fixture generation for forks < Prague to currentexecution-specs
master, fa847a0 (#1310). - 🐞 Init
TransitionTool
inGethTransitionTool
(#1276). - 🔀 Refactored RLP encoding of test objects to allow automatic generation of tests (#1359).
- ✨ Document how to manage
execution-spec-tests
package dependencies (#1388).
Packaging
- 🐞 Fix
eest make test
whenethereum-execution-spec-tests
is installed as a package (#1342). - 🔀 Pin
setuptools
andwheel
in[build-system]
, bumptrie>=3.1
and removesetuptools
from package dependencies (#1345, #1351).
🧪 Test Cases
- ✨ Add additional test coverage for EIP-152 Blake2 precompiles (#1244). Refactor to add variables for spec constants and common fixture code. (#1395), (#1405).
- ✨ Add EIP-7702 incorrect-rlp-encoding tests (#1347).
- ✨ Add EIP-2935 tests for all call opcodes (#1379).
- ✨ Add more tests for EIP-7702: max-fee-per-gas verification, delegation-designation as initcode tests (#1372).
New Contributors
- @lightsing made their first contribution in #1276
- @sonhv0212 made their first contribution in #1349
- @hugo-dc made their first contribution in #1341
- @Olexandr88 made their first contribution in #1401
Full Changelog: v4.1.0...v4.2.0
eip7692@v2.3.0
This is intended to be the final eof-devnet-0 release c.f. Osaka testnet plan, before we move onto eof-devnet-1 spec
What's Changed (Only EOF-relevant changes listed)
- new(tests): EOF - mix RETF with INVALID, RETF underflow by @pdobacz in #1264
- new(tests): extend RJUMP over unreachable code by @chfast in #1267
- new(tests): EOF validation JUMPF stack overflow by @chfast in #1269
- new(tests): Add tests for ambiguous subcontainer kind by @chfast in #1266
- new(tests): add more RJUMPV validation tests by @chfast in #1242
- new(tests): EOF - ensure EOFCREATE bumps nonce as EIP-161 by @pdobacz in #1270
- new(tests): EOF - ensure EOFCREATE memory and transfer by @pdobacz in #1271
- new(tests): EOF - CALLF/JUMPF/RETF and memory by @pdobacz in #1273
- new(tests): EOF - ensure empty/maxcode deployments work in legacy by @pdobacz in #1293
- fix(tests): EOF - Rename RETURNCONTRACT to RETURNCODE by @pdobacz in #1284
- fix(cli/gen_index): Fix index generation for EOF files by @marioevz in #1332
- new(tests): EOF - EXTDELEGATECALL blocking vs 7702 by @pdobacz in #1309
- Add simple swap/dup/exchange tests by @shemnon in #1373
- new(tests): Aggregate EOF tests for invalid first section type by @chfast in #1377
- new(tests): Add exhaustive EOF stack underflow tests by @chfast in #1378
- refactor(tests): Merge EOF stack underflow tests by @chfast in #1384
- new(tests): EOF validation RETF stack overflow by @hugo-dc in #1341
- fix(tests): Prevent EOF max stack height above number of inputs by @chfast in #1380
- fix(tests): de-duplicate EOF stack underflow tests by @chfast in #1392
- new(tests): EOF validation JUMPF stack overflow by @hugo-dc in #1397
New Contributors
- @lightsing made their first contribution in #1276
- @sonhv0212 made their first contribution in #1349
- @hugo-dc made their first contribution in #1341
- @Olexandr88 made their first contribution in #1401
Full Changelog: https://github.com/ethereum/execution-spec-tests/compare/eip7692@v2.2.0...eip7692@v2.3.0
Vítkov (v4.1.0)
Summary
EESTs Vítkov release predominantly adds improved coverage for EIP-2537 following the recent BLS12 consensus bug.
Minor changes to the fixture format are additionally included that could be breaking for some clients!
💥 Breaking Changes
The following changes may be potentially breaking (all clients were tested with these changes with the state test format, but not the blockchain test format):
- 💥 Add a
yParity
field (that duplicatesv
) to transaction authorization tuples in fixture formats to have fields that conform to EIP-7702 spec, resolves erigontech/erigon#14073 (#1286). - 💥 Rename the recently introduced
_info
fieldfixture_format
tofixture-format
for consistency #1295.
🛠️ Framework
- 🔀 Make
BaseFixture
able to parse any fixture format such asBlockchainFixture
(#1210). - ✨ Blockchain and Blockchain-Engine tests now have a marker to specify that they were generated from a state test, which can be used with
-m blockchain_test_from_state_test
and-m blockchain_test_engine_from_state_test
respectively (#1220). - ✨ Blockchain and Blockchain-Engine tests that were generated from a state test now have
blockchain_test_from_state_test
orblockchain_test_engine_from_state_test
as part of their test IDs (#1220). - 🔀 Refactor
ethereum_test_fixtures
andethereum_clis
to createFixtureConsumer
andFixtureConsumerTool
classes which abstract away the consumption process used byconsume direct
(#935). - ✨ Allow
consume direct --collect-only
without specifying a fixture consumer binary on the command-line (#1237). - ✨ Allow
fill --collect-only
without the need for existence of the folder `./fixtures' - ✨ Report the (resolved) fixture tarball URL and local fixture cache directory when
consume
's--input
flag is a release spec or URL (#1239). - ✨ EOF Container validation tests (
eof_test
) now generate container deployment state tests, by wrapping the EOF container in an init-container and sending a deploy transaction (#783, #1233). - ✨ Use regexes for Hive's
--sim.limit
argument and don't use xdist if--sim.parallelism==1
in theeest/consume-rlp
andeest/consume-rlp
simulators (#1220). - 🐞 Register generated test markers, e.g.,
blockchain_test_from_state_test
, to prevent test session warnings (#1238, #1245). - 🐞 Zero-pad
Environment
fields passed tot8n
tools as required byevmone-t8n
(#1268).
📋 Misc
- ✨ Add a guide to the docs for porting tests from
ethereum/tests
to EEST (#1165). - ✨ Improve the
uv run eest make test
interactive CLI to enable creation of new test modules within existing test sub-folders (#1241). - ✨ Update
mypy
to latest release>=1.15.0,<1.16
(#1209). - 🐞 Bug fix for filling with EELS for certain Python versions due to an issue with CPython (#1231).
- 🐞 Fix HTML site deployment due to the site's index file exceeding Github's max file size limit (#1292).
- ✨ Update the build fixtures workflow to use multiple self-hosted runners, remove
pectra-devnet-6
feature build (#1296).
🧪 Test Cases
- ✨ Add gas cost of delegation access in CALL opcode (#1208).
- ✨ Add EIP-7698 failed nonce and short data tests (#1211).
- ✨ Add EIP-2537 additional pairing precompile tests cases, and then update all BLS12 test vectors (#1275, #1289).
New Contributors
Full Changelog: v4.0.0...v4.1.0
eip7692@v2.2.0 (EOF)
What's Changed (Only EOF-relevant changes listed)
- new(tests): EOF - EIP-7069: Test EOF calls to p256verify by @shemnon in #1021
- new(tests): EOF - EIP-7480: Add DATACOPY edge cases for common int sizes by @shemnon in #1020
- refactor(tests): EOF - EIP-4200: confirm migration of RJUMP* tests by @chfast in #1031
- new(tests): EOF - EIP-7069, EIP-7480, EIP-7620: Add memory expansion tests to EOF opcodes by @shemnon in #989
- fix(tests): Typo in
tests/osaka/eip7692_eof_v1/eip7069_extcall/test_gas.py
by @Hack666r in #1048 - fix(eof): eofwrap.py to ignore invalid blocks by @pdobacz in #1028
- new(tests): add EOF CALLF stack overflow validation tests by @chfast in #1073
- new(tests): extend tests for CALLF invalid section index by @chfast in #1111
- new(tests): tests for JUMPF invalid section index by @chfast in #1112
- new(tests): EOF - EIP-7069: Test EXTCALL creation gas charge by @shemnon in #1025
- fix(tests): fix address padding in extcall tests by @chfast in #1117
- new(tests): CALLF with truncated immediate bytes by @chfast in #1114
- new(tests): add one more CALLF execution test by @chfast in #1122
- new(tests): test for CALLF to non-returning section by @chfast in #1126
- new(tests): DATALOADN with truncated immediate bytes by @chfast in #1127
- feat(fw): allow adding verbatim bytes to Bytecode by @chfast in #1119
- feat(tests): EOF - EIP-7620: verify RETURNCONTRACT does not overwrite containing contract by @shemnon in #1109
- new(tests): convert remaining EOF functions tests (EIP4750) by @chfast in #1124
- reafactor(specs,tests): Rename
EOFTest.data
->EOFTest.container
, rebaseEOFStateTest
by @marioevz in #1145 - new(tests): new tests for JUMPF and non-returning by @chfast in #1140
- new(tests): add new JUMPF tests by @chfast in #1161
- new(tests): add tests for DATALOADN validation and execution by @chfast in #1162
- feat(tests): improve tests for EOF prefix by @chfast in #1187
- new(tests): add EOF tests for type section missing by @chfast in #1184
- new(tests): a test for empty EOF type section by @chfast in #1194
- new(tests): add a test for multiple EOF type sections by @chfast in #1195
- new(tests): add a test case for EOF code header missing by @chfast in #1193
- new(tests) EIP-7698 - legacy cannot create EOF by @shemnon in #1206
- chore(cli): temp eofwrap pydantic fix by @spencer-tb in #1216
- fix(tests): correct test_rjumpi_at_the_end description by @chfast in #1225
- new(tests): add more EOFCREATE validation tests by @chfast in #1226
- feat(specs): EOF:
eof_test
generates state tests, andexecute
in live devnets by @marioevz in #783 - new(tests): add more RJUMP validation tests by @chfast in #1228
- new(tests): add more RJUMPI validation tests by @chfast in #1235
- fix(eofwrap): fixture_format and auxiliary logging by @pdobacz in #1258
Full Changelog: https://github.com/ethereum/execution-spec-tests/compare/eip7692@v2.1.0...eip7692@v2.2.0
Letná (v4.0.0)
Summary
EESTs Letná release contains many framework improvements, new commands and additional tests that focus on the next hard forks Prague and Osaka (EOF). Please read the breaking changes!
Improved User & Test Developer Experience
Astral python tooling is now utilized within the the repo inclusive of uv
and ruff
:
uv
is a python package and project manger primarily replacing ourpip
entry point for repo setup and installation.ruff
is an extremely fast python linter and code formatter, that now replaces theblack
,isort
&flake8
within the repo.
EEST installation and usage is now significantly faster, although requires every command to be pre-pended with uv run <command>
, more information can be found within the updated documentation.
EELS Transition Tool
As we move towards a world where EIPs are developed within EELS for hard fork inclusion, EEST now utilizes the EELS transition tool as the default fixture filler. The EELS transition tool, along with the EELS resolver, are included as packages within EEST, allowing repository users to fill tests out of the box upon repo installation. Previously, users were required to install an additional client’s transition tool as a prerequisite for filling the latest tests.
Support for filling tests in EEST using other transition tools will remain available, although the primary focus will now be directed towards EELS. Currently, EELS serves as the main filler for all forks up to Prague. For Osaka (EOF), tests are being filled with evmone - with a nearly complete working version in EELS, while Stateless is being filled with geth - with a movement towards EELS.
Execute Command
A new command called execute
is now introduced that allows existing python tests (not fixtures generated by fill
) to be ran within live networks including devnets. execute
collects transactions written within existing python tests, sends them to a client connected to a network, wait for the network to include them in a block and, finally, check the resulting state of the involved smart-contracts against the expected state to validate the behavior of the clients. This is a new way of testing that was not possible until now. Please check the documentation for more details.
Consume Command Enhancements
The Petřín release introduced the consume command to provide a unified way to run test fixtures against clients directly within EEST. In this release, we have added required fixes and tweaks to consume
, and now fixture .tar
releases can be ran directly using the syntax --input <RELEASE_NAME>@<RELEASE_VERSION>
, making it easier to run any set of fixture releases.
An additional sub-command, consume cache
, has been added to allow fixture releases to be downloaded with a single command. When running consume within hive, this enhancement enables Docker to download fixture releases as a cached step, thereby improving run time and overall user experience.
EEST Contributions
We are pleased to announce that @felix314159 has joined EEST as an active full-time maintainer, joining the ranks of previous maintainers @marioevz, @danceratopz, @winsvega, and @spencer-tb.
Since the last release, many members of the Ethereum community have contributed significantly to EEST. A special thanks goes to the @ipsilon team for their efforts on EOF, to @jsign for contributions to Stateless, and to @raxhvl for improvements to the framework and documentation. We also extend our thanks to the @snake-charmers for their ongoing support and collaboration for their test porting efforts from ethereum/tests
.
What's Changed
📁 Fixture Releases
- 🔀 Initially we moved old fork configured tests within stable and develop fixture releases to a separate legacy release (#788).
- 🔀 This was later reverted after some client teams preferred to keep them in all in the same releases (#1053).
💥 Breaking Change
- ✨ Use uv for package management replacing pip (#777).
- ✨ Ruff now replaces Flake8, Isort and Black resulting in significant changes to the entire code base including its usage (#922).
- 🔀 Fill test fixtures using EELS by default. EEST now uses the
ethereum-specs-evm-resolver
with the EELS daemon (#792). - 🔀 The EOF fixture format contained in
eof_tests
may now contain multiple exceptions in the"exception"
field in the form of a pipe (|
) separated string (#759). - 🔀
state_test
,blockchain_test
andblockchain_test_engine
fixtures now contain aconfig
field, which contains an object that contains ablobSchedule
field. On theblockchain_test
andblockchain_test_engine
fixtures, the object also contains a duplicate of thenetwork
root field. The root'snetwork
field will be eventually deprecated (#1040). - 🔀
latest-stable-release
andlatest-develop-release
keywords for the--input
flag in consume commands have been replaced withstable@latest
anddevelop@latest
respectively (#1044).
🛠️ Framework
- ✨ Execute command added to run existing tests in live networks (#).
- 🐞 Fixed consume hive commands from spawning different hive test suites during the same test execution when using xdist (#712).
- ✨
consume hive
command is now available to run all types of hive tests (#712). - ✨ Generated fixtures now contain the test index
index.json
by default (#716). - ✨ A metadata folder
.meta/
now stores all fixture metadata files by default (#721). - 🐞 Fixed
fill
command index generation issue due to concurrency (#725). - ✨ Added
with_all_evm_code_types
,with_all_call_opcodes
andwith_all_create_opcodes
markers, which allow automatic parametrization of tests to EOF (#610, #739). - ✨ Added
with_all_system_contracts
marker, which helps parametrize tests with all contracts that affect the chain on a system level (#739). - ✨ Code generators
Conditional
andSwitch
now support EOF by adding parameterevm_code_type
(#610). - ✨
fill
command now supports parameter--evm-code-type
that can be (currently) set tolegacy
oreof_v1
to force all test smart contracts to deployed in normal or in EOF containers (#610). - 🐞 Fixed fixture index generation on EOF tests (#728).
- 🐞 Fixes consume genesis mismatch exception for hive based simulators (#734).
- ✨ Adds reproducible consume commands to hiveview (#717).
- 💥 Added multiple exceptions to the EOF fixture format (#759).
- ✨ Added optional parameter to all
with_all_*
markers to specify a lambda function that filters the parametrized values (#739). - ✨ Added
extend_with_defaults
utility function, which helps extend test case parameter sets with default values.@pytest.mark.parametrize
(#739). - ✨ Added
Container.Init
toethereum_test_types.EOF.V1
package, which allows generation of an EOF init container more easily (#739). - ✨ Introduce method valid_opcodes() to the fork class (#748).
- 🐞 Fixed
consume
exit code return values, ensuring that pytest's return value is correctly propagated to the shell. This allows the shell to accurately reflect the test results (e.g., failures) based on the pytest exit code (#765). - ✨ Added a new flag
--solc-version
to thefill
command, which allows the user to specify the version of the Solidity compiler to use when compiling Yul source code; this version will now be automatically downloaded byfill
viasolc-select
(#772). - 🐞 Fix usage of multiple `@py...
pectra-devnet-6@v1.0.0
First release for Pectra Devnet-6, containing the finalized specifications for Prague Mainnet (LFG! 🚀🚀🚀)
Execution Layer EIP List for pectra-devnet-6
The list below links the specific commit versions of the EIPs included in devnet-6 and in this release:
- EIP-2537: Precompile for BLS12-381 curve operations
- EIP-2935: Save historical block hashes in state
- EIP-6110: Supply validator deposits on chain
- EIP-7002: Execution layer triggerable withdrawals
- EIP-7251: Increase the MAX_EFFECTIVE_BALANCE
- EIP-7623: Increase calldata cost
- EIP-7685: General purpose execution layer requests
- EIP-7691: Blob throughput increase
- EIP-7702: Set EOA account code for one transaction
- EIP-7840: Add blob schedule to EL config files
Breaking Changes
System Contract Address Changes for EIP-2935, EIP-7002 and EIP-7251
The system contract addresses have been updated:
EIP-2935: -> 0x0F792BE4B0C0CB4DAE440EF133E90C0ECD48CCCC
0x0000F90827F1C53A10CB7A02335B175320002935
EIP-7002: -> 0x0C15F14308530B7CDB8460094BBB9CC28B9AAAAA
0x00000961EF480EB55E80D19AD83579A64C007002
EIP-7251: -> 0x00431F263CE400F4455C2DCF564E53007CA4BBBB
0x0000BBDDC7CE488642FB579F8B00F3A590007251
Thanks to @pk910 for providing these new addresses!
Blob Schedule In Fixtures includes baseFeeUpdateFraction
The blob schedule has now includes baseFeeUpdateFraction
, along with target
and max
(Update EIP-7840: Add BaseFeeUpdateFraction).
EIP-7702 EXTCODE*
Behavior Change
Expected return value for all EXTCODE*
opcodes has been updated to include the address (See Update EIP-7702: update EXTCODE* opcodes to act on full "delegation designator").
Full Changelog: https://github.com/ethereum/execution-spec-tests/compare/pectra-devnet-5@v1.3.1...pectra-devnet-6@v1.0.0
pectra-devnet-5@v1.3.1
Bug fix release for pectra-devnet-5@v1.3.0
.
Fixes Engine API expectations on EIP-7685 in tests/prague/eip7685_general_purpose_el_requests/test_deposits_withdrawals_consolidations.py
(#1138).
Execution Layer EIP List for pectra-devnet-5
The list below links the specific commit versions of the EIPs included in devnet-5 and in this release:
- EIP-2537: Precompile for BLS12-381 curve operations
- EIP-2935: Save historical block hashes in state
- EIP-6110: Supply validator deposits on chain
- EIP-7002: Execution layer triggerable withdrawals
- EIP-7251: Increase the MAX_EFFECTIVE_BALANCE
- EIP-7623: Increase calldata cost
- EIP-7685: General purpose execution layer requests
- EIP-7691: Blob throughput increase
- EIP-7702: Set EOA account code for one transaction
- EIP-7840: Add blob schedule to EL config files
Breaking Changes
Transaction Tests
New test format is included in this release called Transaction Tests.
The fixtures of this type are included in folder ./fixtures/transaction_tests/
.
Blob Schedule In Fixtures
The blob schedule has been added to all fixtures filled for Cancun and Prague on the following PR: #1040
For more details, please refer to the description of the PR.
Explicit error code in engine_newPayloadV4
for Prague
The expected exception for some of the EIP-7685 tests has been updated to match these specification changes:
Full Changelog: https://github.com/ethereum/execution-spec-tests/compare/pectra-devnet-5@v1.3.0...pectra-devnet-5@v1.3.1
pectra-devnet-5@v1.3.0
Fourth EEST pre-release for Pectra Devnet-5.
EELS implementation: ethereum/execution-specs@ccb249c from devnets/prague/5.
Execution Layer EIP List for pectra-devnet-5
The list below links the specific commit versions of the EIPs included in devnet-5 and in this release:
- EIP-2537: Precompile for BLS12-381 curve operations
- EIP-2935: Save historical block hashes in state
- EIP-6110: Supply validator deposits on chain
- EIP-7002: Execution layer triggerable withdrawals
- EIP-7251: Increase the MAX_EFFECTIVE_BALANCE
- EIP-7623: Increase calldata cost
- EIP-7685: General purpose execution layer requests
- EIP-7691: Blob throughput increase
- EIP-7702: Set EOA account code for one transaction
- EIP-7840: Add blob schedule to EL config files
Breaking Changes
Transaction Tests
New test format is included in this release called Transaction Tests.
The fixtures of this type are included in folder ./fixtures/transaction_tests/
.
Blob Schedule In Fixtures
The blob schedule has been added to all fixtures filled for Cancun and Prague on the following PR: #1040
For more details, please refer to the description of the PR.
Explicit error code in engine_newPayloadV4
for Prague
The expected exception for some of the EIP-7685 tests has been updated to match these specification changes:
Full Changelog: https://github.com/ethereum/execution-spec-tests/compare/pectra-devnet-5@v1.2.0...pectra-devnet-5@v1.3.0
pectra-devnet-5@v1.2.0
Third EEST pre-release for Pectra Devnet-5.
EELS implementation: ethereum/execution-specs@37203e6f from devnets/prague/5.
Unmerged execution-spec-tests PRs
This release was built on 2587fbb from #1071, which additionally requires #1068 (both unmerged as of this release).
Execution Layer EIP List for pectra-devnet-5
The list below links the specific commit versions of the EIPs included in devnet-5 and in this release:
- EIP-2537: Precompile for BLS12-381 curve operations
- EIP-2935: Save historical block hashes in state, includes: ethereum/EIPs#9144
- EIP-6110: Supply validator deposits on chain
- EIP-7002: Execution layer triggerable withdrawals
- EIP-7251: Increase the MAX_EFFECTIVE_BALANCE
- EIP-7623: Increase calldata cost, includes: ethereum/EIPs#9227
- EIP-7685: General purpose execution layer requests
- EIP-7691: Blob throughput increase
- EIP-7702: Set EOA account code for one transaction
Breaking Changes
Transaction Tests
New test format is included in this release called Transaction Tests.
The fixtures of this type are included in folder ./fixtures/transaction_tests/
.
Full Changelog: https://github.com/ethereum/execution-spec-tests/compare/pectra-devnet-5@v1.1.0...pectra-devnet-5@v1.2.0