ethereum / ethereum/execution-specs

Enable definition of client exception mappers via "external" file

Open
#2,631 1 comment 1 reaction 0 assignees View on GitHub
A-test-client-clis A-test-consume A-test-exceptions C-feat stale
Dominant language
Python
Stars
1.2k
Forks
505
Avg merge
2d 14h
Merged PRs (30d)
116

Description

Currently, client exception verification depends on exception mappers defined as Python source within execution-specs, for example:
https://github.com/ethereum/execution-specs/blob/4bf8bbe745972edac5398ac32adacc1d007fa827/packages/testing/src/execution_testing/client_clis/clis/ethrex.py#L10-L19

This creates friction for client teams and STEEL as any change in exception message strings requires a PR to execution-specs. This friction could be eliminated if we allow clients to define exception mappers in their own repo (as one of toml/yaml/json) and enable import of these files to populate our exception mappers.

Additionally,m #2622 enables exception mapping for state, blockchain and blockchain engine test fixtures. Imo, now is the time to move the primary test approach from hive (system) to module testing. In which case, clients can run these tests on every push in CI. This means, if we keep the status quo, client teams would need to PR to execution-specs in order to fix exceptions, which is clearly unacceptable. Allowing clients to enable their own exception mappers would greatly simplify this process.

h/t @edg-l who originally made this suggestion!

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.