Upgrade Semantic Diff
Compare two implementations to surface the storage, selector, and behavior changes an upgrade would introduce — before you ship it.
No EVM contracts in this workspace yet — add one.
What this catches (and what it doesn't)
Upgrade safety checks and known limitations
- Auth-slot heuristic: an
SLOADwhose slot immediate is bound within 8 opcodes of aCALLERis treated as an access-control slot. Misses mapping-keyed auth (e.g._roles[role][account]) where the slot is computed at runtime. - Event topic:
LOG1..=LOG4preceded by aPUSH32revealstopic0. Computed topics are not captured. - Guard density: 30 %+ drop in
REVERTcount is flagged as likelyrequire()removal. Crude but surfaces aggressive simplifications.
Treat results as a triage hint, not a proof. Pair with/upgrade-simulator for storage collision detection and behavior equivalence testing.
Sign in to use the Upgrade Semantic Diff
Use the Sign In button in the navigation bar.
Select Smart Contract
Choose a smart contract from your workspace to open in this view.