@metamask-previews/assets-controller 6.0.0-preview-4845f8918 → 6.0.0-preview-8a15a8aa8
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 +10 -0
- package/dist/AssetsController.cjs +50 -12
- 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 +50 -12
- package/dist/AssetsController.mjs.map +1 -1
- package/dist/data-sources/BackendWebsocketDataSource.cjs +2 -1
- 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 +2 -1
- package/dist/data-sources/BackendWebsocketDataSource.mjs.map +1 -1
- package/dist/data-sources/RpcDataSource.cjs +8 -5
- package/dist/data-sources/RpcDataSource.cjs.map +1 -1
- package/dist/data-sources/RpcDataSource.d.cts +4 -3
- package/dist/data-sources/RpcDataSource.d.cts.map +1 -1
- package/dist/data-sources/RpcDataSource.d.mts +4 -3
- package/dist/data-sources/RpcDataSource.d.mts.map +1 -1
- package/dist/data-sources/RpcDataSource.mjs +8 -5
- package/dist/data-sources/RpcDataSource.mjs.map +1 -1
- package/dist/data-sources/TokenDataSource.cjs +8 -6
- 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 +8 -6
- package/dist/data-sources/TokenDataSource.mjs.map +1 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.cjs +4 -3
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.cjs.map +1 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.cts.map +1 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.mts.map +1 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.mjs +4 -3
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.mjs.map +1 -1
- package/dist/utils/formatExchangeRatesForBridge.cjs +9 -6
- package/dist/utils/formatExchangeRatesForBridge.cjs.map +1 -1
- package/dist/utils/formatExchangeRatesForBridge.d.cts.map +1 -1
- package/dist/utils/formatExchangeRatesForBridge.d.mts.map +1 -1
- package/dist/utils/formatExchangeRatesForBridge.mjs +10 -7
- package/dist/utils/formatExchangeRatesForBridge.mjs.map +1 -1
- package/dist/utils/formatStateForTransactionPay.cjs +7 -4
- package/dist/utils/formatStateForTransactionPay.cjs.map +1 -1
- package/dist/utils/formatStateForTransactionPay.d.cts.map +1 -1
- package/dist/utils/formatStateForTransactionPay.d.mts.map +1 -1
- package/dist/utils/formatStateForTransactionPay.mjs +7 -4
- package/dist/utils/formatStateForTransactionPay.mjs.map +1 -1
- package/dist/utils/isNativeAsset.cjs +39 -0
- package/dist/utils/isNativeAsset.cjs.map +1 -0
- package/dist/utils/isNativeAsset.d.cts +16 -0
- package/dist/utils/isNativeAsset.d.cts.map +1 -0
- package/dist/utils/isNativeAsset.d.mts +16 -0
- package/dist/utils/isNativeAsset.d.mts.map +1 -0
- package/dist/utils/isNativeAsset.mjs +35 -0
- package/dist/utils/isNativeAsset.mjs.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Add `isNativeAsset` utility that centralizes native asset detection across all CAIP-19 representations (`slip44:` namespace, known native asset IDs from `SPOT_PRICES_SUPPORT_INFO`, and `erc20:` with zero address) ([#8483](https://github.com/MetaMask/core/pull/8483))
|
|
13
|
+
|
|
10
14
|
### Changed
|
|
11
15
|
|
|
12
16
|
- Bump `@metamask/assets-controllers` from `^104.0.0` to `^104.1.0` ([#8509](https://github.com/MetaMask/core/pull/8509))
|
|
@@ -15,6 +19,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
15
19
|
- Bump `@metamask/keyring-snap-client` from `^8.2.0` to `^9.0.1` ([#8464](https://github.com/MetaMask/core/pull/8464))
|
|
16
20
|
- Bump `@metamask/transaction-controller` from `^64.2.0` to `^64.3.0` ([#8482](https://github.com/MetaMask/core/pull/8482))
|
|
17
21
|
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- Native asset detection now correctly identifies native assets across all CAIP-19 representations, not just `slip44:` namespace checks ([#TBD](https://github.com/MetaMask/core/pull/TBD))
|
|
25
|
+
- Previously, native assets represented as ERC-20 tokens (e.g., Polygon's POL at `0x…1010`) were not recognized as native, causing incorrect token type classification, balance handling, and missing entries in bridge exchange rates and transaction pay legacy formats.
|
|
26
|
+
- Legacy format conversions (bridge exchange rates and transaction pay) now use the correct chain-specific native token address via `getNativeTokenAddress()` instead of always using the zero address ([#TBD](https://github.com/MetaMask/core/pull/TBD))
|
|
27
|
+
|
|
18
28
|
## [6.0.0]
|
|
19
29
|
|
|
20
30
|
### Added
|
|
@@ -13,9 +13,10 @@ 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_firstInitFetchReported, _AssetsController_stateSizeReported, _AssetsController_emitTrace, _AssetsController_emitStateSizeTrace, _AssetsController_uiOpen, _AssetsController_keyringUnlocked, _AssetsController_controllerMutex, _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_tokenDataSource, _AssetsController_unsubscribeBasicFunctionality, _AssetsController_onActiveChainsUpdated, _AssetsController_initializeState, _AssetsController_extractEnabledChains, _AssetsController_normalizeChainReference, _AssetsController_subscribeToEvents, _AssetsController_onUnapprovedTransactionAdded, _AssetsController_updateActive, _AssetsController_handleAccountTreeStateChange, _AssetsController_registerActionHandlers, _AssetsController_handleActiveChainsUpdate, _AssetsController_executeMiddlewares, _AssetsController_resolveNativeAssetIds, _AssetsController_getNativeAssetIdsForEnabledChains, _AssetsController_getNativeAssetIdsForAccount, _AssetsController_ensureNativeBalancesDefaultZero, _AssetsController_updateState, _AssetsController_getAssetsFromState, _AssetsController_shouldHideNativeToken, _AssetsController_tokenStandardToAssetType, _AssetsController_start, _AssetsController_stop, _AssetsController_subscribeAssets, _AssetsController_subscribeAssetsBalance, _AssetsController_subscribeStakedBalance, _AssetsController_buildChainToAccountsMap, _AssetsController_subscribeDataSource, _AssetsController_unsubscribeDataSource, _AssetsController_buildDataRequest, _AssetsController_getEnabledChainsForAccount, _AssetsController_handleAccountGroupChanged, _AssetsController_handleEnabledNetworksChanged;
|
|
16
|
+
var _AssetsController_instances, _AssetsController_isEnabled, _AssetsController_isBasicFunctionality, _AssetsController_defaultUpdateInterval, _AssetsController_trace, _AssetsController_firstInitFetchReported, _AssetsController_stateSizeReported, _AssetsController_emitTrace, _AssetsController_emitStateSizeTrace, _AssetsController_uiOpen, _AssetsController_keyringUnlocked, _AssetsController_controllerMutex, _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_tokenDataSource, _AssetsController_unsubscribeBasicFunctionality, _AssetsController_queryApiClient, _AssetsController_onActiveChainsUpdated, _AssetsController_initializeNativeAssetsMap, _AssetsController_initializeState, _AssetsController_extractEnabledChains, _AssetsController_normalizeChainReference, _AssetsController_subscribeToEvents, _AssetsController_onUnapprovedTransactionAdded, _AssetsController_updateActive, _AssetsController_handleAccountTreeStateChange, _AssetsController_registerActionHandlers, _AssetsController_handleActiveChainsUpdate, _AssetsController_executeMiddlewares, _AssetsController_getNativeAssetMap, _AssetsController_getKnownNativeAssetIds, _AssetsController_resolveNativeAssetIds, _AssetsController_getNativeAssetIdsForEnabledChains, _AssetsController_getNativeAssetIdsForAccount, _AssetsController_ensureNativeBalancesDefaultZero, _AssetsController_updateState, _AssetsController_getAssetsFromState, _AssetsController_shouldHideNativeToken, _AssetsController_tokenStandardToAssetType, _AssetsController_start, _AssetsController_stop, _AssetsController_subscribeAssets, _AssetsController_subscribeAssetsBalance, _AssetsController_subscribeStakedBalance, _AssetsController_buildChainToAccountsMap, _AssetsController_subscribeDataSource, _AssetsController_unsubscribeDataSource, _AssetsController_buildDataRequest, _AssetsController_getEnabledChainsForAccount, _AssetsController_handleAccountGroupChanged, _AssetsController_handleEnabledNetworksChanged;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.AssetsController = exports.getDefaultAssetsControllerState = void 0;
|
|
19
|
+
const assets_controllers_1 = require("@metamask/assets-controllers");
|
|
19
20
|
const base_controller_1 = require("@metamask/base-controller");
|
|
20
21
|
const client_controller_1 = require("@metamask/client-controller");
|
|
21
22
|
const controller_utils_1 = require("@metamask/controller-utils");
|
|
@@ -34,6 +35,8 @@ const logger_1 = require("./logger.cjs");
|
|
|
34
35
|
const DetectionMiddleware_1 = require("./middlewares/DetectionMiddleware.cjs");
|
|
35
36
|
const ParallelMiddleware_1 = require("./middlewares/ParallelMiddleware.cjs");
|
|
36
37
|
const utils_2 = require("./utils/index.cjs");
|
|
38
|
+
const isNativeAsset_1 = require("./utils/isNativeAsset.cjs");
|
|
39
|
+
const NATIVE_ASSETS_QUERY_KEY = ['nativeAssets'];
|
|
37
40
|
// ============================================================================
|
|
38
41
|
// CONTROLLER CONSTANTS
|
|
39
42
|
// ============================================================================
|
|
@@ -262,12 +265,15 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
262
265
|
_AssetsController_detectionMiddleware.set(this, void 0);
|
|
263
266
|
_AssetsController_tokenDataSource.set(this, void 0);
|
|
264
267
|
_AssetsController_unsubscribeBasicFunctionality.set(this, null);
|
|
268
|
+
_AssetsController_queryApiClient.set(this, void 0);
|
|
265
269
|
_AssetsController_onActiveChainsUpdated.set(this, void 0);
|
|
266
270
|
__classPrivateFieldSet(this, _AssetsController_isEnabled, isEnabled(), "f");
|
|
267
271
|
__classPrivateFieldSet(this, _AssetsController_isBasicFunctionality, isBasicFunctionality ?? (() => true), "f");
|
|
268
272
|
__classPrivateFieldSet(this, _AssetsController_defaultUpdateInterval, defaultUpdateInterval, "f");
|
|
269
273
|
__classPrivateFieldSet(this, _AssetsController_trace, trace, "f");
|
|
274
|
+
__classPrivateFieldSet(this, _AssetsController_queryApiClient, queryApiClient, "f");
|
|
270
275
|
const rpcConfig = rpcDataSourceConfig ?? {};
|
|
276
|
+
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_initializeNativeAssetsMap).call(this, queryApiClient);
|
|
271
277
|
__classPrivateFieldSet(this, _AssetsController_onActiveChainsUpdated, (dataSourceName, chains, previousChains) => {
|
|
272
278
|
try {
|
|
273
279
|
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_handleActiveChainsUpdate).call(this, dataSourceName, chains, previousChains);
|
|
@@ -296,6 +302,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
296
302
|
__classPrivateFieldSet(this, _AssetsController_rpcDataSource, new RpcDataSource_1.RpcDataSource({
|
|
297
303
|
messenger: this.messenger,
|
|
298
304
|
onActiveChainsUpdated: __classPrivateFieldGet(this, _AssetsController_onActiveChainsUpdated, "f"),
|
|
305
|
+
getNativeAssetForChain: (chainId) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this)[chainId],
|
|
299
306
|
...rpcConfig,
|
|
300
307
|
isOnboarded: rpcConfig.isOnboarded ?? isOnboarded,
|
|
301
308
|
}), "f");
|
|
@@ -307,8 +314,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
307
314
|
__classPrivateFieldSet(this, _AssetsController_tokenDataSource, new TokenDataSource_1.TokenDataSource(this.messenger, {
|
|
308
315
|
queryApiClient,
|
|
309
316
|
getNativeAssetIds: () => {
|
|
310
|
-
|
|
311
|
-
return Object.values(nativeAssetIdentifiers);
|
|
317
|
+
return __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetIdsForEnabledChains).call(this);
|
|
312
318
|
},
|
|
313
319
|
}), "f");
|
|
314
320
|
__classPrivateFieldSet(this, _AssetsController_priceDataSource, new PriceDataSource_1.PriceDataSource({
|
|
@@ -496,12 +502,11 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
496
502
|
* @returns Bridge-compatible exchange rate state derived from assetsPrice and selectedCurrency.
|
|
497
503
|
*/
|
|
498
504
|
getExchangeRatesForBridge() {
|
|
499
|
-
const { nativeAssetIdentifiers } = this.messenger.call('NetworkEnablementController:getState');
|
|
500
505
|
const { networkConfigurationsByChainId } = this.messenger.call('NetworkController:getState');
|
|
501
506
|
return (0, utils_2.formatExchangeRatesForBridge)({
|
|
502
507
|
assetsPrice: this.state.assetsPrice,
|
|
503
508
|
selectedCurrency: this.state.selectedCurrency,
|
|
504
|
-
nativeAssetIdentifiers,
|
|
509
|
+
nativeAssetIdentifiers: __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this),
|
|
505
510
|
networkConfigurationsByChainId,
|
|
506
511
|
});
|
|
507
512
|
}
|
|
@@ -516,7 +521,6 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
516
521
|
*/
|
|
517
522
|
getStateForTransactionPay() {
|
|
518
523
|
const accounts = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getSelectedAccounts).call(this);
|
|
519
|
-
const { nativeAssetIdentifiers } = this.messenger.call('NetworkEnablementController:getState');
|
|
520
524
|
const { networkConfigurationsByChainId } = this.messenger.call('NetworkController:getState');
|
|
521
525
|
return (0, utils_2.formatStateForTransactionPay)({
|
|
522
526
|
assetsBalance: this.state.assetsBalance,
|
|
@@ -524,7 +528,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
524
528
|
assetsPrice: this.state.assetsPrice,
|
|
525
529
|
selectedCurrency: this.state.selectedCurrency,
|
|
526
530
|
accounts: accounts.map((a) => ({ id: a.id, address: a.address })),
|
|
527
|
-
nativeAssetIdentifiers,
|
|
531
|
+
nativeAssetIdentifiers: __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this),
|
|
528
532
|
networkConfigurationsByChainId,
|
|
529
533
|
});
|
|
530
534
|
}
|
|
@@ -568,7 +572,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
568
572
|
if (pendingMetadata) {
|
|
569
573
|
const parsed = (0, utils_1.parseCaipAssetType)(normalizedAssetId);
|
|
570
574
|
let tokenType = 'erc20';
|
|
571
|
-
if (
|
|
575
|
+
if ((0, isNativeAsset_1.isNativeAsset)(normalizedAssetId, __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getKnownNativeAssetIds).call(this))) {
|
|
572
576
|
tokenType = 'native';
|
|
573
577
|
}
|
|
574
578
|
else if (parsed.assetNamespace === 'spl') {
|
|
@@ -844,7 +848,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
844
848
|
}
|
|
845
849
|
}
|
|
846
850
|
exports.AssetsController = AssetsController;
|
|
847
|
-
_AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctionality = new WeakMap(), _AssetsController_defaultUpdateInterval = new WeakMap(), _AssetsController_trace = new WeakMap(), _AssetsController_firstInitFetchReported = new WeakMap(), _AssetsController_stateSizeReported = new WeakMap(), _AssetsController_uiOpen = new WeakMap(), _AssetsController_keyringUnlocked = new WeakMap(), _AssetsController_controllerMutex = 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_tokenDataSource = new WeakMap(), _AssetsController_unsubscribeBasicFunctionality = new WeakMap(), _AssetsController_onActiveChainsUpdated = new WeakMap(), _AssetsController_instances = new WeakSet(), _AssetsController_emitTrace = function _AssetsController_emitTrace(name, data, tags = {
|
|
851
|
+
_AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctionality = new WeakMap(), _AssetsController_defaultUpdateInterval = new WeakMap(), _AssetsController_trace = new WeakMap(), _AssetsController_firstInitFetchReported = new WeakMap(), _AssetsController_stateSizeReported = new WeakMap(), _AssetsController_uiOpen = new WeakMap(), _AssetsController_keyringUnlocked = new WeakMap(), _AssetsController_controllerMutex = 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_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 = {
|
|
848
852
|
controller: 'AssetsController',
|
|
849
853
|
}) {
|
|
850
854
|
if (!__classPrivateFieldGet(this, _AssetsController_trace, "f")) {
|
|
@@ -907,6 +911,35 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
|
|
|
907
911
|
__classPrivateFieldGet(this, _AssetsController_snapDataSource, "f"),
|
|
908
912
|
__classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f"),
|
|
909
913
|
];
|
|
914
|
+
}, _AssetsController_initializeNativeAssetsMap = function _AssetsController_initializeNativeAssetsMap(queryApiClient) {
|
|
915
|
+
const buildNativeAssetsFromConstant = () => {
|
|
916
|
+
const nativeAssetsMap = {};
|
|
917
|
+
for (const nativeAssetId of Object.values(assets_controllers_1.SPOT_PRICES_SUPPORT_INFO)) {
|
|
918
|
+
const { chainId } = (0, utils_1.parseCaipAssetType)(nativeAssetId);
|
|
919
|
+
nativeAssetsMap[chainId] = nativeAssetId;
|
|
920
|
+
}
|
|
921
|
+
return nativeAssetsMap;
|
|
922
|
+
};
|
|
923
|
+
queryApiClient.queryClient
|
|
924
|
+
.fetchQuery({
|
|
925
|
+
queryKey: NATIVE_ASSETS_QUERY_KEY,
|
|
926
|
+
queryFn: async () => {
|
|
927
|
+
// TODO: Build from backend API when it is available.
|
|
928
|
+
return buildNativeAssetsFromConstant();
|
|
929
|
+
},
|
|
930
|
+
staleTime: Infinity,
|
|
931
|
+
gcTime: Infinity,
|
|
932
|
+
})
|
|
933
|
+
.catch(() => {
|
|
934
|
+
// Failure to populate native asset cache is non-fatal;
|
|
935
|
+
// isNativeAsset falls back to SPOT_PRICES_SUPPORT_INFO heuristics.
|
|
936
|
+
});
|
|
937
|
+
// Seed the cache synchronously so that synchronous consumers (e.g.
|
|
938
|
+
// isNativeAsset, #resolveNativeAssetIds) have data available immediately.
|
|
939
|
+
// When fetchQuery resolves (currently instant, future: API), it overwrites
|
|
940
|
+
// this with potentially fresher data.
|
|
941
|
+
const initialNativeAssetMap = buildNativeAssetsFromConstant();
|
|
942
|
+
queryApiClient.setCachedData(NATIVE_ASSETS_QUERY_KEY, initialNativeAssetMap);
|
|
910
943
|
}, _AssetsController_initializeState = function _AssetsController_initializeState() {
|
|
911
944
|
const { enabledNetworkMap } = this.messenger.call('NetworkEnablementController:getState');
|
|
912
945
|
__classPrivateFieldSet(this, _AssetsController_enabledChains, __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_extractEnabledChains).call(this, enabledNetworkMap), "f");
|
|
@@ -1144,11 +1177,15 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1144
1177
|
});
|
|
1145
1178
|
}
|
|
1146
1179
|
return { response: result.response, durationByDataSource };
|
|
1180
|
+
}, _AssetsController_getNativeAssetMap = function _AssetsController_getNativeAssetMap() {
|
|
1181
|
+
return (__classPrivateFieldGet(this, _AssetsController_queryApiClient, "f").getCachedData(NATIVE_ASSETS_QUERY_KEY) ?? {});
|
|
1182
|
+
}, _AssetsController_getKnownNativeAssetIds = function _AssetsController_getKnownNativeAssetIds() {
|
|
1183
|
+
return new Set(Object.values(__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this)).map((id) => id.toLowerCase()));
|
|
1147
1184
|
}, _AssetsController_resolveNativeAssetIds = function _AssetsController_resolveNativeAssetIds(chains) {
|
|
1148
|
-
const
|
|
1185
|
+
const nativeAssetMap = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this);
|
|
1149
1186
|
const ids = [];
|
|
1150
1187
|
for (const chainId of chains) {
|
|
1151
|
-
const nativeId =
|
|
1188
|
+
const nativeId = nativeAssetMap[chainId];
|
|
1152
1189
|
if (nativeId) {
|
|
1153
1190
|
ids.push(nativeId);
|
|
1154
1191
|
}
|
|
@@ -1408,7 +1445,8 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1408
1445
|
return false;
|
|
1409
1446
|
}
|
|
1410
1447
|
// Check if it's a native token (either by metadata type or assetId format)
|
|
1411
|
-
const isNative = metadata.type === 'native' ||
|
|
1448
|
+
const isNative = metadata.type === 'native' ||
|
|
1449
|
+
(0, isNativeAsset_1.isNativeAsset)(assetId, __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getKnownNativeAssetIds).call(this));
|
|
1412
1450
|
return isNative;
|
|
1413
1451
|
}, _AssetsController_tokenStandardToAssetType = function _AssetsController_tokenStandardToAssetType(tokenStandard) {
|
|
1414
1452
|
switch (tokenStandard) {
|