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

notes: changes for 7702 #485

Open
gballet opened this issue Sep 5, 2024 · 0 comments
Open

notes: changes for 7702 #485

gballet opened this issue Sep 5, 2024 · 0 comments

Comments

@gballet
Copy link
Owner

gballet commented Sep 5, 2024

I had a quick discussion with Matt, in order to find out what we need to pay attention to when 7702 is deployed.

  • Before EVM is instantiated, i.e. upon tx receipt, the authorization list and sender are unpacked from the tx. This adds the following witness entries:

    • the sender's account (the From field of the transaction), to check for the balance (presumably, only the basic data leaf);
    • each entry in the authorization list will see its nonce checked, and the first chunk is read (to check that this is the right type of account) and written to (for a new delegation address).
  • Execution of the contract at address To in the transaction is executed normally, so entries are added like they normally would in the context of a regular execution.

  • If, during that execution, one of the addresses in the access list does a code-touching operation on a contract that starts with 0xef01, then all operations are forwarded to the delegated address (i.e. EXTCODESIZE will be that of the delegated address, CALL will call the code of the delegated address, etc...) whereas account operations (e.g. BALANCE) will touch the address of the delegating account. So care must be taken, to make sure that the proper values are added to the witness.

@gballet gballet changed the title [wip] notes: changes for 7702 notes: changes for 7702 Sep 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant