Skip to content

Conversation

@fselmo
Copy link
Contributor

@fselmo fselmo commented Apr 22, 2025

What was wrong?

  • It would be a welcomed feature to be able to communicate with EELS as the backend. In the future, if a thin server can be wrapped around eth-tester, making calls to EELS could be used to test EIPs or any call against the official execution layer specifications.

How was it fixed?

  • This PR scrapes together an implementation for talking to EELS. It takes into account all type conversions and is working against the entire web3.py test suite. What it provably isn't is an efficient implementation. There are likely performance improvements that can be made on top of this initial implementation, as is evident with the core tests in web3.py taking ~30min to complete with the EELS backend.
  • Seeing that it's passing web3.py tests, and this is going into a feature branch, I would advocate for adding tests in a separate PR but could be convinced otherwise.

@fselmo fselmo marked this pull request as ready for review April 22, 2025 15:54
Copy link
Contributor

@pacrob pacrob left a comment

Choose a reason for hiding this comment

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

merge it!

fselmo added 7 commits April 22, 2025 17:09
…mber.

- Fix time travel / snapshot logic; update access list logic
- Refactor the block_number logic:
  - Use "pending" (current state) as the default state.
  - Use a context manager to handle state changes for the EELS backend.
  - Refactor the snapshotting logic to use a new class that keeps track
    of not only the state but also the chain data.

- Resolve some remaining issues found with web3.py integration testing
- Refactor reserved word filter->filter_; add blocknum logic to state methods
- Use newly-released eels pypi release as dep
- Last changes to account for EELS types errors in web3.py tests
- Fix issues with EELS types by forcing int when snapshotting
- bugfix: fix wrong types for get_storage_at
- Reconcile types with EELS; serialize as ints post-validation
@fselmo fselmo merged commit f8a6387 into ethereum:next Apr 22, 2025
7 of 29 checks passed
@fselmo fselmo deleted the eels-backend branch April 22, 2025 23:10
@fselmo fselmo restored the eels-backend branch April 22, 2025 23:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants