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

Update EIP-7002: convert to system contract #8228

Merged
merged 7 commits into from
Mar 25, 2024

Conversation

lightclient
Copy link
Member

First stab at converting 7002 to a system contract. A few notable changes:

  • Instead of directly reading storage to compute the exits in the block, this has be combined in the system call to the contract. The exits are returned as normal return data. They should be packed in 68 byte chunks.
  • The contract now allows for callers to read the current excess_exits count by calling the contract with no calldata.
  • The contract does not return an over payment of the fee. Instead, callers should use the aforementioned getter to compute the exact fee before calling the contract.

The bytecode is created from the following repo: https://github.com/lightclient/7002asm

@github-actions github-actions bot added c-update Modifies an existing proposal s-draft This EIP is a Draft t-core labels Feb 16, 2024
@eth-bot
Copy link
Collaborator

eth-bot commented Feb 16, 2024

✅ All reviewers have approved.

@eth-bot eth-bot added the a-review Waiting on author to review label Feb 16, 2024
@eth-bot eth-bot changed the title 7002: convert to system contract Update EIP-7002: convert to system contract Feb 16, 2024
@github-actions github-actions bot added the w-ci Waiting on CI to pass label Feb 16, 2024
EIPS/eip-7002.md Outdated Show resolved Hide resolved
EIPS/eip-7002.md Outdated
push1 0x01
add
push0
calldataloa
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
calldataloa
calldataload

EIPS/eip-7002.md Outdated Show resolved Hide resolved
EIPS/eip-7002.md Outdated Show resolved Hide resolved
EIPS/eip-7002.md Outdated Show resolved Hide resolved
EIPS/eip-7002.md Outdated Show resolved Hide resolved
@mkalinin
Copy link
Contributor

EXCESS_RETURN_GAS_STIPEND should be removed as well as no longer used

@lightclient
Copy link
Member Author

@mkalinin updated based on your review, PTAL.

Copy link

The commit 4284de0 (as a parent of 3408475) contains errors.
Please inspect the Run Summary for details.

@github-actions github-actions bot removed the w-ci Waiting on CI to pass label Mar 20, 2024
@eth-bot eth-bot enabled auto-merge (squash) March 25, 2024 10:48
Copy link
Collaborator

@eth-bot eth-bot left a comment

Choose a reason for hiding this comment

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

All Reviewers Have Approved; Performing Automatic Merge...

@eth-bot eth-bot merged commit 35589d3 into ethereum:master Mar 25, 2024
10 checks passed
@mkalinin
Copy link
Contributor

Awesome work!!

@loga4
Copy link

loga4 commented Apr 4, 2024

Based on the recent changes to the EIP-7002, 2 questions here:

  1. The ability to return unspent gas to the sender has been removed, but the Utilizing CALL block remains https://eips.ethereum.org/EIPS/eip-7002#utilizing-call-to-return-excess-payment. Is this option supposed to appear in the future or did you forget to remove it from the document?

  2. Is it correct - there is no restriction on incoming queue, meaning I can send a exit request of 100/1000 validators for the same price?

(there are no open PRs about 7002, so I tried to find an relevant place to ask these questions)

@lightclient

@lightclient
Copy link
Member Author

You can in general direct questions to https://ethereum-magicians.org/t/eip-7002-execution-layer-triggerable-exits/14195

  1. This is an omission, thank you for letting us know. It shall be removed.
  2. The fee grows exponentially but it updates each block. You can send as many exits as you like for the fee of a certain block. However, the dequeue process only reads a fixed number per block.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a-review Waiting on author to review c-update Modifies an existing proposal s-draft This EIP is a Draft t-core
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants