@metamask/assets-controller 0.1.0 → 1.0.0

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 (132) hide show
  1. package/CHANGELOG.md +31 -3
  2. package/dist/AssetsController-method-action-types.cjs +7 -0
  3. package/dist/AssetsController-method-action-types.cjs.map +1 -0
  4. package/dist/AssetsController-method-action-types.d.cts +78 -0
  5. package/dist/AssetsController-method-action-types.d.cts.map +1 -0
  6. package/dist/AssetsController-method-action-types.d.mts +78 -0
  7. package/dist/AssetsController-method-action-types.d.mts.map +1 -0
  8. package/dist/AssetsController-method-action-types.mjs +6 -0
  9. package/dist/AssetsController-method-action-types.mjs.map +1 -0
  10. package/dist/AssetsController.cjs +273 -247
  11. package/dist/AssetsController.cjs.map +1 -1
  12. package/dist/AssetsController.d.cts +55 -93
  13. package/dist/AssetsController.d.cts.map +1 -1
  14. package/dist/AssetsController.d.mts +55 -93
  15. package/dist/AssetsController.d.mts.map +1 -1
  16. package/dist/AssetsController.mjs +273 -247
  17. package/dist/AssetsController.mjs.map +1 -1
  18. package/dist/data-sources/AbstractDataSource.cjs +8 -0
  19. package/dist/data-sources/AbstractDataSource.cjs.map +1 -1
  20. package/dist/data-sources/AbstractDataSource.d.cts +16 -1
  21. package/dist/data-sources/AbstractDataSource.d.cts.map +1 -1
  22. package/dist/data-sources/AbstractDataSource.d.mts +16 -1
  23. package/dist/data-sources/AbstractDataSource.d.mts.map +1 -1
  24. package/dist/data-sources/AbstractDataSource.mjs +8 -0
  25. package/dist/data-sources/AbstractDataSource.mjs.map +1 -1
  26. package/dist/data-sources/AccountsApiDataSource.cjs +25 -99
  27. package/dist/data-sources/AccountsApiDataSource.cjs.map +1 -1
  28. package/dist/data-sources/AccountsApiDataSource.d.cts +5 -67
  29. package/dist/data-sources/AccountsApiDataSource.d.cts.map +1 -1
  30. package/dist/data-sources/AccountsApiDataSource.d.mts +5 -67
  31. package/dist/data-sources/AccountsApiDataSource.d.mts.map +1 -1
  32. package/dist/data-sources/AccountsApiDataSource.mjs +24 -97
  33. package/dist/data-sources/AccountsApiDataSource.mjs.map +1 -1
  34. package/dist/data-sources/BackendWebsocketDataSource.cjs +138 -45
  35. package/dist/data-sources/BackendWebsocketDataSource.cjs.map +1 -1
  36. package/dist/data-sources/BackendWebsocketDataSource.d.cts +19 -66
  37. package/dist/data-sources/BackendWebsocketDataSource.d.cts.map +1 -1
  38. package/dist/data-sources/BackendWebsocketDataSource.d.mts +19 -66
  39. package/dist/data-sources/BackendWebsocketDataSource.d.mts.map +1 -1
  40. package/dist/data-sources/BackendWebsocketDataSource.mjs +138 -45
  41. package/dist/data-sources/BackendWebsocketDataSource.mjs.map +1 -1
  42. package/dist/data-sources/PriceDataSource.cjs +22 -44
  43. package/dist/data-sources/PriceDataSource.cjs.map +1 -1
  44. package/dist/data-sources/PriceDataSource.d.cts +6 -89
  45. package/dist/data-sources/PriceDataSource.d.cts.map +1 -1
  46. package/dist/data-sources/PriceDataSource.d.mts +6 -89
  47. package/dist/data-sources/PriceDataSource.d.mts.map +1 -1
  48. package/dist/data-sources/PriceDataSource.mjs +22 -44
  49. package/dist/data-sources/PriceDataSource.mjs.map +1 -1
  50. package/dist/data-sources/RpcDataSource.cjs +64 -102
  51. package/dist/data-sources/RpcDataSource.cjs.map +1 -1
  52. package/dist/data-sources/RpcDataSource.d.cts +16 -62
  53. package/dist/data-sources/RpcDataSource.d.cts.map +1 -1
  54. package/dist/data-sources/RpcDataSource.d.mts +16 -62
  55. package/dist/data-sources/RpcDataSource.d.mts.map +1 -1
  56. package/dist/data-sources/RpcDataSource.mjs +64 -102
  57. package/dist/data-sources/RpcDataSource.mjs.map +1 -1
  58. package/dist/data-sources/SnapDataSource.cjs +32 -30
  59. package/dist/data-sources/SnapDataSource.cjs.map +1 -1
  60. package/dist/data-sources/SnapDataSource.d.cts +7 -44
  61. package/dist/data-sources/SnapDataSource.d.cts.map +1 -1
  62. package/dist/data-sources/SnapDataSource.d.mts +7 -44
  63. package/dist/data-sources/SnapDataSource.d.mts.map +1 -1
  64. package/dist/data-sources/SnapDataSource.mjs +32 -30
  65. package/dist/data-sources/SnapDataSource.mjs.map +1 -1
  66. package/dist/data-sources/TokenDataSource.cjs +3 -16
  67. package/dist/data-sources/TokenDataSource.cjs.map +1 -1
  68. package/dist/data-sources/TokenDataSource.d.cts +2 -25
  69. package/dist/data-sources/TokenDataSource.d.cts.map +1 -1
  70. package/dist/data-sources/TokenDataSource.d.mts +2 -25
  71. package/dist/data-sources/TokenDataSource.d.mts.map +1 -1
  72. package/dist/data-sources/TokenDataSource.mjs +3 -16
  73. package/dist/data-sources/TokenDataSource.mjs.map +1 -1
  74. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.cjs +27 -35
  75. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.cjs.map +1 -1
  76. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.cts.map +1 -1
  77. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.mts.map +1 -1
  78. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.mjs +27 -35
  79. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.mjs.map +1 -1
  80. package/dist/data-sources/index.cjs +1 -6
  81. package/dist/data-sources/index.cjs.map +1 -1
  82. package/dist/data-sources/index.d.cts +6 -7
  83. package/dist/data-sources/index.d.cts.map +1 -1
  84. package/dist/data-sources/index.d.mts +6 -7
  85. package/dist/data-sources/index.d.mts.map +1 -1
  86. package/dist/data-sources/index.mjs +1 -3
  87. package/dist/data-sources/index.mjs.map +1 -1
  88. package/dist/index.cjs +6 -6
  89. package/dist/index.cjs.map +1 -1
  90. package/dist/index.d.cts +11 -11
  91. package/dist/index.d.cts.map +1 -1
  92. package/dist/index.d.mts +11 -11
  93. package/dist/index.d.mts.map +1 -1
  94. package/dist/index.mjs +3 -3
  95. package/dist/index.mjs.map +1 -1
  96. package/dist/middlewares/DetectionMiddleware.cjs +4 -27
  97. package/dist/middlewares/DetectionMiddleware.cjs.map +1 -1
  98. package/dist/middlewares/DetectionMiddleware.d.cts +3 -26
  99. package/dist/middlewares/DetectionMiddleware.d.cts.map +1 -1
  100. package/dist/middlewares/DetectionMiddleware.d.mts +3 -26
  101. package/dist/middlewares/DetectionMiddleware.d.mts.map +1 -1
  102. package/dist/middlewares/DetectionMiddleware.mjs +4 -27
  103. package/dist/middlewares/DetectionMiddleware.mjs.map +1 -1
  104. package/dist/middlewares/index.cjs.map +1 -1
  105. package/dist/middlewares/index.d.cts +1 -1
  106. package/dist/middlewares/index.d.cts.map +1 -1
  107. package/dist/middlewares/index.d.mts +1 -1
  108. package/dist/middlewares/index.d.mts.map +1 -1
  109. package/dist/middlewares/index.mjs.map +1 -1
  110. package/dist/selectors/balance.cjs +306 -0
  111. package/dist/selectors/balance.cjs.map +1 -0
  112. package/dist/selectors/balance.d.cts +22 -0
  113. package/dist/selectors/balance.d.cts.map +1 -0
  114. package/dist/selectors/balance.d.mts +22 -0
  115. package/dist/selectors/balance.d.mts.map +1 -0
  116. package/dist/selectors/balance.mjs +297 -0
  117. package/dist/selectors/balance.mjs.map +1 -0
  118. package/dist/types.cjs.map +1 -1
  119. package/dist/types.d.cts +63 -18
  120. package/dist/types.d.cts.map +1 -1
  121. package/dist/types.d.mts +63 -18
  122. package/dist/types.d.mts.map +1 -1
  123. package/dist/types.mjs.map +1 -1
  124. package/package.json +4 -4
  125. package/dist/data-sources/initDataSources.cjs +0 -215
  126. package/dist/data-sources/initDataSources.cjs.map +0 -1
  127. package/dist/data-sources/initDataSources.d.cts +0 -140
  128. package/dist/data-sources/initDataSources.d.cts.map +0 -1
  129. package/dist/data-sources/initDataSources.d.mts +0 -140
  130. package/dist/data-sources/initDataSources.d.mts.map +0 -1
  131. package/dist/data-sources/initDataSources.mjs +0 -210
  132. package/dist/data-sources/initDataSources.mjs.map +0 -1
