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(l2): withdrawal handling #877

Merged
merged 50 commits into from
Oct 28, 2024
Merged

feat(l2): withdrawal handling #877

merged 50 commits into from
Oct 28, 2024

Conversation

ManuelBilbao
Copy link
Contributor

@ManuelBilbao ManuelBilbao commented Oct 16, 2024

Motivation

Withdrawals are an essential requirement for L2 networks.

Description

We introduce a new EIP-2718 transaction type called PrivilegedL2Transaction used to manage deposits and withdraws. Handlers were set to the VM so when this transactions get executed, it runs custom logic like minting or burning ETH.
Different CLI commands were also introduced to easily create and send this transactions.

Closes #816
Closes #839

ManuelBilbao and others added 8 commits October 22, 2024 10:07
**Motivation**

<!-- Why does this pull request exist? What are its goals? -->

To complete the withdrawal flow

**Description**

- [Add openzeppelin-contracts dep
installation](a23066b)
- [Implement withdrawals in
CommonBridge](165d1e8)
- [Update
ICommonBridge](57c3aca)
- [Implement commit method in
OnChainProposer](1901220)
- [Update IOnChainProposer with new commit
def](58010b9)
- [Update deploy
script](73d2b8f)
**Motivation**

<!-- Why does this pull request exist? What are its goals? -->

The proposer must be adapted to the new withdraw flow. This is just
updating the input for the call to the `commit` method of the
`OnChainProposer` when the proposer commits to a new block execution.

**Description**

<!-- A clear and concise general description of the changes this PR
introduces -->

- [Updates input for
commit](7766201)
- [Makes state_trie
public](3cb4ada)
**Motivation**

<!-- Why does this pull request exist? What are its goals? -->
We need withdrawal logs merkle root to send to the L1 contract

**Description**

<!-- A clear and concise general description of the changes this PR
introduces -->

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

---------

Co-authored-by: ilitteri <[email protected]>
ManuelBilbao and others added 5 commits October 24, 2024 09:42
**Motivation**

<!-- Why does this pull request exist? What are its goals? -->
We need a way to get the merkle path of the withdrawals so we can send
them to the L1 contract.

**Description**

<!-- A clear and concise general description of the changes this PR
introduces -->
Add a command to the CLI to get a merkle path from a tx hash

<!-- Link to issues: Resolves #111, Resolves #222 -->
@jrchatruc jrchatruc marked this pull request as ready for review October 28, 2024 13:39
@jrchatruc jrchatruc requested a review from a team as a code owner October 28, 2024 13:39
Copy link
Contributor

@ilitteri ilitteri left a comment

Choose a reason for hiding this comment

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

LGTM

@ilitteri ilitteri added this pull request to the merge queue Oct 28, 2024
Merged via the queue into main with commit 3c874fd Oct 28, 2024
11 checks passed
@ilitteri ilitteri deleted the l2_withdrawal_handling branch October 28, 2024 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

L2: Change contracts version to 0.8.27 or higher L2: Implement wallet withdraw command in the CLI
3 participants