@metamask-previews/assets-controller 11.2.1-preview-97f066f → 11.2.1-preview-2dc3d26a4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGELOG.md +6 -5
  2. package/dist/AssetsController.cjs +23 -51
  3. package/dist/AssetsController.cjs.map +1 -1
  4. package/dist/AssetsController.d.cts +3 -3
  5. package/dist/AssetsController.d.cts.map +1 -1
  6. package/dist/AssetsController.d.mts +3 -3
  7. package/dist/AssetsController.d.mts.map +1 -1
  8. package/dist/AssetsController.mjs +23 -51
  9. package/dist/AssetsController.mjs.map +1 -1
  10. package/dist/data-sources/AccountActivityDataSource.cjs +262 -0
  11. package/dist/data-sources/AccountActivityDataSource.cjs.map +1 -0
  12. package/dist/data-sources/AccountActivityDataSource.d.cts +80 -0
  13. package/dist/data-sources/AccountActivityDataSource.d.cts.map +1 -0
  14. package/dist/data-sources/AccountActivityDataSource.d.mts +80 -0
  15. package/dist/data-sources/AccountActivityDataSource.d.mts.map +1 -0
  16. package/dist/data-sources/AccountActivityDataSource.mjs +254 -0
  17. package/dist/data-sources/AccountActivityDataSource.mjs.map +1 -0
  18. package/dist/data-sources/index.cjs +4 -4
  19. package/dist/data-sources/index.cjs.map +1 -1
  20. package/dist/data-sources/index.d.cts +1 -1
  21. package/dist/data-sources/index.d.cts.map +1 -1
  22. package/dist/data-sources/index.d.mts +1 -1
  23. package/dist/data-sources/index.d.mts.map +1 -1
  24. package/dist/data-sources/index.mjs +1 -1
  25. package/dist/data-sources/index.mjs.map +1 -1
  26. package/dist/index.cjs +22 -26
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.d.cts +0 -2
  29. package/dist/index.d.cts.map +1 -1
  30. package/dist/index.d.mts +0 -2
  31. package/dist/index.d.mts.map +1 -1
  32. package/dist/index.mjs +0 -2
  33. package/dist/index.mjs.map +1 -1
  34. package/dist/middlewares/CustomAssetGraduationMiddleware.cjs +1 -1
  35. package/dist/middlewares/CustomAssetGraduationMiddleware.cjs.map +1 -1
  36. package/dist/middlewares/CustomAssetGraduationMiddleware.mjs +1 -1
  37. package/dist/middlewares/CustomAssetGraduationMiddleware.mjs.map +1 -1
  38. package/package.json +1 -1
  39. package/dist/data-sources/BackendWebsocketDataSource.cjs +0 -597
  40. package/dist/data-sources/BackendWebsocketDataSource.cjs.map +0 -1
  41. package/dist/data-sources/BackendWebsocketDataSource.d.cts +0 -65
  42. package/dist/data-sources/BackendWebsocketDataSource.d.cts.map +0 -1
  43. package/dist/data-sources/BackendWebsocketDataSource.d.mts +0 -65
  44. package/dist/data-sources/BackendWebsocketDataSource.d.mts.map +0 -1
  45. package/dist/data-sources/BackendWebsocketDataSource.mjs +0 -592
  46. package/dist/data-sources/BackendWebsocketDataSource.mjs.map +0 -1
  47. package/dist/utils/processAccountActivityBalanceUpdates.cjs +0 -54
  48. package/dist/utils/processAccountActivityBalanceUpdates.cjs.map +0 -1
  49. package/dist/utils/processAccountActivityBalanceUpdates.d.cts +0 -13
  50. package/dist/utils/processAccountActivityBalanceUpdates.d.cts.map +0 -1
  51. package/dist/utils/processAccountActivityBalanceUpdates.d.mts +0 -13
  52. package/dist/utils/processAccountActivityBalanceUpdates.d.mts.map +0 -1
  53. package/dist/utils/processAccountActivityBalanceUpdates.mjs +0 -47
  54. package/dist/utils/processAccountActivityBalanceUpdates.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -16,6 +16,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
