@metamask-previews/assets-controller 1.0.0-preview-ee8f1b28b → 2.0.0-preview-33dbba4f3

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 (120) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/dist/AssetsController.cjs +61 -18
  3. package/dist/AssetsController.cjs.map +1 -1
  4. package/dist/AssetsController.d.cts +13 -8
  5. package/dist/AssetsController.d.cts.map +1 -1
  6. package/dist/AssetsController.d.mts +13 -8
  7. package/dist/AssetsController.d.mts.map +1 -1
  8. package/dist/AssetsController.mjs +62 -19
  9. package/dist/AssetsController.mjs.map +1 -1
  10. package/dist/data-sources/AccountsApiDataSource.cjs +9 -11
  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 +7 -9
  15. package/dist/data-sources/AccountsApiDataSource.mjs.map +1 -1
  16. package/dist/data-sources/BackendWebsocketDataSource.cjs +6 -4
  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 +6 -4
  21. package/dist/data-sources/BackendWebsocketDataSource.mjs.map +1 -1
  22. package/dist/data-sources/PriceDataSource.cjs +13 -3
  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 +13 -3
  27. package/dist/data-sources/PriceDataSource.mjs.map +1 -1
  28. package/dist/data-sources/RpcDataSource.cjs +80 -10
  29. package/dist/data-sources/RpcDataSource.cjs.map +1 -1
  30. package/dist/data-sources/RpcDataSource.d.cts +8 -59
  31. package/dist/data-sources/RpcDataSource.d.cts.map +1 -1
  32. package/dist/data-sources/RpcDataSource.d.mts +8 -59
  33. package/dist/data-sources/RpcDataSource.d.mts.map +1 -1
  34. package/dist/data-sources/RpcDataSource.mjs +81 -11
  35. package/dist/data-sources/RpcDataSource.mjs.map +1 -1
  36. package/dist/data-sources/SnapDataSource.cjs +16 -4
  37. package/dist/data-sources/SnapDataSource.cjs.map +1 -1
  38. package/dist/data-sources/SnapDataSource.d.cts +2 -1
  39. package/dist/data-sources/SnapDataSource.d.cts.map +1 -1
  40. package/dist/data-sources/SnapDataSource.d.mts +2 -1
  41. package/dist/data-sources/SnapDataSource.d.mts.map +1 -1
  42. package/dist/data-sources/SnapDataSource.mjs +16 -4
  43. package/dist/data-sources/SnapDataSource.mjs.map +1 -1
  44. package/dist/data-sources/StakedBalanceDataSource.cjs +609 -0
  45. package/dist/data-sources/StakedBalanceDataSource.cjs.map +1 -0
  46. package/dist/data-sources/StakedBalanceDataSource.d.cts +72 -0
  47. package/dist/data-sources/StakedBalanceDataSource.d.cts.map +1 -0
  48. package/dist/data-sources/StakedBalanceDataSource.d.mts +72 -0
  49. package/dist/data-sources/StakedBalanceDataSource.d.mts.map +1 -0
  50. package/dist/data-sources/StakedBalanceDataSource.mjs +605 -0
  51. package/dist/data-sources/StakedBalanceDataSource.mjs.map +1 -0
  52. package/dist/data-sources/TokenDataSource.cjs +5 -0
  53. package/dist/data-sources/TokenDataSource.cjs.map +1 -1
  54. package/dist/data-sources/TokenDataSource.d.cts.map +1 -1
  55. package/dist/data-sources/TokenDataSource.d.mts.map +1 -1
  56. package/dist/data-sources/TokenDataSource.mjs +5 -0
  57. package/dist/data-sources/TokenDataSource.mjs.map +1 -1
  58. package/dist/data-sources/evm-rpc-services/index.cjs +5 -1
  59. package/dist/data-sources/evm-rpc-services/index.cjs.map +1 -1
  60. package/dist/data-sources/evm-rpc-services/index.d.cts +1 -1
  61. package/dist/data-sources/evm-rpc-services/index.d.cts.map +1 -1
  62. package/dist/data-sources/evm-rpc-services/index.d.mts +1 -1
  63. package/dist/data-sources/evm-rpc-services/index.d.mts.map +1 -1
  64. package/dist/data-sources/evm-rpc-services/index.mjs +1 -1
  65. package/dist/data-sources/evm-rpc-services/index.mjs.map +1 -1
  66. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.cjs +132 -0
  67. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.cjs.map +1 -0
  68. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.cts +78 -0
  69. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.cts.map +1 -0
  70. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.mts +78 -0
  71. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.mts.map +1 -0
  72. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.mjs +126 -0
  73. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.mjs.map +1 -0
  74. package/dist/data-sources/evm-rpc-services/services/index.cjs +6 -1
  75. package/dist/data-sources/evm-rpc-services/services/index.cjs.map +1 -1
  76. package/dist/data-sources/evm-rpc-services/services/index.d.cts +1 -0
  77. package/dist/data-sources/evm-rpc-services/services/index.d.cts.map +1 -1
  78. package/dist/data-sources/evm-rpc-services/services/index.d.mts +1 -0
  79. package/dist/data-sources/evm-rpc-services/services/index.d.mts.map +1 -1
  80. package/dist/data-sources/evm-rpc-services/services/index.mjs +1 -0
  81. package/dist/data-sources/evm-rpc-services/services/index.mjs.map +1 -1
  82. package/dist/data-sources/evm-rpc-services/types/state.cjs.map +1 -1
  83. package/dist/data-sources/evm-rpc-services/types/state.d.cts +3 -3
  84. package/dist/data-sources/evm-rpc-services/types/state.d.cts.map +1 -1
  85. package/dist/data-sources/evm-rpc-services/types/state.d.mts +3 -3
  86. package/dist/data-sources/evm-rpc-services/types/state.d.mts.map +1 -1
  87. package/dist/data-sources/evm-rpc-services/types/state.mjs.map +1 -1
  88. package/dist/data-sources/evm-rpc-services/utils/index.cjs +9 -1
  89. package/dist/data-sources/evm-rpc-services/utils/index.cjs.map +1 -1
  90. package/dist/data-sources/evm-rpc-services/utils/index.d.cts +2 -0
  91. package/dist/data-sources/evm-rpc-services/utils/index.d.cts.map +1 -1
  92. package/dist/data-sources/evm-rpc-services/utils/index.d.mts +2 -0
  93. package/dist/data-sources/evm-rpc-services/utils/index.d.mts.map +1 -1
  94. package/dist/data-sources/evm-rpc-services/utils/index.mjs +2 -0
  95. package/dist/data-sources/evm-rpc-services/utils/index.mjs.map +1 -1
  96. package/dist/data-sources/evm-rpc-services/utils/parsing.cjs +47 -0
  97. package/dist/data-sources/evm-rpc-services/utils/parsing.cjs.map +1 -0
  98. package/dist/data-sources/evm-rpc-services/utils/parsing.d.cts +25 -0
  99. package/dist/data-sources/evm-rpc-services/utils/parsing.d.cts.map +1 -0
  100. package/dist/data-sources/evm-rpc-services/utils/parsing.d.mts +25 -0
  101. package/dist/data-sources/evm-rpc-services/utils/parsing.d.mts.map +1 -0
  102. package/dist/data-sources/evm-rpc-services/utils/parsing.mjs +39 -0
  103. package/dist/data-sources/evm-rpc-services/utils/parsing.mjs.map +1 -0
  104. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.cjs +68 -0
  105. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.cjs.map +1 -0
  106. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.cts +25 -0
  107. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.cts.map +1 -0
  108. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.mts +25 -0
  109. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.mts.map +1 -0
  110. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.mjs +62 -0
  111. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.mjs.map +1 -0
  112. package/dist/data-sources/index.cjs +3 -1
  113. package/dist/data-sources/index.cjs.map +1 -1
  114. package/dist/data-sources/index.d.cts +1 -0
  115. package/dist/data-sources/index.d.cts.map +1 -1
  116. package/dist/data-sources/index.d.mts +1 -0
  117. package/dist/data-sources/index.d.mts.map +1 -1
  118. package/dist/data-sources/index.mjs +1 -0
  119. package/dist/data-sources/index.mjs.map +1 -1
  120. package/package.json +3 -1
@@ -1,16 +1,23 @@
1
1
  import type { AccountTreeControllerGetAccountsFromSelectedAccountGroupAction, AccountTreeControllerSelectedAccountGroupChangeEvent } from "@metamask/account-tree-controller";
2
+ import type { GetTokenListState } from "@metamask/assets-controllers";
2
3
  import { BaseController } from "@metamask/base-controller";
3
4
  import type { ControllerGetStateAction, ControllerStateChangeEvent } from "@metamask/base-controller";
4
5
  import type { ApiPlatformClient, BackendWebSocketServiceActions, BackendWebSocketServiceEvents } from "@metamask/core-backend";
5
6
  import type { KeyringControllerLockEvent, KeyringControllerUnlockEvent } from "@metamask/keyring-controller";
6
7
  import type { InternalAccount } from "@metamask/keyring-internal-api";
7
8
  import type { Messenger } from "@metamask/messenger";
9
+ import type { NetworkControllerGetNetworkClientByIdAction, NetworkControllerGetStateAction, NetworkControllerStateChangeEvent } from "@metamask/network-controller";
8
10
  import type { NetworkEnablementControllerGetStateAction, NetworkEnablementControllerEvents } from "@metamask/network-enablement-controller";
11
+ import type { GetPermissions, PermissionControllerStateChange } from "@metamask/permission-controller";
9
12
  import type { PreferencesControllerStateChangeEvent } from "@metamask/preferences-controller";
13
+ import type { GetRunnableSnaps, HandleSnapRequest } from "@metamask/snaps-controllers";
14
+ import type { TransactionControllerIncomingTransactionsReceivedEvent, TransactionControllerTransactionConfirmedEvent } from "@metamask/transaction-controller";
10
15
  import type { AssetsControllerMethodActions } from "./AssetsController-method-action-types.mjs";
11
16
  import type { AccountsApiDataSourceConfig } from "./data-sources/AccountsApiDataSource.mjs";
12
17
  import type { PriceDataSourceConfig } from "./data-sources/PriceDataSource.mjs";
13
18
  import type { RpcDataSourceConfig } from "./data-sources/RpcDataSource.mjs";
19
+ import type { AccountsControllerAccountBalancesUpdatedEvent } from "./data-sources/SnapDataSource.mjs";
20
+ import type { StakedBalanceDataSourceConfig } from "./data-sources/StakedBalanceDataSource.mjs";
14
21
  import type { AccountId, AssetPreferences, ChainId, Caip19AssetId, AssetMetadata, AssetPrice, AssetBalance, AssetType, DataType, DataRequest, DataResponse, Asset } from "./types.mjs";
15
22
  declare const CONTROLLER_NAME: "AssetsController";
16
23
  /**
@@ -79,8 +86,8 @@ export type AssetsControllerAssetsDetectedEvent = {
79
86
  }];
80
87
  };
81
88
  export type AssetsControllerEvents = AssetsControllerStateChangeEvent | AssetsControllerBalanceChangedEvent | AssetsControllerPriceChangedEvent | AssetsControllerAssetsDetectedEvent;
82
- type AllowedActions = AccountTreeControllerGetAccountsFromSelectedAccountGroupAction | NetworkEnablementControllerGetStateAction | BackendWebSocketServiceActions;
83
- type AllowedEvents = AccountTreeControllerSelectedAccountGroupChangeEvent | NetworkEnablementControllerEvents | BackendWebSocketServiceEvents | KeyringControllerLockEvent | KeyringControllerUnlockEvent | PreferencesControllerStateChangeEvent;
89
+ type AllowedActions = AccountTreeControllerGetAccountsFromSelectedAccountGroupAction | GetTokenListState | NetworkControllerGetStateAction | NetworkControllerGetNetworkClientByIdAction | NetworkEnablementControllerGetStateAction | GetRunnableSnaps | HandleSnapRequest | GetPermissions | BackendWebSocketServiceActions;
90
+ type AllowedEvents = AccountTreeControllerSelectedAccountGroupChangeEvent | KeyringControllerLockEvent | KeyringControllerUnlockEvent | PreferencesControllerStateChangeEvent | NetworkControllerStateChangeEvent | TransactionControllerTransactionConfirmedEvent | TransactionControllerIncomingTransactionsReceivedEvent | NetworkEnablementControllerEvents | AccountsControllerAccountBalancesUpdatedEvent | PermissionControllerStateChange | BackendWebSocketServiceEvents;
84
91
  export type AssetsControllerMessenger = Messenger<typeof CONTROLLER_NAME, AssetsControllerActions | AllowedActions, AssetsControllerEvents | AllowedEvents>;
85
92
  /**
86
93
  * Payload for the first init/fetch MetaMetrics event.
@@ -138,6 +145,8 @@ export type AssetsControllerOptions = {
138
145
  accountsApiDataSourceConfig?: AccountsApiDataSourceConfig;
139
146
  /** Optional configuration for PriceDataSource. */
