Skip to content

feat(wallet)!: wire PermissionController and SubjectMetadataController into default initialization - #9300

Closed
sirtimid wants to merge 6 commits into
mainfrom
sirtimid/wire-permission-and-subject-metadata-controllers
Closed

feat(wallet)!: wire PermissionController and SubjectMetadataController into default initialization#9300
sirtimid wants to merge 6 commits into
mainfrom
sirtimid/wire-permission-and-subject-metadata-controllers

Conversation

@sirtimid

@sirtimidsirtimid commented Jun 29, 2026

Copy link
Copy Markdown
Member

Explanation

@metamask/wallet is the shared controller-integration layer adopted by extension, mobile, and other clients. Values that differ between clients are injectable instanceOptions with platform-agnostic defaults rather than hardcoded.

This PR wires PermissionController and SubjectMetadataController (both from @metamask/permission-controller) into the default initialization. They reference each other's messenger actions, so they are wired together as a pair, and PermissionController also consumes the already-wired ApprovalController request actions.

The permission/caveat specifications and the unrestricted-method list vary substantially between clients (CAIP-25 account permissions, Snaps endowments, different method sets), so they are injected via instanceOptions.permissionController and each defaults to an empty set. subjectCacheLimit defaults to 100, the value both clients use.

Per-environment options

OptionExtensionMobileDefault
permissionController.caveatSpecificationsCAIP-25 + Snaps specsCAIP-25 + Snaps specs{}
permissionController.permissionSpecificationsEVM + Snaps specsEVM + Snaps specs{}
permissionController.unrestrictedMethods103 methods98 methods (70 outside the Snaps codefence)[]
subjectMetadataController.subjectCacheLimit100100100

Construction order

SubjectMetadataController trims persisted metadata in its constructor by calling PermissionController:hasPermissions, so PermissionController must be constructed first. Two options were available: make the dependency explicit in initialize, or make SubjectMetadataController order-agnostic upstream (the approach taken for GasFeeController). The upstream fix is substantially larger here because the trim happens inside the constructor, so this PR relies on order instead: initialize builds defaults in the order instances/index.ts exports them, and now slots an overriding configuration into its default's position so an override cannot break that.

Note this ordering rests on the export order of instances/index.ts, not on a language guarantee — the ESM build sorts namespace keys per spec, but the CommonJS build preserves declaration order. instances/index.ts carries a comment saying so, and initialization.test.ts asserts the two controllers' relative order.

References

Extension:

Mobile:

Jira: N/A

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed, highlighting breaking changes as necessary
  • I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes (follow-up extension + mobile adoption PRs)

Note

High Risk
Touches permission gating and wallet bootstrap with multiple breaking consumer contracts (duplicate controllers, state keys, override ordering). Incorrect construction order or client migration could break dapp permission flows.

Overview
Breaking:@metamask/wallet now builds PermissionController and SubjectMetadataController by default, with messenger wiring to ApprovalController and each other. Clients that already register either controller must drop their own wiring to avoid duplicate messenger actions.

New optional instanceOptions: permissionController (empty specs/methods until injected) and subjectMetadataController.subjectCacheLimit (default 100). Persisted wallet state must include both controller keys when restoring subject metadata.

initialize behavior changes: overrides in initializationConfigurations slot into each default’s position (so PermissionController still runs before SubjectMetadataController), additive configs still run first, and duplicate configuration name values throw. InitializationConfiguration is exported for custom overrides (e.g. Snaps specs needing a wider messenger allowlist).

Supporting updates: @metamask/permission-controller dependency, initialization modules/tests, CODEOWNERS for both instance paths, README dependency graph.

Reviewed by Cursor Bugbot for commit 8eb2c7f. Bugbot is set up for automated code reviews on this repo. Configure here.

sirtimid added a commit that referenced this pull request Jun 29, 2026
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@sirtimid
sirtimid marked this pull request as ready for review June 29, 2026 11:08
@sirtimid
sirtimid requested a review from a team as a code ownerJune 29, 2026 11:08

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 1762832. Configure here.

