fix(anvil): prepare local block replays - #15899
Merged
mablr merged 6 commits intoJul 30, 2026
Merged
Conversation
haythemsellami
requested review from
0xrusowsky,
DaniPopes,
figtracer,
grandizzy,
mablr,
mattsse and
stevencartavia
as code owners
July 27, 2026 07:26
mablr
reviewed
Jul 27, 2026
Contributor
✅ Changelog foundThe deterministic check will validate the changed entry. |
Contributor
Author
|
Updated in |
mablr
previously approved these changes
Jul 29, 2026
grandizzy
reviewed
Jul 29, 2026
grandizzy
left a comment
Collaborator
There was a problem hiding this comment.
Looks good, please check finding inline
Parity and opcode-gas block replay started from the parent state but skipped protocol pre-execution. Prepare both replay databases through the network-aware block executor so EIP-2935 and future pre-execution changes match mining semantics.
Make block executor setup fallible and propagate preparation failures through local replay APIs instead of panicking or treating them as missing state. Cover parity block and transaction replay plus opcode-gas replay through JSON-RPC.
Route post-genesis empty blocks through block replay preparation so protocol pre-execution failures are returned by trace_blockOpcodeGas. Preserve the genesis fast path because genesis has no parent state to replay.
haythemsellami
force-pushed
the
agent/fix-anvil-replay-preexecution
branch
from
July 29, 2026 13:28
0862d17 to
ceca9a0
Compare
mablr
approved these changes
Jul 29, 2026
stevencartavia
approved these changes
Jul 30, 2026
mablr
enabled auto-merge (squash)
July 30, 2026 07:32
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Local parity block replay and opcode-gas replay start from the parent state but currently skip the protocol pre-execution performed during mining. This change prepares both replay databases through the network-aware block executor before applying transactions, keeping EIP-2935 and future pre-execution behavior aligned with mined execution. Executor preparation is fallible so real preparation and execution failures propagate as JSON-RPC errors instead of panicking or being treated as missing state.
The regressions cover the EIP-2935 parent-hash state change and deterministic pre-execution failures across block replay, transaction replay, and opcode-gas replay. Closes #15894.