@metamask-previews/assets-controller 11.2.1-preview-2dc3d26a4 → 11.2.1-preview-aa202ec10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -6
- package/dist/AssetsController.cjs +51 -23
- package/dist/AssetsController.cjs.map +1 -1
- package/dist/AssetsController.d.cts +3 -3
- package/dist/AssetsController.d.cts.map +1 -1
- package/dist/AssetsController.d.mts +3 -3
- package/dist/AssetsController.d.mts.map +1 -1
- package/dist/AssetsController.mjs +51 -23
- package/dist/AssetsController.mjs.map +1 -1
- package/dist/data-sources/BackendWebsocketDataSource.cjs +597 -0
- package/dist/data-sources/BackendWebsocketDataSource.cjs.map +1 -0
- package/dist/data-sources/BackendWebsocketDataSource.d.cts +65 -0
- package/dist/data-sources/BackendWebsocketDataSource.d.cts.map +1 -0
- package/dist/data-sources/BackendWebsocketDataSource.d.mts +65 -0
- package/dist/data-sources/BackendWebsocketDataSource.d.mts.map +1 -0
- package/dist/data-sources/BackendWebsocketDataSource.mjs +592 -0
- package/dist/data-sources/BackendWebsocketDataSource.mjs.map +1 -0
- package/dist/data-sources/index.cjs +4 -4
- package/dist/data-sources/index.cjs.map +1 -1
- package/dist/data-sources/index.d.cts +1 -1
- package/dist/data-sources/index.d.cts.map +1 -1
- package/dist/data-sources/index.d.mts +1 -1
- package/dist/data-sources/index.d.mts.map +1 -1
- package/dist/data-sources/index.mjs +1 -1
- package/dist/data-sources/index.mjs.map +1 -1
- package/dist/index.cjs +26 -22
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -1
- package/dist/middlewares/CustomAssetGraduationMiddleware.cjs +1 -1
- package/dist/middlewares/CustomAssetGraduationMiddleware.cjs.map +1 -1
- package/dist/middlewares/CustomAssetGraduationMiddleware.mjs +1 -1
- package/dist/middlewares/CustomAssetGraduationMiddleware.mjs.map +1 -1
- package/dist/utils/processAccountActivityBalanceUpdates.cjs +54 -0
- package/dist/utils/processAccountActivityBalanceUpdates.cjs.map +1 -0
- package/dist/utils/processAccountActivityBalanceUpdates.d.cts +13 -0
- package/dist/utils/processAccountActivityBalanceUpdates.d.cts.map +1 -0
- package/dist/utils/processAccountActivityBalanceUpdates.d.mts +13 -0
- package/dist/utils/processAccountActivityBalanceUpdates.d.mts.map +1 -0
- package/dist/utils/processAccountActivityBalanceUpdates.mjs +47 -0
- package/dist/utils/processAccountActivityBalanceUpdates.mjs.map +1 -0
- package/package.json +1 -1
- package/dist/data-sources/AccountActivityDataSource.cjs +0 -262
- package/dist/data-sources/AccountActivityDataSource.cjs.map +0 -1
- package/dist/data-sources/AccountActivityDataSource.d.cts +0 -80
- package/dist/data-sources/AccountActivityDataSource.d.cts.map +0 -1
- package/dist/data-sources/AccountActivityDataSource.d.mts +0 -80
- package/dist/data-sources/AccountActivityDataSource.d.mts.map +0 -1
- package/dist/data-sources/AccountActivityDataSource.mjs +0 -254
- package/dist/data-sources/AccountActivityDataSource.mjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -16,12 +16,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
16
16
|
- Bump `@metamask/keyring-api` from `^23.5.0` to `^23.7.0` ([#9676](https://github.com/MetaMask/core/pull/9676))
|
|
17
17
|
- Bump `@metamask/keyring-internal-api` from `^11.0.1` to `^11.0.2` ([#9676](https://github.com/MetaMask/core/pull/9676))
|
|
18
18
|
- Bump `@metamask/keyring-snap-client` from `^9.2.0` to `^9.2.1` ([#9676](https://github.com/MetaMask/core/pull/9676))
|
|
19
|
-
- `AccountActivityDataSource` is now the highest-priority balance data source and participates in chain-claiming: chains it reports as "up" (from `AccountActivityService:statusChanged`) are claimed first so the polling data sources (`AccountsApiDataSource`/`RpcDataSource`) do not also poll them ([#9517](https://github.com/MetaMask/core/pull/9517))
|
|
20
|
-
- `AssetsController` no longer references `BackendWebSocketService` actions/events; real-time balances and chain status are consumed exclusively from `AccountActivityService`
|
|
21
|
-
|
|
22
|
-
### Removed
|
|
23
|
-
|
|
24
|
-
- **BREAKING:** Remove `BackendWebsocketDataSource` and its factory/types (`BackendWebsocketDataSource`, `createBackendWebsocketDataSource`, `BackendWebsocketDataSourceOptions`, `BackendWebsocketDataSourceState`). Real-time balance updates and per-chain status are now consumed from `AccountActivityService` via `AccountActivityDataSource`, which manages the WebSocket connection and subscriptions. Consumers no longer need to delegate `BackendWebSocketService` actions/events to the `AssetsController` messenger ([#9517](https://github.com/MetaMask/core/pull/9517))
|
|
25
19
|
|
|
26
20
|
### Fixed
|
|
27
21
|
|
|
@@ -75,6 +69,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
75
69
|
- `TokensApiClient` (used by `RpcDataSource` / `TokenDetector`) now sets the token-list `occurrenceFloor` query param from the same Token API `GET /v1/suggestedOccurrenceFloors` endpoint (cached 1h), replacing the hardcoded Linea/MegaETH/Tempo special cases. Missing chains or failed fetches fall back to 3 ([#9537](https://github.com/MetaMask/core/pull/9537))
|
|
76
70
|
- Bump `@metamask/network-enablement-controller` from `^5.5.0` to `^5.6.0` ([#9520](https://github.com/MetaMask/core/pull/9520))
|
|
77
71
|
- Bump `@metamask/phishing-controller` from `^17.2.1` to `^17.3.0` ([#9532](https://github.com/MetaMask/core/pull/9532))
|
|
72
|
+
- Bump `@metamask/transaction-controller` from `^69.0.0` to `^69.1.0` ([#9568](https://github.com/MetaMask/core/pull/9568))
|
|
73
|
+
|
|
74
|
+
### Fixed
|
|
75
|
+
|
|
76
|
+
- `TokenDataSource` now also fetches token metadata for assets present in `assetsBalance` that are missing `assetsInfo` (previously only detected assets without metadata were enriched) ([#9547](https://github.com/MetaMask/core/pull/9547))
|
|
78
77
|
|
|
79
78
|
## [11.0.0]
|
|
80
79
|
|
|
@@ -13,7 +13,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
13
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
15
|
};
|
|
16
|
-
var _AssetsController_instances, _AssetsController_isEnabled, _AssetsController_isBasicFunctionality, _AssetsController_defaultUpdateInterval, _AssetsController_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,
|
|
16
|
+
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;
|
|
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");
|
|
@@ -22,8 +22,8 @@ const utils_1 = require("@metamask/utils");
|
|
|
22
22
|
const async_mutex_1 = require("async-mutex");
|
|
23
23
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
24
24
|
const lodash_1 = require("lodash");
|
|
25
|
-
const AccountActivityDataSource_js_1 = require("./data-sources/AccountActivityDataSource.cjs");
|
|
26
25
|
const AccountsApiDataSource_js_1 = require("./data-sources/AccountsApiDataSource.cjs");
|
|
26
|
+
const BackendWebsocketDataSource_js_1 = require("./data-sources/BackendWebsocketDataSource.cjs");
|
|
27
27
|
const assets_js_1 = require("./data-sources/evm-rpc-services/utils/assets.cjs");
|
|
28
28
|
const PriceDataSource_js_1 = require("./data-sources/PriceDataSource.cjs");
|
|
29
29
|
const RpcDataSource_js_1 = require("./data-sources/RpcDataSource.cjs");
|
|
@@ -41,6 +41,7 @@ const healAssetsInfoMetadata_js_1 = require("./migrations/healAssetsInfoMetadata
|
|
|
41
41
|
const constants_js_1 = require("./utils/constants.cjs");
|
|
42
42
|
const customAssetsRpcSupplement_js_1 = require("./utils/customAssetsRpcSupplement.cjs");
|
|
43
43
|
const index_js_1 = require("./utils/index.cjs");
|
|
44
|
+
const processAccountActivityBalanceUpdates_js_1 = require("./utils/processAccountActivityBalanceUpdates.cjs");
|
|
44
45
|
const NATIVE_ASSETS_QUERY_KEY = ['nativeAssets'];
|
|
45
46
|
/** Stable empty map so memoized formatters are not busted by `?? {}` identity churn. */
|
|
46
47
|
const EMPTY_NATIVE_ASSET_MAP = {};
|
|
@@ -309,7 +310,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
309
310
|
* re-subscriptions when the account set hasn't actually changed.
|
|
310
311
|
*/
|
|
311
312
|
_AssetsController_lastKnownAccountIds.set(this, new Set());
|
|
312
|
-
|
|
313
|
+
_AssetsController_backendWebsocketDataSource.set(this, void 0);
|
|
313
314
|
_AssetsController_accountsApiDataSource.set(this, void 0);
|
|
314
315
|
_AssetsController_snapDataSource.set(this, void 0);
|
|
315
316
|
_AssetsController_rpcDataSource.set(this, void 0);
|
|
@@ -350,11 +351,11 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
350
351
|
});
|
|
351
352
|
}
|
|
352
353
|
}, "f");
|
|
353
|
-
__classPrivateFieldSet(this,
|
|
354
|
+
__classPrivateFieldSet(this, _AssetsController_backendWebsocketDataSource, new BackendWebsocketDataSource_js_1.BackendWebsocketDataSource({
|
|
354
355
|
messenger: this.messenger,
|
|
356
|
+
queryApiClient,
|
|
355
357
|
onActiveChainsUpdated: __classPrivateFieldGet(this, _AssetsController_onActiveChainsUpdated, "f"),
|
|
356
358
|
getAssetType: (assetId) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getAssetType).call(this, assetId),
|
|
357
|
-
onAssetsUpdate: (response, request) => this.handleAssetsUpdate(response, __classPrivateFieldGet(this, _AssetsController_accountActivityDataSource, "f").getName(), request),
|
|
358
359
|
}), "f");
|
|
359
360
|
__classPrivateFieldSet(this, _AssetsController_accountsApiDataSource, new AccountsApiDataSource_js_1.AccountsApiDataSource({
|
|
360
361
|
messenger: this.messenger,
|
|
@@ -940,12 +941,12 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
940
941
|
...resolvedRequest,
|
|
941
942
|
dataTypes: resolvedRequest.dataTypes.filter((dt) => dt !== 'metadata' && dt !== 'price'),
|
|
942
943
|
};
|
|
943
|
-
// Graduate custom assets only when AccountsAPI /
|
|
944
|
-
//
|
|
945
|
-
//
|
|
946
|
-
// those.
|
|
944
|
+
// Graduate custom assets only when AccountsAPI / Websocket reports them.
|
|
945
|
+
// RPC already fetches custom assets on purpose, and Snap handles non-EVM
|
|
946
|
+
// chains the rule does not apply to, so skip the middleware for those.
|
|
947
947
|
const shouldGraduateCustomAssets = sourceId === 'AccountsApiDataSource' ||
|
|
948
|
-
sourceId === '
|
|
948
|
+
sourceId === 'BackendWebsocketDataSource' ||
|
|
949
|
+
sourceId === 'AccountActivityService';
|
|
949
950
|
const enrichmentSources = [
|
|
950
951
|
...(shouldGraduateCustomAssets
|
|
951
952
|
? [__classPrivateFieldGet(this, _AssetsController_customAssetGraduationMiddleware, "f")]
|
|
@@ -983,7 +984,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
983
984
|
subscriptionCount: __classPrivateFieldGet(this, _AssetsController_activeSubscriptions, "f").size,
|
|
984
985
|
});
|
|
985
986
|
// Destroy instantiated data sources
|
|
986
|
-
__classPrivateFieldGet(this,
|
|
987
|
+
__classPrivateFieldGet(this, _AssetsController_backendWebsocketDataSource, "f")?.destroy?.();
|
|
987
988
|
__classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f")?.destroy?.();
|
|
988
989
|
__classPrivateFieldGet(this, _AssetsController_snapDataSource, "f")?.destroy?.();
|
|
989
990
|
__classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")?.destroy?.();
|
|
@@ -1011,7 +1012,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
1011
1012
|
}
|
|
1012
1013
|
}
|
|
1013
1014
|
exports.AssetsController = AssetsController;
|
|
1014
|
-
_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(),
|
|
1015
|
+
_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 = {
|
|
1015
1016
|
controller: 'AssetsController',
|
|
1016
1017
|
}) {
|
|
1017
1018
|
if (!__classPrivateFieldGet(this, _AssetsController_trace, "f")) {
|
|
@@ -1069,7 +1070,7 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
|
|
|
1069
1070
|
return [];
|
|
1070
1071
|
}, _AssetsController_allBalanceDataSources_get = function _AssetsController_allBalanceDataSources_get() {
|
|
1071
1072
|
return [
|
|
1072
|
-
__classPrivateFieldGet(this,
|
|
1073
|
+
__classPrivateFieldGet(this, _AssetsController_backendWebsocketDataSource, "f"),
|
|
1073
1074
|
__classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f"),
|
|
1074
1075
|
__classPrivateFieldGet(this, _AssetsController_snapDataSource, "f"),
|
|
1075
1076
|
__classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f"),
|
|
@@ -1188,6 +1189,12 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
|
|
|
1188
1189
|
this.messenger.subscribe('TransactionController:transactionConfirmed', (transactionMeta) => {
|
|
1189
1190
|
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_onTransactionConfirmed).call(this, transactionMeta);
|
|
1190
1191
|
});
|
|
1192
|
+
// Real-time post-tx balances from AccountActivityService (same WS payload as
|
|
1193
|
+
// TokenBalancesController; BackendWebsocketDataSource may not receive the
|
|
1194
|
+
// callback when AccountActivityService owns the server subscription).
|
|
1195
|
+
this.messenger.subscribe('AccountActivityService:balanceUpdated', (event) => {
|
|
1196
|
+
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_onAccountActivityBalanceUpdated).call(this, event);
|
|
1197
|
+
});
|
|
1191
1198
|
}, _AssetsController_onUnapprovedTransactionAdded = function _AssetsController_onUnapprovedTransactionAdded(transactionMeta) {
|
|
1192
1199
|
const hexChainId = transactionMeta.chainId;
|
|
1193
1200
|
if (!hexChainId) {
|
|
@@ -1230,6 +1237,26 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
|
|
|
1230
1237
|
}).catch((error) => {
|
|
1231
1238
|
log('Failed to refresh assets after transaction confirmed', { error });
|
|
1232
1239
|
});
|
|
1240
|
+
}, _AssetsController_onAccountActivityBalanceUpdated = function _AssetsController_onAccountActivityBalanceUpdated({ address, chain, updates, }) {
|
|
1241
|
+
const account = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getSelectedAccounts).call(this).find((a) => a.address.startsWith('0x')
|
|
1242
|
+
? a.address.toLowerCase() === address.toLowerCase()
|
|
1243
|
+
: a.address === address);
|
|
1244
|
+
if (!account) {
|
|
1245
|
+
return;
|
|
1246
|
+
}
|
|
1247
|
+
const chainId = chain;
|
|
1248
|
+
const response = (0, processAccountActivityBalanceUpdates_js_1.processAccountActivityBalanceUpdates)(updates, account.id, (assetId) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getAssetType).call(this, assetId));
|
|
1249
|
+
if (!response.assetsBalance) {
|
|
1250
|
+
return;
|
|
1251
|
+
}
|
|
1252
|
+
const request = {
|
|
1253
|
+
accountsWithSupportedChains: [{ account, supportedChains: [chainId] }],
|
|
1254
|
+
chainIds: [chainId],
|
|
1255
|
+
dataTypes: ['balance', 'metadata'],
|
|
1256
|
+
};
|
|
1257
|
+
this.handleAssetsUpdate(response, 'AccountActivityService', request).catch((error) => {
|
|
1258
|
+
log('Failed to apply AccountActivityService balance update', { error });
|
|
1259
|
+
});
|
|
1233
1260
|
}, _AssetsController_updateActive = function _AssetsController_updateActive() {
|
|
1234
1261
|
const shouldRun = __classPrivateFieldGet(this, _AssetsController_uiOpen, "f") && __classPrivateFieldGet(this, _AssetsController_keyringUnlocked, "f");
|
|
1235
1262
|
if (shouldRun) {
|
|
@@ -1339,11 +1366,11 @@ async function _AssetsController_runStartupRefresh(accounts) {
|
|
|
1339
1366
|
const previousSet = new Set(previous);
|
|
1340
1367
|
const addedChains = activeChains.filter((ch) => !previousSet.has(ch));
|
|
1341
1368
|
const removedChains = previous.filter((ch) => !activeChains.includes(ch));
|
|
1342
|
-
// Refresh subscriptions to use updated data source availability.
|
|
1343
|
-
// No one-time fetch needed here — #handleEnabledNetworksChanged
|
|
1344
|
-
// handles fetches when the user enables a network, and
|
|
1345
|
-
// #subscribeAssets re-subscribes with the correct chain assignment.
|
|
1346
1369
|
if (addedChains.length > 0 || removedChains.length > 0) {
|
|
1370
|
+
// Refresh subscriptions to use updated data source availability.
|
|
1371
|
+
// No one-time fetch needed here — #handleEnabledNetworksChanged
|
|
1372
|
+
// handles fetches when the user enables a network, and
|
|
1373
|
+
// #subscribeAssets re-subscribes with the correct chain assignment.
|
|
1347
1374
|
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_subscribeAssets).call(this);
|
|
1348
1375
|
}
|
|
1349
1376
|
}, _AssetsController_executeMiddlewares =
|
|
@@ -1927,10 +1954,8 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1927
1954
|
}, _AssetsController_subscribeAssetsBalance = function _AssetsController_subscribeAssetsBalance(accounts, chainIds) {
|
|
1928
1955
|
const chainToAccounts = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_buildChainToAccountsMap).call(this, accounts, new Set(chainIds));
|
|
1929
1956
|
const remainingChains = new Set(chainToAccounts.keys());
|
|
1930
|
-
// When basic functionality is on, use all balance data sources; when off,
|
|
1931
|
-
|
|
1932
|
-
const isBasicFunctionality = __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this);
|
|
1933
|
-
const balanceDataSources = isBasicFunctionality
|
|
1957
|
+
// When basic functionality is on, use all balance data sources; when off, RPC only.
|
|
1958
|
+
const balanceDataSources = __classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)
|
|
1934
1959
|
? __classPrivateFieldGet(this, _AssetsController_instances, "a", _AssetsController_allBalanceDataSources_get)
|
|
1935
1960
|
: [__classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f")];
|
|
1936
1961
|
let rpcAssignedChains = new Set();
|
|
@@ -2228,11 +2253,14 @@ async function _AssetsController_handleAccountGroupChanged() {
|
|
|
2228
2253
|
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_fetchMissingPricesWithoutCache).call(this, accounts, [caipChainId]);
|
|
2229
2254
|
}, _AssetsController_refreshActiveChainsOnNetworkSwitch =
|
|
2230
2255
|
/**
|
|
2231
|
-
* Refresh data-source `activeChains` after an EVM network switch so API/Rpc
|
|
2256
|
+
* Refresh data-source `activeChains` after an EVM network switch so API/WS/Rpc
|
|
2232
2257
|
* chain claiming is not stuck on an empty or stale init-time list.
|
|
2233
2258
|
*/
|
|
2234
2259
|
async function _AssetsController_refreshActiveChainsOnNetworkSwitch() {
|
|
2235
|
-
await
|
|
2260
|
+
await Promise.all([
|
|
2261
|
+
__classPrivateFieldGet(this, _AssetsController_accountsApiDataSource, "f").refreshActiveChains(),
|
|
2262
|
+
__classPrivateFieldGet(this, _AssetsController_backendWebsocketDataSource, "f").refreshActiveChains(),
|
|
2263
|
+
]);
|
|
2236
2264
|
__classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f").refreshActiveChainsFromNetworkState();
|
|
2237
2265
|
}, _AssetsController_getSelectedEvmChainIdFromNetworkState = function _AssetsController_getSelectedEvmChainIdFromNetworkState(networkState) {
|
|
2238
2266
|
try {
|