140
147
  priceDataSourceConfig?: PriceDataSourceConfig;
148
+ /** Optional configuration for StakedBalanceDataSource. */
149
+ stakedBalanceDataSourceConfig?: StakedBalanceDataSourceConfig;
141
150
  };
142
151
  /**
143
152
  * AssetsController provides a unified interface for managing asset balances
@@ -166,7 +175,7 @@ export type AssetsControllerOptions = {
166
175
  */
167
176
  export declare class AssetsController extends BaseController<typeof CONTROLLER_NAME, AssetsControllerState, AssetsControllerMessenger> {
168
177
  #private;
169
- constructor({ messenger, state, defaultUpdateInterval, isEnabled, isBasicFunctionality, subscribeToBasicFunctionalityChange, queryApiClient, rpcDataSourceConfig, trackMetaMetricsEvent, accountsApiDataSourceConfig, priceDataSourceConfig, }: AssetsControllerOptions);
178
+ constructor({ messenger, state, defaultUpdateInterval, isEnabled, isBasicFunctionality, subscribeToBasicFunctionalityChange, queryApiClient, rpcDataSourceConfig, trackMetaMetricsEvent, accountsApiDataSourceConfig, priceDataSourceConfig, stakedBalanceDataSourceConfig, }: AssetsControllerOptions);
170
179
  /**
171
180
  * Handle when a data source's supported chains change.
172
181
  * Used to refresh balance subscriptions and run a one-time fetch when a new chain is supported.
@@ -241,12 +250,8 @@ export declare class AssetsController extends BaseController<typeof CONTROLLER_N
241
250
  *
242
251
  * @param accounts - Accounts to subscribe price updates for.
243
252
  * @param chainIds - Chain IDs to filter prices for.
244
- * @param options - Subscription options.
245
- * @param options.updateInterval - Polling interval in ms.
246
253
  */
247
- subscribeAssetsPrice(accounts: InternalAccount[], chainIds: ChainId[], options?: {
248
- updateInterval?: number;
249
- }): void;
254
+ subscribeAssetsPrice(accounts: InternalAccount[], chainIds: ChainId[]): void;
250
255
  /**
251
256
  * Unsubscribe from price updates.
252
257
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AssetsController.d.mts","sourceRoot":"","sources":["../src/AssetsController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssetsController.d.mts","sourceRoot":"","sources":["../src/AssetsController.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,9 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
10
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
11
  };
12
- 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;
12
+ 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_stakedBalanceDataSource, _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_subscribeStakedBalance, _AssetsController_buildChainToAccountsMap, _AssetsController_subscribeDataSource, _AssetsController_unsubscribeDataSource, _AssetsController_buildDataRequest, _AssetsController_getEnabledChainsForAccount, _AssetsController_handleAccountGroupChanged, _AssetsController_handleEnabledNetworksChanged;
13
13
  import { BaseController } from "@metamask/base-controller";
14
- import { parseCaipAssetType } from "@metamask/utils";
14
+ import { isCaipChainId, isStrictHexString, parseCaipAssetType, parseCaipChainId } from "@metamask/utils";
15
15
  import { Mutex } from "async-mutex";
16
16
  import BigNumberJS from "bignumber.js";
17
17
  import $lodash from "lodash";
@@ -21,6 +21,7 @@ import { BackendWebsocketDataSource } from "./data-sources/BackendWebsocketDataS
21
21
  import { PriceDataSource } from "./data-sources/PriceDataSource.mjs";
22
22
  import { RpcDataSource } from "./data-sources/RpcDataSource.mjs";
23
23
  import { SnapDataSource } from "./data-sources/SnapDataSource.mjs";
24
+ import { StakedBalanceDataSource } from "./data-sources/StakedBalanceDataSource.mjs";
24
25
  import { TokenDataSource } from "./data-sources/TokenDataSource.mjs";
25
26
  import { projectLogger, createModuleLogger } from "./logger.mjs";
26
27
  import { DetectionMiddleware } from "./middlewares/DetectionMiddleware.mjs";
@@ -176,7 +177,7 @@ function normalizeResponse(response) {
176
177
  * - The controller does NOT manage polling - it simply receives pushed updates
177
178
  */
178
179
  export class AssetsController extends BaseController {
179
- constructor({ messenger, state = {}, defaultUpdateInterval = DEFAULT_POLLING_INTERVAL_MS, isEnabled = () => true, isBasicFunctionality, subscribeToBasicFunctionalityChange, queryApiClient, rpcDataSourceConfig, trackMetaMetricsEvent, accountsApiDataSourceConfig, priceDataSourceConfig, }) {
180
+ constructor({ messenger, state = {}, defaultUpdateInterval = DEFAULT_POLLING_INTERVAL_MS, isEnabled = () => true, isBasicFunctionality, subscribeToBasicFunctionalityChange, queryApiClient, rpcDataSourceConfig, trackMetaMetricsEvent, accountsApiDataSourceConfig, priceDataSourceConfig, stakedBalanceDataSourceConfig, }) {
180
181
  super({
181
182
  name: CONTROLLER_NAME,
182
183
  messenger,
@@ -211,6 +212,7 @@ export class AssetsController extends BaseController {
211
212
  _AssetsController_accountsApiDataSource.set(this, void 0);
212
213
  _AssetsController_snapDataSource.set(this, void 0);
213
214
  _AssetsController_rpcDataSource.set(this, void 0);
215
+ _AssetsController_stakedBalanceDataSource.set(this, void 0);
214
216
  _AssetsController_priceDataSource.set(this, void 0);
215
217
  _AssetsController_detectionMiddleware.set(this, void 0);
216
218
  _AssetsController_tokenDataSource.set(this, void 0);
@@ -220,7 +222,9 @@ export class AssetsController extends BaseController {
220
222
  __classPrivateFieldSet(this, _AssetsController_defaultUpdateInterval, defaultUpdateInterval, "f");
221
223
  __classPrivateFieldSet(this, _AssetsController_trackMetaMetricsEvent, trackMetaMetricsEvent, "f");
222
224
  const rpcConfig = rpcDataSourceConfig ?? {};
223
- const onActiveChainsUpdated = (dataSourceName, chains, previousChains) => this.handleActiveChainsUpdate(dataSourceName, chains, previousChains);
225
+ const onActiveChainsUpdated = (dataSourceName, chains, previousChains) => {
226
+ this.handleActiveChainsUpdate(dataSourceName, chains, previousChains);
227
+ };
224
228
  __classPrivateFieldSet(this, _AssetsController_backendWebsocketDataSource, new BackendWebsocketDataSource({
225
229
  messenger: this.messenger,
226
230
  queryApiClient,
@@ -240,6 +244,11 @@ export class AssetsController extends BaseController {
240
244
  onActiveChainsUpdated,
241
245
  ...rpcConfig,
242
246
  }), "f");
247
+ __classPrivateFieldSet(this, _AssetsController_stakedBalanceDataSource, new StakedBalanceDataSource({
248
+ messenger: this.messenger,
249
+ onActiveChainsUpdated,
250
+ ...stakedBalanceDataSourceConfig,
251
+ }), "f");
243
252
  __classPrivateFieldSet(this, _AssetsController_tokenDataSource, new TokenDataSource({
244
253
  queryApiClient,
245
254
  }), "f");
@@ -258,6 +267,7 @@ export class AssetsController extends BaseController {
258
267
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_initializeState).call(this);
259
268
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_subscribeToEvents).call(this);
260
269
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_registerActionHandlers).call(this);
270
+ // Subscriptions start only on KeyringController:unlock -> #start(), not here.
261
271
  // Subscribe to basic-functionality changes after construction so a synchronous
262
272
  // onChange during subscribe cannot run before data sources are initialized.
263
273
  if (subscribeToBasicFunctionalityChange) {
@@ -284,6 +294,9 @@ export class AssetsController extends BaseController {
284
294
  * @param previousChains - Previous chains; used to compute added/removed.
285
295
  */
286
296
  handleActiveChainsUpdate(dataSourceId, activeChains, previousChains) {
297
+ if (!__classPrivateFieldGet(this, _AssetsController_isEnabled, "f")) {
298
+ return;
299
+ }
287
300
  log('Data source active chains changed', {
288
301
  dataSourceId,
289
302
  chainCount: activeChains.length,
@@ -337,11 +350,16 @@ export class AssetsController extends BaseController {
337
350
  __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f"),
338
351
  __classPrivateFieldGet(this, _AssetsController_snapDataSource, "f"),
339
352
  __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f"),
353
+ __classPrivateFieldGet(this, _AssetsController_stakedBalanceDataSource, "f"),
340
354
  __classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f"),
341
355
  __classPrivateFieldGet(this, _AssetsController_tokenDataSource, "f"),
342
356
  __classPrivateFieldGet(this, _AssetsController_priceDataSource, "f"),
343
357
  ]
344
- : [__classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f"), __classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f")];
358
+ : [
359
+ __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f"),
360
+ __classPrivateFieldGet(this, _AssetsController_stakedBalanceDataSource, "f"),
361
+ __classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f"),
362
+ ];
345
363
  const { response, durationByDataSource } = await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_executeMiddlewares).call(this, sources, request);
346
364
  await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_updateState).call(this, response);
347
365
  if (__classPrivateFieldGet(this, _AssetsController_trackMetaMetricsEvent, "f") && !__classPrivateFieldGet(this, _AssetsController_firstInitFetchReported, "f")) {
@@ -514,21 +532,17 @@ export class AssetsController extends BaseController {
514
532
  *
515
533
  * @param accounts - Accounts to subscribe price updates for.
516
534
  * @param chainIds - Chain IDs to filter prices for.
517
- * @param options - Subscription options.
518
- * @param options.updateInterval - Polling interval in ms.
519
535
  */
520
- subscribeAssetsPrice(accounts, chainIds, options = {}) {
536
+ subscribeAssetsPrice(accounts, chainIds) {
521
537
  if (!__classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)) {
522
538
  return;
523
539
  }
524
- const { updateInterval = __classPrivateFieldGet(this, _AssetsController_defaultUpdateInterval, "f") } = options;
525
540
  const subscriptionKey = 'ds:PriceDataSource';
526
541
  const existingSubscription = __classPrivateFieldGet(this, _AssetsController_activeSubscriptions, "f").get(subscriptionKey);
527
542
  const isUpdate = existingSubscription !== undefined;
528
543
  const subscribeReq = {
529
544
  request: __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_buildDataRequest).call(this, accounts, chainIds, {
530
545
  dataTypes: ['price'],
531
- updateInterval,
532
546
  }),
533
547
  subscriptionId: subscriptionKey,
534
548
  isUpdate,
@@ -609,6 +623,7 @@ export class AssetsController extends BaseController {
609
623
  __classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f")?.destroy?.();
610
624
  __classPrivateFieldGet(this, _AssetsController_snapDataSource, "f")?.destroy?.();
611
625
  __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")?.destroy?.();
626
+ __classPrivateFieldGet(this, _AssetsController_stakedBalanceDataSource, "f")?.destroy?.();
612
627
  // Stop all active subscriptions
613
628
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_stop).call(this);
614
629
  if (__classPrivateFieldGet(this, _AssetsController_unsubscribeBasicFunctionality, "f")) {
@@ -627,7 +642,7 @@ export class AssetsController extends BaseController {
627
642
  this.messenger.unregisterActionHandler('AssetsController:unhideAsset');
628
643
  }
629
644
  }
630
- _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() {
645
+ _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_stakedBalanceDataSource = 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() {
631
646
  return this.messenger.call('AccountTreeController:getAccountsFromSelectedAccountGroup');
632
647
  }, _AssetsController_allBalanceDataSources_get = function _AssetsController_allBalanceDataSources_get() {
633
648
  return [
@@ -663,7 +678,7 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
663
678
  }
664
679
  return chains;
665
680
  }, _AssetsController_normalizeChainReference = function _AssetsController_normalizeChainReference(namespace, reference) {
666
- if (namespace === 'eip155' && reference.startsWith('0x')) {
681
+ if (namespace === 'eip155' && isStrictHexString(reference)) {
667
682
  // Convert hex to decimal for EIP155 chains
668
683
  return parseInt(reference, 16).toString();
669
684
  }
@@ -942,13 +957,17 @@ async function _AssetsController_updateState(response) {
942
957
  this.unsubscribeAssetsPrice();
943
958
  // Stop balance subscriptions by properly notifying data sources via messenger
944
959
  // This ensures data sources stop their polling timers.
945
- // Use #allBalanceDataSources so we unsubscribe from every source that may have
946
- // been subscribed (e.g. when switching from full to basic functionality).
960
+ // Use #allBalanceDataSources + staked balance source so we unsubscribe from
961
+ // every source that may have been subscribed.
962
+ const allSources = [
963
+ ...__classPrivateFieldGet(this, _AssetsController_instances, "a", _AssetsController_allBalanceDataSources_get),
964
+ __classPrivateFieldGet(this, _AssetsController_stakedBalanceDataSource, "f"),
965
+ ];
947
966
  const subscriptionKeys = [...__classPrivateFieldGet(this, _AssetsController_activeSubscriptions, "f").keys()];
948
967
  for (const subscriptionKey of subscriptionKeys) {
949
968
  if (subscriptionKey.startsWith('ds:')) {
950
969
  const sourceId = subscriptionKey.slice(3);
951
- const source = __classPrivateFieldGet(this, _AssetsController_instances, "a", _AssetsController_allBalanceDataSources_get).find((ds) => ds.getName() === sourceId);
970
+ const source = allSources.find((ds) => ds.getName() === sourceId);
952
971
  if (source) {
953
972
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_unsubscribeDataSource).call(this, source);
954
973
  }
@@ -963,6 +982,10 @@ async function _AssetsController_updateState(response) {
963
982
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_subscribeAssetsBalance).call(this, __classPrivateFieldGet(this, _AssetsController_instances, "a", _AssetsController_selectedAccounts_get), [
964
983
  ...__classPrivateFieldGet(this, _AssetsController_enabledChains, "f"),
965
984
  ]);
985
+ // Subscribe to staked balance updates (separate from regular balance chain-claiming)
986
+ __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_subscribeStakedBalance).call(this, __classPrivateFieldGet(this, _AssetsController_instances, "a", _AssetsController_selectedAccounts_get), [
987
+ ...__classPrivateFieldGet(this, _AssetsController_enabledChains, "f"),
988
+ ]);
966
989
  // Subscribe to price updates for all assets held by selected accounts
967
990
  this.subscribeAssetsPrice(__classPrivateFieldGet(this, _AssetsController_instances, "a", _AssetsController_selectedAccounts_get), [...__classPrivateFieldGet(this, _AssetsController_enabledChains, "f")]);
968
991
  }, _AssetsController_subscribeAssetsBalance = function _AssetsController_subscribeAssetsBalance(accounts, chainIds) {
@@ -993,6 +1016,18 @@ async function _AssetsController_updateState(response) {
993
1016
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_subscribeDataSource).call(this, source, accountsForSource, assignedChains);
994
1017
  }
995
1018
  }
1019
+ }, _AssetsController_subscribeStakedBalance = function _AssetsController_subscribeStakedBalance(accounts, chainIds) {
1020
+ const source = __classPrivateFieldGet(this, _AssetsController_stakedBalanceDataSource, "f");
1021
+ if (!source) {
1022
+ return;
1023
+ }
1024
+ const availableChains = new Set(source.getActiveChainsSync());
1025
+ const assignedChains = chainIds.filter((chainId) => availableChains.has(chainId));
1026
+ if (assignedChains.length === 0) {
1027
+ __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_unsubscribeDataSource).call(this, source);
1028
+ return;
1029
+ }
1030
+ __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_subscribeDataSource).call(this, source, accounts, assignedChains);
996
1031
  }, _AssetsController_buildChainToAccountsMap = function _AssetsController_buildChainToAccountsMap(accounts, chainsToSubscribe) {
997
1032
  const chainToAccounts = new Map();
998
1033
  for (const account of accounts) {
@@ -1069,16 +1104,24 @@ async function _AssetsController_updateState(response) {
1069
1104
  const scopes = account.scopes ?? [];
1070
1105
  const result = [];
1071
1106
  for (const scope of scopes) {
1072
- const [namespace, reference] = scope.split(':');
1107
+ const scopeStr = scope;
1108
+ if (!isCaipChainId(scopeStr)) {
1109
+ result.push(scope);
1110
+ continue;
1111
+ }
1112
+ const { namespace, reference } = parseCaipChainId(scopeStr);
1073
1113
  // Wildcard scope (e.g., "eip155:0" means all enabled chains in that namespace)
1074
1114
  if (reference === '0') {
1075
1115
  for (const chain of __classPrivateFieldGet(this, _AssetsController_enabledChains, "f")) {
1076
- if (chain.startsWith(`${namespace}:`)) {
1077
- result.push(chain);
1116
+ if (isCaipChainId(chain)) {
1117
+ const chainParsed = parseCaipChainId(chain);
1118
+ if (chainParsed.namespace === namespace) {
1119
+ result.push(chain);
1120
+ }
1078
1121
  }
1079
1122
  }
1080
1123
  }
1081
- else if (namespace === 'eip155' && reference?.startsWith('0x')) {
1124
+ else if (namespace === 'eip155' && isStrictHexString(reference)) {
1082
1125
  // Normalize hex to decimal for EIP155
1083
1126
  result.push(`eip155:${parseInt(reference, 16)}`);
1084
1127
  }