Show initialized storage values immediately after deploy - #2
Merged
Conversation
Constructor writes (e.g. `uint256 x = 42;`) were completely invisible after "Deploy locally" — deploy never captured a trace, so the only place a value could appear was after an explicit call. The honest fix: the constructor is an execution like any other. Deploy now captures its trace exactly like a call (captureTrace: true), runs it through the same resolveAccesses pipeline (depth-0 resolvable steps, so inherited-base-constructor writes resolve correctly too — they run in the same top-level frame, not a nested CALL), and Runtime storage shows the result labeled "from the constructor". No source parsing, no heuristics — purely what the constructor measurably wrote. A zero-valued initializer needs no SSTORE (storage is already zero) and honestly shows nothing. Also: a redeploy now unconditionally clears the previous trace before running, so a constructor with no writes doesn't leave a stale trace from an earlier deployment on screen. CHANGELOG: adds the 1.1.0 entry for this plus the already-shipped post-launch UX pass (Variant B cockpit workbench, live storage strip, design-sync-v2 grid, reserved-hue review fixes) that had landed on master without a version bump. Closes: slotscope-p1t Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
What
Constructor writes (e.g.
uint256 x = 42;) were completely invisible after "Deploy locally" — deploy never captured a trace, so the only way to see an initialized value was to make an explicit call first.Fix
The constructor is an execution like any other.
handleDeploynow requestscaptureTrace: trueexactly likehandleCalldoes, and the result runs through the identicalresolveAccessespipeline (depth-0 resolvable steps — inherited base-constructor writes run in the same top-level frame, not a nestedCALL, so they resolve correctly too).Runtime storagenow shows the constructor's writes labeled "from the constructor" immediately after a successful deploy, with real resolved labels and decoded byte values — no source parsing, no heuristics, purely what the constructor measurably wrote. A zero-valued initializer needs noSSTORE(storage is already zero by default) and honestly shows nothing.Also fixed: a redeploy now unconditionally clears the previous trace before running, so a constructor with no writes of its own doesn't leave a stale trace from an earlier deployment lingering on screen.
Changelog
Added the
1.1.0entry — this feature plus the already-merged post-launch UX pass (Variant B cockpit workbench, live storage strip, design-sync-v2 grid, reserved-hue review fixes) that had landed onmasterwithout a version bump.Verification
uint256, a non-zerobool, and an untouched (zero)uint256; asserts the first two appear in Runtime storage with correct decoded values and the zero one does not; also checks the Trace tab labels itselfDEPLOY · constructor.🤖 Generated with Claude Code