@metamask-previews/assets-controller 11.2.1-preview-6cd1bb2f5 → 11.3.0-preview-2296abeaf
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 +28 -1
- package/dist/AssetsController.cjs +238 -133
- 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 +238 -133
- package/dist/AssetsController.mjs.map +1 -1
- package/dist/data-sources/SnapDataSource.cjs +10 -49
- package/dist/data-sources/SnapDataSource.cjs.map +1 -1
- package/dist/data-sources/SnapDataSource.d.cts +8 -0
- package/dist/data-sources/SnapDataSource.d.cts.map +1 -1
- package/dist/data-sources/SnapDataSource.d.mts +8 -0
- package/dist/data-sources/SnapDataSource.d.mts.map +1 -1
- package/dist/data-sources/SnapDataSource.mjs +10 -49
- package/dist/data-sources/SnapDataSource.mjs.map +1 -1
- package/dist/selectors/balance.cjs +53 -35
- 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 +53 -35
- package/dist/selectors/balance.mjs.map +1 -1
- package/dist/utils/trace.cjs +120 -0
- package/dist/utils/trace.cjs.map +1 -0
- package/dist/utils/trace.d.cts +52 -0
- package/dist/utils/trace.d.cts.map +1 -0
- package/dist/utils/trace.d.mts +52 -0
- package/dist/utils/trace.d.mts.map +1 -0
- package/dist/utils/trace.mjs +115 -0
- package/dist/utils/trace.mjs.map +1 -0
- package/package.json +7 -7
|
@@ -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,
|
|
12
|
+
var _AssetsController_instances, _AssetsController_isEnabled, _AssetsController_isBasicFunctionality, _AssetsController_defaultUpdateInterval, _AssetsController_trace, _AssetsController_captureException, _AssetsController_firstInitFetchReported, _AssetsController_stateSizeReported, _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";
|
|
@@ -37,6 +37,7 @@ import { ZERO_ADDRESS } from "./utils/constants.mjs";
|
|
|
37
37
|
import { pickRpcCustomAssetsSupplement } from "./utils/customAssetsRpcSupplement.mjs";
|
|
38
38
|
import { normalizeAmountString, normalizeAssetId, formatExchangeRatesForBridge, formatStateForTransactionPay, buildNativeAssetsFromConstant, buildNativeAssetsFromApi } from "./utils/index.mjs";
|
|
39
39
|
import { processAccountActivityBalanceUpdates } from "./utils/processAccountActivityBalanceUpdates.mjs";
|
|
40
|
+
import { emitTrace, withTrace } from "./utils/trace.mjs";
|
|
40
41
|
const NATIVE_ASSETS_QUERY_KEY = ['nativeAssets'];
|
|
41
42
|
/** Stable empty map so memoized formatters are not busted by `?? {}` identity churn. */
|
|
42
43
|
const EMPTY_NATIVE_ASSET_MAP = {};
|
|
@@ -67,9 +68,14 @@ const DEFAULT_POLLING_INTERVAL_MS = 30000;
|
|
|
67
68
|
// ============================================================================
|
|
68
69
|
const TRACE_FIRST_INIT_FETCH = 'AssetsControllerFirstInitFetch';
|
|
69
70
|
const TRACE_FULL_FETCH = 'AssetsFullFetch';
|
|
71
|
+
/** Parent span that nests per-source timings; dashboard charts {@link TRACE_FULL_FETCH}. */
|
|
72
|
+
const TRACE_FETCH_PIPELINE = 'AssetsFetchPipeline';
|
|
73
|
+
const TRACE_BACKGROUND_FETCH = 'AssetsBackgroundFetch';
|
|
70
74
|
const TRACE_DATA_SOURCE_TIMING = 'AssetsDataSourceTiming';
|
|
71
75
|
const TRACE_DATA_SOURCE_ERROR = 'AssetsDataSourceError';
|
|
72
76
|
const TRACE_UPDATE_PIPELINE = 'AssetsUpdatePipeline';
|
|
77
|
+
/** Parent span that nests update enrichment; dashboard charts {@link TRACE_UPDATE_PIPELINE}. */
|
|
78
|
+
const TRACE_UPDATE_PARENT = 'AssetsUpdateEnrichment';
|
|
73
79
|
const TRACE_SUBSCRIPTION_ERROR = 'AssetsSubscriptionError';
|
|
74
80
|
const TRACE_STATE_SIZE = 'AssetsStateSize';
|
|
75
81
|
const log = createModuleLogger(projectLogger, CONTROLLER_NAME);
|
|
@@ -360,6 +366,7 @@ export class AssetsController extends BaseController {
|
|
|
360
366
|
__classPrivateFieldSet(this, _AssetsController_snapDataSource, new SnapDataSource({
|
|
361
367
|
messenger: this.messenger,
|
|
362
368
|
onActiveChainsUpdated: __classPrivateFieldGet(this, _AssetsController_onActiveChainsUpdated, "f"),
|
|
369
|
+
onAssetsUpdate: (response) => this.handleAssetsUpdate(response, 'SnapDataSource'),
|
|
363
370
|
}), "f");
|
|
364
371
|
__classPrivateFieldSet(this, _AssetsController_rpcDataSource, new RpcDataSource({
|
|
365
372
|
messenger: this.messenger,
|
|
@@ -449,7 +456,11 @@ export class AssetsController extends BaseController {
|
|
|
449
456
|
customAssets.push(...accountCustomAssets);
|
|
450
457
|
}
|
|
451
458
|
if (options?.forceUpdate) {
|
|
452
|
-
|
|
459
|
+
// Pipeline spans only on unlock/first-init fetch; later forceUpdates pass
|
|
460
|
+
// `undefined` so `emitTrace` / `withTrace` no-op without call-site if/else.
|
|
461
|
+
const pipelineTrace = __classPrivateFieldGet(this, _AssetsController_firstInitFetchReported, "f")
|
|
462
|
+
? undefined
|
|
463
|
+
: __classPrivateFieldGet(this, _AssetsController_trace, "f");
|
|
453
464
|
const request = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_buildDataRequest).call(this, accounts, chainIds, {
|
|
454
465
|
assetTypes,
|
|
455
466
|
dataTypes,
|
|
@@ -483,59 +494,101 @@ export class AssetsController extends BaseController {
|
|
|
483
494
|
]),
|
|
484
495
|
]
|
|
485
496
|
: [__classPrivateFieldGet(this, _AssetsController_stakedBalanceDataSource, "f"), __classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f")];
|
|
486
|
-
const { response
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
497
|
+
const { response } = await withTrace({
|
|
498
|
+
name: TRACE_FETCH_PIPELINE,
|
|
499
|
+
trace: pipelineTrace,
|
|
500
|
+
data: {
|
|
501
|
+
chain_count: chainIds.length,
|
|
502
|
+
account_count: accounts.length,
|
|
503
|
+
basic_functionality: __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this),
|
|
504
|
+
},
|
|
505
|
+
fn: async (parentContext) => {
|
|
506
|
+
const startTime = performance.now();
|
|
507
|
+
const result = await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_executeMiddlewares).call(this, {
|
|
508
|
+
sources: fastSources,
|
|
509
|
+
request,
|
|
510
|
+
parentContext,
|
|
511
|
+
trace: pipelineTrace,
|
|
512
|
+
});
|
|
513
|
+
await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_updateState).call(this, {
|
|
514
|
+
...result.response,
|
|
515
|
+
updateMode: 'merge',
|
|
516
|
+
replaceCoveredChainBalances: true,
|
|
517
|
+
});
|
|
518
|
+
const durationMs = performance.now() - startTime;
|
|
519
|
+
// Summary fields for Assets Health (nested under the parent span).
|
|
520
|
+
emitTrace({
|
|
521
|
+
name: TRACE_FULL_FETCH,
|
|
522
|
+
trace: pipelineTrace,
|
|
523
|
+
data: {
|
|
524
|
+
duration_ms: durationMs,
|
|
525
|
+
chain_count: chainIds.length,
|
|
526
|
+
account_count: accounts.length,
|
|
527
|
+
basic_functionality: __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this),
|
|
528
|
+
asset_count: result.response.assetsBalance
|
|
529
|
+
? Object.values(result.response.assetsBalance).reduce((sum, acct) => sum + Object.keys(acct).length, 0)
|
|
530
|
+
: 0,
|
|
531
|
+
price_count: result.response.assetsPrice
|
|
532
|
+
? Object.keys(result.response.assetsPrice).length
|
|
533
|
+
: 0,
|
|
534
|
+
...result.durationByDataSource,
|
|
535
|
+
},
|
|
536
|
+
parentContext,
|
|
537
|
+
});
|
|
538
|
+
emitTrace({
|
|
539
|
+
name: TRACE_FIRST_INIT_FETCH,
|
|
540
|
+
trace: pipelineTrace,
|
|
541
|
+
data: {
|
|
542
|
+
duration_ms: durationMs,
|
|
543
|
+
chain_ids: JSON.stringify(chainIds),
|
|
544
|
+
...result.durationByDataSource,
|
|
545
|
+
},
|
|
546
|
+
parentContext,
|
|
547
|
+
});
|
|
548
|
+
return result;
|
|
549
|
+
},
|
|
491
550
|
});
|
|
492
|
-
//
|
|
493
|
-
|
|
494
|
-
//
|
|
495
|
-
//
|
|
551
|
+
// Mark after the unlock/first forceUpdate so later polls skip pipeline spans.
|
|
552
|
+
__classPrivateFieldSet(this, _AssetsController_firstInitFetchReported, true, "f");
|
|
553
|
+
// Background (slow) lane — flattened sibling of the fast lane (not nested
|
|
554
|
+
// inside its withTrace callback). Still fire-and-forget so UI is not blocked.
|
|
496
555
|
const slowPipelineChainIds = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getSlowPipelineChainIds).call(this, chainIds, response);
|
|
497
556
|
if (slowPipelineChainIds.length > 0) {
|
|
498
557
|
const slowSources = __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)
|
|
499
558
|
? [__classPrivateFieldGet(this, _AssetsController_snapDataSource, "f"), __classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")]
|
|
500
559
|
: [__classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")];
|
|
501
560
|
const slowRequest = { ...request, chainIds: slowPipelineChainIds };
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
__classPrivateFieldSet(this, _AssetsController_firstInitFetchReported, true, "f");
|
|
534
|
-
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_emitTrace).call(this, TRACE_FIRST_INIT_FETCH, {
|
|
535
|
-
duration_ms: durationMs,
|
|
536
|
-
chain_ids: JSON.stringify(chainIds),
|
|
537
|
-
...durationByDataSource,
|
|
538
|
-
});
|
|
561
|
+
withTrace({
|
|
562
|
+
name: TRACE_BACKGROUND_FETCH,
|
|
563
|
+
trace: pipelineTrace,
|
|
564
|
+
data: {
|
|
565
|
+
chain_count: slowPipelineChainIds.length,
|
|
566
|
+
account_count: accounts.length,
|
|
567
|
+
},
|
|
568
|
+
fn: async (slowParentContext) => {
|
|
569
|
+
const { response: slowResponse } = await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_executeMiddlewares).call(this, {
|
|
570
|
+
sources: [
|
|
571
|
+
createParallelBalanceMiddleware(slowSources),
|
|
572
|
+
__classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f"),
|
|
573
|
+
...(__classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)
|
|
574
|
+
? [
|
|
575
|
+
createParallelMiddleware([
|
|
576
|
+
__classPrivateFieldGet(this, _AssetsController_tokenDataSource, "f"),
|
|
577
|
+
__classPrivateFieldGet(this, _AssetsController_priceDataSource, "f"),
|
|
578
|
+
]),
|
|
579
|
+
]
|
|
580
|
+
: []),
|
|
581
|
+
],
|
|
582
|
+
request: slowRequest,
|
|
583
|
+
parentContext: slowParentContext,
|
|
584
|
+
trace: pipelineTrace,
|
|
585
|
+
});
|
|
586
|
+
await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_updateState).call(this, {
|
|
587
|
+
...slowResponse,
|
|
588
|
+
updateMode: 'merge',
|
|
589
|
+
});
|
|
590
|
+
},
|
|
591
|
+
}).catch((error) => log('Background pipeline failed', { error }));
|
|
539
592
|
}
|
|
540
593
|
}
|
|
541
594
|
const result = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getAssetsFromState).call(this, accounts, chainIds, assetTypes);
|
|
@@ -915,57 +968,87 @@ export class AssetsController extends BaseController {
|
|
|
915
968
|
* @param request - Optional original request for context when enriching
|
|
916
969
|
*/
|
|
917
970
|
async handleAssetsUpdate(response, sourceId, request) {
|
|
918
|
-
const updateStart = performance.now();
|
|
919
971
|
log('Assets updated from data source', {
|
|
920
972
|
sourceId,
|
|
921
973
|
hasBalance: Boolean(response.assetsBalance),
|
|
922
974
|
hasPrice: Boolean(response.assetsPrice),
|
|
923
975
|
});
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
:
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
976
|
+
// Enrichment spans only before unlock/first-init fetch completes.
|
|
977
|
+
const pipelineTrace = __classPrivateFieldGet(this, _AssetsController_firstInitFetchReported, "f")
|
|
978
|
+
? undefined
|
|
979
|
+
: __classPrivateFieldGet(this, _AssetsController_trace, "f");
|
|
980
|
+
await withTrace({
|
|
981
|
+
name: TRACE_UPDATE_PARENT,
|
|
982
|
+
trace: pipelineTrace,
|
|
983
|
+
data: {
|
|
984
|
+
source: sourceId,
|
|
985
|
+
has_balance: Boolean(response.assetsBalance),
|
|
986
|
+
has_price: Boolean(response.assetsPrice),
|
|
987
|
+
balance_account_count: response.assetsBalance
|
|
988
|
+
? Object.keys(response.assetsBalance).length
|
|
989
|
+
: 0,
|
|
990
|
+
},
|
|
991
|
+
fn: async (parentContext) => {
|
|
992
|
+
const updateStart = performance.now();
|
|
993
|
+
const resolvedRequest = request ?? {
|
|
994
|
+
accountsWithSupportedChains: [],
|
|
995
|
+
chainIds: [],
|
|
996
|
+
dataTypes: ['balance', 'metadata', 'price'],
|
|
997
|
+
};
|
|
998
|
+
// RPC-only mode (basic functionality off): never run token/price APIs. Strip
|
|
999
|
+
// those data types so downstream middleware cannot treat them as requested.
|
|
1000
|
+
const pipelineRequest = __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)
|
|
1001
|
+
? resolvedRequest
|
|
1002
|
+
: {
|
|
1003
|
+
...resolvedRequest,
|
|
1004
|
+
dataTypes: resolvedRequest.dataTypes.filter((dt) => dt !== 'metadata' && dt !== 'price'),
|
|
1005
|
+
};
|
|
1006
|
+
// Graduate custom assets only when AccountsAPI / Websocket reports them.
|
|
1007
|
+
// RPC already fetches custom assets on purpose, and Snap handles non-EVM
|
|
1008
|
+
// chains the rule does not apply to, so skip the middleware for those.
|
|
1009
|
+
const shouldGraduateCustomAssets = sourceId === 'AccountsApiDataSource' ||
|
|
1010
|
+
sourceId === 'BackendWebsocketDataSource' ||
|
|
1011
|
+
sourceId === 'AccountActivityService';
|
|
1012
|
+
const enrichmentSources = [
|
|
1013
|
+
...(shouldGraduateCustomAssets
|
|
1014
|
+
? [__classPrivateFieldGet(this, _AssetsController_customAssetGraduationMiddleware, "f")]
|
|
1015
|
+
: []),
|
|
1016
|
+
__classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f"),
|
|
1017
|
+
];
|
|
1018
|
+
if (__classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)) {
|
|
1019
|
+
enrichmentSources.push(createParallelMiddleware([
|
|
1020
|
+
__classPrivateFieldGet(this, _AssetsController_tokenDataSource, "f"),
|
|
1021
|
+
__classPrivateFieldGet(this, _AssetsController_priceDataSource, "f"),
|
|
1022
|
+
]));
|
|
1023
|
+
}
|
|
1024
|
+
const { response: enrichedResponse } = await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_executeMiddlewares).call(this, {
|
|
1025
|
+
sources: enrichmentSources,
|
|
1026
|
+
request: pipelineRequest,
|
|
1027
|
+
initialResponse: response,
|
|
1028
|
+
parentContext,
|
|
1029
|
+
trace: pipelineTrace,
|
|
1030
|
+
});
|
|
1031
|
+
await __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_updateState).call(this, {
|
|
1032
|
+
...enrichedResponse,
|
|
1033
|
+
replaceCoveredChainBalances: response.replaceCoveredChainBalances,
|
|
1034
|
+
});
|
|
1035
|
+
// Summary fields for Assets Health (nested under the parent span).
|
|
1036
|
+
emitTrace({
|
|
1037
|
+
name: TRACE_UPDATE_PIPELINE,
|
|
1038
|
+
trace: pipelineTrace,
|
|
1039
|
+
data: {
|
|
1040
|
+
source: sourceId,
|
|
1041
|
+
duration_ms: performance.now() - updateStart,
|
|
1042
|
+
has_balance: Boolean(response.assetsBalance),
|
|
1043
|
+
has_price: Boolean(response.assetsPrice),
|
|
1044
|
+
has_metadata: Boolean(enrichedResponse.assetsInfo),
|
|
1045
|
+
balance_account_count: response.assetsBalance
|
|
1046
|
+
? Object.keys(response.assetsBalance).length
|
|
1047
|
+
: 0,
|
|
1048
|
+
},
|
|
1049
|
+
parentContext,
|
|
1050
|
+
});
|
|
1051
|
+
},
|
|
969
1052
|
});
|
|
970
1053
|
}
|
|
971
1054
|
// ============================================================================
|
|
@@ -1004,16 +1087,7 @@ export class AssetsController extends BaseController {
|
|
|
1004
1087
|
this.messenger.unregisterActionHandler('AssetsController:setSelectedCurrency');
|
|
1005
1088
|
}
|
|
1006
1089
|
}
|
|
1007
|
-
_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(),
|
|
1008
|
-
controller: 'AssetsController',
|
|
1009
|
-
}) {
|
|
1010
|
-
if (!__classPrivateFieldGet(this, _AssetsController_trace, "f")) {
|
|
1011
|
-
return;
|
|
1012
|
-
}
|
|
1013
|
-
__classPrivateFieldGet(this, _AssetsController_trace, "f").call(this, { name, data, tags }, () => undefined)?.catch(() => {
|
|
1014
|
-
// Telemetry failure must not break.
|
|
1015
|
-
});
|
|
1016
|
-
}, _AssetsController_emitStateSizeTrace = function _AssetsController_emitStateSizeTrace() {
|
|
1090
|
+
_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_emitStateSizeTrace = function _AssetsController_emitStateSizeTrace() {
|
|
1017
1091
|
if (!__classPrivateFieldGet(this, _AssetsController_trace, "f") || __classPrivateFieldGet(this, _AssetsController_stateSizeReported, "f")) {
|
|
1018
1092
|
return;
|
|
1019
1093
|
}
|
|
@@ -1041,14 +1115,20 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
|
|
|
1041
1115
|
customAssetEntries += ids.length;
|
|
1042
1116
|
}
|
|
1043
1117
|
}
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1118
|
+
emitTrace({
|
|
1119
|
+
name: TRACE_STATE_SIZE,
|
|
1120
|
+
trace: __classPrivateFieldGet(this, _AssetsController_trace, "f"),
|
|
1121
|
+
data: {
|
|
1122
|
+
balance_entries: balanceEntries,
|
|
1123
|
+
balance_accounts: Object.keys(balances).length,
|
|
1124
|
+
// `asset_count` matches the Assets Health dashboard widget field name.
|
|
1125
|
+
asset_count: uniqueAssets.size,
|
|
1126
|
+
unique_asset_count: uniqueAssets.size,
|
|
1127
|
+
network_count: uniqueNetworks.size,
|
|
1128
|
+
metadata_entries: Object.keys(assetsInfo).length,
|
|
1129
|
+
price_entries: Object.keys(assetsPrice).length,
|
|
1130
|
+
custom_asset_entries: customAssetEntries,
|
|
1131
|
+
},
|
|
1052
1132
|
});
|
|
1053
1133
|
}, _AssetsController_getSelectedAccounts = function _AssetsController_getSelectedAccounts() {
|
|
1054
1134
|
const accounts = this.messenger.call('AccountTreeController:getAccountsFromSelectedAccountGroup');
|
|
@@ -1373,12 +1453,16 @@ async function _AssetsController_runStartupRefresh(accounts) {
|
|
|
1373
1453
|
* Execute middlewares with request/response context.
|
|
1374
1454
|
* Returns response and exclusive duration per source (sum ≈ wall time).
|
|
1375
1455
|
*
|
|
1376
|
-
* @param
|
|
1377
|
-
* @param
|
|
1378
|
-
* @param
|
|
1456
|
+
* @param params - Middleware execution options.
|
|
1457
|
+
* @param params.sources - Data sources or middlewares with getName() and assetsMiddleware.
|
|
1458
|
+
* @param params.request - The data request.
|
|
1459
|
+
* @param params.initialResponse - Optional initial response (for enriching existing data).
|
|
1460
|
+
* @param params.parentContext - Optional parent Sentry span; per-source timings nest under it.
|
|
1461
|
+
* @param params.trace - Optional trace callback; omit after unlock/first-init to skip spans.
|
|
1379
1462
|
* @returns Response and durationByDataSource (exclusive ms per source name).
|
|
1380
1463
|
*/
|
|
1381
|
-
async function _AssetsController_executeMiddlewares(
|
|
1464
|
+
async function _AssetsController_executeMiddlewares(params) {
|
|
1465
|
+
const { sources, request, initialResponse = {}, parentContext, trace, } = params;
|
|
1382
1466
|
const names = sources.map((source) => source.getName());
|
|
1383
1467
|
const middlewares = sources.map((source) => source.assetsMiddleware);
|
|
1384
1468
|
const inclusive = [];
|
|
@@ -1422,13 +1506,24 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1422
1506
|
durationByDataSource[key] = ms;
|
|
1423
1507
|
}
|
|
1424
1508
|
}
|
|
1425
|
-
// Emit per-source timing
|
|
1509
|
+
// Emit per-source timing as subspans under the parent fetch/update span
|
|
1510
|
+
// (no-op when `trace` is omitted — unlock/first-init only).
|
|
1426
1511
|
for (const [sourceName, durationMs] of Object.entries(durationByDataSource)) {
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1512
|
+
emitTrace({
|
|
1513
|
+
name: TRACE_DATA_SOURCE_TIMING,
|
|
1514
|
+
trace,
|
|
1515
|
+
data: {
|
|
1516
|
+
source: sourceName,
|
|
1517
|
+
duration_ms: durationMs,
|
|
1518
|
+
chain_count: request.chainIds.length,
|
|
1519
|
+
account_count: request.accountsWithSupportedChains.length,
|
|
1520
|
+
},
|
|
1521
|
+
tags: {
|
|
1522
|
+
controller: 'AssetsController',
|
|
1523
|
+
// String tag so Spans widgets can group by `source`.
|
|
1524
|
+
source: sourceName,
|
|
1525
|
+
},
|
|
1526
|
+
parentContext,
|
|
1432
1527
|
});
|
|
1433
1528
|
}
|
|
1434
1529
|
// Failed middlewares: Issues (optional) + perf/Dashboard spans
|
|
@@ -1445,14 +1540,20 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1445
1540
|
catch {
|
|
1446
1541
|
// Never let telemetry throw.
|
|
1447
1542
|
}
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1543
|
+
emitTrace({
|
|
1544
|
+
name: TRACE_DATA_SOURCE_ERROR,
|
|
1545
|
+
trace,
|
|
1546
|
+
data: {
|
|
1547
|
+
failed_sources: failedSources,
|
|
1548
|
+
error_count: middlewareErrors.length,
|
|
1549
|
+
chain_count: request.chainIds.length,
|
|
1550
|
+
},
|
|
1551
|
+
tags: {
|
|
1552
|
+
controller: 'AssetsController',
|
|
1553
|
+
severity: 'error',
|
|
1554
|
+
error_type: assetsError.name,
|
|
1555
|
+
},
|
|
1556
|
+
parentContext,
|
|
1456
1557
|
});
|
|
1457
1558
|
}
|
|
1458
1559
|
return { response: result.response, durationByDataSource };
|
|
@@ -2074,9 +2175,13 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
2074
2175
|
};
|
|
2075
2176
|
source.subscribe(subscribeReq).catch((error) => {
|
|
2076
2177
|
console.error(`[AssetsController] Failed to subscribe to '${sourceId}':`, error);
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2178
|
+
emitTrace({
|
|
2179
|
+
name: TRACE_SUBSCRIPTION_ERROR,
|
|
2180
|
+
trace: __classPrivateFieldGet(this, _AssetsController_trace, "f"),
|
|
2181
|
+
data: {
|
|
2182
|
+
source: sourceId,
|
|
2183
|
+
error_message: String(error),
|
|
2184
|
+
},
|
|
2080
2185
|
});
|
|
2081
2186
|
});
|
|
2082
2187
|
// Track subscription
|