Skip to content

Implement EIP-7907 #1231

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 2 commits into
base: devnets/osaka/2
Choose a base branch
from

Conversation

gurukamath
Copy link
Collaborator

@gurukamath gurukamath commented May 19, 2025

(closes #1220 )

What was wrong?

EIP-7907 is not implemented on the Osaka branch.

Related to Issue #1220

How was it fixed?

Implement EIP-7907

@gurukamath gurukamath linked an issue May 19, 2025 that may be closed by this pull request
@gurukamath gurukamath changed the base branch from forks/osaka to devnets/osaka/0 May 19, 2025 15:29
@gurukamath
Copy link
Collaborator Author

Tracking a PR that is looking to make small updates to the EIP

@qizhou
Copy link

qizhou commented May 21, 2025

Nice writeup! One missing piece here is the warm/cold code state as explicitly explained in this PR.

@gurukamath
Copy link
Collaborator Author

Nice writeup! One missing piece here is the warm/cold code state as explicitly explained in this PR.

Pushed a commit e2d1c46 that incorporates changes from the following PRs to the specs. Please have a look

Also, the EIP still needs to explicitly clarify how to handle code that is delegated via 7702. In this implementation, I have assumed that the delegated code is treated with the same warm/cold behaviour but it is best to explicitly spec that out.

@gurukamath gurukamath force-pushed the eips/osaka/eip-7907 branch from e2d1c46 to 690b3b4 Compare June 20, 2025 09:47
@gurukamath gurukamath changed the base branch from devnets/osaka/0 to devnets/osaka/2 June 20, 2025 09:48
STACK_DEPTH_LIMIT,
process_create_message,
)

call_data = memory_read_bytes(
evm.memory, memory_start_position, memory_size
)
if len(call_data) > 2 * MAX_CODE_SIZE:
if len(call_data) > MAX_INIT_CODE_SIZE:
raise OutOfGasError

create_message_gas = max_message_call_gas(Uint(evm.gas_left))
Copy link
Contributor

Choose a reason for hiding this comment

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

L107: wondering if we should add evm.message.warm_code_addresses.add(contract_address) to account for CREATE* invocations

@@ -86,5 +86,6 @@ def prepare_message(
accessed_addresses=accessed_addresses,
Copy link
Contributor

Choose a reason for hiding this comment

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

L71: wondering if we should add warm_code_addresses.add(current_target) to account for CREATE* addresses and tx.recipient given its considered warm automatically (?)

@gurukamath gurukamath added this to the Osaka Devnet 2 milestone Jun 25, 2025
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.

Implement EIP-7907
3 participants