Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(levm, l1): integrate levm into ethereum_rust #904

Closed
wants to merge 70 commits into from

Conversation

juanimedone
Copy link
Contributor

Motivation

Description

Closes #814.

@juanimedone juanimedone added the levm Lambda EVM implementation label Oct 18, 2024
@juanimedone juanimedone self-assigned this Oct 18, 2024
@juanimedone juanimedone linked an issue Oct 18, 2024 that may be closed by this pull request
@mpaulucci mpaulucci changed the title feat(levm, l1): integration feat(levm, l1): integrate levm into ethereum_rust Oct 24, 2024
@jrchatruc jrchatruc closed this Oct 31, 2024
github-merge-queue bot pushed a commit that referenced this pull request Oct 31, 2024
**Motivation**

<!-- Why does this pull request exist? What are its goals? -->
We currently have an in-memory database that should soon be replaced by
the node's in-disk database. For that purpose we want to allow us to
switch between both kinds of databases. The need to implement this PR's
features and refactor the `Db` arose while working on #904.

**Description**

<!-- A clear and concise general description of the changes this PR
introduces -->
This PR includes:
- Adding a `Cache` to store warm accounts. This removes the need of
having `accessed_accounts` and `accessed_storage_slots` sets in
`Substate` because we know that if they are cached then they are warm.
- Making our `Db` implement the `Database` trait and interact with it
only using methods and not it's attributes, so in the future we can
implement that trait for the actual node's database.
- Fix call opcodes and remove delegate attribute from `CallFrame`.

<!-- Link to issues: Resolves #111, Resolves #222 -->

Part of #814.

---------

Co-authored-by: Juani Medone <[email protected]>
Co-authored-by: maximopalopoli <[email protected]>
Co-authored-by: Javier Chatruc <[email protected]>
h3lio5 pushed a commit to h3lio5/lambda_ethereum_rust that referenced this pull request Oct 31, 2024
**Motivation**

<!-- Why does this pull request exist? What are its goals? -->
We currently have an in-memory database that should soon be replaced by
the node's in-disk database. For that purpose we want to allow us to
switch between both kinds of databases. The need to implement this PR's
features and refactor the `Db` arose while working on lambdaclass#904.

**Description**

<!-- A clear and concise general description of the changes this PR
introduces -->
This PR includes:
- Adding a `Cache` to store warm accounts. This removes the need of
having `accessed_accounts` and `accessed_storage_slots` sets in
`Substate` because we know that if they are cached then they are warm.
- Making our `Db` implement the `Database` trait and interact with it
only using methods and not it's attributes, so in the future we can
implement that trait for the actual node's database.
- Fix call opcodes and remove delegate attribute from `CallFrame`.

<!-- Link to issues: Resolves lambdaclass#111, Resolves lambdaclass#222 -->

Part of lambdaclass#814.

---------

Co-authored-by: Juani Medone <[email protected]>
Co-authored-by: maximopalopoli <[email protected]>
Co-authored-by: Javier Chatruc <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
levm Lambda EVM implementation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Integration with L1
3 participants