@metamask-previews/assets-controller 11.2.1-preview-764a19ce8 → 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 (62) hide show
  1. package/CHANGELOG.md +20 -5
  2. package/dist/AssetsController.cjs +24 -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 +24 -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/SnapDataSource.cjs +10 -49
  19. package/dist/data-sources/SnapDataSource.cjs.map +1 -1
  20. package/dist/data-sources/SnapDataSource.d.cts +8 -0
  21. package/dist/data-sources/SnapDataSource.d.cts.map +1 -1
  22. package/dist/data-sources/SnapDataSource.d.mts +8 -0
  23. package/dist/data-sources/SnapDataSource.d.mts.map +1 -1
  24. package/dist/data-sources/SnapDataSource.mjs +10 -49
  25. package/dist/data-sources/SnapDataSource.mjs.map +1 -1
  26. package/dist/data-sources/index.cjs +4 -4
  27. package/dist/data-sources/index.cjs.map +1 -1
  28. package/dist/data-sources/index.d.cts +1 -1
  29. package/dist/data-sources/index.d.cts.map +1 -1
  30. package/dist/data-sources/index.d.mts +1 -1
  31. package/dist/data-sources/index.d.mts.map +1 -1
  32. package/dist/data-sources/index.mjs +1 -1
  33. package/dist/data-sources/index.mjs.map +1 -1
  34. package/dist/index.cjs +22 -26
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.d.cts +0 -2
  37. package/dist/index.d.cts.map +1 -1
  38. package/dist/index.d.mts +0 -2
  39. package/dist/index.d.mts.map +1 -1
  40. package/dist/index.mjs +0 -2
  41. package/dist/index.mjs.map +1 -1
  42. package/dist/middlewares/CustomAssetGraduationMiddleware.cjs +1 -1
  43. package/dist/middlewares/CustomAssetGraduationMiddleware.cjs.map +1 -1
  44. package/dist/middlewares/CustomAssetGraduationMiddleware.mjs +1 -1
  45. package/dist/middlewares/CustomAssetGraduationMiddleware.mjs.map +1 -1
  46. package/package.json +4 -4
  47. package/dist/data-sources/BackendWebsocketDataSource.cjs +0 -597
  48. package/dist/data-sources/BackendWebsocketDataSource.cjs.map +0 -1
  49. package/dist/data-sources/BackendWebsocketDataSource.d.cts +0 -65
  50. package/dist/data-sources/BackendWebsocketDataSource.d.cts.map +0 -1
  51. package/dist/data-sources/BackendWebsocketDataSource.d.mts +0 -65
  52. package/dist/data-sources/BackendWebsocketDataSource.d.mts.map +0 -1
  53. package/dist/data-sources/BackendWebsocketDataSource.mjs +0 -592
  54. package/dist/data-sources/BackendWebsocketDataSource.mjs.map +0 -1
  55. package/dist/utils/processAccountActivityBalanceUpdates.cjs +0 -54
  56. package/dist/utils/processAccountActivityBalanceUpdates.cjs.map +0 -1
  57. package/dist/utils/processAccountActivityBalanceUpdates.d.cts +0 -13
  58. package/dist/utils/processAccountActivityBalanceUpdates.d.cts.map +0 -1
  59. package/dist/utils/processAccountActivityBalanceUpdates.d.mts +0 -13
  60. package/dist/utils/processAccountActivityBalanceUpdates.d.mts.map +0 -1
  61. package/dist/utils/processAccountActivityBalanceUpdates.mjs +0 -47
  62. package/dist/utils/processAccountActivityBalanceUpdates.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Added
