fix: read runtime sourcemap strings from deployed bytecode#366
Merged
zerosnacks merged 1 commit intofoundry-rs:mainfrom Apr 9, 2026
Merged
Conversation
- switch get_source_map_deployed_str to read the deployed bytecode sourceMap instead of the creation bytecode sourceMap - add a regression test that gives creation and runtime bytecode different sourceMap strings and asserts the runtime accessor returns the deployed value
mattsse
approved these changes
Apr 9, 2026
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.
Summary
get_source_map_deployed_str()currently reads the creation bytecode sourcemap instead of the deployed/runtime bytecode sourcemap.get_source_map_deployed()already usesget_deployed_bytecode(), but the string accessor still usesget_bytecode(). This makes the two runtime accessors disagree and causes downstream consumers that persist the string sourcemap to store the creation map in the runtime slot.Changes
get_source_map_deployed_str()to read fromget_deployed_bytecode()Why this matters
Downstream tools can use the parsed runtime sourcemap accessor and get the correct result, while the string accessor currently returns the creation sourcemap instead. This is especially visible when consumers persist the raw runtime sourcemap string and later use it for runtime source lookups.
Testing
cargo test -p foundry-compilers deployed_source_map_string_uses_runtime_bytecodecargo check -p foundry-compilers