@metamask-previews/assets-controller 11.2.1-preview-e0f702919 → 11.2.1-preview-397d3ad4d
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 +2 -3
- package/dist/AssetsController.cjs +131 -188
- package/dist/AssetsController.cjs.map +1 -1
- package/dist/AssetsController.d.cts.map +1 -1
- package/dist/AssetsController.d.mts.map +1 -1
- package/dist/AssetsController.mjs +131 -188
- package/dist/AssetsController.mjs.map +1 -1
- package/dist/data-sources/SnapDataSource.cjs +8 -49
- package/dist/data-sources/SnapDataSource.cjs.map +1 -1
- package/dist/data-sources/SnapDataSource.d.cts +9 -0
- package/dist/data-sources/SnapDataSource.d.cts.map +1 -1
- package/dist/data-sources/SnapDataSource.d.mts +9 -0
- package/dist/data-sources/SnapDataSource.d.mts.map +1 -1
- package/dist/data-sources/SnapDataSource.mjs +8 -49
- package/dist/data-sources/SnapDataSource.mjs.map +1 -1
- package/dist/selectors/balance.cjs +1 -19
- package/dist/selectors/balance.cjs.map +1 -1
- package/dist/selectors/balance.d.cts.map +1 -1
- package/dist/selectors/balance.d.mts.map +1 -1
- package/dist/selectors/balance.mjs +1 -19
- package/dist/selectors/balance.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetsController.d.cts","sourceRoot":"","sources":["../src/AssetsController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8DAA8D,EAC9D,oDAAoD,EACpD,qCAAqC,EACtC,0CAA0C;AAC3C,OAAO,KAAK,EAAE,0CAA0C,EAAE,sCAAsC;AAChG,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAC3D,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAE3B,kCAAkC;AACnC,OAAO,KAAK,EAAE,gCAAgC,EAAE,oCAAoC;AAEpF,OAAO,KAAK,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"AssetsController.d.cts","sourceRoot":"","sources":["../src/AssetsController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetsController.d.mts","sourceRoot":"","sources":["../src/AssetsController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8DAA8D,EAC9D,oDAAoD,EACpD,qCAAqC,EACtC,0CAA0C;AAC3C,OAAO,KAAK,EAAE,0CAA0C,EAAE,sCAAsC;AAChG,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAC3D,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAE3B,kCAAkC;AACnC,OAAO,KAAK,EAAE,gCAAgC,EAAE,oCAAoC;AAEpF,OAAO,KAAK,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"AssetsController.d.mts","sourceRoot":"","sources":["../src/AssetsController.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
11
|
};
|
|
12
|
-
var _AssetsController_instances, _AssetsController_isEnabled, _AssetsController_isBasicFunctionality, _AssetsController_defaultUpdateInterval, _AssetsController_trace, _AssetsController_captureException, _AssetsController_firstInitFetchReported, _AssetsController_stateSizeReported, _AssetsController_emitTrace,
|
|
12
|
+
var _AssetsController_instances, _AssetsController_isEnabled, _AssetsController_isBasicFunctionality, _AssetsController_defaultUpdateInterval, _AssetsController_trace, _AssetsController_captureException, _AssetsController_firstInitFetchReported, _AssetsController_stateSizeReported, _AssetsController_emitTrace, _AssetsController_emitStateSizeTrace, _AssetsController_uiOpen, _AssetsController_keyringUnlocked, _AssetsController_controllerMutex, _AssetsController_accountRefreshMutex, _AssetsController_activeSubscriptions, _AssetsController_enabledChains, _AssetsController_lastKnownAccountIds, _AssetsController_getSelectedAccounts, _AssetsController_backendWebsocketDataSource, _AssetsController_accountsApiDataSource, _AssetsController_snapDataSource, _AssetsController_rpcDataSource, _AssetsController_stakedBalanceDataSource, _AssetsController_allBalanceDataSources_get, _AssetsController_priceDataSource, _AssetsController_detectionMiddleware, _AssetsController_customAssetGraduationMiddleware, _AssetsController_rpcFallbackMiddleware, _AssetsController_tokenDataSource, _AssetsController_unsubscribeBasicFunctionality, _AssetsController_queryApiClient, _AssetsController_onActiveChainsUpdated, _AssetsController_initializeNativeAssetsMap, _AssetsController_initializeState, _AssetsController_extractEnabledChains, _AssetsController_normalizeChainReference, _AssetsController_subscribeToEvents, _AssetsController_onUnapprovedTransactionAdded, _AssetsController_onTransactionConfirmed, _AssetsController_onAccountActivityBalanceUpdated, _AssetsController_updateActive, _AssetsController_handleAccountTreeStateChange, _AssetsController_runAccountTreeRefresh, _AssetsController_runStartupRefresh, _AssetsController_registerActionHandlers, _AssetsController_handleActiveChainsUpdate, _AssetsController_executeMiddlewares, _AssetsController_fetchMissingPricesWithoutCache, _AssetsController_getNativeAssetMap, _AssetsController_isNativeAsset, _AssetsController_getAssetType, _AssetsController_resolveNativeAssetIds, _AssetsController_getNativeAssetIdsForEnabledChains, _AssetsController_getNativeAssetIdsForAccount, _AssetsController_getSlowPipelineChainIds, _AssetsController_ensureNativeBalancesDefaultZero, _AssetsController_ensureDefaultTrackedAssetsSeeded, _AssetsController_updateState, _AssetsController_getAssetsFromState, _AssetsController_getAssetFromState, _AssetsController_shouldHideNativeToken, _AssetsController_tokenStandardToAssetType, _AssetsController_start, _AssetsController_stop, _AssetsController_subscribeAssets, _AssetsController_subscribeAssetsBalance, _AssetsController_subscribeRpcCustomAssetsSupplement, _AssetsController_unsubscribeBySubscriptionKey, _AssetsController_subscribeStakedBalance, _AssetsController_buildChainToAccountsMap, _AssetsController_subscribeDataSource, _AssetsController_unsubscribeDataSource, _AssetsController_buildDataRequest, _AssetsController_getEnabledChainsForAccount, _AssetsController_handleAccountGroupChanged, _AssetsController_handleEnabledNetworksChanged, _AssetsController_handleNetworkAdded, _AssetsController_refreshActiveChainsOnNetworkSwitch, _AssetsController_getSelectedEvmChainIdFromNetworkState, _AssetsController_handleNetworkDidChange, _AssetsController_refreshAssetsAfterNetworkChange, _AssetsController_refreshAssetsAfterNetworkAdded;
|
|
13
13
|
import { BaseController } from "@metamask/base-controller";
|
|
14
14
|
import { clientControllerSelectors } from "@metamask/client-controller";
|
|
15
15
|
import { isCaipChainId, isStrictHexString, KnownCaipNamespace, parseCaipAssetType, parseCaipChainId } from "@metamask/utils";
|
|
@@ -67,7 +67,6 @@ const DEFAULT_POLLING_INTERVAL_MS = 30000;
|
|
|
67
67
|
// ============================================================================
|
|
68
68
|
const TRACE_FIRST_INIT_FETCH = 'AssetsControllerFirstInitFetch';
|
|
69
69
|
const TRACE_FULL_FETCH = 'AssetsFullFetch';
|
|
70
|
-
const TRACE_BACKGROUND_FETCH = 'AssetsBackgroundFetch';
|
|
71
70
|
const TRACE_DATA_SOURCE_TIMING = 'AssetsDataSourceTiming';
|
|
72
71
|
const TRACE_DATA_SOURCE_ERROR = 'AssetsDataSourceError';
|
|
73
72
|
const TRACE_UPDATE_PIPELINE = 'AssetsUpdatePipeline';
|
|
@@ -361,6 +360,7 @@ export class AssetsController extends BaseController {
|
|
|
361
360
|
__classPrivateFieldSet(this, _AssetsController_snapDataSource, new SnapDataSource({
|
|
362
361
|
messenger: this.messenger,
|
|
363
362
|
onActiveChainsUpdated: __classPrivateFieldGet(this, _AssetsController_onActiveChainsUpdated, "f"),
|
|
363
|
+
onAssetsUpdate: (response) => this.handleAssetsUpdate(response, 'SnapDataSource'),
|
|
364
364
|
}), "f");
|
|
365
365
|
__classPrivateFieldSet(this, _AssetsController_rpcDataSource, new RpcDataSource({
|
|
366
366
|
messenger: this.messenger,
|
|
@@ -450,111 +450,94 @@ export class AssetsController extends BaseController {
|
|
|
450
450
|
customAssets.push(...accountCustomAssets);
|
|
451
451
|
}
|
|
452
452
|
if (options?.forceUpdate) {
|
|
453
|
-
|
|
453
|
+
const startTime = performance.now();
|
|
454
|
+
const request = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_buildDataRequest).call(this, accounts, chainIds, {
|
|
455
|
+
assetTypes,
|
|
456
|
+
dataTypes,
|
|
457
|
+
customAssets: customAssets.length > 0 ? customAssets : undefined,
|
|
458
|
+
forceUpdate: true,
|
|
459
|
+
assetsForPriceUpdate: options?.assetsForPriceUpdate,
|
|
460
|
+
});
|
|
461
|
+
// Fast pipeline: accountsApi + stakedBalance → detection → token + price.
|
|
462
|
+
// Snap and RPC are excluded here due to their latency (snap triggers account
|
|
463
|
+
// creation, RPC is slow on many chains). Results are committed to state
|
|
464
|
+
// immediately so the UI can display balances without waiting for them.
|
|
465
|
+
//
|
|
466
|
+
// Fast/slow pipelines use merge so partial API snapshots cannot wipe
|
|
467
|
+
// tokens missing from the response (e.g. USDC when only native balance
|
|
468
|
+
// is returned). Balances present in the response are still refreshed.
|
|
469
|
+
const fastSources = __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)
|
|
470
|
+
? [
|
|
471
|
+
createParallelBalanceMiddleware([
|
|
472
|
+
__classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f"),
|
|
473
|
+
__classPrivateFieldGet(this, _AssetsController_stakedBalanceDataSource, "f"),
|
|
474
|
+
]),
|
|
475
|
+
// Graduation must run BEFORE the RPC fallback so it only sees
|
|
476
|
+
// AccountsApi/Websocket balances. RPC intentionally carries
|
|
477
|
+
// custom assets and must never trigger graduation.
|
|
478
|
+
__classPrivateFieldGet(this, _AssetsController_customAssetGraduationMiddleware, "f"),
|
|
479
|
+
__classPrivateFieldGet(this, _AssetsController_rpcFallbackMiddleware, "f"),
|
|
480
|
+
__classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f"),
|
|
481
|
+
createParallelMiddleware([
|
|
482
|
+
__classPrivateFieldGet(this, _AssetsController_tokenDataSource, "f"),
|
|
483
|
+
__classPrivateFieldGet(this, _AssetsController_priceDataSource, "f"),
|
|
484
|
+
]),
|
|
485
|
+
]
|
|
486
|
+
: [__classPrivateFieldGet(this, _AssetsController_stakedBalanceDataSource, "f"), __classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f")];
|
|
487
|
+
const { response, durationByDataSource } = await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_executeMiddlewares).call(this, fastSources, request);
|
|
488
|
+
await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_updateState).call(this, {
|
|
489
|
+
...response,
|
|
490
|
+
updateMode: 'merge',
|
|
491
|
+
replaceCoveredChainBalances: true,
|
|
492
|
+
});
|
|
493
|
+
// Background pipeline: snap and RPC run in parallel after the fast path
|
|
494
|
+
// commits to state. Their balances are merged together before detection.
|
|
495
|
+
// Token + price enrichment matches the pre-split behavior: only when basic
|
|
496
|
+
// functionality is on (RPC-only mode must not call token/price APIs).
|
|
497
|
+
const slowPipelineChainIds = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getSlowPipelineChainIds).call(this, chainIds, response);
|
|
498
|
+
if (slowPipelineChainIds.length > 0) {
|
|
499
|
+
const slowSources = __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)
|
|
500
|
+
? [__classPrivateFieldGet(this, _AssetsController_snapDataSource, "f"), __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")]
|
|
501
|
+
: [__classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")];
|
|
502
|
+
const slowRequest = { ...request, chainIds: slowPipelineChainIds };
|
|
503
|
+
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_executeMiddlewares).call(this, [
|
|
504
|
+
createParallelBalanceMiddleware(slowSources),
|
|
505
|
+
__classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f"),
|
|
506
|
+
...(__classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)
|
|
507
|
+
? [
|
|
508
|
+
createParallelMiddleware([
|
|
509
|
+
__classPrivateFieldGet(this, _AssetsController_tokenDataSource, "f"),
|
|
510
|
+
__classPrivateFieldGet(this, _AssetsController_priceDataSource, "f"),
|
|
511
|
+
]),
|
|
512
|
+
]
|
|
513
|
+
: []),
|
|
514
|
+
], slowRequest)
|
|
515
|
+
.then(({ response: slowResponse }) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_updateState).call(this, { ...slowResponse, updateMode: 'merge' }))
|
|
516
|
+
.catch((error) => log('Background pipeline failed', { error }));
|
|
517
|
+
}
|
|
518
|
+
const durationMs = performance.now() - startTime;
|
|
519
|
+
// Emit trace for every full fetch (Assets Health dashboard)
|
|
520
|
+
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_emitTrace).call(this, TRACE_FULL_FETCH, {
|
|
521
|
+
duration_ms: durationMs,
|
|
454
522
|
chain_count: chainIds.length,
|
|
455
523
|
account_count: accounts.length,
|
|
456
524
|
basic_functionality: __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this),
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
// creation, RPC is slow on many chains). Results are committed to state
|
|
469
|
-
// immediately so the UI can display balances without waiting for them.
|
|
470
|
-
//
|
|
471
|
-
// Fast/slow pipelines use merge so partial API snapshots cannot wipe
|
|
472
|
-
// tokens missing from the response (e.g. USDC when only native balance
|
|
473
|
-
// is returned). Balances present in the response are still refreshed.
|
|
474
|
-
const fastSources = __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)
|
|
475
|
-
? [
|
|
476
|
-
createParallelBalanceMiddleware([
|
|
477
|
-
__classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f"),
|
|
478
|
-
__classPrivateFieldGet(this, _AssetsController_stakedBalanceDataSource, "f"),
|
|
479
|
-
]),
|
|
480
|
-
// Graduation must run BEFORE the RPC fallback so it only sees
|
|
481
|
-
// AccountsApi/Websocket balances. RPC intentionally carries
|
|
482
|
-
// custom assets and must never trigger graduation.
|
|
483
|
-
__classPrivateFieldGet(this, _AssetsController_customAssetGraduationMiddleware, "f"),
|
|
484
|
-
__classPrivateFieldGet(this, _AssetsController_rpcFallbackMiddleware, "f"),
|
|
485
|
-
__classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f"),
|
|
486
|
-
createParallelMiddleware([
|
|
487
|
-
__classPrivateFieldGet(this, _AssetsController_tokenDataSource, "f"),
|
|
488
|
-
__classPrivateFieldGet(this, _AssetsController_priceDataSource, "f"),
|
|
489
|
-
]),
|
|
490
|
-
]
|
|
491
|
-
: [__classPrivateFieldGet(this, _AssetsController_stakedBalanceDataSource, "f"), __classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f")];
|
|
492
|
-
const { response, durationByDataSource } = await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_executeMiddlewares).call(this, fastSources, request, {}, parentContext);
|
|
493
|
-
await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_updateState).call(this, {
|
|
494
|
-
...response,
|
|
495
|
-
updateMode: 'merge',
|
|
496
|
-
replaceCoveredChainBalances: true,
|
|
497
|
-
});
|
|
498
|
-
// Background pipeline: snap and RPC run in parallel after the fast path
|
|
499
|
-
// commits to state. Their balances are merged together before detection.
|
|
500
|
-
// Token + price enrichment matches the pre-split behavior: only when basic
|
|
501
|
-
// functionality is on (RPC-only mode must not call token/price APIs).
|
|
502
|
-
// Own parent span so timings nest instead of becoming extra root traces
|
|
503
|
-
// after the fast-path parent has ended.
|
|
504
|
-
const slowPipelineChainIds = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getSlowPipelineChainIds).call(this, chainIds, response);
|
|
505
|
-
if (slowPipelineChainIds.length > 0) {
|
|
506
|
-
const slowSources = __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)
|
|
507
|
-
? [__classPrivateFieldGet(this, _AssetsController_snapDataSource, "f"), __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")]
|
|
508
|
-
: [__classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")];
|
|
509
|
-
const slowRequest = { ...request, chainIds: slowPipelineChainIds };
|
|
510
|
-
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_withTrace).call(this, TRACE_BACKGROUND_FETCH, {
|
|
511
|
-
chain_count: slowPipelineChainIds.length,
|
|
512
|
-
account_count: accounts.length,
|
|
513
|
-
}, async (slowParentContext) => {
|
|
514
|
-
const { response: slowResponse } = await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_executeMiddlewares).call(this, [
|
|
515
|
-
createParallelBalanceMiddleware(slowSources),
|
|
516
|
-
__classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f"),
|
|
517
|
-
...(__classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)
|
|
518
|
-
? [
|
|
519
|
-
createParallelMiddleware([
|
|
520
|
-
__classPrivateFieldGet(this, _AssetsController_tokenDataSource, "f"),
|
|
521
|
-
__classPrivateFieldGet(this, _AssetsController_priceDataSource, "f"),
|
|
522
|
-
]),
|
|
523
|
-
]
|
|
524
|
-
: []),
|
|
525
|
-
], slowRequest, {}, slowParentContext);
|
|
526
|
-
await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_updateState).call(this, {
|
|
527
|
-
...slowResponse,
|
|
528
|
-
updateMode: 'merge',
|
|
529
|
-
});
|
|
530
|
-
}).catch((error) => log('Background pipeline failed', { error }));
|
|
531
|
-
}
|
|
532
|
-
const durationMs = performance.now() - startTime;
|
|
533
|
-
// Summary fields for Assets Health (nested under the parent span so
|
|
534
|
-
// they do not create additional root transactions).
|
|
535
|
-
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_emitTrace).call(this, TRACE_FULL_FETCH, {
|
|
525
|
+
asset_count: response.assetsBalance
|
|
526
|
+
? Object.values(response.assetsBalance).reduce((sum, acct) => sum + Object.keys(acct).length, 0)
|
|
527
|
+
: 0,
|
|
528
|
+
price_count: response.assetsPrice
|
|
529
|
+
? Object.keys(response.assetsPrice).length
|
|
530
|
+
: 0,
|
|
531
|
+
...durationByDataSource,
|
|
532
|
+
});
|
|
533
|
+
if (!__classPrivateFieldGet(this, _AssetsController_firstInitFetchReported, "f")) {
|
|
534
|
+
__classPrivateFieldSet(this, _AssetsController_firstInitFetchReported, true, "f");
|
|
535
|
+
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_emitTrace).call(this, TRACE_FIRST_INIT_FETCH, {
|
|
536
536
|
duration_ms: durationMs,
|
|
537
|
-
|
|
538
|
-
account_count: accounts.length,
|
|
539
|
-
basic_functionality: __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this),
|
|
540
|
-
asset_count: response.assetsBalance
|
|
541
|
-
? Object.values(response.assetsBalance).reduce((sum, acct) => sum + Object.keys(acct).length, 0)
|
|
542
|
-
: 0,
|
|
543
|
-
price_count: response.assetsPrice
|
|
544
|
-
? Object.keys(response.assetsPrice).length
|
|
545
|
-
: 0,
|
|
537
|
+
chain_ids: JSON.stringify(chainIds),
|
|
546
538
|
...durationByDataSource,
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_emitTrace).call(this, TRACE_FIRST_INIT_FETCH, {
|
|
550
|
-
duration_ms: durationMs,
|
|
551
|
-
chain_ids: JSON.stringify(chainIds),
|
|
552
|
-
...durationByDataSource,
|
|
553
|
-
}, { controller: 'AssetsController' }, parentContext);
|
|
554
|
-
// Mark after emitting so the first-init span itself is not gated.
|
|
555
|
-
__classPrivateFieldSet(this, _AssetsController_firstInitFetchReported, true, "f");
|
|
556
|
-
}
|
|
557
|
-
});
|
|
539
|
+
});
|
|
540
|
+
}
|
|
558
541
|
}
|
|
559
542
|
const result = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getAssetsFromState).call(this, accounts, chainIds, assetTypes);
|
|
560
543
|
return result;
|
|
@@ -933,67 +916,57 @@ export class AssetsController extends BaseController {
|
|
|
933
916
|
* @param request - Optional original request for context when enriching
|
|
934
917
|
*/
|
|
935
918
|
async handleAssetsUpdate(response, sourceId, request) {
|
|
919
|
+
const updateStart = performance.now();
|
|
936
920
|
log('Assets updated from data source', {
|
|
937
921
|
sourceId,
|
|
938
922
|
hasBalance: Boolean(response.assetsBalance),
|
|
939
923
|
hasPrice: Boolean(response.assetsPrice),
|
|
940
924
|
});
|
|
941
|
-
|
|
925
|
+
const resolvedRequest = request ?? {
|
|
926
|
+
accountsWithSupportedChains: [],
|
|
927
|
+
chainIds: [],
|
|
928
|
+
dataTypes: ['balance', 'metadata', 'price'],
|
|
929
|
+
};
|
|
930
|
+
// RPC-only mode (basic functionality off): never run token/price APIs. Strip
|
|
931
|
+
// those data types so downstream middleware cannot treat them as requested.
|
|
932
|
+
const pipelineRequest = __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)
|
|
933
|
+
? resolvedRequest
|
|
934
|
+
: {
|
|
935
|
+
...resolvedRequest,
|
|
936
|
+
dataTypes: resolvedRequest.dataTypes.filter((dt) => dt !== 'metadata' && dt !== 'price'),
|
|
937
|
+
};
|
|
938
|
+
// Graduate custom assets only when AccountsAPI / Websocket reports them.
|
|
939
|
+
// RPC already fetches custom assets on purpose, and Snap handles non-EVM
|
|
940
|
+
// chains the rule does not apply to, so skip the middleware for those.
|
|
941
|
+
const shouldGraduateCustomAssets = sourceId === 'AccountsApiDataSource' ||
|
|
942
|
+
sourceId === 'BackendWebsocketDataSource' ||
|
|
943
|
+
sourceId === 'AccountActivityService';
|
|
944
|
+
const enrichmentSources = [
|
|
945
|
+
...(shouldGraduateCustomAssets
|
|
946
|
+
? [__classPrivateFieldGet(this, _AssetsController_customAssetGraduationMiddleware, "f")]
|
|
947
|
+
: []),
|
|
948
|
+
__classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f"),
|
|
949
|
+
];
|
|
950
|
+
if (__classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)) {
|
|
951
|
+
enrichmentSources.push(createParallelMiddleware([
|
|
952
|
+
__classPrivateFieldGet(this, _AssetsController_tokenDataSource, "f"),
|
|
953
|
+
__classPrivateFieldGet(this, _AssetsController_priceDataSource, "f"),
|
|
954
|
+
]));
|
|
955
|
+
}
|
|
956
|
+
const { response: enrichedResponse } = await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_executeMiddlewares).call(this, enrichmentSources, pipelineRequest, response);
|
|
957
|
+
await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_updateState).call(this, {
|
|
958
|
+
...enrichedResponse,
|
|
959
|
+
replaceCoveredChainBalances: response.replaceCoveredChainBalances,
|
|
960
|
+
});
|
|
961
|
+
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_emitTrace).call(this, TRACE_UPDATE_PIPELINE, {
|
|
942
962
|
source: sourceId,
|
|
963
|
+
duration_ms: performance.now() - updateStart,
|
|
943
964
|
has_balance: Boolean(response.assetsBalance),
|
|
944
965
|
has_price: Boolean(response.assetsPrice),
|
|
966
|
+
has_metadata: Boolean(enrichedResponse.assetsInfo),
|
|
945
967
|
balance_account_count: response.assetsBalance
|
|
946
968
|
? Object.keys(response.assetsBalance).length
|
|
947
969
|
: 0,
|
|
948
|
-
}, async (parentContext) => {
|
|
949
|
-
const updateStart = performance.now();
|
|
950
|
-
const resolvedRequest = request ?? {
|
|
951
|
-
accountsWithSupportedChains: [],
|
|
952
|
-
chainIds: [],
|
|
953
|
-
dataTypes: ['balance', 'metadata', 'price'],
|
|
954
|
-
};
|
|
955
|
-
// RPC-only mode (basic functionality off): never run token/price APIs. Strip
|
|
956
|
-
// those data types so downstream middleware cannot treat them as requested.
|
|
957
|
-
const pipelineRequest = __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)
|
|
958
|
-
? resolvedRequest
|
|
959
|
-
: {
|
|
960
|
-
...resolvedRequest,
|
|
961
|
-
dataTypes: resolvedRequest.dataTypes.filter((dt) => dt !== 'metadata' && dt !== 'price'),
|
|
962
|
-
};
|
|
963
|
-
// Graduate custom assets only when AccountsAPI / Websocket reports them.
|
|
964
|
-
// RPC already fetches custom assets on purpose, and Snap handles non-EVM
|
|
965
|
-
// chains the rule does not apply to, so skip the middleware for those.
|
|
966
|
-
const shouldGraduateCustomAssets = sourceId === 'AccountsApiDataSource' ||
|
|
967
|
-
sourceId === 'BackendWebsocketDataSource' ||
|
|
968
|
-
sourceId === 'AccountActivityService';
|
|
969
|
-
const enrichmentSources = [
|
|
970
|
-
...(shouldGraduateCustomAssets
|
|
971
|
-
? [__classPrivateFieldGet(this, _AssetsController_customAssetGraduationMiddleware, "f")]
|
|
972
|
-
: []),
|
|
973
|
-
__classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f"),
|
|
974
|
-
];
|
|
975
|
-
if (__classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)) {
|
|
976
|
-
enrichmentSources.push(createParallelMiddleware([
|
|
977
|
-
__classPrivateFieldGet(this, _AssetsController_tokenDataSource, "f"),
|
|
978
|
-
__classPrivateFieldGet(this, _AssetsController_priceDataSource, "f"),
|
|
979
|
-
]));
|
|
980
|
-
}
|
|
981
|
-
const { response: enrichedResponse } = await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_executeMiddlewares).call(this, enrichmentSources, pipelineRequest, response, parentContext);
|
|
982
|
-
await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_updateState).call(this, {
|
|
983
|
-
...enrichedResponse,
|
|
984
|
-
replaceCoveredChainBalances: response.replaceCoveredChainBalances,
|
|
985
|
-
});
|
|
986
|
-
// Summary fields for Assets Health (nested under the parent span).
|
|
987
|
-
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_emitTrace).call(this, TRACE_UPDATE_PIPELINE, {
|
|
988
|
-
source: sourceId,
|
|
989
|
-
duration_ms: performance.now() - updateStart,
|
|
990
|
-
has_balance: Boolean(response.assetsBalance),
|
|
991
|
-
has_price: Boolean(response.assetsPrice),
|
|
992
|
-
has_metadata: Boolean(enrichedResponse.assetsInfo),
|
|
993
|
-
balance_account_count: response.assetsBalance
|
|
994
|
-
? Object.keys(response.assetsBalance).length
|
|
995
|
-
: 0,
|
|
996
|
-
}, { controller: 'AssetsController' }, parentContext);
|
|
997
970
|
});
|
|
998
971
|
}
|
|
999
972
|
// ============================================================================
|
|
@@ -1034,42 +1007,13 @@ export class AssetsController extends BaseController {
|
|
|
1034
1007
|
}
|
|
1035
1008
|
_AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctionality = new WeakMap(), _AssetsController_defaultUpdateInterval = new WeakMap(), _AssetsController_trace = new WeakMap(), _AssetsController_captureException = new WeakMap(), _AssetsController_firstInitFetchReported = new WeakMap(), _AssetsController_stateSizeReported = new WeakMap(), _AssetsController_uiOpen = new WeakMap(), _AssetsController_keyringUnlocked = new WeakMap(), _AssetsController_controllerMutex = new WeakMap(), _AssetsController_accountRefreshMutex = new WeakMap(), _AssetsController_activeSubscriptions = new WeakMap(), _AssetsController_enabledChains = new WeakMap(), _AssetsController_lastKnownAccountIds = 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_customAssetGraduationMiddleware = new WeakMap(), _AssetsController_rpcFallbackMiddleware = new WeakMap(), _AssetsController_tokenDataSource = new WeakMap(), _AssetsController_unsubscribeBasicFunctionality = new WeakMap(), _AssetsController_queryApiClient = new WeakMap(), _AssetsController_onActiveChainsUpdated = new WeakMap(), _AssetsController_instances = new WeakSet(), _AssetsController_emitTrace = function _AssetsController_emitTrace(name, data, tags = {
|
|
1036
1009
|
controller: 'AssetsController',
|
|
1037
|
-
}
|
|
1010
|
+
}) {
|
|
1038
1011
|
if (!__classPrivateFieldGet(this, _AssetsController_trace, "f")) {
|
|
1039
1012
|
return;
|
|
1040
1013
|
}
|
|
1041
|
-
|
|
1042
|
-
// subspans (parentContext set) and error/state-size traces still allowed.
|
|
1043
|
-
if (__classPrivateFieldGet(this, _AssetsController_firstInitFetchReported, "f") &&
|
|
1044
|
-
parentContext === undefined &&
|
|
1045
|
-
name !== TRACE_SUBSCRIPTION_ERROR &&
|
|
1046
|
-
name !== TRACE_STATE_SIZE) {
|
|
1047
|
-
return;
|
|
1048
|
-
}
|
|
1049
|
-
__classPrivateFieldGet(this, _AssetsController_trace, "f").call(this, { name, data, tags, parentContext }, () => undefined)?.catch(() => {
|
|
1014
|
+
__classPrivateFieldGet(this, _AssetsController_trace, "f").call(this, { name, data, tags }, () => undefined)?.catch(() => {
|
|
1050
1015
|
// Telemetry failure must not break.
|
|
1051
1016
|
});
|
|
1052
|
-
}, _AssetsController_withTrace =
|
|
1053
|
-
/**
|
|
1054
|
-
* Run work inside a parent Sentry span and pass its context so callers can
|
|
1055
|
-
* emit nested subspans via {@link #emitTrace}.
|
|
1056
|
-
*
|
|
1057
|
-
* Only wraps work on cold start (before the first init fetch is reported).
|
|
1058
|
-
* Later calls still run `fn`, but without creating a Sentry parent span.
|
|
1059
|
-
*
|
|
1060
|
-
* @param name - Parent span name.
|
|
1061
|
-
* @param data - Key-value pairs attached as span data.
|
|
1062
|
-
* @param fn - Work to run; receives the parent span context.
|
|
1063
|
-
* @param tags - Key-value pairs used for Sentry filtering.
|
|
1064
|
-
* @returns The result of `fn`.
|
|
1065
|
-
*/
|
|
1066
|
-
async function _AssetsController_withTrace(name, data, fn, tags = {
|
|
1067
|
-
controller: 'AssetsController',
|
|
1068
|
-
}) {
|
|
1069
|
-
if (!__classPrivateFieldGet(this, _AssetsController_trace, "f") || __classPrivateFieldGet(this, _AssetsController_firstInitFetchReported, "f")) {
|
|
1070
|
-
return fn(undefined);
|
|
1071
|
-
}
|
|
1072
|
-
return await __classPrivateFieldGet(this, _AssetsController_trace, "f").call(this, { name, data, tags }, (parentContext) => fn(parentContext));
|
|
1073
1017
|
}, _AssetsController_emitStateSizeTrace = function _AssetsController_emitStateSizeTrace() {
|
|
1074
1018
|
if (!__classPrivateFieldGet(this, _AssetsController_trace, "f") || __classPrivateFieldGet(this, _AssetsController_stateSizeReported, "f")) {
|
|
1075
1019
|
return;
|
|
@@ -1433,10 +1377,9 @@ async function _AssetsController_runStartupRefresh(accounts) {
|
|
|
1433
1377
|
* @param sources - Data sources or middlewares with getName() and assetsMiddleware (executed in order).
|
|
1434
1378
|
* @param request - The data request.
|
|
1435
1379
|
* @param initialResponse - Optional initial response (for enriching existing data).
|
|
1436
|
-
* @param parentContext - Optional parent Sentry span; per-source timings nest under it.
|
|
1437
1380
|
* @returns Response and durationByDataSource (exclusive ms per source name).
|
|
1438
1381
|
*/
|
|
1439
|
-
async function _AssetsController_executeMiddlewares(sources, request, initialResponse = {}
|
|
1382
|
+
async function _AssetsController_executeMiddlewares(sources, request, initialResponse = {}) {
|
|
1440
1383
|
const names = sources.map((source) => source.getName());
|
|
1441
1384
|
const middlewares = sources.map((source) => source.assetsMiddleware);
|
|
1442
1385
|
const inclusive = [];
|
|
@@ -1480,14 +1423,14 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1480
1423
|
durationByDataSource[key] = ms;
|
|
1481
1424
|
}
|
|
1482
1425
|
}
|
|
1483
|
-
// Emit per-source timing
|
|
1426
|
+
// Emit per-source timing traces for the Assets Health dashboard
|
|
1484
1427
|
for (const [sourceName, durationMs] of Object.entries(durationByDataSource)) {
|
|
1485
1428
|
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_emitTrace).call(this, TRACE_DATA_SOURCE_TIMING, {
|
|
1486
1429
|
source: sourceName,
|
|
1487
1430
|
duration_ms: durationMs,
|
|
1488
1431
|
chain_count: request.chainIds.length,
|
|
1489
1432
|
account_count: request.accountsWithSupportedChains.length,
|
|
1490
|
-
}
|
|
1433
|
+
});
|
|
1491
1434
|
}
|
|
1492
1435
|
// Failed middlewares: Issues (optional) + perf/Dashboard spans
|
|
1493
1436
|
if (middlewareErrors.length > 0) {
|
|
@@ -1511,7 +1454,7 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1511
1454
|
controller: 'AssetsController',
|
|
1512
1455
|
severity: 'error',
|
|
1513
1456
|
error_type: assetsError.name,
|
|
1514
|
-
}
|
|
1457
|
+
});
|
|
1515
1458
|
}
|
|
1516
1459
|
return { response: result.response, durationByDataSource };
|
|
1517
1460
|
}, _AssetsController_fetchMissingPricesWithoutCache = function _AssetsController_fetchMissingPricesWithoutCache(accounts, chainIds) {
|