fix(anvil): coerce decoder hardfork to executed network family - #16454
Merged
mattsse merged 1 commit intoAug 29, 2026
Merged
Conversation
mattsse
requested review from
0xrusowsky,
DaniPopes,
figtracer,
grandizzy,
mablr and
stevencartavia
as code owners
August 29, 2026 00:27
Contributor
✅ Changelog foundThe deterministic check will validate the changed entry. |
stevencartavia
approved these changes
Aug 29, 2026
mattsse
commented
Aug 29, 2026
A cross-namespace hardfork override on a tempo or monad node (e.g. --hardfork prague with an inferred fork network) left the trace decoder without a network hardfork while execution still coerced via the lossy From conversions, dropping monad metadata and widening the tempo precompile set. The decoder now derives its hardfork through the same coercion execution applies.
mattsse
force-pushed
the
mattsse/anvil-decoder-hardfork-coercion
branch
from
August 29, 2026 08:32
5a8805e to
38184bf
Compare
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.
Fixes a corner introduced by #16417 (stacked on that branch; will be rebased onto master once it merges). anvil accepts a cross-namespace hardfork override when the network is only inferred later from the fork endpoint (
anvil --hardfork prague --fork-url <tempo/monad rpc>), and execution and fees coerce that override into the network family via the lossyFromconversions. The unified decoder received the raw override instead, whose strictfrom_foundry_hardforkextraction yieldsNone: monad address metadata was no longer registered and tempo precompile classification fell back to the full address list, so trace decoding disagreed with what the node executes.The decoder now derives its hardfork through the same coercion execution applies, at build time and in the runtime refresh, restoring the pre-#16417 decoder behavior for this configuration. The added regression test fails without the coercion.
AI-assisted.