Skip to content

core/vm: implement eof opcodes #30511

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

Closed

Conversation

MariusVanDerWijden
Copy link
Member

@MariusVanDerWijden MariusVanDerWijden commented Sep 26, 2024

based on #30418
rework of #29518

I could not test this properly yet, as the validity of the blockchain tests depend on the prague spec. In order to test this correctly, we need to upstream 6110 and 7002

Unfortunately I couldn't preserve the authorship, I think by using the coauthored tag, people will receive their due credit once this is merged.

Co-authored-by: lightclient [email protected]
Co-authored-by: shemnon [email protected]
Co-authored-by: holiman [email protected]

@holiman
Copy link
Contributor

holiman commented Oct 2, 2024

Merged eof-validation, rebase time :)

@MariusVanDerWijden
Copy link
Member Author

Rebased, looks like I broke some verkle stuff, will fix later


// Validate initcode per EOF rules. If caller is EOF and initcode is legacy, fail.
isInitcodeEOF := hasEOFMagic(codeAndHash.code)
if isInitcodeEOF {
Copy link
Member Author

Choose a reason for hiding this comment

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

We could think about moving this a bit later. Right now we do the heavy things (unmarshalling and validation) before we actually deduct the gas and check for nonce overflow

Copy link
Contributor

Choose a reason for hiding this comment

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

This piece of goes away when EIP-7873 arrives and we remove EIP-7698, so I wouldn't spin too many cycles optimizing it.

@veniger
Copy link

veniger commented Mar 27, 2025

Hey folks, I’m an R&D engineer at Tenderly, and I’ve been following the work on this PR for some time now. We’ve been working on integrating it locally, so we’d really appreciate your input.
As we’re always looking for ways to make smart contract development easier, we’d like to enable smart contract devs to easily develop and test EOF contracts in a dedicated environment.
Do you maybe have a timeline for continuing the work or merging this PR?
My guess is that other tooling providers would also be interested in seeing it merged into master. Similarly, other go-ethereum forks could pull in the changes earlier and start preparing for their Osaka upgrades.
So, any info on this would really help us out, thanks!

@MariusVanDerWijden
Copy link
Member Author

Hey @veniger, I just came back from holiday. I would like to merge this soon, probably after we updated it to devnet-1 spec and the pectra fork has passed

@fjl fjl mentioned this pull request Apr 24, 2025
12 tasks
@jwasinger
Copy link
Contributor

🫡

@jwasinger jwasinger closed this May 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants