@metamask-previews/assets-controller 1.0.0-preview-0cc7da31a → 1.0.0-preview-ee8f1b28b

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 (114) hide show
  1. package/CHANGELOG.md +0 -1
  2. package/dist/AssetsController.cjs +14 -69
  3. package/dist/AssetsController.cjs.map +1 -1
  4. package/dist/AssetsController.d.cts +2 -7
  5. package/dist/AssetsController.d.cts.map +1 -1
  6. package/dist/AssetsController.d.mts +2 -7
  7. package/dist/AssetsController.d.mts.map +1 -1
  8. package/dist/AssetsController.mjs +15 -70
  9. package/dist/AssetsController.mjs.map +1 -1
  10. package/dist/data-sources/AccountsApiDataSource.cjs +11 -9
  11. package/dist/data-sources/AccountsApiDataSource.cjs.map +1 -1
  12. package/dist/data-sources/AccountsApiDataSource.d.cts.map +1 -1
  13. package/dist/data-sources/AccountsApiDataSource.d.mts.map +1 -1
  14. package/dist/data-sources/AccountsApiDataSource.mjs +9 -7
  15. package/dist/data-sources/AccountsApiDataSource.mjs.map +1 -1
  16. package/dist/data-sources/BackendWebsocketDataSource.cjs +4 -6
  17. package/dist/data-sources/BackendWebsocketDataSource.cjs.map +1 -1
  18. package/dist/data-sources/BackendWebsocketDataSource.d.cts.map +1 -1
  19. package/dist/data-sources/BackendWebsocketDataSource.d.mts.map +1 -1
  20. package/dist/data-sources/BackendWebsocketDataSource.mjs +4 -6
  21. package/dist/data-sources/BackendWebsocketDataSource.mjs.map +1 -1
  22. package/dist/data-sources/PriceDataSource.cjs +3 -13
  23. package/dist/data-sources/PriceDataSource.cjs.map +1 -1
  24. package/dist/data-sources/PriceDataSource.d.cts.map +1 -1
  25. package/dist/data-sources/PriceDataSource.d.mts.map +1 -1
  26. package/dist/data-sources/PriceDataSource.mjs +3 -13
  27. package/dist/data-sources/PriceDataSource.mjs.map +1 -1
  28. package/dist/data-sources/RpcDataSource.cjs +9 -79
  29. package/dist/data-sources/RpcDataSource.cjs.map +1 -1
  30. package/dist/data-sources/RpcDataSource.d.cts +47 -8
  31. package/dist/data-sources/RpcDataSource.d.cts.map +1 -1
  32. package/dist/data-sources/RpcDataSource.d.mts +47 -8
  33. package/dist/data-sources/RpcDataSource.d.mts.map +1 -1
  34. package/dist/data-sources/RpcDataSource.mjs +10 -80
  35. package/dist/data-sources/RpcDataSource.mjs.map +1 -1
  36. package/dist/data-sources/SnapDataSource.cjs +4 -16
  37. package/dist/data-sources/SnapDataSource.cjs.map +1 -1
  38. package/dist/data-sources/SnapDataSource.d.cts +1 -2
  39. package/dist/data-sources/SnapDataSource.d.cts.map +1 -1
  40. package/dist/data-sources/SnapDataSource.d.mts +1 -2
  41. package/dist/data-sources/SnapDataSource.d.mts.map +1 -1
  42. package/dist/data-sources/SnapDataSource.mjs +4 -16
  43. package/dist/data-sources/SnapDataSource.mjs.map +1 -1
  44. package/dist/data-sources/TokenDataSource.cjs +0 -5
  45. package/dist/data-sources/TokenDataSource.cjs.map +1 -1
  46. package/dist/data-sources/TokenDataSource.d.cts.map +1 -1
  47. package/dist/data-sources/TokenDataSource.d.mts.map +1 -1
  48. package/dist/data-sources/TokenDataSource.mjs +0 -5
  49. package/dist/data-sources/TokenDataSource.mjs.map +1 -1
  50. package/dist/data-sources/evm-rpc-services/index.cjs +1 -5
  51. package/dist/data-sources/evm-rpc-services/index.cjs.map +1 -1
  52. package/dist/data-sources/evm-rpc-services/index.d.cts +1 -1
  53. package/dist/data-sources/evm-rpc-services/index.d.cts.map +1 -1
  54. package/dist/data-sources/evm-rpc-services/index.d.mts +1 -1
  55. package/dist/data-sources/evm-rpc-services/index.d.mts.map +1 -1
  56. package/dist/data-sources/evm-rpc-services/index.mjs +1 -1
  57. package/dist/data-sources/evm-rpc-services/index.mjs.map +1 -1
  58. package/dist/data-sources/evm-rpc-services/services/index.cjs +1 -6
  59. package/dist/data-sources/evm-rpc-services/services/index.cjs.map +1 -1
  60. package/dist/data-sources/evm-rpc-services/services/index.d.cts +0 -1
  61. package/dist/data-sources/evm-rpc-services/services/index.d.cts.map +1 -1
  62. package/dist/data-sources/evm-rpc-services/services/index.d.mts +0 -1
  63. package/dist/data-sources/evm-rpc-services/services/index.d.mts.map +1 -1
  64. package/dist/data-sources/evm-rpc-services/services/index.mjs +0 -1
  65. package/dist/data-sources/evm-rpc-services/services/index.mjs.map +1 -1
  66. package/dist/data-sources/evm-rpc-services/utils/index.cjs +1 -9
  67. package/dist/data-sources/evm-rpc-services/utils/index.cjs.map +1 -1
  68. package/dist/data-sources/evm-rpc-services/utils/index.d.cts +0 -2
  69. package/dist/data-sources/evm-rpc-services/utils/index.d.cts.map +1 -1
  70. package/dist/data-sources/evm-rpc-services/utils/index.d.mts +0 -2
  71. package/dist/data-sources/evm-rpc-services/utils/index.d.mts.map +1 -1
  72. package/dist/data-sources/evm-rpc-services/utils/index.mjs +0 -2
  73. package/dist/data-sources/evm-rpc-services/utils/index.mjs.map +1 -1
  74. package/dist/data-sources/index.cjs +1 -3
  75. package/dist/data-sources/index.cjs.map +1 -1
  76. package/dist/data-sources/index.d.cts +0 -1
  77. package/dist/data-sources/index.d.cts.map +1 -1
  78. package/dist/data-sources/index.d.mts +0 -1
  79. package/dist/data-sources/index.d.mts.map +1 -1
  80. package/dist/data-sources/index.mjs +0 -1
  81. package/dist/data-sources/index.mjs.map +1 -1
  82. package/package.json +1 -3
  83. package/dist/data-sources/StakedBalanceDataSource.cjs +0 -609
  84. package/dist/data-sources/StakedBalanceDataSource.cjs.map +0 -1
  85. package/dist/data-sources/StakedBalanceDataSource.d.cts +0 -72
  86. package/dist/data-sources/StakedBalanceDataSource.d.cts.map +0 -1
  87. package/dist/data-sources/StakedBalanceDataSource.d.mts +0 -72
  88. package/dist/data-sources/StakedBalanceDataSource.d.mts.map +0 -1
  89. package/dist/data-sources/StakedBalanceDataSource.mjs +0 -605
  90. package/dist/data-sources/StakedBalanceDataSource.mjs.map +0 -1
  91. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.cjs +0 -132
  92. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.cjs.map +0 -1
  93. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.cts +0 -78
  94. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.cts.map +0 -1
  95. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.mts +0 -78
  96. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.mts.map +0 -1
  97. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.mjs +0 -126
  98. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.mjs.map +0 -1
  99. package/dist/data-sources/evm-rpc-services/utils/parsing.cjs +0 -47
  100. package/dist/data-sources/evm-rpc-services/utils/parsing.cjs.map +0 -1
  101. package/dist/data-sources/evm-rpc-services/utils/parsing.d.cts +0 -25
  102. package/dist/data-sources/evm-rpc-services/utils/parsing.d.cts.map +0 -1
  103. package/dist/data-sources/evm-rpc-services/utils/parsing.d.mts +0 -25
  104. package/dist/data-sources/evm-rpc-services/utils/parsing.d.mts.map +0 -1
  105. package/dist/data-sources/evm-rpc-services/utils/parsing.mjs +0 -39
  106. package/dist/data-sources/evm-rpc-services/utils/parsing.mjs.map +0 -1
  107. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.cjs +0 -68
  108. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.cjs.map +0 -1
  109. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.cts +0 -25
  110. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.cts.map +0 -1
  111. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.mts +0 -25
  112. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.mts.map +0 -1
  113. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.mjs +0 -62
  114. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -9,7 +9,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ### Added
11
11
 
12
- - Add `StakedBalanceDataSource` that polls supported staking contracts on enabled chains and merges staked balances into `assetsBalance`. Configurable via `stakedBalanceDataSourceConfig` (`enabled`, `pollInterval`); the controller subscribes to it when enabled and cleans up on destroy ([#7936](https://github.com/MetaMask/core/pull/7936))
13
12
  - Add optional `trackMetaMetricsEvent` callback to measure and report first init/fetch historical time (duration in ms) to MetaMetrics when the initial asset fetch completes after unlock or app open ([#7871](https://github.com/MetaMask/core/pull/7871))
14
13
  - Add `AccountsApiDataSourceConfig` and `PriceDataSourceConfig` types; add `accountsApiDataSourceConfig` and `priceDataSourceConfig` options to `AssetsControllerOptions` for per-data-source configuration (pollInterval, tokenDetectionEnabled, etc.). When `tokenDetectionEnabled` is false, `AccountsApiDataSource` only returns balances for tokens already in state and does not add new tokens ([#7926](https://github.com/MetaMask/core/pull/7926))
15
14
  - Add `useExternalService` option to `TokenDetector`, `TokenDetectionOptions`, `RpcDataSourceConfig`, and `RpcDataSourceOptions`. Token detection runs only when both `tokenDetectionEnabled` and `useExternalService` are true and stops when either is false ([#7924](https://github.com/MetaMask/core/pull/7924))
@@ -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_pricePollInterval, _AssetsController_trackMetaMetricsEvent, _AssetsController_firstInitFetchReported, _AssetsController_controllerMutex, _AssetsController_activeSubscriptions, _AssetsController_enabledChains, _AssetsController_selectedAccounts_get, _AssetsController_backendWebsocketDataSource, _AssetsController_accountsApiDataSource, _AssetsController_snapDataSource, _AssetsController_rpcDataSource, _AssetsController_stakedBalanceDataSource, _AssetsController_allBalanceDataSources_get, _AssetsController_priceDataSource, _AssetsController_detectionMiddleware, _AssetsController_tokenDataSource, _AssetsController_unsubscribeBasicFunctionality, _AssetsController_constructionState, _AssetsController_initializeState, _AssetsController_extractEnabledChains, _AssetsController_normalizeChainReference, _AssetsController_subscribeToEvents, _AssetsController_registerActionHandlers, _AssetsController_executeMiddlewares, _AssetsController_updateState, _AssetsController_getAssetsFromState, _AssetsController_tokenStandardToAssetType, _AssetsController_start, _AssetsController_stop, _AssetsController_subscribeAssets, _AssetsController_subscribeAssetsBalance, _AssetsController_subscribeStakedBalance, _AssetsController_buildChainToAccountsMap, _AssetsController_subscribeDataSource, _AssetsController_unsubscribeDataSource, _AssetsController_buildDataRequest, _AssetsController_getEnabledChainsForAccount, _AssetsController_handleAccountGroupChanged, _AssetsController_handleEnabledNetworksChanged;
16
+ var _AssetsController_instances, _AssetsController_isEnabled, _AssetsController_isBasicFunctionality, _AssetsController_defaultUpdateInterval, _AssetsController_trackMetaMetricsEvent, _AssetsController_firstInitFetchReported, _AssetsController_controllerMutex, _AssetsController_activeSubscriptions, _AssetsController_enabledChains, _AssetsController_selectedAccounts_get, _AssetsController_backendWebsocketDataSource, _AssetsController_accountsApiDataSource, _AssetsController_snapDataSource, _AssetsController_rpcDataSource, _AssetsController_allBalanceDataSources_get, _AssetsController_priceDataSource, _AssetsController_detectionMiddleware, _AssetsController_tokenDataSource, _AssetsController_unsubscribeBasicFunctionality, _AssetsController_initializeState, _AssetsController_extractEnabledChains, _AssetsController_normalizeChainReference, _AssetsController_subscribeToEvents, _AssetsController_registerActionHandlers, _AssetsController_executeMiddlewares, _AssetsController_updateState, _AssetsController_getAssetsFromState, _AssetsController_tokenStandardToAssetType, _AssetsController_start, _AssetsController_stop, _AssetsController_subscribeAssets, _AssetsController_subscribeAssetsBalance, _AssetsController_buildChainToAccountsMap, _AssetsController_subscribeDataSource, _AssetsController_unsubscribeDataSource, _AssetsController_buildDataRequest, _AssetsController_getEnabledChainsForAccount, _AssetsController_handleAccountGroupChanged, _AssetsController_handleEnabledNetworksChanged;
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");
@@ -26,7 +26,6 @@ const BackendWebsocketDataSource_1 = require("./data-sources/BackendWebsocketDat
26
26
  const PriceDataSource_1 = require("./data-sources/PriceDataSource.cjs");
27
27
  const RpcDataSource_1 = require("./data-sources/RpcDataSource.cjs");
28
28
  const SnapDataSource_1 = require("./data-sources/SnapDataSource.cjs");
29
- const StakedBalanceDataSource_1 = require("./data-sources/StakedBalanceDataSource.cjs");
30
29
  const TokenDataSource_1 = require("./data-sources/TokenDataSource.cjs");
31
30
  const logger_1 = require("./logger.cjs");
32
31
  const DetectionMiddleware_1 = require("./middlewares/DetectionMiddleware.cjs");
@@ -183,7 +182,7 @@ function normalizeResponse(response) {
183
182
  * - The controller does NOT manage polling - it simply receives pushed updates
184
183
  */
185
184
  class AssetsController extends base_controller_1.BaseController {
186
- constructor({ messenger, state = {}, defaultUpdateInterval = DEFAULT_POLLING_INTERVAL_MS, isEnabled = () => true, isBasicFunctionality, subscribeToBasicFunctionalityChange, queryApiClient, rpcDataSourceConfig, trackMetaMetricsEvent, accountsApiDataSourceConfig, priceDataSourceConfig, stakedBalanceDataSourceConfig, }) {
185
+ constructor({ messenger, state = {}, defaultUpdateInterval = DEFAULT_POLLING_INTERVAL_MS, isEnabled = () => true, isBasicFunctionality, subscribeToBasicFunctionalityChange, queryApiClient, rpcDataSourceConfig, trackMetaMetricsEvent, accountsApiDataSourceConfig, priceDataSourceConfig, }) {
187
186
  super({
188
187
  name: CONTROLLER_NAME,
189
188
  messenger,
@@ -200,8 +199,6 @@ class AssetsController extends base_controller_1.BaseController {
200
199
  _AssetsController_isBasicFunctionality.set(this, void 0);
201
200
  /** Default update interval hint passed to data sources */
202
201
  _AssetsController_defaultUpdateInterval.set(this, void 0);
203
- /** Price subscription poll interval from priceDataSourceConfig (used when subscribeAssetsPrice gets no updateInterval). */
204
- _AssetsController_pricePollInterval.set(this, void 0);
205
202
  /** Optional callback for first init/fetch MetaMetrics (duration). */
206
203
  _AssetsController_trackMetaMetricsEvent.set(this, void 0);
207
204
  /** Whether we have already reported first init fetch for this session (reset on #stop). */
@@ -220,24 +217,16 @@ class AssetsController extends base_controller_1.BaseController {
220
217
  _AssetsController_accountsApiDataSource.set(this, void 0);
221
218
  _AssetsController_snapDataSource.set(this, void 0);
222
219
  _AssetsController_rpcDataSource.set(this, void 0);
223
- _AssetsController_stakedBalanceDataSource.set(this, void 0);
224
220
  _AssetsController_priceDataSource.set(this, void 0);
225
221
  _AssetsController_detectionMiddleware.set(this, void 0);
226
222
  _AssetsController_tokenDataSource.set(this, void 0);
227
223
  _AssetsController_unsubscribeBasicFunctionality.set(this, null);
228
- _AssetsController_constructionState.set(this, { initialized: false });
229
224
  __classPrivateFieldSet(this, _AssetsController_isEnabled, isEnabled(), "f");
230
225
  __classPrivateFieldSet(this, _AssetsController_isBasicFunctionality, isBasicFunctionality ?? (() => true), "f");
231
226
  __classPrivateFieldSet(this, _AssetsController_defaultUpdateInterval, defaultUpdateInterval, "f");
232
- __classPrivateFieldSet(this, _AssetsController_pricePollInterval, priceDataSourceConfig?.pollInterval, "f");
233
227
  __classPrivateFieldSet(this, _AssetsController_trackMetaMetricsEvent, trackMetaMetricsEvent, "f");
234
228
  const rpcConfig = rpcDataSourceConfig ?? {};
235
- const onActiveChainsUpdated = (dataSourceName, chains, previousChains) => {
236
- if (!__classPrivateFieldGet(this, _AssetsController_constructionState, "f").initialized) {
237
- return;
238
- }
239
- this.handleActiveChainsUpdate(dataSourceName, chains, previousChains);
240
- };
229
+ const onActiveChainsUpdated = (dataSourceName, chains, previousChains) => this.handleActiveChainsUpdate(dataSourceName, chains, previousChains);
241
230
  __classPrivateFieldSet(this, _AssetsController_backendWebsocketDataSource, new BackendWebsocketDataSource_1.BackendWebsocketDataSource({
242
231
  messenger: this.messenger,
243
232
  queryApiClient,
@@ -257,11 +246,6 @@ class AssetsController extends base_controller_1.BaseController {
257
246
  onActiveChainsUpdated,
258
247
  ...rpcConfig,
259
248
  }), "f");
260
- __classPrivateFieldSet(this, _AssetsController_stakedBalanceDataSource, new StakedBalanceDataSource_1.StakedBalanceDataSource({
261
- messenger: this.messenger,
262
- onActiveChainsUpdated,
263
- ...stakedBalanceDataSourceConfig,
264
- }), "f");
265
249
  __classPrivateFieldSet(this, _AssetsController_tokenDataSource, new TokenDataSource_1.TokenDataSource({
266
250
  queryApiClient,
267
251
  }), "f");
@@ -280,8 +264,6 @@ class AssetsController extends base_controller_1.BaseController {
280
264
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_initializeState).call(this);
281
265
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_subscribeToEvents).call(this);
282
266
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_registerActionHandlers).call(this);
283
- __classPrivateFieldGet(this, _AssetsController_constructionState, "f").initialized = true;
284
- // Subscriptions start only on KeyringController:unlock -> #start(), not here.
285
267
  // Subscribe to basic-functionality changes after construction so a synchronous
286
268
  // onChange during subscribe cannot run before data sources are initialized.
287
269
  if (subscribeToBasicFunctionalityChange) {
@@ -308,9 +290,6 @@ class AssetsController extends base_controller_1.BaseController {
308
290
  * @param previousChains - Previous chains; used to compute added/removed.
309
291
  */
310
292
  handleActiveChainsUpdate(dataSourceId, activeChains, previousChains) {
311
- if (!__classPrivateFieldGet(this, _AssetsController_isEnabled, "f")) {
312
- return;
313
- }
314
293
  log('Data source active chains changed', {
315
294
  dataSourceId,
316
295
  chainCount: activeChains.length,
@@ -364,16 +343,11 @@ class AssetsController extends base_controller_1.BaseController {
364
343
  __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f"),
365
344
  __classPrivateFieldGet(this, _AssetsController_snapDataSource, "f"),
366
345
  __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f"),
367
- __classPrivateFieldGet(this, _AssetsController_stakedBalanceDataSource, "f"),
368
346
  __classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f"),
369
347
  __classPrivateFieldGet(this, _AssetsController_tokenDataSource, "f"),
370
348
  __classPrivateFieldGet(this, _AssetsController_priceDataSource, "f"),
371
349
  ]
372
- : [
373
- __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f"),
374
- __classPrivateFieldGet(this, _AssetsController_stakedBalanceDataSource, "f"),
375
- __classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f"),
376
- ];
350
+ : [__classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f"), __classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f")];
377
351
  const { response, durationByDataSource } = await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_executeMiddlewares).call(this, sources, request);
378
352
  await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_updateState).call(this, response);
379
353
  if (__classPrivateFieldGet(this, _AssetsController_trackMetaMetricsEvent, "f") && !__classPrivateFieldGet(this, _AssetsController_firstInitFetchReported, "f")) {
@@ -553,7 +527,7 @@ class AssetsController extends base_controller_1.BaseController {
553
527
  if (!__classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)) {
554
528
  return;
555
529
  }
556
- const { updateInterval = __classPrivateFieldGet(this, _AssetsController_pricePollInterval, "f") ?? __classPrivateFieldGet(this, _AssetsController_defaultUpdateInterval, "f"), } = options;
530
+ const { updateInterval = __classPrivateFieldGet(this, _AssetsController_defaultUpdateInterval, "f") } = options;
557
531
  const subscriptionKey = 'ds:PriceDataSource';
558
532
  const existingSubscription = __classPrivateFieldGet(this, _AssetsController_activeSubscriptions, "f").get(subscriptionKey);
559
533
  const isUpdate = existingSubscription !== undefined;
@@ -641,7 +615,6 @@ class AssetsController extends base_controller_1.BaseController {
641
615
  __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f")?.destroy?.();
642
616
  __classPrivateFieldGet(this, _AssetsController_snapDataSource, "f")?.destroy?.();
643
617
  __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")?.destroy?.();
644
- __classPrivateFieldGet(this, _AssetsController_stakedBalanceDataSource, "f")?.destroy?.();
645
618
  // Stop all active subscriptions
646
619
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_stop).call(this);
647
620
  if (__classPrivateFieldGet(this, _AssetsController_unsubscribeBasicFunctionality, "f")) {
@@ -661,7 +634,7 @@ class AssetsController extends base_controller_1.BaseController {
661
634
  }
662
635
  }
663
636
  exports.AssetsController = AssetsController;
664
- _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctionality = new WeakMap(), _AssetsController_defaultUpdateInterval = new WeakMap(), _AssetsController_pricePollInterval = new WeakMap(), _AssetsController_trackMetaMetricsEvent = new WeakMap(), _AssetsController_firstInitFetchReported = new WeakMap(), _AssetsController_controllerMutex = new WeakMap(), _AssetsController_activeSubscriptions = new WeakMap(), _AssetsController_enabledChains = 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_tokenDataSource = new WeakMap(), _AssetsController_unsubscribeBasicFunctionality = new WeakMap(), _AssetsController_constructionState = new WeakMap(), _AssetsController_instances = new WeakSet(), _AssetsController_selectedAccounts_get = function _AssetsController_selectedAccounts_get() {
637
+ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctionality = new WeakMap(), _AssetsController_defaultUpdateInterval = new WeakMap(), _AssetsController_trackMetaMetricsEvent = new WeakMap(), _AssetsController_firstInitFetchReported = new WeakMap(), _AssetsController_controllerMutex = new WeakMap(), _AssetsController_activeSubscriptions = new WeakMap(), _AssetsController_enabledChains = new WeakMap(), _AssetsController_backendWebsocketDataSource = new WeakMap(), _AssetsController_accountsApiDataSource = new WeakMap(), _AssetsController_snapDataSource = new WeakMap(), _AssetsController_rpcDataSource = new WeakMap(), _AssetsController_priceDataSource = new WeakMap(), _AssetsController_detectionMiddleware = new WeakMap(), _AssetsController_tokenDataSource = new WeakMap(), _AssetsController_unsubscribeBasicFunctionality = new WeakMap(), _AssetsController_instances = new WeakSet(), _AssetsController_selectedAccounts_get = function _AssetsController_selectedAccounts_get() {
665
638
  return this.messenger.call('AccountTreeController:getAccountsFromSelectedAccountGroup');
666
639
  }, _AssetsController_allBalanceDataSources_get = function _AssetsController_allBalanceDataSources_get() {
667
640
  return [
@@ -697,7 +670,7 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
697
670
  }
698
671
  return chains;
699
672
  }, _AssetsController_normalizeChainReference = function _AssetsController_normalizeChainReference(namespace, reference) {
700
- if (namespace === 'eip155' && (0, utils_1.isStrictHexString)(reference)) {
673
+ if (namespace === 'eip155' && reference.startsWith('0x')) {
701
674
  // Convert hex to decimal for EIP155 chains
702
675
  return parseInt(reference, 16).toString();
703
676
  }
@@ -976,17 +949,13 @@ async function _AssetsController_updateState(response) {
976
949
  this.unsubscribeAssetsPrice();
977
950
  // Stop balance subscriptions by properly notifying data sources via messenger
978
951
  // This ensures data sources stop their polling timers.
979
- // Use #allBalanceDataSources + staked balance source so we unsubscribe from
980
- // every source that may have been subscribed.
981
- const allSources = [
982
- ...__classPrivateFieldGet(this, _AssetsController_instances, "a", _AssetsController_allBalanceDataSources_get),
983
- __classPrivateFieldGet(this, _AssetsController_stakedBalanceDataSource, "f"),
984
- ];
952
+ // Use #allBalanceDataSources so we unsubscribe from every source that may have
953
+ // been subscribed (e.g. when switching from full to basic functionality).
985
954
  const subscriptionKeys = [...__classPrivateFieldGet(this, _AssetsController_activeSubscriptions, "f").keys()];
986
955
  for (const subscriptionKey of subscriptionKeys) {
987
956
  if (subscriptionKey.startsWith('ds:')) {
988
957
  const sourceId = subscriptionKey.slice(3);
989
- const source = allSources.find((ds) => ds.getName() === sourceId);
958
+ const source = __classPrivateFieldGet(this, _AssetsController_instances, "a", _AssetsController_allBalanceDataSources_get).find((ds) => ds.getName() === sourceId);
990
959
  if (source) {
991
960
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_unsubscribeDataSource).call(this, source);
992
961
  }
@@ -1001,10 +970,6 @@ async function _AssetsController_updateState(response) {
1001
970
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_subscribeAssetsBalance).call(this, __classPrivateFieldGet(this, _AssetsController_instances, "a", _AssetsController_selectedAccounts_get), [
1002
971
  ...__classPrivateFieldGet(this, _AssetsController_enabledChains, "f"),
1003
972
  ]);
1004
- // Subscribe to staked balance updates (separate from regular balance chain-claiming)
1005
- __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_subscribeStakedBalance).call(this, __classPrivateFieldGet(this, _AssetsController_instances, "a", _AssetsController_selectedAccounts_get), [
1006
- ...__classPrivateFieldGet(this, _AssetsController_enabledChains, "f"),
1007
- ]);
1008
973
  // Subscribe to price updates for all assets held by selected accounts
1009
974
  this.subscribeAssetsPrice(__classPrivateFieldGet(this, _AssetsController_instances, "a", _AssetsController_selectedAccounts_get), [...__classPrivateFieldGet(this, _AssetsController_enabledChains, "f")]);
1010
975
  }, _AssetsController_subscribeAssetsBalance = function _AssetsController_subscribeAssetsBalance(accounts, chainIds) {
@@ -1035,18 +1000,6 @@ async function _AssetsController_updateState(response) {
1035
1000
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_subscribeDataSource).call(this, source, accountsForSource, assignedChains);
1036
1001
  }
1037
1002
  }
1038
- }, _AssetsController_subscribeStakedBalance = function _AssetsController_subscribeStakedBalance(accounts, chainIds) {
1039
- const source = __classPrivateFieldGet(this, _AssetsController_stakedBalanceDataSource, "f");
1040
- if (!source) {
1041
- return;
1042
- }
1043
- const availableChains = new Set(source.getActiveChainsSync());
1044
- const assignedChains = chainIds.filter((chainId) => availableChains.has(chainId));
1045
- if (assignedChains.length === 0) {
1046
- __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_unsubscribeDataSource).call(this, source);
1047
- return;
1048
- }
1049
- __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_subscribeDataSource).call(this, source, accounts, assignedChains);
1050
1003
  }, _AssetsController_buildChainToAccountsMap = function _AssetsController_buildChainToAccountsMap(accounts, chainsToSubscribe) {
1051
1004
  const chainToAccounts = new Map();
1052
1005
  for (const account of accounts) {
@@ -1123,24 +1076,16 @@ async function _AssetsController_updateState(response) {
1123
1076
  const scopes = account.scopes ?? [];
1124
1077
  const result = [];
1125
1078
  for (const scope of scopes) {
1126
- const scopeStr = scope;
1127
- if (!(0, utils_1.isCaipChainId)(scopeStr)) {
1128
- result.push(scope);
1129
- continue;
1130
- }
1131
- const { namespace, reference } = (0, utils_1.parseCaipChainId)(scopeStr);
1079
+ const [namespace, reference] = scope.split(':');
1132
1080
  // Wildcard scope (e.g., "eip155:0" means all enabled chains in that namespace)
1133
1081
  if (reference === '0') {
1134
1082
  for (const chain of __classPrivateFieldGet(this, _AssetsController_enabledChains, "f")) {
1135
- if ((0, utils_1.isCaipChainId)(chain)) {
1136
- const chainParsed = (0, utils_1.parseCaipChainId)(chain);
1137
- if (chainParsed.namespace === namespace) {
1138
- result.push(chain);
1139
- }
1083
+ if (chain.startsWith(`${namespace}:`)) {
1084
+ result.push(chain);
1140
1085
  }
1141
1086
  }
1142
1087
  }
1143
- else if (namespace === 'eip155' && (0, utils_1.isStrictHexString)(reference)) {
1088
+ else if (namespace === 'eip155' && reference?.startsWith('0x')) {
1144
1089
  // Normalize hex to decimal for EIP155
1145
1090
  result.push(`eip155:${parseInt(reference, 16)}`);
1146
1091
  }