fix(pxe): only skip sync for stub overrides, not on-chain class overrides#23016
Closed
dbanks12 wants to merge 1 commit into
Closed
fix(pxe): only skip sync for stub overrides, not on-chain class overrides#23016dbanks12 wants to merge 1 commit into
dbanks12 wants to merge 1 commit into
Conversation
Contributor
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. |
This was referenced May 7, 2026
c6a9a2a to
dcc944a
Compare
028f86a to
ff6e112
Compare
dcc944a to
9aa157b
Compare
This was referenced May 7, 2026
9aa157b to
713e7c5
Compare
380d41b to
f9579f0
Compare
713e7c5 to
b5280d2
Compare
f9579f0 to
e8ea379
Compare
b5280d2 to
14c427f
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.

Summary
PXE skips sync for any contract that appears in
SimulationOverrides.contracts. The skip was added to defend against a hostile no-opsync_statein account stubs (simulated_*_account_contract); without it, sync would trigger theirassert(false). The blanket skip is too coarse: it also blocks pre-existing notes from being loaded for real contract overrides (e.g.fastForwardContractUpdate), causing private calls that read prior state to fail with "Failed to get a note".Fix
Narrow the skip to overrides whose class id isn't published on chain. On-chain classes have full artifacts and need sync (upgrade-sim flow). Off-chain-only classes (account stubs registered via
pxe.registerContractClass) keep being skipped — the existing behavior they need.Test plan
e2e_kernelless_simulation(account stub overrides): 7/7 passe2e_contract_updates(upgrade-sim viafastForwardContractUpdate, including the new private-dispatch test upstack): 6/6 pass