Skip to content

refactor(snap-account-service)!: make init sync + use it in ctor#8877

Open
ccharly wants to merge 2 commits into
cc/feat/snap-account-service-faster-get-keyringfrom
cc/feat/snap-account-service-sync-init
Open

refactor(snap-account-service)!: make init sync + use it in ctor#8877
ccharly wants to merge 2 commits into
cc/feat/snap-account-service-faster-get-keyringfrom
cc/feat/snap-account-service-sync-init

Conversation

@ccharly
Copy link
Copy Markdown
Contributor

@ccharly ccharly commented May 21, 2026

Explanation

Making init synchronous to simplify service's lifecycle.

References

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
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

Note

Medium Risk
This is a breaking lifecycle change: callers can no longer explicitly await init(), and seeding of tracked snaps now happens during construction, which may affect consumers that relied on deferred initialization order.

Overview
Removes the async init() lifecycle from SnapAccountService/SnapTracker and instead seeds tracked account-management Snaps synchronously during SnapTracker construction (called from the service constructor).

Updates unit tests to no longer call init() and to expect Snap tracking/ensureReady behavior to be based on constructor-time seeding, and records the breaking removal in the package changelog.

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

@ccharly ccharly marked this pull request as ready for review May 21, 2026 12:41
@ccharly ccharly requested review from a team as code owners May 21, 2026 12:41
@ccharly
Copy link
Copy Markdown
Contributor Author

ccharly commented May 21, 2026

@metamaskbot publish-preview

