Skip to content

fix: remove ws balance freshness guard#9273

Open
salimtb wants to merge 11 commits into
mainfrom
refactor/remove-ws-balance-freshness-guard
Open

fix: remove ws balance freshness guard#9273
salimtb wants to merge 11 commits into
mainfrom
refactor/remove-ws-balance-freshness-guard

Conversation

@salimtb

@salimtb salimtb commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Explanation

What is the current state of things and why does it need to change?

Token balances in @metamask/assets-controller could stay stale after transactions, account switches, or WebSocket reconnects. Several independent issues contributed:

  1. WebSocket notifications were not reaching BackendWebsocketDataSource — Clients subscribe on wildcard channels (account-activity.v1.eip155:0:0x…) but the server sends notifications on specific chains (…eip155:42161:0x…). BackendWebSocketService matched channels exactly, so post-confirm balance pushes were silently dropped even though frames appeared in the Network tab.

  2. Stale subscriptionId after reconnect/resubscribe — Notifications could arrive with a server subscription id that no longer matched the local map. The subscription callback was skipped and channel fallback was unreliable.

  3. Race conditions on account switch — Overlapping subscribe/unsubscribe and fetch work could interleave, dropping notifications or applying responses out of order.

  4. Stale balances from cached/partial fetchesAccountsApiDataSource used TanStack Query’s 60s balance cache even on forceUpdate, and force-refresh pipelines used merge semantics that never removed tokens absent from partial API responses (e.g. USDC still shown after a swap when the API only returned ETH).

  5. Websocket freshness guard blocked corrections — A 120s guard prevented polling/API updates from overwriting recent WS balances. That helped in some send scenarios but also blocked legitimate corrections (e.g. receiver account showing wrong balance after account switch).

What is the solution your changes offer and how does it work?

@metamask/core-backendBackendWebSocketService

  • Wildcard channel matchingeip155:0:0xaddr matches eip155:42161:0xaddr for both subscription callbacks and channel callbacks.
  • Subscription fallback — If subscriptionId lookup fails, resolve the handler by matching the notification channel against registered subscription channels.
  • Nested payload normalization — Promote channel / subscriptionId from nested data when the server wraps notifications.
  • No-callback fallthrough — If a subscription entry exists but has no callback, fall through to channel routing instead of swallowing the message.

@metamask/assets-controllerBackendWebsocketDataSource

  • Serializes subscribe/unsubscribe via a lock to prevent account-switch races.
  • Registers subscription state and handlers before awaiting the server subscribe handshake.
  • Registers addChannelCallback per channel as a fallback when subscription-id routing fails.
  • Case-insensitive EVM address matching for notifications.
  • Resolves onAssetsUpdate from stored subscription state when notifications arrive with stale ids.

@metamask/assets-controllerAssetsController

  • Fetches before re-subscribing on account switch; #accountRefreshMutex serializes overlapping refresh work.
  • Deduplicates account-tree refresh when selected accounts have not changed.
  • Removes the 120s websocket balance freshness guard so force-refresh and polling can correct stale WS values.

@metamask/assets-controller — balance update modes

  • Adds update mode: patches balance amounts only; does not remove tokens or overwrite metadata/prices. Used for getAssets({ forceUpdate: true }) and Accounts API / Snap fetch responses when the API returns a partial snapshot (e.g. only ETH after a swap).
  • merge remains the default for event-driven updates (WS, polling).
  • full remains for responses that should be authoritative for a chain scope.

AccountsApiDataSource

  • Passes { staleTime: 0, gcTime: 0 } to the API client when request.forceUpdate is true.

End-to-end flow after a confirmed swap:


Note

Medium Risk
Changes core balance merge semantics and live WebSocket routing; user-visible balances are affected, though behavior is covered by expanded unit tests.

Overview
Fixes stale token balances after transactions, account switches, and reconnects by changing how partial balance data is applied and by making WebSocket account-activity delivery reliable.

AssetsController drops the 120-second websocket freshness guard and internal sourceId plumbing that blocked API/polling from correcting recent WS values. It adds update as a balance-only overlay mode: amounts in the response are patched in, tokens missing from partial snapshots are not removed, and existing metadata/prices are not overwritten (only missing metadata/prices are seeded). getAssets({ forceUpdate: true }) and the fast/slow fetch pipelines now commit with update instead of merge.

Balance data sources (AccountsApi, RPC, Snap, etc.) return updateMode: 'update' for fetches. ParallelMiddleware propagates update/merge/full when combining parallel responses.

BackendWebsocketDataSource registers subscription state and handlers before the server subscribe handshake, rolls back on subscribe failure, and only pushes updates when there are actual balances; notifications can use stored handlers when subscription IDs are stale.

BackendWebSocketService matches account-activity channels when subscribe uses chain ref 0 but notifications use a specific chain, falls back to subscription lookup by channel when subscriptionId is stale, and normalizes nested notification payloads before routing.

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

salimtb added 6 commits June 25, 2026 23:26
The polling-source freshness lock is unnecessary alongside fetch-then-subscribe
and Accounts API cache bypass on forceUpdate.
…iably

Improve BackendWebSocketService routing for wildcard channels and stale
subscription IDs, harden BackendWebsocketDataSource subscribe/notify flow,
and use update-mode force refresh so partial API snapshots do not leave
stale token balances in state.
@salimtb salimtb changed the title Refactor/remove ws balance freshness guard fix: remove ws balance freshness guard Jun 25, 2026
@salimtb salimtb marked this pull request as ready for review June 25, 2026 22:19
@salimtb salimtb requested review from a team as code owners June 25, 2026 22:19
@salimtb salimtb temporarily deployed to default-branch June 25, 2026 22:19 — with GitHub Actions Inactive
@salimtb

salimtb commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

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

@salimtb

salimtb commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

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

@salimtb

salimtb commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

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

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