@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.
- package/CHANGELOG.md +5 -1
- package/dist/AssetsController.cjs +3 -15
- package/dist/AssetsController.cjs.map +1 -1
- package/dist/AssetsController.d.cts +8 -8
- package/dist/AssetsController.d.cts.map +1 -1
- package/dist/AssetsController.d.mts +8 -8
- package/dist/AssetsController.d.mts.map +1 -1
- package/dist/AssetsController.mjs +3 -15
- package/dist/AssetsController.mjs.map +1 -1
- package/dist/data-sources/RpcDataSource.cjs +1 -1
- package/dist/data-sources/RpcDataSource.cjs.map +1 -1
- package/dist/data-sources/RpcDataSource.d.cts +0 -12
- package/dist/data-sources/RpcDataSource.d.cts.map +1 -1
- package/dist/data-sources/RpcDataSource.d.mts +0 -12
- package/dist/data-sources/RpcDataSource.d.mts.map +1 -1
- package/dist/data-sources/RpcDataSource.mjs +1 -1
- package/dist/data-sources/RpcDataSource.mjs.map +1 -1
- package/dist/data-sources/StakedBalanceDataSource.cjs +7 -7
- package/dist/data-sources/StakedBalanceDataSource.cjs.map +1 -1
- package/dist/data-sources/StakedBalanceDataSource.d.cts.map +1 -1
- package/dist/data-sources/StakedBalanceDataSource.d.mts.map +1 -1
- package/dist/data-sources/StakedBalanceDataSource.mjs +7 -7
- package/dist/data-sources/StakedBalanceDataSource.mjs.map +1 -1
- package/dist/data-sources/evm-rpc-services/types/state.cjs.map +1 -1
- package/dist/data-sources/evm-rpc-services/types/state.d.cts +3 -3
- package/dist/data-sources/evm-rpc-services/types/state.d.cts.map +1 -1
- package/dist/data-sources/evm-rpc-services/types/state.d.mts +3 -3
- package/dist/data-sources/evm-rpc-services/types/state.d.mts.map +1 -1
- package/dist/data-sources/evm-rpc-services/types/state.mjs.map +1 -1
- 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@
|
|
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,
|
|
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
|
|
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(),
|
|
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 [
|