Skip to content

evm: execute with the prague hardfork so current solc output runs - #314

Merged
gnidan merged 1 commit into
mainfrom
evm-hardfork
Oct 3, 2026
Merged

gnidan merged 1 commit into
mainfrom
evm-hardfork

Conversation

@gnidan

@gnidan gnidan commented Oct 2, 2026

Copy link
Copy Markdown
Member

@ethdebug/evm configured its EVM with the Shanghai hardfork, so bytecode from current solc failed with an invalid opcode as soon as it hit MCOPY (0x5e). Transient storage (TLOAD/TSTORE) failed the same way. This surfaced when running real solc ethdebug output through the executor.

The executor now uses Prague, named explicitly via Hardfork.Prague so behavior is reproducible and does not float with a "latest" default. Prague is the default evmVersion of recent solc releases, and the installed @ethereumjs 10.1 supports it. It is a superset of Cancun, so Cancun output runs too. The package takes no options today, so I changed the default only and did not add a configuration surface.

Adds regression tests that run hand-assembled MCOPY and TSTORE/TLOAD snippets; both fail on the Shanghai setting. The existing suites, including bugc's, pass unchanged. Adds an entry to the package changelog.

The executor used shanghai, which rejects MCOPY, TLOAD and TSTORE as
invalid opcodes. Current solc emits them by default.
@github-actions

github-actions Bot commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-10-03 02:17 UTC

@gnidan
gnidan merged commit febf72a into main Oct 3, 2026
7 checks passed
@gnidan
gnidan deleted the evm-hardfork branch October 3, 2026 02:14
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.

1 participant