Skip to content

fix: remove ws balance freshness guard#9273

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

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

Conversation

@salimtb

@salimtb salimtb commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Explanation

UI PR: MetaMask/metamask-extension#43829

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

High Risk
Changes balance merge semantics, removes WS freshness protection, and adds a breaking messenger event requirement; incorrect routing could show wrong balances or miss real-time updates.

Overview
Fixes stale token balances after transactions, account/network switches, and WebSocket reconnects by tightening how real-time and polled balance updates reach unified assetsBalance state.

BackendWebSocketService now routes account-activity notifications when subscribe channels use chain wildcard eip155:0 but the server sends a specific chain, falls back to channel-based subscription lookup when subscriptionId is stale, and normalizes nested notification payloads before dispatch.

AssetsController subscribes to AccountActivityService:balanceUpdated (breaking: integrators must allow this on the messenger) and applies updates through shared processAccountActivityBalanceUpdates. It removes the 120-second websocket freshness guard and sourceId-based polling filters so API/RPC refreshes can correct stale WS values. On NetworkController:networkDidChange, it refreshes data-source activeChains, re-subscribes, and force-fetches the selected EVM chain; transactionConfirmed triggers a scoped force refresh. Force-fetch pipelines skip the slow Snap/RPC path for chains the Accounts API already returned without error.

BackendWebsocketDataSource registers subscription state before the subscribe handshake, cleans up on failure, and reuses the shared balance processor. DetectionMiddleware / PriceDataSource queue and fetch spot prices for newly detected assets that lack assetsPrice entries. Messenger subscriptions move from *:stateChange to *:stateChanged where applicable.

Reviewed by Cursor Bugbot for commit 18dd0df. 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

salimtb added 3 commits June 26, 2026 10:50
…tyService

Wire AssetsController to AccountActivityService:balanceUpdated so unified
assetsBalance updates when AccountActivityService owns the websocket
subscription. Share account-activity payload conversion with
BackendWebsocketDataSource, skip slow RPC for Accounts API chains, and add
opt-in WS routing debug logs.
salimtb and others added 3 commits June 26, 2026 11:30
…assignment'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Comment thread packages/assets-controller/src/data-sources/PriceDataSource.ts Outdated
@salimtb

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

3.5K Controller 💀
FUTURE - A lot of then internals can be gutted and moved into separate files (for better testability).

E.g:

  • Move pipelines/middleware construction into separate file
  • Move state update logic (merge vs update vs full) into a separate file
  • Subscription handlers can also be moved into a separate file (you can pass in messenger as inputs to functions).
  • Traversing or shape manipulation can also be decoupled.

salimtb added 3 commits June 26, 2026 16:53
Force-refresh the sender account via getAssets when a transaction confirms,
and harden RpcDataSource post-tx RPC refresh to pass the request and apply
update mode when pushing balance snapshots to the controller.
…k switch

Subscribe to NetworkController:networkDidChange so switching the selected
network re-fetches supported chains, re-subscribes data sources, and
force-fetches balances for the newly selected chain.
Comment thread packages/assets-controller/src/AssetsController.ts
@salimtb

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

@cursor cursor Bot 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 2 potential issues.

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 5a86895. Configure here.

Comment thread packages/assets-controller/src/AssetsController.ts
Comment thread packages/assets-controller/src/types.ts
@salimtb

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

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.

3 participants