@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.4.0-preview-9fb8d00e7
@metamask-previews/accounts-controller@38.1.1-preview-9fb8d00e7
@metamask-previews/address-book-controller@7.1.2-preview-9fb8d00e7
@metamask-previews/ai-controllers@0.6.3-preview-9fb8d00e7
@metamask-previews/analytics-controller@1.0.1-preview-9fb8d00e7
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-9fb8d00e7
@metamask-previews/announcement-controller@8.1.0-preview-9fb8d00e7
@metamask-previews/app-metadata-controller@2.0.1-preview-9fb8d00e7
@metamask-previews/approval-controller@9.0.1-preview-9fb8d00e7
@metamask-previews/assets-controller@7.1.2-preview-9fb8d00e7
@metamask-previews/assets-controllers@108.1.0-preview-9fb8d00e7
@metamask-previews/authenticated-user-storage@2.0.0-preview-9fb8d00e7
@metamask-previews/base-controller@9.1.0-preview-9fb8d00e7
@metamask-previews/base-data-service@0.1.3-preview-9fb8d00e7
@metamask-previews/bridge-controller@72.0.4-preview-9fb8d00e7
@metamask-previews/bridge-status-controller@71.1.4-preview-9fb8d00e7
@metamask-previews/build-utils@3.0.4-preview-9fb8d00e7
@metamask-previews/chain-agnostic-permission@1.6.1-preview-9fb8d00e7
@metamask-previews/chomp-api-service@3.1.0-preview-9fb8d00e7
@metamask-previews/claims-controller@0.5.1-preview-9fb8d00e7
@metamask-previews/client-controller@1.0.1-preview-9fb8d00e7
@metamask-previews/compliance-controller@2.0.1-preview-9fb8d00e7
@metamask-previews/composable-controller@12.0.1-preview-9fb8d00e7
@metamask-previews/config-registry-controller@0.3.1-preview-9fb8d00e7
@metamask-previews/connectivity-controller@0.2.0-preview-9fb8d00e7
@metamask-previews/controller-utils@12.1.0-preview-9fb8d00e7
@metamask-previews/core-backend@6.3.0-preview-9fb8d00e7
@metamask-previews/delegation-controller@3.0.0-preview-9fb8d00e7
@metamask-previews/earn-controller@12.1.2-preview-9fb8d00e7
@metamask-previews/eip-5792-middleware@3.0.4-preview-9fb8d00e7
@metamask-previews/eip-7702-internal-rpc-middleware@0.1.1-preview-9fb8d00e7
@metamask-previews/eip1193-permission-middleware@2.0.1-preview-9fb8d00e7
@metamask-previews/ens-controller@19.1.3-preview-9fb8d00e7
@metamask-previews/eth-block-tracker@15.0.1-preview-9fb8d00e7
@metamask-previews/eth-json-rpc-middleware@23.1.3-preview-9fb8d00e7
@metamask-previews/eth-json-rpc-provider@6.0.1-preview-9fb8d00e7
@metamask-previews/foundryup@1.0.1-preview-9fb8d00e7
@metamask-previews/gas-fee-controller@26.2.2-preview-9fb8d00e7
@metamask-previews/gator-permissions-controller@4.1.2-preview-9fb8d00e7
@metamask-previews/geolocation-controller@0.1.3-preview-9fb8d00e7
@metamask-previews/json-rpc-engine@10.5.0-preview-9fb8d00e7
@metamask-previews/json-rpc-middleware-stream@8.0.8-preview-9fb8d00e7
@metamask-previews/keyring-controller@25.5.0-preview-9fb8d00e7
@metamask-previews/logging-controller@8.0.2-preview-9fb8d00e7
@metamask-previews/message-manager@14.1.2-preview-9fb8d00e7
@metamask-previews/messenger@1.2.0-preview-9fb8d00e7
@metamask-previews/messenger-cli@0.2.0-preview-9fb8d00e7
@metamask-previews/money-account-balance-service@1.0.2-preview-9fb8d00e7
@metamask-previews/money-account-controller@0.3.0-preview-9fb8d00e7
@metamask-previews/money-account-upgrade-controller@2.0.2-preview-9fb8d00e7
@metamask-previews/multichain-account-service@10.0.0-preview-9fb8d00e7
@metamask-previews/multichain-api-middleware@3.1.2-preview-9fb8d00e7
@metamask-previews/multichain-network-controller@3.1.2-preview-9fb8d00e7
@metamask-previews/multichain-transactions-controller@7.1.0-preview-9fb8d00e7
@metamask-previews/name-controller@9.1.2-preview-9fb8d00e7
@metamask-previews/network-controller@32.0.0-preview-9fb8d00e7
@metamask-previews/network-enablement-controller@5.2.0-preview-9fb8d00e7
@metamask-previews/notification-services-controller@24.1.0-preview-9fb8d00e7
@metamask-previews/passkey-controller@2.0.1-preview-9fb8d00e7
@metamask-previews/permission-controller@13.1.1-preview-9fb8d00e7
@metamask-previews/permission-log-controller@5.1.0-preview-9fb8d00e7
@metamask-previews/perps-controller@6.1.0-preview-9fb8d00e7
@metamask-previews/phishing-controller@17.2.0-preview-9fb8d00e7
@metamask-previews/polling-controller@16.0.6-preview-9fb8d00e7
@metamask-previews/preferences-controller@23.1.0-preview-9fb8d00e7
@metamask-previews/profile-metrics-controller@3.1.4-preview-9fb8d00e7
@metamask-previews/profile-sync-controller@28.1.0-preview-9fb8d00e7
@metamask-previews/ramps-controller@13.3.1-preview-9fb8d00e7
@metamask-previews/rate-limit-controller@7.0.1-preview-9fb8d00e7
@metamask-previews/react-data-query@0.2.1-preview-9fb8d00e7
@metamask-previews/remote-feature-flag-controller@4.2.1-preview-9fb8d00e7
@metamask-previews/sample-controllers@5.0.1-preview-9fb8d00e7
@metamask-previews/seedless-onboarding-controller@9.1.0-preview-9fb8d00e7
@metamask-previews/selected-network-controller@26.1.3-preview-9fb8d00e7
@metamask-previews/shield-controller@5.1.2-preview-9fb8d00e7
@metamask-previews/signature-controller@39.2.2-preview-9fb8d00e7
@metamask-previews/snap-account-service@0.2.0-preview-9fb8d00e7
@metamask-previews/social-controllers@2.2.1-preview-9fb8d00e7
@metamask-previews/storage-service@1.0.1-preview-9fb8d00e7
@metamask-previews/subscription-controller@6.1.3-preview-9fb8d00e7
@metamask-previews/transaction-controller@65.4.0-preview-9fb8d00e7
@metamask-previews/transaction-pay-controller@22.5.0-preview-9fb8d00e7
@metamask-previews/user-operation-controller@41.2.2-preview-9fb8d00e7
@metamask-previews/wallet@0.0.0-preview-9fb8d00e7

Sign up for free to 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