-
Notifications
You must be signed in to change notification settings - Fork 186
Description
Command consume direct should support EOF fixtures, since tools like evmone-eofparse allow consumption of EOF containers.
The command technically already supports EOF fixtures with the merging of #935, but currently there is no fixture-consumer class defined to process EOF fixtures.
The only thing required is to create a FixtureConsumerTool subclass that contains the logic to process the fixtures using the evmone-eofparse external tool, like the one defined for Geth's evm tool here:
execution-spec-tests/src/ethereum_clis/clis/geth.py
Lines 246 to 251 in 2a1e031
| class GethFixtureConsumer( | |
| GethEvm, | |
| FixtureConsumerTool, | |
| fixture_formats=[StateFixture, BlockchainFixture], | |
| ): | |
| """Geth's implementation of the fixture consumer.""" |
During consume direct execution, this new class would receive the EOF fixture path in this endpoint:
execution-spec-tests/src/ethereum_clis/clis/geth.py
Lines 368 to 374 in 2a1e031
| def consume_fixture( | |
| self, | |
| fixture_format: FixtureFormat, | |
| fixture_path: Path, | |
| fixture_name: Optional[str] = None, | |
| debug_output_path: Optional[Path] = None, | |
| ): |
The main difference between Geth's class and evmone's class is that evmone-eofparse is a different binary than the one used in the transition tool (evmnone-t8n).
This comment describes partially what this entails:
https://github.com/ethereum/execution-spec-tests/pull/935/files#r1907541619
Tasks
- Besu WIP @danceratopz
- Erigon (check support)
- EthereumJS (check support)
- Evmone
- Geth - feat(consume): allow geth to validate eof test vectors via direct (#1232) #1246
- Nethermind - feat(clis,consume): add nethermind support to
consume direct#1250 - Reth (check support)