sirtimid added a commit that referenced this pull request Jun 29, 2026
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@sirtimid
sirtimidforce-pushed the sirtimid/wire-permission-and-subject-metadata-controllers branch from 1762832 to 0b8cac1CompareJune 29, 2026 16:07
@sirtimid

Copy link
Copy Markdown
MemberAuthor

@metamaskbot publish-previews

@github-actions

Copy link
Copy Markdown
Contributor

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@7.5.3-preview-0b8cac1b5
@metamask-previews/accounts-controller@39.0.3-preview-0b8cac1b5
@metamask-previews/address-book-controller@7.1.2-preview-0b8cac1b5
@metamask-previews/ai-controllers@0.7.0-preview-0b8cac1b5
@metamask-previews/analytics-controller@1.2.1-preview-0b8cac1b5
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-0b8cac1b5
@metamask-previews/announcement-controller@8.1.0-preview-0b8cac1b5
@metamask-previews/app-metadata-controller@2.0.1-preview-0b8cac1b5
@metamask-previews/approval-controller@9.0.2-preview-0b8cac1b5
@metamask-previews/assets-controller@9.1.0-preview-0b8cac1b5
@metamask-previews/assets-controllers@109.2.2-preview-0b8cac1b5
@metamask-previews/authenticated-user-storage@2.1.0-preview-0b8cac1b5
@metamask-previews/base-controller@9.1.0-preview-0b8cac1b5
@metamask-previews/base-data-service@0.1.3-preview-0b8cac1b5
@metamask-previews/bitcoin-regtest-up@0.0.0-preview-0b8cac1b5
@metamask-previews/bridge-controller@77.1.0-preview-0b8cac1b5
@metamask-previews/bridge-status-controller@73.1.0-preview-0b8cac1b5
@metamask-previews/build-utils@3.0.4-preview-0b8cac1b5
@metamask-previews/chain-agnostic-permission@1.6.2-preview-0b8cac1b5
@metamask-previews/chomp-api-service@3.1.0-preview-0b8cac1b5
@metamask-previews/claims-controller@0.5.3-preview-0b8cac1b5
@metamask-previews/client-controller@1.0.1-preview-0b8cac1b5
@metamask-previews/compliance-controller@2.1.0-preview-0b8cac1b5
@metamask-previews/composable-controller@12.0.1-preview-0b8cac1b5
@metamask-previews/config-registry-controller@0.4.1-preview-0b8cac1b5
@metamask-previews/connectivity-controller@0.2.0-preview-0b8cac1b5
@metamask-previews/controller-utils@12.3.0-preview-0b8cac1b5
@metamask-previews/core-backend@6.3.3-preview-0b8cac1b5
@metamask-previews/delegation-controller@3.0.2-preview-0b8cac1b5
@metamask-previews/earn-controller@12.2.1-preview-0b8cac1b5
@metamask-previews/eip-5792-middleware@3.0.4-preview-0b8cac1b5
@metamask-previews/eip-7702-internal-rpc-middleware@0.1.1-preview-0b8cac1b5
@metamask-previews/eip1193-permission-middleware@2.0.1-preview-0b8cac1b5
@metamask-previews/ens-controller@19.1.4-preview-0b8cac1b5
@metamask-previews/eth-block-tracker@15.0.1-preview-0b8cac1b5
@metamask-previews/eth-json-rpc-middleware@23.1.3-preview-0b8cac1b5
@metamask-previews/eth-json-rpc-provider@6.0.1-preview-0b8cac1b5
@metamask-previews/foundryup@1.0.1-preview-0b8cac1b5
@metamask-previews/gas-fee-controller@26.2.3-preview-0b8cac1b5
@metamask-previews/gator-permissions-controller@4.2.1-preview-0b8cac1b5
@metamask-previews/geolocation-controller@0.1.3-preview-0b8cac1b5
@metamask-previews/java-tron-up@0.0.0-preview-0b8cac1b5
@metamask-previews/json-rpc-engine@10.5.0-preview-0b8cac1b5
@metamask-previews/json-rpc-middleware-stream@8.0.8-preview-0b8cac1b5
@metamask-previews/keyring-controller@27.1.0-preview-0b8cac1b5
@metamask-previews/local-node-utils@0.0.0-preview-0b8cac1b5
@metamask-previews/logging-controller@8.0.2-preview-0b8cac1b5
@metamask-previews/message-manager@14.1.2-preview-0b8cac1b5
@metamask-previews/messenger@1.2.0-preview-0b8cac1b5
@metamask-previews/messenger-cli@0.2.0-preview-0b8cac1b5
@metamask-previews/money-account-balance-service@2.1.1-preview-0b8cac1b5
@metamask-previews/money-account-controller@0.3.3-preview-0b8cac1b5
@metamask-previews/money-account-upgrade-controller@2.1.0-preview-0b8cac1b5
@metamask-previews/multichain-account-service@11.1.0-preview-0b8cac1b5
@metamask-previews/multichain-api-middleware@3.1.5-preview-0b8cac1b5
@metamask-previews/multichain-network-controller@3.2.0-preview-0b8cac1b5
@metamask-previews/multichain-transactions-controller@7.1.1-preview-0b8cac1b5
@metamask-previews/name-controller@9.1.2-preview-0b8cac1b5
@metamask-previews/network-controller@33.0.0-preview-0b8cac1b5
@metamask-previews/network-enablement-controller@5.4.0-preview-0b8cac1b5
@metamask-previews/notification-services-controller@24.2.0-preview-0b8cac1b5
@metamask-previews/passkey-controller@2.0.1-preview-0b8cac1b5
@metamask-previews/permission-controller@13.1.1-preview-0b8cac1b5
@metamask-previews/permission-log-controller@5.1.0-preview-0b8cac1b5
@metamask-previews/perps-controller@9.0.0-preview-0b8cac1b5
@metamask-previews/phishing-controller@17.2.0-preview-0b8cac1b5
@metamask-previews/polling-controller@16.0.7-preview-0b8cac1b5
@metamask-previews/preferences-controller@23.1.0-preview-0b8cac1b5
@metamask-previews/profile-metrics-controller@4.0.0-preview-0b8cac1b5
@metamask-previews/profile-sync-controller@28.2.0-preview-0b8cac1b5
@metamask-previews/ramps-controller@15.0.0-preview-0b8cac1b5
@metamask-previews/rate-limit-controller@7.0.1-preview-0b8cac1b5
@metamask-previews/react-data-query@0.2.1-preview-0b8cac1b5
@metamask-previews/remote-feature-flag-controller@4.2.2-preview-0b8cac1b5
@metamask-previews/sample-controllers@5.0.2-preview-0b8cac1b5
@metamask-previews/seedless-onboarding-controller@10.0.3-preview-0b8cac1b5
@metamask-previews/selected-network-controller@26.1.4-preview-0b8cac1b5
@metamask-previews/shield-controller@5.1.2-preview-0b8cac1b5
@metamask-previews/signature-controller@39.2.6-preview-0b8cac1b5
@metamask-previews/smart-transactions-controller@24.2.3-preview-0b8cac1b5
@metamask-previews/snap-account-service@1.0.0-preview-0b8cac1b5
@metamask-previews/social-controllers@2.3.1-preview-0b8cac1b5
@metamask-previews/solana-test-validator-up@0.0.0-preview-0b8cac1b5
@metamask-previews/stellar-quickstart-up@0.0.0-preview-0b8cac1b5
@metamask-previews/storage-service@1.0.2-preview-0b8cac1b5
@metamask-previews/subscription-controller@6.2.0-preview-0b8cac1b5
@metamask-previews/transaction-controller@68.2.0-preview-0b8cac1b5
@metamask-previews/transaction-pay-controller@23.17.1-preview-0b8cac1b5
@metamask-previews/user-operation-controller@41.2.5-preview-0b8cac1b5
@metamask-previews/wallet@5.0.0-preview-0b8cac1b5
@metamask-previews/wallet-cli@0.0.0-preview-0b8cac1b5