@@ -1,92 +1,55 @@
1
1
  import type { AccountTreeControllerGetAccountsFromSelectedAccountGroupAction, AccountTreeControllerSelectedAccountGroupChangeEvent } from "@metamask/account-tree-controller";
2
2
  import { BaseController } from "@metamask/base-controller";
3
3
  import type { ControllerGetStateAction, ControllerStateChangeEvent } from "@metamask/base-controller";
4
+ import type { ApiPlatformClient, BackendWebSocketServiceActions, BackendWebSocketServiceEvents } from "@metamask/core-backend";
4
5
  import type { KeyringControllerLockEvent, KeyringControllerUnlockEvent } from "@metamask/keyring-controller";
5
6
  import type { InternalAccount } from "@metamask/keyring-internal-api";
6
7
  import type { Messenger } from "@metamask/messenger";
7
8
  import type { NetworkEnablementControllerGetStateAction, NetworkEnablementControllerEvents } from "@metamask/network-enablement-controller";
8
- import type { Json } from "@metamask/utils";
9
- import type { AccountsApiDataSourceGetAssetsMiddlewareAction } from "./data-sources/AccountsApiDataSource.cjs";
10
- import type { PriceDataSourceGetAssetsMiddlewareAction, PriceDataSourceFetchAction, PriceDataSourceSubscribeAction, PriceDataSourceUnsubscribeAction } from "./data-sources/PriceDataSource.cjs";
11
- import type { RpcDataSourceGetAssetsMiddlewareAction } from "./data-sources/RpcDataSource.cjs";
12
- import type { SnapDataSourceGetAssetsMiddlewareAction } from "./data-sources/SnapDataSource.cjs";
13
- import type { TokenDataSourceGetAssetsMiddlewareAction } from "./data-sources/TokenDataSource.cjs";
14
- import type { DetectionMiddlewareGetAssetsMiddlewareAction } from "./middlewares/DetectionMiddleware.cjs";
15
- import type { AccountId, ChainId, Caip19AssetId, AssetMetadata, AssetPrice, AssetBalance, AssetType, DataType, DataResponse, DataSourceDefinition, Asset } from "./types.cjs";
9
+ import type { AssetsControllerMethodActions } from "./AssetsController-method-action-types.cjs";
10
+ import type { RpcDataSourceConfig } from "./data-sources/RpcDataSource.cjs";
11
+ import type { AccountId, AssetPreferences, ChainId, Caip19AssetId, AssetMetadata, AssetPrice, AssetBalance, AssetType, DataType, DataRequest, DataResponse, Asset } from "./types.cjs";
16
12
  declare const CONTROLLER_NAME: "AssetsController";
