@metamask-previews/assets-controller 11.3.1-preview-a42e8d0d2 → 12.0.0-preview-d2f661012

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 (60) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/dist/AssetsController.cjs +21 -52
  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 +21 -52
  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/AccountsApiDataSource.cjs +22 -0
  19. package/dist/data-sources/AccountsApiDataSource.cjs.map +1 -1
  20. package/dist/data-sources/AccountsApiDataSource.d.cts.map +1 -1
  21. package/dist/data-sources/AccountsApiDataSource.d.mts.map +1 -1
  22. package/dist/data-sources/AccountsApiDataSource.mjs +22 -0
  23. package/dist/data-sources/AccountsApiDataSource.mjs.map +1 -1
  24. package/dist/data-sources/index.cjs +4 -4
  25. package/dist/data-sources/index.cjs.map +1 -1
  26. package/dist/data-sources/index.d.cts +1 -1
  27. package/dist/data-sources/index.d.cts.map +1 -1
  28. package/dist/data-sources/index.d.mts +1 -1
  29. package/dist/data-sources/index.d.mts.map +1 -1
  30. package/dist/data-sources/index.mjs +1 -1
  31. package/dist/data-sources/index.mjs.map +1 -1
  32. package/dist/index.cjs +22 -26
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.d.cts +0 -2
  35. package/dist/index.d.cts.map +1 -1
  36. package/dist/index.d.mts +0 -2
  37. package/dist/index.d.mts.map +1 -1
  38. package/dist/index.mjs +0 -2
  39. package/dist/index.mjs.map +1 -1
  40. package/dist/middlewares/CustomAssetGraduationMiddleware.cjs +1 -1
  41. package/dist/middlewares/CustomAssetGraduationMiddleware.cjs.map +1 -1
  42. package/dist/middlewares/CustomAssetGraduationMiddleware.mjs +1 -1
  43. package/dist/middlewares/CustomAssetGraduationMiddleware.mjs.map +1 -1
  44. package/package.json +9 -9
  45. package/dist/data-sources/BackendWebsocketDataSource.cjs +0 -597
  46. package/dist/data-sources/BackendWebsocketDataSource.cjs.map +0 -1
  47. package/dist/data-sources/BackendWebsocketDataSource.d.cts +0 -65
  48. package/dist/data-sources/BackendWebsocketDataSource.d.cts.map +0 -1
  49. package/dist/data-sources/BackendWebsocketDataSource.d.mts +0 -65
  50. package/dist/data-sources/BackendWebsocketDataSource.d.mts.map +0 -1
  51. package/dist/data-sources/BackendWebsocketDataSource.mjs +0 -592
  52. package/dist/data-sources/BackendWebsocketDataSource.mjs.map +0 -1
  53. package/dist/utils/processAccountActivityBalanceUpdates.cjs +0 -54
  54. package/dist/utils/processAccountActivityBalanceUpdates.cjs.map +0 -1
  55. package/dist/utils/processAccountActivityBalanceUpdates.d.cts +0 -13
  56. package/dist/utils/processAccountActivityBalanceUpdates.d.cts.map +0 -1
  57. package/dist/utils/processAccountActivityBalanceUpdates.d.mts +0 -13
  58. package/dist/utils/processAccountActivityBalanceUpdates.d.mts.map +0 -1
  59. package/dist/utils/processAccountActivityBalanceUpdates.mjs +0 -47
  60. package/dist/utils/processAccountActivityBalanceUpdates.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [12.0.0]
