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

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 (30) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/dist/AssetsController.cjs +3 -15
  3. package/dist/AssetsController.cjs.map +1 -1
  4. package/dist/AssetsController.d.cts +8 -8
  5. package/dist/AssetsController.d.cts.map +1 -1
  6. package/dist/AssetsController.d.mts +8 -8
  7. package/dist/AssetsController.d.mts.map +1 -1
  8. package/dist/AssetsController.mjs +3 -15
  9. package/dist/AssetsController.mjs.map +1 -1
  10. package/dist/data-sources/RpcDataSource.cjs +1 -1
  11. package/dist/data-sources/RpcDataSource.cjs.map +1 -1
  12. package/dist/data-sources/RpcDataSource.d.cts +0 -12
  13. package/dist/data-sources/RpcDataSource.d.cts.map +1 -1
  14. package/dist/data-sources/RpcDataSource.d.mts +0 -12
  15. package/dist/data-sources/RpcDataSource.d.mts.map +1 -1
  16. package/dist/data-sources/RpcDataSource.mjs +1 -1
  17. package/dist/data-sources/RpcDataSource.mjs.map +1 -1
  18. package/dist/data-sources/StakedBalanceDataSource.cjs +7 -7
  19. package/dist/data-sources/StakedBalanceDataSource.cjs.map +1 -1
  20. package/dist/data-sources/StakedBalanceDataSource.d.cts.map +1 -1
  21. package/dist/data-sources/StakedBalanceDataSource.d.mts.map +1 -1
  22. package/dist/data-sources/StakedBalanceDataSource.mjs +7 -7
  23. package/dist/data-sources/StakedBalanceDataSource.mjs.map +1 -1
  24. package/dist/data-sources/evm-rpc-services/types/state.cjs.map +1 -1
  25. package/dist/data-sources/evm-rpc-services/types/state.d.cts +3 -3
  26. package/dist/data-sources/evm-rpc-services/types/state.d.cts.map +1 -1
  27. package/dist/data-sources/evm-rpc-services/types/state.d.mts +3 -3
  28. package/dist/data-sources/evm-rpc-services/types/state.d.mts.map +1 -1
  29. package/dist/data-sources/evm-rpc-services/types/state.mjs.map +1 -1
  30. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.0.0]
11
+
10
12
  ### Added
11
13
 
12
14
  - 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))
@@ -17,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
17
19
 
18
20
  ### Changed
19
21
 
22
+ - Refactor `AssetsControllerMessenger` type safety: remove `as unknown as` casts, import types instead of locally defining them, and add missing allowed actions/events ([#7952](https://github.com/MetaMask/core/pull/7952))
20
23
  - **BREAKING:** `AccountsApiDataSourceConfig.tokenDetectionEnabled` is now a getter `() => boolean` (was `boolean`) so the Accounts API data source reacts when the user toggles token detection at runtime, consistent with `RpcDataSourceConfig.tokenDetectionEnabled`. Pass a function, e.g. `tokenDetectionEnabled: () => preferenceController.state.useTokenDetection`.
21
24
  - **BREAKING:** Rename state and `DataResponse` property from `assetsMetadata` to `assetsInfo`. Update consumers that read `state.assetsMetadata` or set `response.assetsMetadata` to use `assetsInfo` instead ([#7902](https://github.com/MetaMask/core/pull/7902))
22
25
  - Bump `@metamask/keyring-api` from `^21.0.0` to `^21.5.0` ([#7857](https://github.com/MetaMask/core/pull/7857))
@@ -77,7 +80,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
80
  - Refactor `RpcDataSource` to delegate polling to `BalanceFetcher` and `TokenDetector` services ([#7709](https://github.com/MetaMask/core/pull/7709))
78
81
  - Refactor `BalanceFetcher` and `TokenDetector` to extend `StaticIntervalPollingControllerOnly` for independent polling management ([#7709](https://github.com/MetaMask/core/pull/7709))
79
82
 
80
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@1.0.0...HEAD
83
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@2.0.0...HEAD
84
+ [2.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@1.0.0...@metamask/assets-controller@2.0.0
81
85
  [1.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@0.2.0...@metamask/assets-controller@1.0.0
82
86
  [0.2.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@0.1.0...@metamask/assets-controller@0.2.0
83
87
  [0.1.0]: https://github.com/MetaMask/core/releases/tag/@metamask/assets-controller@0.1.0
@@ -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_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;
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");
@@ -200,8 +200,6 @@ class AssetsController extends base_controller_1.BaseController {
200
200
  _AssetsController_isBasicFunctionality.set(this, void 0);
201
201
  /** Default update interval hint passed to data sources */
202
202
  _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
203
  /** Optional callback for first init/fetch MetaMetrics (duration). */
206
204
  _AssetsController_trackMetaMetricsEvent.set(this, void 0);
207
205
  /** Whether we have already reported first init fetch for this session (reset on #stop). */
@@ -225,17 +223,12 @@ class AssetsController extends base_controller_1.BaseController {
225
223
  _AssetsController_detectionMiddleware.set(this, void 0);
226
224
  _AssetsController_tokenDataSource.set(this, void 0);
227
225
  _AssetsController_unsubscribeBasicFunctionality.set(this, null);
228
- _AssetsController_constructionState.set(this, { initialized: false });
229
226
  __classPrivateFieldSet(this, _AssetsController_isEnabled, isEnabled(), "f");
230
227
  __classPrivateFieldSet(this, _AssetsController_isBasicFunctionality, isBasicFunctionality ?? (() => true), "f");
231
228
  __classPrivateFieldSet(this, _AssetsController_defaultUpdateInterval, defaultUpdateInterval, "f");
232
- __classPrivateFieldSet(this, _AssetsController_pricePollInterval, priceDataSourceConfig?.pollInterval, "f");
233
229
  __classPrivateFieldSet(this, _AssetsController_trackMetaMetricsEvent, trackMetaMetricsEvent, "f");
234
230
  const rpcConfig = rpcDataSourceConfig ?? {};
235
231
  const onActiveChainsUpdated = (dataSourceName, chains, previousChains) => {
236
- if (!__classPrivateFieldGet(this, _AssetsController_constructionState, "f").initialized) {
237
- return;
238
- }
239
232
  this.handleActiveChainsUpdate(dataSourceName, chains, previousChains);
240
233
  };
241
234
  __classPrivateFieldSet(this, _AssetsController_backendWebsocketDataSource, new BackendWebsocketDataSource_1.BackendWebsocketDataSource({
@@ -280,7 +273,6 @@ class AssetsController extends base_controller_1.BaseController {
280
273
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_initializeState).call(this);
281
274
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_subscribeToEvents).call(this);
282
275
  __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_registerActionHandlers).call(this);
283
- __classPrivateFieldGet(this, _AssetsController_constructionState, "f").initialized = true;
284
276
  // Subscriptions start only on KeyringController:unlock -> #start(), not here.
285
277
  // Subscribe to basic-functionality changes after construction so a synchronous
286
278
  // onChange during subscribe cannot run before data sources are initialized.
@@ -546,21 +538,17 @@ class AssetsController extends base_controller_1.BaseController {
546
538
  *
547
539
  * @param accounts - Accounts to subscribe price updates for.
548
540
  * @param chainIds - Chain IDs to filter prices for.
549
- * @param options - Subscription options.
550
- * @param options.updateInterval - Polling interval in ms.
551
541
  */
552
- subscribeAssetsPrice(accounts, chainIds, options = {}) {
542
+ subscribeAssetsPrice(accounts, chainIds) {
553
543
  if (!__classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)) {
554
544
  return;
555
545
  }
556
- const { updateInterval = __classPrivateFieldGet(this, _AssetsController_pricePollInterval, "f") ?? __classPrivateFieldGet(this, _AssetsController_defaultUpdateInterval, "f"), } = options;
557
546
  const subscriptionKey = 'ds:PriceDataSource';
558
547
  const existingSubscription = __classPrivateFieldGet(this, _AssetsController_activeSubscriptions, "f").get(subscriptionKey);
559
548
  const isUpdate = existingSubscription !== undefined;
560
549
  const subscribeReq = {
561
550
  request: __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_buildDataRequest).call(this, accounts, chainIds, {
562
551
  dataTypes: ['price'],
563
- updateInterval,
564
552
  }),
565
553
  subscriptionId: subscriptionKey,
566
554
  isUpdate,
@@ -661,7 +649,7 @@ class AssetsController extends base_controller_1.BaseController {
661
649
  }
662
650
  }
663
651
  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() {
652
+ _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() {
665
653
  return this.messenger.call('AccountTreeController:getAccountsFromSelectedAccountGroup');
666
654
  }, _AssetsController_allBalanceDataSources_get = function _AssetsController_allBalanceDataSources_get() {
667
655
  return [