17
13
  /**
18
14
  * State structure for AssetsController.
19
15
  *
20
- * All values are JSON-serializable. The type is widened to satisfy
21
- * StateConstraint from BaseController, but the actual runtime values
22
- * conform to AssetMetadata, AssetPrice, and AssetBalance interfaces.
16
+ * All values are JSON-serializable. UI preferences (e.g. hidden) are in
17
+ * assetPreferences, not in metadata.
23
18
  *
24
19
  * @see AssetsControllerStateInternal for the semantic type structure
25
20
  */
26
21
  export type AssetsControllerState = {
27
22
  /** Shared metadata for all assets (stored once per asset) */
28
23
  assetsMetadata: {
29
- [assetId: string]: Json;
24
+ [assetId: string]: AssetMetadata;
30
25
  };
31
26
  /** Per-account balance data */
32
27
  assetsBalance: {
33
28
  [accountId: string]: {
34
- [assetId: string]: Json;
29
+ [assetId: string]: AssetBalance;
35
30
  };
36
31
  };
37
32
  /** Price data for assets */
38
33
  assetsPrice: {
39
- [assetId: string]: Json;
34
+ [assetId: string]: AssetPrice;
40
35
  };
41
36
  /** Custom assets added by users per account (CAIP-19 asset IDs) */
42
37
  customAssets: {
43
- [accountId: string]: string[];
38
+ [accountId: string]: Caip19AssetId[];
39
+ };
40
+ /** UI preferences per asset (e.g. hidden) */
41
+ assetPreferences: {
42
+ [assetId: string]: AssetPreferences;
44
43
  };
45
44
  };
46
45
  /**
47
46
  * Returns the default state for AssetsController.
48
47
  *
49
- * @returns The default AssetsController state with empty metadata, balance, price, and customAssets maps.
48
+ * @returns The default AssetsController state with empty maps.
50
49
  */
51
50
  export declare function getDefaultAssetsControllerState(): AssetsControllerState;
52
51
  export type AssetsControllerGetStateAction = ControllerGetStateAction<typeof CONTROLLER_NAME, AssetsControllerState>;
53
- export type AssetsControllerGetAssetsAction = {
54
- type: `${typeof CONTROLLER_NAME}:getAssets`;
55
- handler: AssetsController['getAssets'];
56
- };
57
- export type AssetsControllerGetAssetsBalanceAction = {
58
- type: `${typeof CONTROLLER_NAME}:getAssetsBalance`;
59
- handler: AssetsController['getAssetsBalance'];
60
- };
61
- export type AssetsControllerGetAssetMetadataAction = {
62
- type: `${typeof CONTROLLER_NAME}:getAssetMetadata`;
63
- handler: AssetsController['getAssetMetadata'];
64
- };
65
- export type AssetsControllerGetAssetsPriceAction = {
66
- type: `${typeof CONTROLLER_NAME}:getAssetsPrice`;
67
- handler: AssetsController['getAssetsPrice'];
68
- };
69
- export type AssetsControllerActiveChainsUpdateAction = {
70
- type: `${typeof CONTROLLER_NAME}:activeChainsUpdate`;
71
- handler: AssetsController['handleActiveChainsUpdate'];
72
- };
73
- export type AssetsControllerAssetsUpdateAction = {
74
- type: `${typeof CONTROLLER_NAME}:assetsUpdate`;
75
- handler: AssetsController['handleAssetsUpdate'];
76
- };
77
- export type AssetsControllerAddCustomAssetAction = {
78
- type: `${typeof CONTROLLER_NAME}:addCustomAsset`;
79
- handler: AssetsController['addCustomAsset'];
80
- };
81
- export type AssetsControllerRemoveCustomAssetAction = {
82
- type: `${typeof CONTROLLER_NAME}:removeCustomAsset`;
83
- handler: AssetsController['removeCustomAsset'];
84
- };
85
- export type AssetsControllerGetCustomAssetsAction = {
86
- type: `${typeof CONTROLLER_NAME}:getCustomAssets`;
87
- handler: AssetsController['getCustomAssets'];
88
- };
89
- export type AssetsControllerActions = AssetsControllerGetStateAction | AssetsControllerGetAssetsAction | AssetsControllerGetAssetsBalanceAction | AssetsControllerGetAssetMetadataAction | AssetsControllerGetAssetsPriceAction | AssetsControllerActiveChainsUpdateAction | AssetsControllerAssetsUpdateAction | AssetsControllerAddCustomAssetAction | AssetsControllerRemoveCustomAssetAction | AssetsControllerGetCustomAssetsAction;
52
+ export type AssetsControllerActions = AssetsControllerGetStateAction | AssetsControllerMethodActions;
90
53
  export type AssetsControllerStateChangeEvent = ControllerStateChangeEvent<typeof CONTROLLER_NAME, AssetsControllerState>;
91
54
  export type AssetsControllerBalanceChangedEvent = {
92
55
  type: `${typeof CONTROLLER_NAME}:balanceChanged`;
@@ -113,22 +76,8 @@ export type AssetsControllerAssetsDetectedEvent = {
113
76
  }];
114
77
  };
115
78
  export type AssetsControllerEvents = AssetsControllerStateChangeEvent | AssetsControllerBalanceChangedEvent | AssetsControllerPriceChangedEvent | AssetsControllerAssetsDetectedEvent;
116
- type AllowedActions = AccountTreeControllerGetAccountsFromSelectedAccountGroupAction | NetworkEnablementControllerGetStateAction | AccountsApiDataSourceGetAssetsMiddlewareAction | SnapDataSourceGetAssetsMiddlewareAction | RpcDataSourceGetAssetsMiddlewareAction | TokenDataSourceGetAssetsMiddlewareAction | PriceDataSourceGetAssetsMiddlewareAction | PriceDataSourceFetchAction | PriceDataSourceSubscribeAction | PriceDataSourceUnsubscribeAction | DetectionMiddlewareGetAssetsMiddlewareAction;
117
- /**
118
- * App lifecycle event: fired when app becomes active (opened/foregrounded)
119
- */
120
- export type AppStateControllerAppOpenedEvent = {
121
- type: 'AppStateController:appOpened';
122
- payload: [];
123
- };
124
- /**
125
- * App lifecycle event: fired when app becomes inactive (closed/backgrounded)
126
- */
127
- export type AppStateControllerAppClosedEvent = {
128
- type: 'AppStateController:appClosed';
129
- payload: [];
130
- };
131
- type AllowedEvents = AccountTreeControllerSelectedAccountGroupChangeEvent | NetworkEnablementControllerEvents | AppStateControllerAppOpenedEvent | AppStateControllerAppClosedEvent | KeyringControllerLockEvent | KeyringControllerUnlockEvent;
79
+ type AllowedActions = AccountTreeControllerGetAccountsFromSelectedAccountGroupAction | NetworkEnablementControllerGetStateAction | BackendWebSocketServiceActions;
80
+ type AllowedEvents = AccountTreeControllerSelectedAccountGroupChangeEvent | NetworkEnablementControllerEvents | BackendWebSocketServiceEvents | KeyringControllerLockEvent | KeyringControllerUnlockEvent;
132
81
  export type AssetsControllerMessenger = Messenger<typeof CONTROLLER_NAME, AssetsControllerActions | AllowedActions, AssetsControllerEvents | AllowedEvents>;
133
82
  export type AssetsControllerOptions = {
134
83
  messenger: AssetsControllerMessenger;
@@ -137,6 +86,13 @@ export type AssetsControllerOptions = {
137
86
  defaultUpdateInterval?: number;
138
87
  /** Function to determine if the controller is enabled. Defaults to true. */
139
88
  isEnabled?: () => boolean;
89
+ /**
90
+ * API client for balance/price/metadata. The controller instantiates data sources
91
+ * and uses them directly when this is provided.
92
+ */
93
+ queryApiClient: ApiPlatformClient;
94
+ /** Optional configuration for RpcDataSource. */
95
+ rpcDataSourceConfig?: RpcDataSourceConfig;
140
96
  };
141
97
  /**
142
98
  * AssetsController provides a unified interface for managing asset balances
@@ -154,13 +110,8 @@ export type AssetsControllerOptions = {
154
110
  * based on which chains they support. When active chains change, the controller
155
111
  * dynamically adjusts subscriptions.
156
112
  *
157
- * 4. **App Lifecycle Management**: Listens to app open/close events via messenger
158
- * to start/stop subscriptions automatically, conserving resources when app is closed.
159
- *
160
- * ## App Lifecycle
161
- *
162
- * - **App Opened** (`AppStateController:appOpened`): Starts subscriptions, fetches initial data
163
- * - **App Closed** (`AppStateController:appClosed`): Stops all subscriptions to conserve resources
113
+ * 4. **Keyring Lifecycle**: Listens to KeyringController unlock/lock events to
114
+ * start/stop subscriptions when the wallet is unlocked or locked.
164
115
  *
165
116
  * ## Architecture
166
117
  *
@@ -170,27 +121,21 @@ export type AssetsControllerOptions = {
170
121
  */
171
122
  export declare class AssetsController extends BaseController<typeof CONTROLLER_NAME, AssetsControllerState, AssetsControllerMessenger> {
172
123
  #private;
173
- constructor({ messenger, state, defaultUpdateInterval, isEnabled, }: AssetsControllerOptions);
124
+ constructor({ messenger, state, defaultUpdateInterval, isEnabled, queryApiClient, rpcDataSourceConfig, }: AssetsControllerOptions);
174
125
  /**
175
- * Register data sources with the controller.
176
- * Order of the array determines subscription order.
177
- *
178
- * Data sources report chain changes by calling `AssetsController:activeChainsUpdate` action.
126
+ * Handle when a data source's supported chains change.
127
+ * Used to refresh balance subscriptions and run a one-time fetch when a new chain is supported.
179
128
  *
180
- * @param dataSourceIds - Array of data source identifiers to register.
181
- */
182
- registerDataSources(dataSourceIds: DataSourceDefinition[]): void;
183
- /**
184
- * Handle when a data source's active chains change.
185
- * Active chains are chains that are both supported AND available.
186
- * Updates centralized chain tracking and triggers re-selection if needed.
129
+ * - On any add/remove: re-subscribes to data sources so chain assignment stays correct.
130
+ * - When chains are added: fetches balances for the new chains (for selected accounts on enabled networks).
187
131
  *
188
- * Data sources should call this via `AssetsController:activeChainsUpdate` action.
132
+ * Controller does not store chains; sources report via this callback. previousChains is required for diff.
189
133
  *
190
134
  * @param dataSourceId - The identifier of the data source reporting the change.
191
- * @param activeChains - Array of currently active chain IDs for this source.
135
+ * @param activeChains - Currently active (supported and available) chain IDs for this source.
136
+ * @param previousChains - Previous chains; used to compute added/removed.
192
137
  */
193
- handleActiveChainsUpdate(dataSourceId: string, activeChains: ChainId[]): void;
138
+ handleActiveChainsUpdate(dataSourceId: string, activeChains: ChainId[], previousChains: ChainId[]): void;
194
139
  getAssets(accounts: InternalAccount[], options?: {
195
140
  chainIds?: ChainId[];
196
141
  assetTypes?: AssetType[];
@@ -211,6 +156,7 @@ export declare class AssetsController extends BaseController<typeof CONTROLLER_N
211
156
  /**
212
157
  * Add a custom asset for an account.
213
158
  * Custom assets are included in subscription and fetch operations.
159
+ * Adding a custom asset also unhides it if it was previously hidden.
214
160
  *
215
161
  * @param accountId - The account ID to add the custom asset for.
216
162
  * @param assetId - The CAIP-19 asset ID to add.
@@ -230,6 +176,20 @@ export declare class AssetsController extends BaseController<typeof CONTROLLER_N
230
176
  * @returns Array of CAIP-19 asset IDs for the account's custom assets.
231
177
  */
232
178
  getCustomAssets(accountId: AccountId): Caip19AssetId[];
179
+ /**
180
+ * Hide an asset globally.
181
+ * Hidden assets are excluded from the asset list returned by getAssets.
182
+ * The hidden state is stored in assetPreferences.
183
+ *
184
+ * @param assetId - The CAIP-19 asset ID to hide.
185
+ */
186
+ hideAsset(assetId: Caip19AssetId): void;
187
+ /**
188
+ * Unhide an asset globally.
189
+ *
190
+ * @param assetId - The CAIP-19 asset ID to unhide.
191
+ */
192
+ unhideAsset(assetId: Caip19AssetId): void;
233
193
  /**
234
194
  * Subscribe to price updates for all assets held by the given accounts.
235
195
  * Polls PriceDataSource which fetches prices from balance state.
@@ -248,12 +208,14 @@ export declare class AssetsController extends BaseController<typeof CONTROLLER_N
248
208
  unsubscribeAssetsPrice(): void;
249
209
  /**
250
210
  * Handle assets updated from a data source.
251
- * Called via `AssetsController:assetsUpdate` action by data sources.
211
+ * Called via the onAssetsUpdate callback passed in SubscriptionRequest when the controller subscribes to a data source.
212
+ * Enriches the response with token metadata (via middlewares) before updating state.
252
213
  *
253
214
  * @param response - The data response with updated assets
254
215
  * @param sourceId - The data source ID reporting the update
216
+ * @param request - Optional original request for context when enriching
255
217
  */
256
- handleAssetsUpdate(response: DataResponse, sourceId: string): Promise<void>;
218
+ handleAssetsUpdate(response: DataResponse, sourceId: string, request?: DataRequest): Promise<void>;
257
219
  destroy(): void;
258
220
  }
259
221
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"AssetsController.d.cts","sourceRoot":"","sources":["../src/AssetsController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssetsController.d.cts","sourceRoot":"","sources":["../src/AssetsController.ts"],"names":[],"mappings":"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"}
@@ -1,92 +1,55 @@
1
1
  import type { AccountTreeControllerGetAccountsFromSelectedAccountGroupAction, AccountTreeControllerSelectedAccountGroupChangeEvent } from "@metamask/account-tree-controller";
2
2
  import { BaseController } from "@metamask/base-controller";
3
3
  import type { ControllerGetStateAction, ControllerStateChangeEvent } from "@metamask/base-controller";
4
+ import type { ApiPlatformClient, BackendWebSocketServiceActions, BackendWebSocketServiceEvents } from "@metamask/core-backend";
4
5
  import type { KeyringControllerLockEvent, KeyringControllerUnlockEvent } from "@metamask/keyring-controller";
5
6
  import type { InternalAccount } from "@metamask/keyring-internal-api";
6
7
  import type { Messenger } from "@metamask/messenger";
7
8
  import type { NetworkEnablementControllerGetStateAction, NetworkEnablementControllerEvents } from "@metamask/network-enablement-controller";
8
- import type { Json } from "@metamask/utils";
9
- import type { AccountsApiDataSourceGetAssetsMiddlewareAction } from "./data-sources/AccountsApiDataSource.mjs";
10
- import type { PriceDataSourceGetAssetsMiddlewareAction, PriceDataSourceFetchAction, PriceDataSourceSubscribeAction, PriceDataSourceUnsubscribeAction } from "./data-sources/PriceDataSource.mjs";
11
- import type { RpcDataSourceGetAssetsMiddlewareAction } from "./data-sources/RpcDataSource.mjs";
12
- import type { SnapDataSourceGetAssetsMiddlewareAction } from "./data-sources/SnapDataSource.mjs";
13
- import type { TokenDataSourceGetAssetsMiddlewareAction } from "./data-sources/TokenDataSource.mjs";
14
- import type { DetectionMiddlewareGetAssetsMiddlewareAction } from "./middlewares/DetectionMiddleware.mjs";
15
- import type { AccountId, ChainId, Caip19AssetId, AssetMetadata, AssetPrice, AssetBalance, AssetType, DataType, DataResponse, DataSourceDefinition, Asset } from "./types.mjs";
9
+ import type { AssetsControllerMethodActions } from "./AssetsController-method-action-types.mjs";
10
+ import type { RpcDataSourceConfig } from "./data-sources/RpcDataSource.mjs";
11
+ import type { AccountId, AssetPreferences, ChainId, Caip19AssetId, AssetMetadata, AssetPrice, AssetBalance, AssetType, DataType, DataRequest, DataResponse, Asset } from "./types.mjs";
16
12
  declare const CONTROLLER_NAME: "AssetsController";
17
13
  /**
18
14
  * State structure for AssetsController.
19
15
  *
20
- * All values are JSON-serializable. The type is widened to satisfy
21
- * StateConstraint from BaseController, but the actual runtime values
22
- * conform to AssetMetadata, AssetPrice, and AssetBalance interfaces.
16
+ * All values are JSON-serializable. UI preferences (e.g. hidden) are in
17
+ * assetPreferences, not in metadata.
23
18
  *
24
19
  * @see AssetsControllerStateInternal for the semantic type structure
25
20
  */
26
21
  export type AssetsControllerState = {
27
22
  /** Shared metadata for all assets (stored once per asset) */
28
23
  assetsMetadata: {
29
- [assetId: string]: Json;
24
+ [assetId: string]: AssetMetadata;
30
25
  };
31
26
  /** Per-account balance data */
32
27
  assetsBalance: {
33
28
  [accountId: string]: {
34
- [assetId: string]: Json;
29
+ [assetId: string]: AssetBalance;
35
30
  };
36
31
  };
37
32
  /** Price data for assets */
38
33
  assetsPrice: {
39
- [assetId: string]: Json;
34
+ [assetId: string]: AssetPrice;
40
35
  };
41
36
  /** Custom assets added by users per account (CAIP-19 asset IDs) */
42
37
  customAssets: {
43
- [accountId: string]: string[];
38
+ [accountId: string]: Caip19AssetId[];
39
+ };
40
+ /** UI preferences per asset (e.g. hidden) */
41
+ assetPreferences: {
42
+ [assetId: string]: AssetPreferences;
44
43
  };
45
44
  };
46
45
  /**
47
46
  * Returns the default state for AssetsController.
48
47
  *
49
- * @returns The default AssetsController state with empty metadata, balance, price, and customAssets maps.
48
+ * @returns The default AssetsController state with empty maps.
50
49
  */
51
50
  export declare function getDefaultAssetsControllerState(): AssetsControllerState;
52
51
  export type AssetsControllerGetStateAction = ControllerGetStateAction<typeof CONTROLLER_NAME, AssetsControllerState>;
53
- export type AssetsControllerGetAssetsAction = {
54
- type: `${typeof CONTROLLER_NAME}:getAssets`;
55
- handler: AssetsController['getAssets'];
56
- };
57
- export type AssetsControllerGetAssetsBalanceAction = {
58
- type: `${typeof CONTROLLER_NAME}:getAssetsBalance`;
59
- handler: AssetsController['getAssetsBalance'];
60
- };
61
- export type AssetsControllerGetAssetMetadataAction = {
62
- type: `${typeof CONTROLLER_NAME}:getAssetMetadata`;
63
- handler: AssetsController['getAssetMetadata'];
64
- };
65
- export type AssetsControllerGetAssetsPriceAction = {
66
- type: `${typeof CONTROLLER_NAME}:getAssetsPrice`;
67
- handler: AssetsController['getAssetsPrice'];
68
- };
69
- export type AssetsControllerActiveChainsUpdateAction = {
70
- type: `${typeof CONTROLLER_NAME}:activeChainsUpdate`;
71
- handler: AssetsController['handleActiveChainsUpdate'];
72
- };
73
- export type AssetsControllerAssetsUpdateAction = {
74
- type: `${typeof CONTROLLER_NAME}:assetsUpdate`;
75
- handler: AssetsController['handleAssetsUpdate'];
76
- };
77
- export type AssetsControllerAddCustomAssetAction = {
78
- type: `${typeof CONTROLLER_NAME}:addCustomAsset`;
79
- handler: AssetsController['addCustomAsset'];
80
- };
81
- export type AssetsControllerRemoveCustomAssetAction = {
82
- type: `${typeof CONTROLLER_NAME}:removeCustomAsset`;
83
- handler: AssetsController['removeCustomAsset'];
84
- };
85
- export type AssetsControllerGetCustomAssetsAction = {
86
- type: `${typeof CONTROLLER_NAME}:getCustomAssets`;
87
- handler: AssetsController['getCustomAssets'];
88
- };
89
- export type AssetsControllerActions = AssetsControllerGetStateAction | AssetsControllerGetAssetsAction | AssetsControllerGetAssetsBalanceAction | AssetsControllerGetAssetMetadataAction | AssetsControllerGetAssetsPriceAction | AssetsControllerActiveChainsUpdateAction | AssetsControllerAssetsUpdateAction | AssetsControllerAddCustomAssetAction | AssetsControllerRemoveCustomAssetAction | AssetsControllerGetCustomAssetsAction;
52
+ export type AssetsControllerActions = AssetsControllerGetStateAction | AssetsControllerMethodActions;
90
53
  export type AssetsControllerStateChangeEvent = ControllerStateChangeEvent<typeof CONTROLLER_NAME, AssetsControllerState>;
91
54
  export type AssetsControllerBalanceChangedEvent = {
92
55
  type: `${typeof CONTROLLER_NAME}:balanceChanged`;
@@ -113,22 +76,8 @@ export type AssetsControllerAssetsDetectedEvent = {
113
76
  }];
114
77
  };
115
78
  export type AssetsControllerEvents = AssetsControllerStateChangeEvent | AssetsControllerBalanceChangedEvent | AssetsControllerPriceChangedEvent | AssetsControllerAssetsDetectedEvent;
116
- type AllowedActions = AccountTreeControllerGetAccountsFromSelectedAccountGroupAction | NetworkEnablementControllerGetStateAction | AccountsApiDataSourceGetAssetsMiddlewareAction | SnapDataSourceGetAssetsMiddlewareAction | RpcDataSourceGetAssetsMiddlewareAction | TokenDataSourceGetAssetsMiddlewareAction | PriceDataSourceGetAssetsMiddlewareAction | PriceDataSourceFetchAction | PriceDataSourceSubscribeAction | PriceDataSourceUnsubscribeAction | DetectionMiddlewareGetAssetsMiddlewareAction;
117
- /**
118
- * App lifecycle event: fired when app becomes active (opened/foregrounded)
119
- */
120
- export type AppStateControllerAppOpenedEvent = {
121
- type: 'AppStateController:appOpened';
122
- payload: [];
123
- };
124
- /**
125
- * App lifecycle event: fired when app becomes inactive (closed/backgrounded)
126
- */
127
- export type AppStateControllerAppClosedEvent = {
128
- type: 'AppStateController:appClosed';
129
- payload: [];
130
- };
131
- type AllowedEvents = AccountTreeControllerSelectedAccountGroupChangeEvent | NetworkEnablementControllerEvents | AppStateControllerAppOpenedEvent | AppStateControllerAppClosedEvent | KeyringControllerLockEvent | KeyringControllerUnlockEvent;
79
+ type AllowedActions = AccountTreeControllerGetAccountsFromSelectedAccountGroupAction | NetworkEnablementControllerGetStateAction | BackendWebSocketServiceActions;
80
+ type AllowedEvents = AccountTreeControllerSelectedAccountGroupChangeEvent | NetworkEnablementControllerEvents | BackendWebSocketServiceEvents | KeyringControllerLockEvent | KeyringControllerUnlockEvent;
132
81
  export type AssetsControllerMessenger = Messenger<typeof CONTROLLER_NAME, AssetsControllerActions | AllowedActions, AssetsControllerEvents | AllowedEvents>;
133
82
  export type AssetsControllerOptions = {
134
83
  messenger: AssetsControllerMessenger;
@@ -137,6 +86,13 @@ export type AssetsControllerOptions = {
137
86
  defaultUpdateInterval?: number;
138
87
  /** Function to determine if the controller is enabled. Defaults to true. */
139
88
  isEnabled?: () => boolean;
89
+ /**
90
+ * API client for balance/price/metadata. The controller instantiates data sources
91
+ * and uses them directly when this is provided.
92
+ */
93
+ queryApiClient: ApiPlatformClient;
94
+ /** Optional configuration for RpcDataSource. */
95
+ rpcDataSourceConfig?: RpcDataSourceConfig;
140
96
  };
141
97
  /**
142
98
  * AssetsController provides a unified interface for managing asset balances
@@ -154,13 +110,8 @@ export type AssetsControllerOptions = {
154
110
  * based on which chains they support. When active chains change, the controller
155
111
  * dynamically adjusts subscriptions.
156
112
  *
157
- * 4. **App Lifecycle Management**: Listens to app open/close events via messenger
158
- * to start/stop subscriptions automatically, conserving resources when app is closed.
159
- *
160
- * ## App Lifecycle
161
- *
162
- * - **App Opened** (`AppStateController:appOpened`): Starts subscriptions, fetches initial data
163
- * - **App Closed** (`AppStateController:appClosed`): Stops all subscriptions to conserve resources
113
+ * 4. **Keyring Lifecycle**: Listens to KeyringController unlock/lock events to
114
+ * start/stop subscriptions when the wallet is unlocked or locked.
164
115
  *
165
116
  * ## Architecture
166
117
  *
@@ -170,27 +121,21 @@ export type AssetsControllerOptions = {
170
121
  */
171
122
  export declare class AssetsController extends BaseController<typeof CONTROLLER_NAME, AssetsControllerState, AssetsControllerMessenger> {
172
123
  #private;
173
- constructor({ messenger, state, defaultUpdateInterval, isEnabled, }: AssetsControllerOptions);
124
+ constructor({ messenger, state, defaultUpdateInterval, isEnabled, queryApiClient, rpcDataSourceConfig, }: AssetsControllerOptions);
174
125
  /**
175
- * Register data sources with the controller.
176
- * Order of the array determines subscription order.
177
- *
178
- * Data sources report chain changes by calling `AssetsController:activeChainsUpdate` action.
126
+ * Handle when a data source's supported chains change.
127
+ * Used to refresh balance subscriptions and run a one-time fetch when a new chain is supported.
179
128
  *
180
- * @param dataSourceIds - Array of data source identifiers to register.
181
- */
182
- registerDataSources(dataSourceIds: DataSourceDefinition[]): void;
183
- /**
184
- * Handle when a data source's active chains change.
185
- * Active chains are chains that are both supported AND available.
186
- * Updates centralized chain tracking and triggers re-selection if needed.
129
+ * - On any add/remove: re-subscribes to data sources so chain assignment stays correct.
130
+ * - When chains are added: fetches balances for the new chains (for selected accounts on enabled networks).
187
131
  *
188
- * Data sources should call this via `AssetsController:activeChainsUpdate` action.
132
+ * Controller does not store chains; sources report via this callback. previousChains is required for diff.
189
133
  *
190
134
  * @param dataSourceId - The identifier of the data source reporting the change.
191
- * @param activeChains - Array of currently active chain IDs for this source.
135
+ * @param activeChains - Currently active (supported and available) chain IDs for this source.
136
+ * @param previousChains - Previous chains; used to compute added/removed.
192
137
  */
193
- handleActiveChainsUpdate(dataSourceId: string, activeChains: ChainId[]): void;
138
+ handleActiveChainsUpdate(dataSourceId: string, activeChains: ChainId[], previousChains: ChainId[]): void;
194
139
  getAssets(accounts: InternalAccount[], options?: {
195
140
  chainIds?: ChainId[];
196
141
  assetTypes?: AssetType[];
@@ -211,6 +156,7 @@ export declare class AssetsController extends BaseController<typeof CONTROLLER_N
211
156
  /**
212
157
  * Add a custom asset for an account.
213
158
  * Custom assets are included in subscription and fetch operations.
159
+ * Adding a custom asset also unhides it if it was previously hidden.
214
160
  *
215
161
  * @param accountId - The account ID to add the custom asset for.
216
162
  * @param assetId - The CAIP-19 asset ID to add.
@@ -230,6 +176,20 @@ export declare class AssetsController extends BaseController<typeof CONTROLLER_N
230
176
  * @returns Array of CAIP-19 asset IDs for the account's custom assets.
231
177
  */
232
178
  getCustomAssets(accountId: AccountId): Caip19AssetId[];
179
+ /**
180
+ * Hide an asset globally.
181
+ * Hidden assets are excluded from the asset list returned by getAssets.
182
+ * The hidden state is stored in assetPreferences.
183
+ *
184
+ * @param assetId - The CAIP-19 asset ID to hide.
185
+ */
186
+ hideAsset(assetId: Caip19AssetId): void;
187
+ /**
188
+ * Unhide an asset globally.
189
+ *
190
+ * @param assetId - The CAIP-19 asset ID to unhide.
191
+ */
192
+ unhideAsset(assetId: Caip19AssetId): void;
233
193
  /**
234
194
  * Subscribe to price updates for all assets held by the given accounts.
235
195
  * Polls PriceDataSource which fetches prices from balance state.
@@ -248,12 +208,14 @@ export declare class AssetsController extends BaseController<typeof CONTROLLER_N
248
208
  unsubscribeAssetsPrice(): void;
249
209
  /**
250
210
  * Handle assets updated from a data source.
251
- * Called via `AssetsController:assetsUpdate` action by data sources.
211
+ * Called via the onAssetsUpdate callback passed in SubscriptionRequest when the controller subscribes to a data source.
212
+ * Enriches the response with token metadata (via middlewares) before updating state.
252
213
  *
253
214
  * @param response - The data response with updated assets
254
215
  * @param sourceId - The data source ID reporting the update
216
+ * @param request - Optional original request for context when enriching
255
217
  */
256
- handleAssetsUpdate(response: DataResponse, sourceId: string): Promise<void>;
218
+ handleAssetsUpdate(response: DataResponse, sourceId: string, request?: DataRequest): Promise<void>;
257
219
  destroy(): void;
258
220
  }
259
221
  export {};
@@ -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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"}