16
16
  - Bump `@metamask/keyring-api` from `^23.5.0` to `^23.7.0` ([#9676](https://github.com/MetaMask/core/pull/9676))
17
17
  - Bump `@metamask/keyring-internal-api` from `^11.0.1` to `^11.0.2` ([#9676](https://github.com/MetaMask/core/pull/9676))
18
18
  - Bump `@metamask/keyring-snap-client` from `^9.2.0` to `^9.2.1` ([#9676](https://github.com/MetaMask/core/pull/9676))
19
+ - `AccountActivityDataSource` is now the highest-priority balance data source and participates in chain-claiming: chains it reports as "up" (from `AccountActivityService:statusChanged`) are claimed first so the polling data sources (`AccountsApiDataSource`/`RpcDataSource`) do not also poll them ([#9517](https://github.com/MetaMask/core/pull/9517))
20
+ - `AssetsController` no longer references `BackendWebSocketService` actions/events; real-time balances and chain status are consumed exclusively from `AccountActivityService`
21
+
22
+ ### Removed
23
+
24
+ - **BREAKING:** Remove `BackendWebsocketDataSource` and its factory/types (`BackendWebsocketDataSource`, `createBackendWebsocketDataSource`, `BackendWebsocketDataSourceOptions`, `BackendWebsocketDataSourceState`). Real-time balance updates and per-chain status are now consumed from `AccountActivityService` via `AccountActivityDataSource`, which manages the WebSocket connection and subscriptions. Consumers no longer need to delegate `BackendWebSocketService` actions/events to the `AssetsController` messenger ([#9517](https://github.com/MetaMask/core/pull/9517))
19
25
 
20
26
  ### Fixed
21
27
 
@@ -69,11 +75,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
69
75
  - `TokensApiClient` (used by `RpcDataSource` / `TokenDetector`) now sets the token-list `occurrenceFloor` query param from the same Token API `GET /v1/suggestedOccurrenceFloors` endpoint (cached 1h), replacing the hardcoded Linea/MegaETH/Tempo special cases. Missing chains or failed fetches fall back to 3 ([#9537](https://github.com/MetaMask/core/pull/9537))
70
76
  - Bump `@metamask/network-enablement-controller` from `^5.5.0` to `^5.6.0` ([#9520](https://github.com/MetaMask/core/pull/9520))
71
77
  - Bump `@metamask/phishing-controller` from `^17.2.1` to `^17.3.0` ([#9532](https://github.com/MetaMask/core/pull/9532))
72
- - Bump `@metamask/transaction-controller` from `^69.0.0` to `^69.1.0` ([#9568](https://github.com/MetaMask/core/pull/9568))
73
-
74
- ### Fixed
75
-
76
- - `TokenDataSource` now also fetches token metadata for assets present in `assetsBalance` that are missing `assetsInfo` (previously only detected assets without metadata were enriched) ([#9547](https://github.com/MetaMask/core/pull/9547))
77
78
 
78
79
  ## [11.0.0]
79
80
 
@@ -13,7 +13,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
13
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
15
  };
16
- var _AssetsController_instances, _AssetsController_isEnabled, _AssetsController_isBasicFunctionality, _AssetsController_defaultUpdateInterval, _AssetsController_trace, _AssetsController_captureException, _AssetsController_firstInitFetchReported, _AssetsController_stateSizeReported, _AssetsController_emitTrace, _AssetsController_emitStateSizeTrace, _AssetsController_uiOpen, _AssetsController_keyringUnlocked, _AssetsController_controllerMutex, _AssetsController_accountRefreshMutex, _AssetsController_activeSubscriptions, _AssetsController_enabledChains, _AssetsController_lastKnownAccountIds, _AssetsController_getSelectedAccounts, _AssetsController_backendWebsocketDataSource, _AssetsController_accountsApiDataSource, _AssetsController_snapDataSource, _AssetsController_rpcDataSource, _AssetsController_stakedBalanceDataSource, _AssetsController_allBalanceDataSources_get, _AssetsController_priceDataSource, _AssetsController_detectionMiddleware, _AssetsController_customAssetGraduationMiddleware, _AssetsController_rpcFallbackMiddleware, _AssetsController_tokenDataSource, _AssetsController_unsubscribeBasicFunctionality, _AssetsController_queryApiClient, _AssetsController_onActiveChainsUpdated, _AssetsController_initializeNativeAssetsMap, _AssetsController_initializeState, _AssetsController_extractEnabledChains, _AssetsController_normalizeChainReference, _AssetsController_subscribeToEvents, _AssetsController_onUnapprovedTransactionAdded, _AssetsController_onTransactionConfirmed, _AssetsController_onAccountActivityBalanceUpdated, _AssetsController_updateActive, _AssetsController_handleAccountTreeStateChange, _AssetsController_runAccountTreeRefresh, _AssetsController_runStartupRefresh, _AssetsController_registerActionHandlers, _AssetsController_handleActiveChainsUpdate, _AssetsController_executeMiddlewares, _AssetsController_fetchMissingPricesWithoutCache, _AssetsController_getNativeAssetMap, _AssetsController_isNativeAsset, _AssetsController_getAssetType, _AssetsController_resolveNativeAssetIds, _AssetsController_getNativeAssetIdsForEnabledChains, _AssetsController_getNativeAssetIdsForAccount, _AssetsController_getSlowPipelineChainIds, _AssetsController_ensureNativeBalancesDefaultZero, _AssetsController_ensureDefaultTrackedAssetsSeeded, _AssetsController_updateState, _AssetsController_getAssetsFromState, _AssetsController_getAssetFromState, _AssetsController_shouldHideNativeToken, _AssetsController_tokenStandardToAssetType, _AssetsController_start, _AssetsController_stop, _AssetsController_subscribeAssets, _AssetsController_subscribeAssetsBalance, _AssetsController_subscribeRpcCustomAssetsSupplement, _AssetsController_unsubscribeBySubscriptionKey, _AssetsController_subscribeStakedBalance, _AssetsController_buildChainToAccountsMap, _AssetsController_subscribeDataSource, _AssetsController_unsubscribeDataSource, _AssetsController_buildDataRequest, _AssetsController_getEnabledChainsForAccount, _AssetsController_handleAccountGroupChanged, _AssetsController_handleEnabledNetworksChanged, _AssetsController_handleNetworkAdded, _AssetsController_refreshActiveChainsOnNetworkSwitch, _AssetsController_getSelectedEvmChainIdFromNetworkState, _AssetsController_handleNetworkDidChange, _AssetsController_refreshAssetsAfterNetworkChange, _AssetsController_refreshAssetsAfterNetworkAdded;
16
+ var _AssetsController_instances, _AssetsController_isEnabled, _AssetsController_isBasicFunctionality, _AssetsController_defaultUpdateInterval, _AssetsController_trace, _AssetsController_captureException, _AssetsController_firstInitFetchReported, _AssetsController_stateSizeReported, _AssetsController_emitTrace, _AssetsController_emitStateSizeTrace, _AssetsController_uiOpen, _AssetsController_keyringUnlocked, _AssetsController_controllerMutex, _AssetsController_accountRefreshMutex, _AssetsController_activeSubscriptions, _AssetsController_enabledChains, _AssetsController_lastKnownAccountIds, _AssetsController_getSelectedAccounts, _AssetsController_accountActivityDataSource, _AssetsController_accountsApiDataSource, _AssetsController_snapDataSource, _AssetsController_rpcDataSource, _AssetsController_stakedBalanceDataSource, _AssetsController_allBalanceDataSources_get, _AssetsController_priceDataSource, _AssetsController_detectionMiddleware, _AssetsController_customAssetGraduationMiddleware, _AssetsController_rpcFallbackMiddleware, _AssetsController_tokenDataSource, _AssetsController_unsubscribeBasicFunctionality, _AssetsController_queryApiClient, _AssetsController_onActiveChainsUpdated, _AssetsController_initializeNativeAssetsMap, _AssetsController_initializeState, _AssetsController_extractEnabledChains, _AssetsController_normalizeChainReference, _AssetsController_subscribeToEvents, _AssetsController_onUnapprovedTransactionAdded, _AssetsController_onTransactionConfirmed, _AssetsController_updateActive, _AssetsController_handleAccountTreeStateChange, _AssetsController_runAccountTreeRefresh, _AssetsController_runStartupRefresh, _AssetsController_registerActionHandlers, _AssetsController_handleActiveChainsUpdate, _AssetsController_executeMiddlewares, _AssetsController_fetchMissingPricesWithoutCache, _AssetsController_getNativeAssetMap, _AssetsController_isNativeAsset, _AssetsController_getAssetType, _AssetsController_resolveNativeAssetIds, _AssetsController_getNativeAssetIdsForEnabledChains, _AssetsController_getNativeAssetIdsForAccount, _AssetsController_getSlowPipelineChainIds, _AssetsController_ensureNativeBalancesDefaultZero, _AssetsController_ensureDefaultTrackedAssetsSeeded, _AssetsController_updateState, _AssetsController_getAssetsFromState, _AssetsController_getAssetFromState, _AssetsController_shouldHideNativeToken, _AssetsController_tokenStandardToAssetType, _AssetsController_start, _AssetsController_stop, _AssetsController_subscribeAssets, _AssetsController_subscribeAssetsBalance, _AssetsController_subscribeRpcCustomAssetsSupplement, _AssetsController_unsubscribeBySubscriptionKey, _AssetsController_subscribeStakedBalance, _AssetsController_buildChainToAccountsMap, _AssetsController_subscribeDataSource, _AssetsController_unsubscribeDataSource, _AssetsController_buildDataRequest, _AssetsController_getEnabledChainsForAccount, _AssetsController_handleAccountGroupChanged, _AssetsController_handleEnabledNetworksChanged, _AssetsController_handleNetworkAdded, _AssetsController_refreshActiveChainsOnNetworkSwitch, _AssetsController_getSelectedEvmChainIdFromNetworkState, _AssetsController_handleNetworkDidChange, _AssetsController_refreshAssetsAfterNetworkChange, _AssetsController_refreshAssetsAfterNetworkAdded;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.AssetsController = exports.getDefaultAssetsControllerState = void 0;
19
19
  const base_controller_1 = require("@metamask/base-controller");
@@ -22,8 +22,8 @@ const utils_1 = require("@metamask/utils");
22
22
  const async_mutex_1 = require("async-mutex");
23
23
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
24
24
  const lodash_1 = require("lodash");
25
+ const AccountActivityDataSource_js_1 = require("./data-sources/AccountActivityDataSource.cjs");
25
26
  const AccountsApiDataSource_js_1 = require("./data-sources/AccountsApiDataSource.cjs");
26
- const BackendWebsocketDataSource_js_1 = require("./data-sources/BackendWebsocketDataSource.cjs");
27
27
  const assets_js_1 = require("./data-sources/evm-rpc-services/utils/assets.cjs");
28
28
  const PriceDataSource_js_1 = require("./data-sources/PriceDataSource.cjs");
29
29
  const RpcDataSource_js_1 = require("./data-sources/RpcDataSource.cjs");
@@ -41,7 +41,6 @@ const healAssetsInfoMetadata_js_1 = require("./migrations/healAssetsInfoMetadata
41
41
  const constants_js_1 = require("./utils/constants.cjs");
42
42
  const customAssetsRpcSupplement_js_1 = require("./utils/customAssetsRpcSupplement.cjs");
43
43
  const index_js_1 = require("./utils/index.cjs");
44
- const processAccountActivityBalanceUpdates_js_1 = require("./utils/processAccountActivityBalanceUpdates.cjs");
45
44
  const NATIVE_ASSETS_QUERY_KEY = ['nativeAssets'];
46
45
  /** Stable empty map so memoized formatters are not busted by `?? {}` identity churn. */
47
46
  const EMPTY_NATIVE_ASSET_MAP = {};
@@ -310,7 +309,7 @@ class AssetsController extends base_controller_1.BaseController {
310
309
  * re-subscriptions when the account set hasn't actually changed.
311
310
  */
312
311
  _AssetsController_lastKnownAccountIds.set(this, new Set());
313
- _AssetsController_backendWebsocketDataSource.set(this, void 0);
312
+ _AssetsController_accountActivityDataSource.set(this, void 0);
314
313
  _AssetsController_accountsApiDataSource.set(this, void 0);
315
314
  _AssetsController_snapDataSource.set(this, void 0);
316
315
  _AssetsController_rpcDataSource.set(this, void 0);
@@ -351,11 +350,11 @@ class AssetsController extends base_controller_1.BaseController {
351
350
  });
352
351
  }
353
352
  }, "f");
354
- __classPrivateFieldSet(this, _AssetsController_backendWebsocketDataSource, new BackendWebsocketDataSource_js_1.BackendWebsocketDataSource({
353
+ __classPrivateFieldSet(this, _AssetsController_accountActivityDataSource, new AccountActivityDataSource_js_1.AccountActivityDataSource({
355
354
  messenger: this.messenger,
356
- queryApiClient,
357
355
  onActiveChainsUpdated: __classPrivateFieldGet(this, _AssetsController_onActiveChainsUpdated, "f"),
358
356
  getAssetType: (assetId) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getAssetType).call(this, assetId),
357
+ onAssetsUpdate: (response, request) => this.handleAssetsUpdate(response, __classPrivateFieldGet(this, _AssetsController_accountActivityDataSource, "f").getName(), request),
359
358
  }), "f");
360
359
  __classPrivateFieldSet(this, _AssetsController_accountsApiDataSource, new AccountsApiDataSource_js_1.AccountsApiDataSource({
361
360
  messenger: this.messenger,
@@ -941,12 +940,12 @@ class AssetsController extends base_controller_1.BaseController {
941
940
  ...resolvedRequest,
942
941
  dataTypes: resolvedRequest.dataTypes.filter((dt) => dt !== 'metadata' && dt !== 'price'),
943
942
  };
944
- // Graduate custom assets only when AccountsAPI / Websocket reports them.
945
- // RPC already fetches custom assets on purpose, and Snap handles non-EVM
946
- // chains the rule does not apply to, so skip the middleware for those.
943
+ // Graduate custom assets only when AccountsAPI / AccountActivity reports
944
+ // them. RPC already fetches custom assets on purpose, and Snap handles
945
+ // non-EVM chains the rule does not apply to, so skip the middleware for
946
+ // those.
947
947
  const shouldGraduateCustomAssets = sourceId === 'AccountsApiDataSource' ||
948
- sourceId === 'BackendWebsocketDataSource' ||
949
- sourceId === 'AccountActivityService';
948
+ sourceId === 'AccountActivityDataSource';
950
949
  const enrichmentSources = [
951
950
  ...(shouldGraduateCustomAssets
952
951
  ? [__classPrivateFieldGet(this, _AssetsController_customAssetGraduationMiddleware, "f")]
@@ -984,7 +983,7 @@ class AssetsController extends base_controller_1.BaseController {
984
983
  subscriptionCount: __classPrivateFieldGet(this, _AssetsController_activeSubscriptions, "f").size,
985
984
  });
986
985
  // Destroy instantiated data sources
987
- __classPrivateFieldGet(this, _AssetsController_backendWebsocketDataSource, "f")?.destroy?.();
986
+ __classPrivateFieldGet(this, _AssetsController_accountActivityDataSource, "f")?.destroy?.();
988
987
  __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f")?.destroy?.();
989
988
  __classPrivateFieldGet(this, _AssetsController_snapDataSource, "f")?.destroy?.();
990
989
  __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")?.destroy?.();
@@ -1012,7 +1011,7 @@ class AssetsController extends base_controller_1.BaseController {
1012
1011
  }
1013
1012
  }
1014
1013
  exports.AssetsController = AssetsController;
1015
- _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctionality = new WeakMap(), _AssetsController_defaultUpdateInterval = new WeakMap(), _AssetsController_trace = new WeakMap(), _AssetsController_captureException = new WeakMap(), _AssetsController_firstInitFetchReported = new WeakMap(), _AssetsController_stateSizeReported = new WeakMap(), _AssetsController_uiOpen = new WeakMap(), _AssetsController_keyringUnlocked = new WeakMap(), _AssetsController_controllerMutex = new WeakMap(), _AssetsController_accountRefreshMutex = new WeakMap(), _AssetsController_activeSubscriptions = new WeakMap(), _AssetsController_enabledChains = new WeakMap(), _AssetsController_lastKnownAccountIds = new WeakMap(), _AssetsController_backendWebsocketDataSource = new WeakMap(), _AssetsController_accountsApiDataSource = new WeakMap(), _AssetsController_snapDataSource = new WeakMap(), _AssetsController_rpcDataSource = new WeakMap(), _AssetsController_stakedBalanceDataSource = new WeakMap(), _AssetsController_priceDataSource = new WeakMap(), _AssetsController_detectionMiddleware = new WeakMap(), _AssetsController_customAssetGraduationMiddleware = new WeakMap(), _AssetsController_rpcFallbackMiddleware = new WeakMap(), _AssetsController_tokenDataSource = new WeakMap(), _AssetsController_unsubscribeBasicFunctionality = new WeakMap(), _AssetsController_queryApiClient = new WeakMap(), _AssetsController_onActiveChainsUpdated = new WeakMap(), _AssetsController_instances = new WeakSet(), _AssetsController_emitTrace = function _AssetsController_emitTrace(name, data, tags = {
1014
+ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctionality = new WeakMap(), _AssetsController_defaultUpdateInterval = new WeakMap(), _AssetsController_trace = new WeakMap(), _AssetsController_captureException = new WeakMap(), _AssetsController_firstInitFetchReported = new WeakMap(), _AssetsController_stateSizeReported = new WeakMap(), _AssetsController_uiOpen = new WeakMap(), _AssetsController_keyringUnlocked = new WeakMap(), _AssetsController_controllerMutex = new WeakMap(), _AssetsController_accountRefreshMutex = new WeakMap(), _AssetsController_activeSubscriptions = new WeakMap(), _AssetsController_enabledChains = new WeakMap(), _AssetsController_lastKnownAccountIds = new WeakMap(), _AssetsController_accountActivityDataSource = new WeakMap(), _AssetsController_accountsApiDataSource = new WeakMap(), _AssetsController_snapDataSource = new WeakMap(), _AssetsController_rpcDataSource = new WeakMap(), _AssetsController_stakedBalanceDataSource = new WeakMap(), _AssetsController_priceDataSource = new WeakMap(), _AssetsController_detectionMiddleware = new WeakMap(), _AssetsController_customAssetGraduationMiddleware = new WeakMap(), _AssetsController_rpcFallbackMiddleware = new WeakMap(), _AssetsController_tokenDataSource = new WeakMap(), _AssetsController_unsubscribeBasicFunctionality = new WeakMap(), _AssetsController_queryApiClient = new WeakMap(), _AssetsController_onActiveChainsUpdated = new WeakMap(), _AssetsController_instances = new WeakSet(), _AssetsController_emitTrace = function _AssetsController_emitTrace(name, data, tags = {
1016
1015
  controller: 'AssetsController',
1017
1016
  }) {
1018
1017
  if (!__classPrivateFieldGet(this, _AssetsController_trace, "f")) {
@@ -1070,7 +1069,7 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
1070
1069
  return [];
1071
1070
  }, _AssetsController_allBalanceDataSources_get = function _AssetsController_allBalanceDataSources_get() {
1072
1071
  return [
1073
- __classPrivateFieldGet(this, _AssetsController_backendWebsocketDataSource, "f"),
1072
+ __classPrivateFieldGet(this, _AssetsController_accountActivityDataSource, "f"),
1074
1073
  __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f"),
1075
1074
  __classPrivateFieldGet(this, _AssetsController_snapDataSource, "f"),
1076
1075
  __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f"),
@@ -1189,12 +1188,6 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
1189
1188
  this.messenger.subscribe('TransactionController:transactionConfirmed', (transactionMeta) => {
1190
1189
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_onTransactionConfirmed).call(this, transactionMeta);
1191
1190
  });
1192
- // Real-time post-tx balances from AccountActivityService (same WS payload as
1193
- // TokenBalancesController; BackendWebsocketDataSource may not receive the
1194
- // callback when AccountActivityService owns the server subscription).
1195
- this.messenger.subscribe('AccountActivityService:balanceUpdated', (event) => {
1196
- __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_onAccountActivityBalanceUpdated).call(this, event);
1197
- });
1198
1191
  }, _AssetsController_onUnapprovedTransactionAdded = function _AssetsController_onUnapprovedTransactionAdded(transactionMeta) {
1199
1192
  const hexChainId = transactionMeta.chainId;
1200
1193
  if (!hexChainId) {
@@ -1237,26 +1230,6 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
1237
1230
  }).catch((error) => {
1238
1231
  log('Failed to refresh assets after transaction confirmed', { error });
1239
1232
  });
1240
- }, _AssetsController_onAccountActivityBalanceUpdated = function _AssetsController_onAccountActivityBalanceUpdated({ address, chain, updates, }) {
1241
- const account = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getSelectedAccounts).call(this).find((a) => a.address.startsWith('0x')
1242
- ? a.address.toLowerCase() === address.toLowerCase()
1243
- : a.address === address);
1244
- if (!account) {
1245
- return;
1246
- }
1247
- const chainId = chain;
1248
- const response = (0, processAccountActivityBalanceUpdates_js_1.processAccountActivityBalanceUpdates)(updates, account.id, (assetId) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getAssetType).call(this, assetId));
1249
- if (!response.assetsBalance) {
1250
- return;
1251
- }
1252
- const request = {
1253
- accountsWithSupportedChains: [{ account, supportedChains: [chainId] }],
1254
- chainIds: [chainId],
1255
- dataTypes: ['balance', 'metadata'],
1256
- };
1257
- this.handleAssetsUpdate(response, 'AccountActivityService', request).catch((error) => {
1258
- log('Failed to apply AccountActivityService balance update', { error });
1259
- });
1260
1233
  }, _AssetsController_updateActive = function _AssetsController_updateActive() {
1261
1234
  const shouldRun = __classPrivateFieldGet(this, _AssetsController_uiOpen, "f") && __classPrivateFieldGet(this, _AssetsController_keyringUnlocked, "f");
1262
1235
  if (shouldRun) {
@@ -1366,11 +1339,11 @@ async function _AssetsController_runStartupRefresh(accounts) {
1366
1339
  const previousSet = new Set(previous);
1367
1340
  const addedChains = activeChains.filter((ch) => !previousSet.has(ch));
1368
1341
  const removedChains = previous.filter((ch) => !activeChains.includes(ch));
1342
+ // Refresh subscriptions to use updated data source availability.
1343
+ // No one-time fetch needed here — #handleEnabledNetworksChanged
1344
+ // handles fetches when the user enables a network, and
1345
+ // #subscribeAssets re-subscribes with the correct chain assignment.
1369
1346
  if (addedChains.length > 0 || removedChains.length > 0) {
1370
- // Refresh subscriptions to use updated data source availability.
1371
- // No one-time fetch needed here — #handleEnabledNetworksChanged
1372
- // handles fetches when the user enables a network, and
1373
- // #subscribeAssets re-subscribes with the correct chain assignment.
1374
1347
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_subscribeAssets).call(this);
1375
1348
  }
1376
1349
  }, _AssetsController_executeMiddlewares =
@@ -1954,8 +1927,10 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
1954
1927
  }, _AssetsController_subscribeAssetsBalance = function _AssetsController_subscribeAssetsBalance(accounts, chainIds) {
1955
1928
  const chainToAccounts = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_buildChainToAccountsMap).call(this, accounts, new Set(chainIds));
1956
1929
  const remainingChains = new Set(chainToAccounts.keys());
1957
- // When basic functionality is on, use all balance data sources; when off, RPC only.
1958
- const balanceDataSources = __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)
1930
+ // When basic functionality is on, use all balance data sources; when off,
1931
+ // RPC only.
1932
+ const isBasicFunctionality = __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this);
1933
+ const balanceDataSources = isBasicFunctionality
1959
1934
  ? __classPrivateFieldGet(this, _AssetsController_instances, "a", _AssetsController_allBalanceDataSources_get)
1960
1935
  : [__classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")];
1961
1936
  let rpcAssignedChains = new Set();
@@ -2253,14 +2228,11 @@ async function _AssetsController_handleAccountGroupChanged() {
2253
2228
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_fetchMissingPricesWithoutCache).call(this, accounts, [caipChainId]);
2254
2229
  }, _AssetsController_refreshActiveChainsOnNetworkSwitch =
2255
2230
  /**
2256
- * Refresh data-source `activeChains` after an EVM network switch so API/WS/Rpc
2231
+ * Refresh data-source `activeChains` after an EVM network switch so API/Rpc
2257
2232
  * chain claiming is not stuck on an empty or stale init-time list.
2258
2233
  */
2259
2234
  async function _AssetsController_refreshActiveChainsOnNetworkSwitch() {
2260
- await Promise.all([
2261
- __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f").refreshActiveChains(),
2262
- __classPrivateFieldGet(this, _AssetsController_backendWebsocketDataSource, "f").refreshActiveChains(),
2263
- ]);
2235
+ await __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f").refreshActiveChains();
2264
2236
  __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f").refreshActiveChainsFromNetworkState();
2265
2237
  }, _AssetsController_getSelectedEvmChainIdFromNetworkState = function _AssetsController_getSelectedEvmChainIdFromNetworkState(networkState) {
2266
2238
  try {