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