@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.
Files changed (54) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/AssetsController.cjs +50 -12
  3. package/dist/AssetsController.cjs.map +1 -1
  4. package/dist/AssetsController.d.cts.map +1 -1
  5. package/dist/AssetsController.d.mts.map +1 -1
  6. package/dist/AssetsController.mjs +50 -12
  7. package/dist/AssetsController.mjs.map +1 -1
  8. package/dist/data-sources/BackendWebsocketDataSource.cjs +2 -1
  9. package/dist/data-sources/BackendWebsocketDataSource.cjs.map +1 -1
  10. package/dist/data-sources/BackendWebsocketDataSource.d.cts.map +1 -1
  11. package/dist/data-sources/BackendWebsocketDataSource.d.mts.map +1 -1
  12. package/dist/data-sources/BackendWebsocketDataSource.mjs +2 -1
  13. package/dist/data-sources/BackendWebsocketDataSource.mjs.map +1 -1
  14. package/dist/data-sources/RpcDataSource.cjs +8 -5
  15. package/dist/data-sources/RpcDataSource.cjs.map +1 -1
  16. package/dist/data-sources/RpcDataSource.d.cts +4 -3
  17. package/dist/data-sources/RpcDataSource.d.cts.map +1 -1
  18. package/dist/data-sources/RpcDataSource.d.mts +4 -3
  19. package/dist/data-sources/RpcDataSource.d.mts.map +1 -1
  20. package/dist/data-sources/RpcDataSource.mjs +8 -5
  21. package/dist/data-sources/RpcDataSource.mjs.map +1 -1
  22. package/dist/data-sources/TokenDataSource.cjs +8 -6
  23. package/dist/data-sources/TokenDataSource.cjs.map +1 -1
  24. package/dist/data-sources/TokenDataSource.d.cts.map +1 -1
  25. package/dist/data-sources/TokenDataSource.d.mts.map +1 -1
  26. package/dist/data-sources/TokenDataSource.mjs +8 -6
  27. package/dist/data-sources/TokenDataSource.mjs.map +1 -1
  28. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.cjs +4 -3
  29. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.cjs.map +1 -1
  30. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.cts.map +1 -1
  31. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.mts.map +1 -1
  32. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.mjs +4 -3
  33. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.mjs.map +1 -1
  34. package/dist/utils/formatExchangeRatesForBridge.cjs +9 -6
  35. package/dist/utils/formatExchangeRatesForBridge.cjs.map +1 -1
  36. package/dist/utils/formatExchangeRatesForBridge.d.cts.map +1 -1
  37. package/dist/utils/formatExchangeRatesForBridge.d.mts.map +1 -1
  38. package/dist/utils/formatExchangeRatesForBridge.mjs +10 -7
  39. package/dist/utils/formatExchangeRatesForBridge.mjs.map +1 -1
  40. package/dist/utils/formatStateForTransactionPay.cjs +7 -4
  41. package/dist/utils/formatStateForTransactionPay.cjs.map +1 -1
  42. package/dist/utils/formatStateForTransactionPay.d.cts.map +1 -1
  43. package/dist/utils/formatStateForTransactionPay.d.mts.map +1 -1
  44. package/dist/utils/formatStateForTransactionPay.mjs +7 -4
  45. package/dist/utils/formatStateForTransactionPay.mjs.map +1 -1
  46. package/dist/utils/isNativeAsset.cjs +39 -0
  47. package/dist/utils/isNativeAsset.cjs.map +1 -0
  48. package/dist/utils/isNativeAsset.d.cts +16 -0
  49. package/dist/utils/isNativeAsset.d.cts.map +1 -0
  50. package/dist/utils/isNativeAsset.d.mts +16 -0
  51. package/dist/utils/isNativeAsset.d.mts.map +1 -0
  52. package/dist/utils/isNativeAsset.mjs +35 -0
  53. package/dist/utils/isNativeAsset.mjs.map +1 -0
  54. 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
- const { nativeAssetIdentifiers } = this.messenger.call('NetworkEnablementController:getState');
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 (parsed.assetNamespace === 'slip44') {
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 { nativeAssetIdentifiers } = this.messenger.call('NetworkEnablementController:getState');
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 = nativeAssetIdentifiers?.[chainId];
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' || assetId.includes('/slip44:');
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) {