Skip to content

Finalize EIP-7702 implementation #2206

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

Open
wants to merge 5 commits into
base: prague
Choose a base branch
from

Conversation

kclowes
Copy link
Collaborator

@kclowes kclowes commented Mar 19, 2025

What was wrong?

  • EIP-7702 implementation needs to be finalized

How was it fixed?

  • Finalize EIP-7702 implementation
  • Pull in EEST stable tests from v4.2.0
  • Fix EIP-7623 logic + track data floor gas separately from computation gas meter

Todo:

Cute Animal Picture

Screenshot 2025-04-18 at 16 31 14

- Some precompiles passing
- Add chainId check
- fix error msg typo
- Put back process_authorizations, use correct ecrecover
- Old Call tests passing
- Tests for extcodesize, extcodehash, and extcodecopy passing
- StaticCall tests down to 10 failing, some cleanup
@fselmo fselmo force-pushed the eip7702-fixes branch 4 times, most recently from 0e87f4d to 9a35d57 Compare April 17, 2025 17:22
fselmo added 2 commits April 17, 2025 16:26
- (DRY) Refactor ``BaseCall`` logic to accommodate some smaller
  changes to call opcodes so we don't have to re-write a bunch of
  code for Prague, only overwrite certain methods.

 - Keep static call logic unchanged.

 - Track message refunds separately. Even if computation fails,
   apply message refunds.

 - Fix some logic to match EIP.

 Along the way:

 - Logic for ``secp256k1n/2`` seems to have been wrong in py-evm.
   Fixed that check and added it to the auth validation.
- Do not pull data floor diff from refunds, nor attempt to use it
  from the computation gas itself. This should be calculated after
  refunds and separate from the computation gas.

- Add an extra ``data_floor_gas`` property to the computation that is
  calculated by the transaction executor. This value can be used to
  calculate the total gas used by the transaction at any point in the
  processing of the computation. This is useful when issueing refunds
  and when making the transaction receipt.
@fselmo fselmo marked this pull request as ready for review April 18, 2025 22:28
@fselmo fselmo changed the title Eip7702 fixes Finalize EIP-7702 implementation Apr 18, 2025
Copy link
Collaborator

@fselmo fselmo left a comment

Choose a reason for hiding this comment

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

@kclowes I'm good with the state of this if we want to merge it into prague. Tests are passing but we should look at any refactors we may want.

Then we can do some final reviews before merging prague into main.

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