sirtimidand others added 5 commits August 3, 2026 17:09
…ller` into default initialization
Wire `PermissionController` and `SubjectMetadataController` (both from
`@metamask/permission-controller`) into the default wallet initialization.
The two reference each other's messenger actions and are wired as a pair;
`PermissionController` also consumes the already-wired `ApprovalController`
request actions.
Client-varying values are injectable `instanceOptions` with platform-agnostic
defaults: `permissionController.{caveatSpecifications,permissionSpecifications,
unrestrictedMethods}` (each defaulting to an empty set) and
`subjectMetadataController.subjectCacheLimit` (defaulting to 100).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…view
- Add `Wallet.test.ts` integration coverage: both controllers are reachable on
the assembled wallet, and persisted subject metadata hydrates without throwing
(proving the default wiring initializes `PermissionController` before
`SubjectMetadataController`, which calls `PermissionController:hasPermissions`
during hydration).
- Verify `PermissionController` can reach its delegated `ApprovalController` and
`SubjectMetadataController` actions, so a dropped allowlist entry now fails.
- Prove the injected permission specifications are forwarded (via `grantPermissions`)
rather than only exercising the empty default.
- Replace the weak "defaults to 100" test with a boundary test (100 retained,
101st evicts the oldest) and add coverage for retaining subjects that hold
permissions past the cache limit.
- Document the construction-order dependency and soften cross-repo comments.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…position
`initialize` concatenated consumer-supplied `initializationConfigurations`
ahead of the defaults, so a configuration overriding a default ran before the
other defaults. A custom `SubjectMetadataController` with persisted state would
then call `PermissionController:hasPermissions` during hydration before the
default `PermissionController` registered that handler, throwing on
construction.
Overrides now occupy their default's position, preserving construction-order
dependencies between defaults. Configurations that don't match a default remain
additive and are initialized first.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rebasing #9300 onto `main` after five weeks of drift required these
adjustments, none of which change the feature being wired:
- `codeowners.ts` is now the source of truth for `.github/CODEOWNERS`,
which is generated. `initializationPath` accepts an array so
`permission-controller` can claim both of the instance directories it
supplies, and rules are sorted by pattern so the generated section stays
alphabetical.
- `Wallet` tests pass the `gasFeeController` instance option, required
since #9527.
- Regenerate `README.md` and both `tsconfig`s via their fixers.
- Repair the `[6.0.0]` changelog section, which a conflict resolution had
left with duplicated content.
- Spell out the client-facing consequences of the wiring in the changelog:
the duplicate-registration collision for consumers passing their own
messenger, and the fact that permission specifications with side effects
(the Snaps specifications reach `SnapController:*`) need a wider
delegation allowlist than the default configuration provides.
- Cover `caveatSpecifications` injection, the one instance option without a
behavioural assertion.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@sirtimid
sirtimidforce-pushed the sirtimid/wire-permission-and-subject-metadata-controllers branch from 0b8cac1 to 3e7952bCompareAugust 3, 2026 15:42
sirtimid added a commit that referenced this pull request Aug 3, 2026
Correct the construction-order rationale, harden `initialize` against
ambiguous configuration lists, and close the documentation and test gaps
found while reviewing #9300.
- The ordering comment claimed a module namespace object sorts its keys
regardless of declaration order. That holds only for the ESM build; the
CommonJS build — what Jest runs and what `require` consumers load —
preserves declaration order. Record the real invariant on
`instances/index.ts` and assert the two controllers' relative order.
- `initialize` now throws on duplicate names in
`initializationConfigurations` instead of silently keeping the last,
which could drop an override carrying a wider allowlist.
- Mark the override-ordering change `**BREAKING:**`: it applies to any
overridden default, not just the two controllers wired here.
- Correct the changelog claim that the default `PermissionController`
"gates nothing" — with no specifications and no unrestricted methods it
is maximally restrictive — and document that subject metadata is
retained only for origins present in `PermissionController` state.
- Export `InitializationConfiguration`, which a consumer needs to write
the override the Snaps guidance calls for, and state what that override
actually costs.
- Document that `subjectCacheLimit` must be a positive integer, drop the
`ConstructorParameters` indirection that resolved to `number`, and
cover all five delegated actions plus the reversed-override ordering.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@sirtimid
sirtimid requested a review from a team as a code ownerAugust 3, 2026 16:49
sirtimid added a commit that referenced this pull request Aug 3, 2026
Correct the construction-order rationale, harden `initialize` against
ambiguous configuration lists, and close the documentation and test gaps
found while reviewing #9300.
- The ordering comment claimed a module namespace object sorts its keys
regardless of declaration order. That holds only for the ESM build; the
CommonJS build — what Jest runs and what `require` consumers load —
preserves declaration order. Record the real invariant on
`instances/index.ts` and assert the two controllers' relative order.
- `initialize` now throws on duplicate names in
`initializationConfigurations` instead of silently keeping the last,
which could drop an override carrying a wider allowlist.
- Mark the override-ordering change `**BREAKING:**`: it applies to any
overridden default, not just the two controllers wired here.
- Correct the changelog claim that the default `PermissionController`
"gates nothing" — with no specifications and no unrestricted methods it
is maximally restrictive — and document that subject metadata is
retained only for origins present in `PermissionController` state.
- Export `InitializationConfiguration`, which a consumer needs to write
the override the Snaps guidance calls for, and state what that override
actually costs.
- Document that `subjectCacheLimit` must be a positive integer, drop the
`ConstructorParameters` indirection that resolved to `number`, and
cover all five delegated actions plus the reversed-override ordering.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@sirtimid
sirtimidforce-pushed the sirtimid/wire-permission-and-subject-metadata-controllers branch from 8c322dc to 14956e2CompareAugust 3, 2026 16:58
Correct the construction-order rationale, harden `initialize` against
ambiguous configuration lists, and close the documentation and test gaps
found while reviewing #9300.
- The ordering comment claimed a module namespace object sorts its keys
regardless of declaration order. That holds only for the ESM build; the
CommonJS build — what Jest runs and what `require` consumers load —
preserves declaration order. Record the real invariant on
`instances/index.ts` and assert the two controllers' relative order.
- `initialize` now throws on duplicate names in
`initializationConfigurations` instead of silently keeping the last,
which could drop an override carrying a wider allowlist.
- Mark the override-ordering change `**BREAKING:**`: it applies to any
overridden default, not just the two controllers wired here.
- Correct the changelog claim that the default `PermissionController`
"gates nothing" — with no specifications and no unrestricted methods it
is maximally restrictive — and document that subject metadata is
retained only for origins present in `PermissionController` state.
- Export `InitializationConfiguration`, which a consumer needs to write
the override the Snaps guidance calls for, and state what that override
actually costs.
- Document that `subjectCacheLimit` must be a positive integer, drop the
`ConstructorParameters` indirection that resolved to `number`, and
cover all five delegated actions plus the reversed-override ordering.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@sirtimid
sirtimidforce-pushed the sirtimid/wire-permission-and-subject-metadata-controllers branch from 14956e2 to 8eb2c7fCompareAugust 3, 2026 17:03
@sirtimid

Copy link
Copy Markdown
MemberAuthor

@metamaskbot publish-previews

@github-actions

Copy link
Copy Markdown
Contributor

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@7.5.5-preview-8eb2c7f6e
@metamask-previews/accounts-controller@39.0.6-preview-8eb2c7f6e
@metamask-previews/address-book-controller@7.1.2-preview-8eb2c7f6e
@metamask-previews/ai-controllers@0.8.0-preview-8eb2c7f6e
@metamask-previews/analytics-controller@2.0.0-preview-8eb2c7f6e
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-8eb2c7f6e
@metamask-previews/announcement-controller@8.1.0-preview-8eb2c7f6e
@metamask-previews/app-metadata-controller@2.0.1-preview-8eb2c7f6e
@metamask-previews/approval-controller@9.0.2-preview-8eb2c7f6e
@metamask-previews/assets-controller@13.1.0-preview-8eb2c7f6e
@metamask-previews/assets-controllers@110.1.0-preview-8eb2c7f6e
@metamask-previews/authenticated-user-storage@3.0.1-preview-8eb2c7f6e
@metamask-previews/base-controller@9.1.0-preview-8eb2c7f6e
@metamask-previews/base-data-service@0.1.3-preview-8eb2c7f6e
@metamask-previews/bitcoin-regtest-up@1.0.0-preview-8eb2c7f6e
@metamask-previews/bridge-controller@78.0.3-preview-8eb2c7f6e
@metamask-previews/bridge-status-controller@74.6.1-preview-8eb2c7f6e
@metamask-previews/build-utils@3.0.4-preview-8eb2c7f6e
@metamask-previews/chain-agnostic-permission@1.7.0-preview-8eb2c7f6e
@metamask-previews/chomp-api-service@4.0.0-preview-8eb2c7f6e
@metamask-previews/claims-controller@0.5.3-preview-8eb2c7f6e
@metamask-previews/client-controller@1.0.1-preview-8eb2c7f6e
@metamask-previews/client-utils@1.5.0-preview-8eb2c7f6e
@metamask-previews/compliance-controller@2.1.0-preview-8eb2c7f6e
@metamask-previews/composable-controller@12.0.1-preview-8eb2c7f6e
@metamask-previews/config-registry-controller@2.0.0-preview-8eb2c7f6e
@metamask-previews/connectivity-controller@0.3.0-preview-8eb2c7f6e
@metamask-previews/controller-utils@12.3.0-preview-8eb2c7f6e
@metamask-previews/core-backend@8.1.0-preview-8eb2c7f6e
@metamask-previews/delegation-controller@3.0.2-preview-8eb2c7f6e
@metamask-previews/earn-controller@12.2.3-preview-8eb2c7f6e
@metamask-previews/eip-5792-middleware@3.0.5-preview-8eb2c7f6e
@metamask-previews/eip-7702-internal-rpc-middleware@0.1.1-preview-8eb2c7f6e
@metamask-previews/eip1193-permission-middleware@2.0.1-preview-8eb2c7f6e
@metamask-previews/ens-controller@19.1.6-preview-8eb2c7f6e
@metamask-previews/eth-block-tracker@15.0.1-preview-8eb2c7f6e
@metamask-previews/eth-json-rpc-middleware@24.0.0-preview-8eb2c7f6e
@metamask-previews/eth-json-rpc-provider@6.0.1-preview-8eb2c7f6e
@metamask-previews/foundryup@1.0.1-preview-8eb2c7f6e
@metamask-previews/gas-fee-controller@26.3.1-preview-8eb2c7f6e
@metamask-previews/gator-permissions-controller@5.0.1-preview-8eb2c7f6e
@metamask-previews/geolocation-controller@1.0.0-preview-8eb2c7f6e
@metamask-previews/java-tron-up@1.0.0-preview-8eb2c7f6e
@metamask-previews/json-rpc-engine@10.5.0-preview-8eb2c7f6e
@metamask-previews/json-rpc-middleware-stream@8.0.8-preview-8eb2c7f6e
@metamask-previews/keyring-controller@27.1.0-preview-8eb2c7f6e
@metamask-previews/local-node-utils@1.0.0-preview-8eb2c7f6e
@metamask-previews/logging-controller@8.0.2-preview-8eb2c7f6e
@metamask-previews/message-manager@14.1.2-preview-8eb2c7f6e
@metamask-previews/messenger@2.0.0-preview-8eb2c7f6e
@metamask-previews/messenger-cli@0.2.0-preview-8eb2c7f6e
@metamask-previews/money-account-api-data-service@0.4.0-preview-8eb2c7f6e
@metamask-previews/money-account-balance-service@2.4.1-preview-8eb2c7f6e
@metamask-previews/money-account-controller@0.3.3-preview-8eb2c7f6e
@metamask-previews/money-account-upgrade-controller@3.0.1-preview-8eb2c7f6e
@metamask-previews/money-account-utils@1.1.0-preview-8eb2c7f6e
@metamask-previews/multichain-account-service@13.0.0-preview-8eb2c7f6e
@metamask-previews/multichain-api-middleware@4.0.2-preview-8eb2c7f6e
@metamask-previews/multichain-network-controller@3.2.2-preview-8eb2c7f6e
@metamask-previews/multichain-transactions-controller@7.1.1-preview-8eb2c7f6e
@metamask-previews/name-controller@9.1.2-preview-8eb2c7f6e
@metamask-previews/network-connection-banner-controller@0.1.2-preview-8eb2c7f6e
@metamask-previews/network-controller@35.0.1-preview-8eb2c7f6e
@metamask-previews/network-enablement-controller@6.0.2-preview-8eb2c7f6e
@metamask-previews/notification-services-controller@26.0.0-preview-8eb2c7f6e
@metamask-previews/passkey-controller@3.0.0-preview-8eb2c7f6e
@metamask-previews/permission-controller@13.1.1-preview-8eb2c7f6e
@metamask-previews/permission-log-controller@5.1.0-preview-8eb2c7f6e
@metamask-previews/perps-controller@10.0.0-preview-8eb2c7f6e
@metamask-previews/phishing-controller@17.3.1-preview-8eb2c7f6e
@metamask-previews/platform-api-docs@0.0.0-preview-8eb2c7f6e
@metamask-previews/polling-controller@16.0.9-preview-8eb2c7f6e
@metamask-previews/preferences-controller@23.1.0-preview-8eb2c7f6e
@metamask-previews/profile-metrics-controller@4.0.2-preview-8eb2c7f6e
@metamask-previews/profile-sync-controller@28.3.0-preview-8eb2c7f6e
@metamask-previews/ramps-controller@18.0.1-preview-8eb2c7f6e
@metamask-previews/rate-limit-controller@7.0.1-preview-8eb2c7f6e
@metamask-previews/react-data-query@0.2.2-preview-8eb2c7f6e
@metamask-previews/remote-feature-flag-controller@5.0.0-preview-8eb2c7f6e
@metamask-previews/sample-controllers@5.0.4-preview-8eb2c7f6e
@metamask-previews/seedless-onboarding-controller@10.1.0-preview-8eb2c7f6e
@metamask-previews/selected-network-controller@26.1.6-preview-8eb2c7f6e
@metamask-previews/sentinel-api-service@1.0.0-preview-8eb2c7f6e
@metamask-previews/shield-controller@5.1.3-preview-8eb2c7f6e
@metamask-previews/signature-controller@39.2.9-preview-8eb2c7f6e
@metamask-previews/smart-transactions-controller@25.0.2-preview-8eb2c7f6e
@metamask-previews/snap-account-service@2.1.1-preview-8eb2c7f6e
@metamask-previews/social-controllers@2.7.0-preview-8eb2c7f6e
@metamask-previews/solana-test-validator-up@1.0.0-preview-8eb2c7f6e
@metamask-previews/stellar-quickstart-up@0.0.0-preview-8eb2c7f6e
@metamask-previews/storage-service@1.0.2-preview-8eb2c7f6e
@metamask-previews/subscription-controller@6.2.1-preview-8eb2c7f6e
@metamask-previews/transaction-controller@69.4.0-preview-8eb2c7f6e
@metamask-previews/transaction-pay-controller@26.2.0-preview-8eb2c7f6e
@metamask-previews/user-operation-controller@41.2.8-preview-8eb2c7f6e
@metamask-previews/wallet@9.0.0-preview-8eb2c7f6e
@metamask-previews/wallet-cli@0.0.0-preview-8eb2c7f6e

@sirtimid

Copy link
Copy Markdown
MemberAuthor

stale

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@sirtimid