11
+
12
+ ### Changed
13
+
14
+ - **BREAKING:** `AccountActivityDataSource` is now the highest-priority balance data source and participates in chain-claiming: chains it reports as "up" from `AccountActivityService:statusChanged`. The `AssetsController` messenger must now allow the `AccountActivityService:statusChanged` event ([#9517](https://github.com/MetaMask/core/pull/9517))
15
+ - Bump `@metamask/accounts-controller` from `^39.0.5` to `^39.0.6` ([#9735](https://github.com/MetaMask/core/pull/9735))
16
+ - Bump `@metamask/assets-controllers` from `^110.0.2` to `^110.0.3` ([#9735](https://github.com/MetaMask/core/pull/9735))
17
+ - Bump `@metamask/core-backend` from `^8.0.0` to `^8.1.0` ([#9735](https://github.com/MetaMask/core/pull/9735))
18
+ - Bump `@metamask/network-controller` from `^34.0.0` to `^35.0.0` ([#9735](https://github.com/MetaMask/core/pull/9735))
19
+ - Bump `@metamask/network-enablement-controller` from `^6.0.0` to `^6.0.1` ([#9735](https://github.com/MetaMask/core/pull/9735))
20
+ - Bump `@metamask/polling-controller` from `^16.0.8` to `^16.0.9` ([#9735](https://github.com/MetaMask/core/pull/9735))
21
+ - Bump `@metamask/remote-feature-flag-controller` from `^4.2.2` to `^5.0.0` ([#9735](https://github.com/MetaMask/core/pull/9735))
22
+ - Bump `@metamask/transaction-controller` from `^69.3.0` to `^69.4.0` ([#9735](https://github.com/MetaMask/core/pull/9735))
23
+
24
+ ### Removed
25
+
26
+ - **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))
27
+
10
28
  ## [11.3.1]
11
29
 
12
30
  ### Changed
@@ -816,7 +834,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
816
834
  - Refactor `RpcDataSource` to delegate polling to `BalanceFetcher` and `TokenDetector` services ([#7709](https://github.com/MetaMask/core/pull/7709))
817
835
  - Refactor `BalanceFetcher` and `TokenDetector` to extend `StaticIntervalPollingControllerOnly` for independent polling management ([#7709](https://github.com/MetaMask/core/pull/7709))
818
836
 
819
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@11.3.1...HEAD
837
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@12.0.0...HEAD
838
+ [12.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@11.3.1...@metamask/assets-controller@12.0.0
820
839
  [11.3.1]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@11.3.0...@metamask/assets-controller@11.3.1
821
840
  [11.3.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@11.2.1...@metamask/assets-controller@11.3.0
822
841
  [11.2.1]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@11.2.0...@metamask/assets-controller@11.2.1
@@ -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_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_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 trace_js_1 = require("./utils/trace.cjs");
46
45
  const NATIVE_ASSETS_QUERY_KEY = ['nativeAssets'];
47
46
  /** Stable empty map so memoized formatters are not busted by `?? {}` identity churn. */
@@ -316,7 +315,7 @@ class AssetsController extends base_controller_1.BaseController {
316
315
  * re-subscriptions when the account set hasn't actually changed.
317
316
  */
318
317
  _AssetsController_lastKnownAccountIds.set(this, new Set());
319
- _AssetsController_backendWebsocketDataSource.set(this, void 0);
318
+ _AssetsController_accountActivityDataSource.set(this, void 0);
320
319
  _AssetsController_accountsApiDataSource.set(this, void 0);
321
320
  _AssetsController_snapDataSource.set(this, void 0);
322
321
  _AssetsController_rpcDataSource.set(this, void 0);
@@ -357,11 +356,11 @@ class AssetsController extends base_controller_1.BaseController {
357
356
  });
358
357
  }
359
358
  }, "f");
360
- __classPrivateFieldSet(this, _AssetsController_backendWebsocketDataSource, new BackendWebsocketDataSource_js_1.BackendWebsocketDataSource({
359
+ __classPrivateFieldSet(this, _AssetsController_accountActivityDataSource, new AccountActivityDataSource_js_1.AccountActivityDataSource({
361
360
  messenger: this.messenger,
362
- queryApiClient,
363
361
  onActiveChainsUpdated: __classPrivateFieldGet(this, _AssetsController_onActiveChainsUpdated, "f"),
364
362
  getAssetType: (assetId) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getAssetType).call(this, assetId),
363
+ onAssetsUpdate: (response, request) => this.handleAssetsUpdate(response, __classPrivateFieldGet(this, _AssetsController_accountActivityDataSource, "f").getName(), request),
365
364
  }), "f");
366
365
  __classPrivateFieldSet(this, _AssetsController_accountsApiDataSource, new AccountsApiDataSource_js_1.AccountsApiDataSource({
367
366
  messenger: this.messenger,
@@ -1009,12 +1008,12 @@ class AssetsController extends base_controller_1.BaseController {
1009
1008
  ...resolvedRequest,
1010
1009
  dataTypes: resolvedRequest.dataTypes.filter((dt) => dt !== 'metadata' && dt !== 'price'),
1011
1010
  };
1012
- // Graduate custom assets only when AccountsAPI / Websocket reports them.
1013
- // RPC already fetches custom assets on purpose, and Snap handles non-EVM
1014
- // chains the rule does not apply to, so skip the middleware for those.
1011
+ // Graduate custom assets only when AccountsAPI / AccountActivity reports
1012
+ // them. RPC already fetches custom assets on purpose, and Snap handles
1013
+ // non-EVM chains the rule does not apply to, so skip the middleware for
1014
+ // those.
1015
1015
  const shouldGraduateCustomAssets = sourceId === 'AccountsApiDataSource' ||
1016
- sourceId === 'BackendWebsocketDataSource' ||
1017
- sourceId === 'AccountActivityService';
1016
+ sourceId === 'AccountActivityDataSource';
1018
1017
  const enrichmentSources = [
1019
1018
  ...(shouldGraduateCustomAssets
1020
1019
  ? [__classPrivateFieldGet(this, _AssetsController_customAssetGraduationMiddleware, "f")]
@@ -1066,7 +1065,7 @@ class AssetsController extends base_controller_1.BaseController {
1066
1065
  subscriptionCount: __classPrivateFieldGet(this, _AssetsController_activeSubscriptions, "f").size,
1067
1066
  });
1068
1067
  // Destroy instantiated data sources
1069
- __classPrivateFieldGet(this, _AssetsController_backendWebsocketDataSource, "f")?.destroy?.();
1068
+ __classPrivateFieldGet(this, _AssetsController_accountActivityDataSource, "f")?.destroy?.();
1070
1069
  __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f")?.destroy?.();
1071
1070
  __classPrivateFieldGet(this, _AssetsController_snapDataSource, "f")?.destroy?.();
1072
1071
  __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")?.destroy?.();
@@ -1094,7 +1093,7 @@ class AssetsController extends base_controller_1.BaseController {
1094
1093
  }
1095
1094
  }
1096
1095
  exports.AssetsController = AssetsController;
1097
- _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_emitStateSizeTrace = function _AssetsController_emitStateSizeTrace() {
1096
+ _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_emitStateSizeTrace = function _AssetsController_emitStateSizeTrace() {
1098
1097
  if (!__classPrivateFieldGet(this, _AssetsController_trace, "f") || __classPrivateFieldGet(this, _AssetsController_stateSizeReported, "f")) {
1099
1098
  return;
1100
1099
  }
@@ -1149,7 +1148,7 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
1149
1148
  return [];
1150
1149
  }, _AssetsController_allBalanceDataSources_get = function _AssetsController_allBalanceDataSources_get() {
1151
1150
  return [
1152
- __classPrivateFieldGet(this, _AssetsController_backendWebsocketDataSource, "f"),
1151
+ __classPrivateFieldGet(this, _AssetsController_accountActivityDataSource, "f"),
1153
1152
  __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f"),
1154
1153
  __classPrivateFieldGet(this, _AssetsController_snapDataSource, "f"),
1155
1154
  __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f"),
@@ -1268,12 +1267,6 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
1268
1267
  this.messenger.subscribe('TransactionController:transactionConfirmed', (transactionMeta) => {
1269
1268
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_onTransactionConfirmed).call(this, transactionMeta);
1270
1269
  });
1271
- // Real-time post-tx balances from AccountActivityService (same WS payload as
1272
- // TokenBalancesController; BackendWebsocketDataSource may not receive the
1273
- // callback when AccountActivityService owns the server subscription).
1274
- this.messenger.subscribe('AccountActivityService:balanceUpdated', (event) => {
1275
- __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_onAccountActivityBalanceUpdated).call(this, event);
1276
- });
1277
1270
  }, _AssetsController_onUnapprovedTransactionAdded = function _AssetsController_onUnapprovedTransactionAdded(transactionMeta) {
1278
1271
  const hexChainId = transactionMeta.chainId;
1279
1272
  if (!hexChainId) {
@@ -1316,26 +1309,6 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
1316
1309
  }).catch((error) => {
1317
1310
  log('Failed to refresh assets after transaction confirmed', { error });
1318
1311
  });
1319
- }, _AssetsController_onAccountActivityBalanceUpdated = function _AssetsController_onAccountActivityBalanceUpdated({ address, chain, updates, }) {
1320
- const account = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getSelectedAccounts).call(this).find((a) => a.address.startsWith('0x')
1321
- ? a.address.toLowerCase() === address.toLowerCase()
1322
- : a.address === address);
1323
- if (!account) {
1324
- return;
1325
- }
1326
- const chainId = chain;
1327
- const response = (0, processAccountActivityBalanceUpdates_js_1.processAccountActivityBalanceUpdates)(updates, account.id, (assetId) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getAssetType).call(this, assetId));
1328
- if (!response.assetsBalance) {
1329
- return;
1330
- }
1331
- const request = {
1332
- accountsWithSupportedChains: [{ account, supportedChains: [chainId] }],
1333
- chainIds: [chainId],
1334
- dataTypes: ['balance', 'metadata'],
1335
- };
1336
- this.handleAssetsUpdate(response, 'AccountActivityService', request).catch((error) => {
1337
- log('Failed to apply AccountActivityService balance update', { error });
1338
- });
1339
1312
  }, _AssetsController_updateActive = function _AssetsController_updateActive() {
1340
1313
  const shouldRun = __classPrivateFieldGet(this, _AssetsController_uiOpen, "f") && __classPrivateFieldGet(this, _AssetsController_keyringUnlocked, "f");
1341
1314
  if (shouldRun) {
@@ -1433,7 +1406,7 @@ async function _AssetsController_runStartupRefresh(accounts) {
1433
1406
  }, _AssetsController_registerActionHandlers = function _AssetsController_registerActionHandlers() {
1434
1407
  this.messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);
1435
1408
  }, _AssetsController_handleActiveChainsUpdate = function _AssetsController_handleActiveChainsUpdate(dataSourceId, activeChains, previousChains) {
1436
- if (!__classPrivateFieldGet(this, _AssetsController_isEnabled, "f").call(this)) {
1409
+ if (!__classPrivateFieldGet(this, _AssetsController_uiOpen, "f") || !__classPrivateFieldGet(this, _AssetsController_keyringUnlocked, "f") || !__classPrivateFieldGet(this, _AssetsController_isEnabled, "f").call(this)) {
1437
1410
  return;
1438
1411
  }
1439
1412
  log('Data source active chains changed', {
@@ -1445,11 +1418,8 @@ async function _AssetsController_runStartupRefresh(accounts) {
1445
1418
  const previousSet = new Set(previous);
1446
1419
  const addedChains = activeChains.filter((ch) => !previousSet.has(ch));
1447
1420
  const removedChains = previous.filter((ch) => !activeChains.includes(ch));
1421
+ // Refresh subscriptions to use updated data source availability.
1448
1422
  if (addedChains.length > 0 || removedChains.length > 0) {
1449
- // Refresh subscriptions to use updated data source availability.
1450
- // No one-time fetch needed here — #handleEnabledNetworksChanged
1451
- // handles fetches when the user enables a network, and
1452
- // #subscribeAssets re-subscribes with the correct chain assignment.
1453
1423
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_subscribeAssets).call(this);
1454
1424
  }
1455
1425
  }, _AssetsController_executeMiddlewares =
@@ -2054,8 +2024,10 @@ async function _AssetsController_executeMiddlewares(params) {
2054
2024
  }, _AssetsController_subscribeAssetsBalance = function _AssetsController_subscribeAssetsBalance(accounts, chainIds) {
2055
2025
  const chainToAccounts = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_buildChainToAccountsMap).call(this, accounts, new Set(chainIds));
2056
2026
  const remainingChains = new Set(chainToAccounts.keys());
2057
- // When basic functionality is on, use all balance data sources; when off, RPC only.
2058
- const balanceDataSources = __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)
2027
+ // When basic functionality is on, use all balance data sources; when off,
2028
+ // RPC only.
2029
+ const isBasicFunctionality = __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this);
2030
+ const balanceDataSources = isBasicFunctionality
2059
2031
  ? __classPrivateFieldGet(this, _AssetsController_instances, "a", _AssetsController_allBalanceDataSources_get)
2060
2032
  : [__classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")];
2061
2033
  let rpcAssignedChains = new Set();
@@ -2357,14 +2329,11 @@ async function _AssetsController_handleAccountGroupChanged() {
2357
2329
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_fetchMissingPricesWithoutCache).call(this, accounts, [caipChainId]);
2358
2330
  }, _AssetsController_refreshActiveChainsOnNetworkSwitch =
2359
2331
  /**
2360
- * Refresh data-source `activeChains` after an EVM network switch so API/WS/Rpc
2332
+ * Refresh data-source `activeChains` after an EVM network switch so API/Rpc
2361
2333
  * chain claiming is not stuck on an empty or stale init-time list.
2362
2334
  */
2363
2335
  async function _AssetsController_refreshActiveChainsOnNetworkSwitch() {
2364
- await Promise.all([
2365
- __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f").refreshActiveChains(),
2366
- __classPrivateFieldGet(this, _AssetsController_backendWebsocketDataSource, "f").refreshActiveChains(),
2367
- ]);
2336
+ await __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f").refreshActiveChains();
2368
2337
  __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f").refreshActiveChainsFromNetworkState();
2369
2338
  }, _AssetsController_getSelectedEvmChainIdFromNetworkState = function _AssetsController_getSelectedEvmChainIdFromNetworkState(networkState) {
2370
2339
  try {