Skip to content

feat!: remove ALL_SCOPES#22136

Merged
mverzilli merged 12 commits into
merge-train/fairiesfrom
martin/remove-all-scopes
Mar 30, 2026
Merged

feat!: remove ALL_SCOPES#22136
mverzilli merged 12 commits into
merge-train/fairiesfrom
martin/remove-all-scopes

Conversation

@mverzilli

@mverzilli mverzilli commented Mar 30, 2026

Copy link
Copy Markdown
Contributor

This is a breaking change in the interface between PXE and wallets.

ALL_SCOPES allowed wallets to request PXE to run operations "for all its known accounts". This PR removes that option and forces all layers of the system to explicitly state which addresses to use as scope by providing an array of addresses. An empty array means "no account in scope" (it used to default to "ALL_SCOPES" particularly when executing utilities.

Closes F-488

@mverzilli mverzilli changed the base branch from next to merge-train/fairies March 30, 2026 11:11
@mverzilli mverzilli changed the title feat! remove ALL_SCOPES feat!: remove ALL_SCOPES Mar 30, 2026
@mverzilli mverzilli requested review from benesjan and removed request for benesjan March 30, 2026 14:41
@mverzilli mverzilli requested review from Thunkar and benesjan March 30, 2026 15:24
@mverzilli mverzilli merged commit 8aad549 into merge-train/fairies Mar 30, 2026
11 checks passed
@mverzilli mverzilli deleted the martin/remove-all-scopes branch March 30, 2026 15:32
@mverzilli mverzilli removed the request for review from benesjan March 30, 2026 15:32
@AztecBot

Copy link
Copy Markdown
Collaborator

❌ Failed to cherry-pick to v4-next due to conflicts. (🤖) View backport run.

AztecBot pushed a commit that referenced this pull request Mar 30, 2026
This is a breaking change in the interface between PXE and wallets. 

ALL_SCOPES allowed wallets to request PXE to run operations "for all its
known accounts". This PR removes that option and forces all layers of
the system to explicitly state which addresses to use as scope by
providing an array of addresses. An empty array now means "no account in
scope" (it used to default to "ALL_SCOPES" particularly when executing
utilities).
mverzilli added a commit that referenced this pull request Mar 30, 2026
## Summary

Backport of #22136
to v4-next, stacked on
#22157 (backport of
#22113 scoped capsules).

Removes the `ALL_SCOPES` option and `AccessScopes` type, forcing all
callers to explicitly specify which addresses are in scope via
`AztecAddress[]`. This is a breaking change in the PXE/wallet interface.

## Stacking

This PR is stacked on `claudebox/backport-22113-scoped-capsules`
(#22157) which introduces CapsuleService. With that base in place, the
cherry-pick applies cleanly with no conflicts.
AztecBot added a commit that referenced this pull request Mar 30, 2026
PR #22136 replaced ALL_SCOPES with keyStore.getAccounts() in the TXE's
CapsuleService construction. This broke capsule unit tests that use
arbitrary scope addresses (e.g. 0xface) since no accounts are registered
in those tests, resulting in an empty allowed scopes list.

Add CapsuleService.unrestricted() factory method and use it in TXE to
restore the pre-#22136 behavior where test environments allow all scopes.
benesjan added a commit that referenced this pull request Mar 31, 2026
The removal of ALL_SCOPES (#22136) broke CapsuleArray tests because they
used hardcoded scope addresses (0xface, 0xaaa, 0xbbb) that were not
registered in the keystore. Replace them with real accounts created via
create_light_account(), which registers them as allowed scopes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
github-merge-queue Bot pushed a commit that referenced this pull request Apr 1, 2026
BEGIN_COMMIT_OVERRIDE
feat!: remove ALL_SCOPES (#22136)
chore: syncing oracle versions (#22131)
fix(aztec-nr): use registered accounts as capsule test scopes (#22171)
chore: reverting accidentally merged AI slop (#22175)
feat: move event size check from declaration to private emission
(#22168)
fix: prevent oracle failure on tag computation for invalid recipient
(#22163)
feat: disable noir test cache on merge-train/fairies (#22206)
END_COMMIT_OVERRIDE
AztecBot added a commit that referenced this pull request Apr 1, 2026
The test used NO_FROM without additionalScopes, resulting in empty scopes.
Since PR #22136 removed ALL_SCOPES, empty scopes means no account keys
are accessible during simulation. DeployAccountMethod.send() auto-injects
the contract address via injectContractAddressIntoScopes, but proveInteraction
bypasses that path. Adding accountManager.address to additionalScopes fixes
the key validation error.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants