Skip to content

refactor(test-client-clis): Refactor TransitionTool#1902

Closed
marioevz wants to merge 5 commits intoethereum:forks/amsterdamfrom
marioevz:refactor-t8n
Closed

refactor(test-client-clis): Refactor TransitionTool#1902
marioevz wants to merge 5 commits intoethereum:forks/amsterdamfrom
marioevz:refactor-t8n

Conversation

@marioevz
Copy link
Copy Markdown
Member

🗒️ Description

Refactors TransitionTool class into:

  • TransitionToolServer: Make requests via http to long-running process that is a server.
  • TransitionToolStream: Make request to a one-shot process that receives inputs via stdin
  • TransitionToolFileSystem: Make a request to a one-shot process that receives inputs via files in the file system

Also makes a small refactor in LazyAlloc to create an abstract method that can be called to write the raw data into a file.

🔗 Related Issues or PRs

N/A.

✅ Checklist

  • All: Ran fast tox checks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:
    uvx tox -e static
  • All: PR title adheres to the repo standard - it will be used as the squash commit message and should start type(scope):.
  • All: Considered adding an entry to CHANGELOG.md.
  • All: Considered updating the online docs in the ./docs/ directory.
  • All: Set appropriate labels for the changes (only maintainers can apply labels).
  • Tests: Ran mkdocs serve locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.
  • Tests: For PRs implementing a missed test case, update the post-mortem document to add an entry the list.
  • Ported Tests: All converted JSON/YML tests from ethereum/tests or tests/static have been assigned @ported_from marker.

Cute Animal Picture

Put a link to a cute animal picture inside the parenthesis-->

@marioevz marioevz added C-refactor Category: refactor A-test-client-clis Area: execution_testing.client_clis P-low labels Dec 11, 2025
@marioevz
Copy link
Copy Markdown
Member Author

Small refactoring PR between perf reviews to help me relax :P

@codecov
Copy link
Copy Markdown

codecov Bot commented Dec 11, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.87%. Comparing base (cc82819) to head (92e8450).

Additional details and impacted files
@@             Coverage Diff              @@
##           forks/osaka    #1902   +/-   ##
============================================
  Coverage        83.87%   83.87%           
============================================
  Files              402      402           
  Lines            25101    25101           
  Branches          2285     2285           
============================================
  Hits             21053    21053           
  Misses            3609     3609           
  Partials           439      439           
Flag Coverage Δ
unittests 83.87% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@SamWilsn SamWilsn changed the base branch from forks/osaka to forks/amsterdam December 17, 2025 15:43
@marioevz marioevz requested a review from gurukamath January 7, 2026 14:36
Copy link
Copy Markdown
Contributor

@gurukamath gurukamath left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One additional enhancement that could be worth making is in the documentation of the other clients (erigon, ethrex and reth) of why they do not have a TransitionTool.

Also why Nethermind uses a different tool.

Just for someone looking to understand that context.

self.besu_trace_dir.cleanup()

def evaluate(
def _evaluate(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The BesuTransitionTool is the only subclass of TransitionToolServer and it completely overrides the _evaluate method. So perhaps keeping the base class _evaluate method in abstract makes sense? Or do we have a general purpose use for it in mind for the future?


- a `blockchain_test` which can be tested via the Hive `eest/consume-rlp` simulator (or directly via a dedicated client interface).
- a `blockchain_engine_test` (for post-merge forks) which can be tested via the Hive `eest/consume-engine` simulator.
- a `blockchain_test` which can be tested via the Hive `eels/consume-rlp` simulator (or directly via a dedicated client interface).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to use eels of should we just start using execution-specs going forward?

@marioevz
Copy link
Copy Markdown
Member Author

Too outdated, and since it does not introduce new functionality will close for now.

@marioevz marioevz closed this Feb 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-test-client-clis Area: execution_testing.client_clis C-refactor Category: refactor P-low

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants