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