11
+
12
+ - `SnapDataSource` now preserves optional balance `metadata` from snap keyrings into `assetsBalance` when handling `AccountsController:accountBalancesUpdated` and `getAccountBalances` results ([#9564](https://github.com/MetaMask/core/pull/9564))
13
+
14
+ ### Changed
15
+
16
+ - Bump `@metamask/keyring-api` from `^23.5.0` to `^23.7.0` ([#9676](https://github.com/MetaMask/core/pull/9676))
17
+ - Bump `@metamask/keyring-internal-api` from `^11.0.1` to `^11.0.2` ([#9676](https://github.com/MetaMask/core/pull/9676))
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))
25
+
26
+ ### Fixed
27
+
28
+ - `SnapDataSource` now delivers snap-sourced balance updates directly to `AssetsController` via a constructor-supplied `onAssetsUpdate` callback instead of fanning out to `activeSubscriptions`, so updates (e.g. Tron energy/bandwidth) are no longer dropped when no active subscription is tracked for the chain in the SnapDataSource ([#9656](https://github.com/MetaMask/core/pull/9656))
29
+
10
30
  ## [11.2.1]
11
31
 
12
32
  ### Fixed
@@ -55,11 +75,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
55
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))
56
76
  - Bump `@metamask/network-enablement-controller` from `^5.5.0` to `^5.6.0` ([#9520](https://github.com/MetaMask/core/pull/9520))
57
77
  - Bump `@metamask/phishing-controller` from `^17.2.1` to `^17.3.0` ([#9532](https://github.com/MetaMask/core/pull/9532))
58
- - Bump `@metamask/transaction-controller` from `^69.0.0` to `^69.1.0` ([#9568](https://github.com/MetaMask/core/pull/9568))
59
-
60
- ### Fixed
61
-
62
- - `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))
63
78
 
64
79
  ## [11.0.0]
65
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,
@@ -366,6 +365,7 @@ class AssetsController extends base_controller_1.BaseController {
366
365
  __classPrivateFieldSet(this, _AssetsController_snapDataSource, new SnapDataSource_js_1.SnapDataSource({
367
366
  messenger: this.messenger,
368
367
  onActiveChainsUpdated: __classPrivateFieldGet(this, _AssetsController_onActiveChainsUpdated, "f"),
368
+ onAssetsUpdate: (response) => this.handleAssetsUpdate(response, 'SnapDataSource'),
369
369
  }), "f");
370
370
  __classPrivateFieldSet(this, _AssetsController_rpcDataSource, new RpcDataSource_js_1.RpcDataSource({
371
371
  messenger: this.messenger,
@@ -940,12 +940,12 @@ class AssetsController extends base_controller_1.BaseController {
940
940
  ...resolvedRequest,
941
941
  dataTypes: resolvedRequest.dataTypes.filter((dt) => dt !== 'metadata' && dt !== 'price'),
942
942
  };
943
- // Graduate custom assets only when AccountsAPI / Websocket reports them.
944
- // RPC already fetches custom assets on purpose, and Snap handles non-EVM
945
- // 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.
946
947
  const shouldGraduateCustomAssets = sourceId === 'AccountsApiDataSource' ||
947
- sourceId === 'BackendWebsocketDataSource' ||
948
- sourceId === 'AccountActivityService';
948
+ sourceId === 'AccountActivityDataSource';
949
949
  const enrichmentSources = [
950
950
  ...(shouldGraduateCustomAssets
951
951
  ? [__classPrivateFieldGet(this, _AssetsController_customAssetGraduationMiddleware, "f")]
@@ -983,7 +983,7 @@ class AssetsController extends base_controller_1.BaseController {
983
983
  subscriptionCount: __classPrivateFieldGet(this, _AssetsController_activeSubscriptions, "f").size,
984
984
  });
985
985
  // Destroy instantiated data sources
986
- __classPrivateFieldGet(this, _AssetsController_backendWebsocketDataSource, "f")?.destroy?.();
986
+ __classPrivateFieldGet(this, _AssetsController_accountActivityDataSource, "f")?.destroy?.();
987
987
  __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f")?.destroy?.();
988
988
  __classPrivateFieldGet(this, _AssetsController_snapDataSource, "f")?.destroy?.();
989
989
  __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")?.destroy?.();
@@ -1011,7 +1011,7 @@ class AssetsController extends base_controller_1.BaseController {
1011
1011
  }
1012
1012
  }
1013
1013
  exports.AssetsController = AssetsController;
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_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 = {
1015
1015
  controller: 'AssetsController',
1016
1016
  }) {
1017
1017
  if (!__classPrivateFieldGet(this, _AssetsController_trace, "f")) {
@@ -1069,7 +1069,7 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
1069
1069
  return [];
1070
1070
  }, _AssetsController_allBalanceDataSources_get = function _AssetsController_allBalanceDataSources_get() {
1071
1071
  return [
1072
- __classPrivateFieldGet(this, _AssetsController_backendWebsocketDataSource, "f"),
1072
+ __classPrivateFieldGet(this, _AssetsController_accountActivityDataSource, "f"),
1073
1073
  __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f"),
1074
1074
  __classPrivateFieldGet(this, _AssetsController_snapDataSource, "f"),
1075
1075
  __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f"),
@@ -1188,12 +1188,6 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
1188
1188
  this.messenger.subscribe('TransactionController:transactionConfirmed', (transactionMeta) => {
1189
1189
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_onTransactionConfirmed).call(this, transactionMeta);
1190
1190
  });
1191
- // Real-time post-tx balances from AccountActivityService (same WS payload as
1192
- // TokenBalancesController; BackendWebsocketDataSource may not receive the
1193
- // callback when AccountActivityService owns the server subscription).
1194
- this.messenger.subscribe('AccountActivityService:balanceUpdated', (event) => {
1195
- __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_onAccountActivityBalanceUpdated).call(this, event);
1196
- });
1197
1191
  }, _AssetsController_onUnapprovedTransactionAdded = function _AssetsController_onUnapprovedTransactionAdded(transactionMeta) {
1198
1192
  const hexChainId = transactionMeta.chainId;
1199
1193
  if (!hexChainId) {
@@ -1236,26 +1230,6 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
1236
1230
  }).catch((error) => {
1237
1231
  log('Failed to refresh assets after transaction confirmed', { error });
1238
1232
  });
1239
- }, _AssetsController_onAccountActivityBalanceUpdated = function _AssetsController_onAccountActivityBalanceUpdated({ address, chain, updates, }) {
1240
- const account = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getSelectedAccounts).call(this).find((a) => a.address.startsWith('0x')
1241
- ? a.address.toLowerCase() === address.toLowerCase()
1242
- : a.address === address);
1243
- if (!account) {
1244
- return;
1245
- }
1246
- const chainId = chain;
1247
- const response = (0, processAccountActivityBalanceUpdates_js_1.processAccountActivityBalanceUpdates)(updates, account.id, (assetId) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getAssetType).call(this, assetId));
1248
- if (!response.assetsBalance) {
1249
- return;
1250
- }
1251
- const request = {
1252
- accountsWithSupportedChains: [{ account, supportedChains: [chainId] }],
1253
- chainIds: [chainId],
1254
- dataTypes: ['balance', 'metadata'],
1255
- };
1256
- this.handleAssetsUpdate(response, 'AccountActivityService', request).catch((error) => {
1257
- log('Failed to apply AccountActivityService balance update', { error });
1258
- });
1259
1233
  }, _AssetsController_updateActive = function _AssetsController_updateActive() {
1260
1234
  const shouldRun = __classPrivateFieldGet(this, _AssetsController_uiOpen, "f") && __classPrivateFieldGet(this, _AssetsController_keyringUnlocked, "f");
1261
1235
  if (shouldRun) {
@@ -1365,11 +1339,11 @@ async function _AssetsController_runStartupRefresh(accounts) {
1365
1339
  const previousSet = new Set(previous);
1366
1340
  const addedChains = activeChains.filter((ch) => !previousSet.has(ch));
1367
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.
1368
1346
  if (addedChains.length > 0 || removedChains.length > 0) {
1369
- // Refresh subscriptions to use updated data source availability.
1370
- // No one-time fetch needed here — #handleEnabledNetworksChanged
1371
- // handles fetches when the user enables a network, and
1372
- // #subscribeAssets re-subscribes with the correct chain assignment.
1373
1347
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_subscribeAssets).call(this);
1374
1348
  }
1375
1349
  }, _AssetsController_executeMiddlewares =
@@ -1953,8 +1927,10 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
1953
1927
  }, _AssetsController_subscribeAssetsBalance = function _AssetsController_subscribeAssetsBalance(accounts, chainIds) {
1954
1928
  const chainToAccounts = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_buildChainToAccountsMap).call(this, accounts, new Set(chainIds));
1955
1929
  const remainingChains = new Set(chainToAccounts.keys());
1956
- // When basic functionality is on, use all balance data sources; when off, RPC only.
1957
- 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
1958
1934
  ? __classPrivateFieldGet(this, _AssetsController_instances, "a", _AssetsController_allBalanceDataSources_get)
1959
1935
  : [__classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")];
1960
1936
  let rpcAssignedChains = new Set();
@@ -2252,14 +2228,11 @@ async function _AssetsController_handleAccountGroupChanged() {
2252
2228
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_fetchMissingPricesWithoutCache).call(this, accounts, [caipChainId]);
2253
2229
  }, _AssetsController_refreshActiveChainsOnNetworkSwitch =
2254
2230
  /**
2255
- * 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
2256
2232
  * chain claiming is not stuck on an empty or stale init-time list.
2257
2233
  */
2258
2234
  async function _AssetsController_refreshActiveChainsOnNetworkSwitch() {
2259
- await Promise.all([
2260
- __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f").refreshActiveChains(),
2261
- __classPrivateFieldGet(this, _AssetsController_backendWebsocketDataSource, "f").refreshActiveChains(),
2262
- ]);
2235
+ await __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f").refreshActiveChains();
2263
2236
  __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f").refreshActiveChainsFromNetworkState();
2264
2237
  }, _AssetsController_getSelectedEvmChainIdFromNetworkState = function _AssetsController_getSelectedEvmChainIdFromNetworkState(networkState) {
2265
2238
  try {