@metamask-previews/assets-controller 6.0.0-preview-a3274bb30 → 6.0.0-preview-a45abf1e1
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 +14 -0
- package/dist/AssetsController.cjs +67 -16
- 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 +67 -16
- package/dist/AssetsController.mjs.map +1 -1
- package/dist/data-sources/BackendWebsocketDataSource.cjs +5 -3
- package/dist/data-sources/BackendWebsocketDataSource.cjs.map +1 -1
- package/dist/data-sources/BackendWebsocketDataSource.d.cts +3 -1
- package/dist/data-sources/BackendWebsocketDataSource.d.cts.map +1 -1
- package/dist/data-sources/BackendWebsocketDataSource.d.mts +3 -1
- package/dist/data-sources/BackendWebsocketDataSource.d.mts.map +1 -1
- package/dist/data-sources/BackendWebsocketDataSource.mjs +5 -3
- package/dist/data-sources/BackendWebsocketDataSource.mjs.map +1 -1
- package/dist/data-sources/RpcDataSource.cjs +17 -6
- 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 +17 -6
- package/dist/data-sources/RpcDataSource.mjs.map +1 -1
- package/dist/data-sources/TokenDataSource.cjs +16 -10
- 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 +16 -10
- package/dist/data-sources/TokenDataSource.mjs.map +1 -1
- package/dist/data-sources/evm-rpc-services/clients/MulticallClient.cjs +8 -0
- package/dist/data-sources/evm-rpc-services/clients/MulticallClient.cjs.map +1 -1
- package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.cts.map +1 -1
- package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.mts.map +1 -1
- package/dist/data-sources/evm-rpc-services/clients/MulticallClient.mjs +8 -0
- package/dist/data-sources/evm-rpc-services/clients/MulticallClient.mjs.map +1 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.cjs +8 -6
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.cjs.map +1 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.cts +4 -2
- 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 +4 -2
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.mts.map +1 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.mjs +8 -6
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.mjs.map +1 -1
- package/dist/utils/formatExchangeRatesForBridge.cjs +10 -8
- package/dist/utils/formatExchangeRatesForBridge.cjs.map +1 -1
- package/dist/utils/formatExchangeRatesForBridge.d.cts +5 -3
- package/dist/utils/formatExchangeRatesForBridge.d.cts.map +1 -1
- package/dist/utils/formatExchangeRatesForBridge.d.mts +5 -3
- package/dist/utils/formatExchangeRatesForBridge.d.mts.map +1 -1
- package/dist/utils/formatExchangeRatesForBridge.mjs +11 -9
- package/dist/utils/formatExchangeRatesForBridge.mjs.map +1 -1
- package/dist/utils/formatStateForTransactionPay.cjs +8 -6
- package/dist/utils/formatStateForTransactionPay.cjs.map +1 -1
- package/dist/utils/formatStateForTransactionPay.d.cts +2 -2
- package/dist/utils/formatStateForTransactionPay.d.cts.map +1 -1
- package/dist/utils/formatStateForTransactionPay.d.mts +2 -2
- package/dist/utils/formatStateForTransactionPay.d.mts.map +1 -1
- package/dist/utils/formatStateForTransactionPay.mjs +8 -6
- package/dist/utils/formatStateForTransactionPay.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,14 @@ 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 newly supported chains to multicall contract support in `MulticallClient` ([#8346](https://github.com/MetaMask/core/pull/8346))
|
|
13
|
+
- Tempo Mainnet (`4217`/`0x1079`)
|
|
14
|
+
- Tempo Testnet Moderato (`42431`/`0xa5bf`)
|
|
15
|
+
- Ink Mainnet (`57073`/`0xdef1`)
|
|
16
|
+
- Stable mainnet (`988`/`0x3dc`)
|
|
17
|
+
|
|
10
18
|
### Changed
|
|
11
19
|
|
|
12
20
|
- Bump `@metamask/assets-controllers` from `^104.0.0` to `^104.1.0` ([#8509](https://github.com/MetaMask/core/pull/8509))
|
|
@@ -15,6 +23,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
15
23
|
- Bump `@metamask/keyring-snap-client` from `^8.2.0` to `^9.0.1` ([#8464](https://github.com/MetaMask/core/pull/8464))
|
|
16
24
|
- Bump `@metamask/transaction-controller` from `^64.2.0` to `^64.3.0` ([#8482](https://github.com/MetaMask/core/pull/8482))
|
|
17
25
|
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- Native asset detection now correctly identifies native assets across all CAIP-19 representations, not just `slip44:` namespace checks ([#8483](https://github.com/MetaMask/core/pull/8483))
|
|
29
|
+
- Previously, native assets represented as ERC-20 tokens were not recognized as native, causing incorrect token type classification.
|
|
30
|
+
- Exempt mUSD token from EVM ERC-20 minimum-occurrence spam filter so it is no longer incorrectly hidden ([#8541](https://github.com/MetaMask/core/pull/8541))
|
|
31
|
+
|
|
18
32
|
## [6.0.0]
|
|
19
33
|
|
|
20
34
|
### 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_isNativeAsset, _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 constants_1 = require("./utils/constants.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);
|
|
@@ -283,6 +289,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
283
289
|
messenger: this.messenger,
|
|
284
290
|
queryApiClient,
|
|
285
291
|
onActiveChainsUpdated: __classPrivateFieldGet(this, _AssetsController_onActiveChainsUpdated, "f"),
|
|
292
|
+
isNativeAsset: (assetId) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_isNativeAsset).call(this, assetId),
|
|
286
293
|
}), "f");
|
|
287
294
|
__classPrivateFieldSet(this, _AssetsController_accountsApiDataSource, new AccountsApiDataSource_1.AccountsApiDataSource({
|
|
288
295
|
queryApiClient,
|
|
@@ -296,6 +303,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
296
303
|
__classPrivateFieldSet(this, _AssetsController_rpcDataSource, new RpcDataSource_1.RpcDataSource({
|
|
297
304
|
messenger: this.messenger,
|
|
298
305
|
onActiveChainsUpdated: __classPrivateFieldGet(this, _AssetsController_onActiveChainsUpdated, "f"),
|
|
306
|
+
getNativeAssetForChain: (chainId) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this)[chainId],
|
|
299
307
|
...rpcConfig,
|
|
300
308
|
isOnboarded: rpcConfig.isOnboarded ?? isOnboarded,
|
|
301
309
|
}), "f");
|
|
@@ -307,8 +315,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
307
315
|
__classPrivateFieldSet(this, _AssetsController_tokenDataSource, new TokenDataSource_1.TokenDataSource(this.messenger, {
|
|
308
316
|
queryApiClient,
|
|
309
317
|
getNativeAssetIds: () => {
|
|
310
|
-
|
|
311
|
-
return Object.values(nativeAssetIdentifiers);
|
|
318
|
+
return __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetIdsForEnabledChains).call(this);
|
|
312
319
|
},
|
|
313
320
|
}), "f");
|
|
314
321
|
__classPrivateFieldSet(this, _AssetsController_priceDataSource, new PriceDataSource_1.PriceDataSource({
|
|
@@ -496,12 +503,12 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
496
503
|
* @returns Bridge-compatible exchange rate state derived from assetsPrice and selectedCurrency.
|
|
497
504
|
*/
|
|
498
505
|
getExchangeRatesForBridge() {
|
|
499
|
-
const { nativeAssetIdentifiers } = this.messenger.call('NetworkEnablementController:getState');
|
|
500
506
|
const { networkConfigurationsByChainId } = this.messenger.call('NetworkController:getState');
|
|
501
507
|
return (0, utils_2.formatExchangeRatesForBridge)({
|
|
508
|
+
assetsInfo: this.state.assetsInfo,
|
|
502
509
|
assetsPrice: this.state.assetsPrice,
|
|
503
510
|
selectedCurrency: this.state.selectedCurrency,
|
|
504
|
-
nativeAssetIdentifiers,
|
|
511
|
+
nativeAssetIdentifiers: __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this),
|
|
505
512
|
networkConfigurationsByChainId,
|
|
506
513
|
});
|
|
507
514
|
}
|
|
@@ -516,7 +523,6 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
516
523
|
*/
|
|
517
524
|
getStateForTransactionPay() {
|
|
518
525
|
const accounts = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getSelectedAccounts).call(this);
|
|
519
|
-
const { nativeAssetIdentifiers } = this.messenger.call('NetworkEnablementController:getState');
|
|
520
526
|
const { networkConfigurationsByChainId } = this.messenger.call('NetworkController:getState');
|
|
521
527
|
return (0, utils_2.formatStateForTransactionPay)({
|
|
522
528
|
assetsBalance: this.state.assetsBalance,
|
|
@@ -524,7 +530,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
524
530
|
assetsPrice: this.state.assetsPrice,
|
|
525
531
|
selectedCurrency: this.state.selectedCurrency,
|
|
526
532
|
accounts: accounts.map((a) => ({ id: a.id, address: a.address })),
|
|
527
|
-
nativeAssetIdentifiers,
|
|
533
|
+
nativeAssetIdentifiers: __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this),
|
|
528
534
|
networkConfigurationsByChainId,
|
|
529
535
|
});
|
|
530
536
|
}
|
|
@@ -568,7 +574,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
568
574
|
if (pendingMetadata) {
|
|
569
575
|
const parsed = (0, utils_1.parseCaipAssetType)(normalizedAssetId);
|
|
570
576
|
let tokenType = 'erc20';
|
|
571
|
-
if (
|
|
577
|
+
if (__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_isNativeAsset).call(this, normalizedAssetId)) {
|
|
572
578
|
tokenType = 'native';
|
|
573
579
|
}
|
|
574
580
|
else if (parsed.assetNamespace === 'spl') {
|
|
@@ -844,7 +850,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
844
850
|
}
|
|
845
851
|
}
|
|
846
852
|
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 = {
|
|
853
|
+
_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
854
|
controller: 'AssetsController',
|
|
849
855
|
}) {
|
|
850
856
|
if (!__classPrivateFieldGet(this, _AssetsController_trace, "f")) {
|
|
@@ -907,6 +913,36 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
|
|
|
907
913
|
__classPrivateFieldGet(this, _AssetsController_snapDataSource, "f"),
|
|
908
914
|
__classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f"),
|
|
909
915
|
];
|
|
916
|
+
}, _AssetsController_initializeNativeAssetsMap = function _AssetsController_initializeNativeAssetsMap(queryApiClient) {
|
|
917
|
+
const buildNativeAssetsFromConstant = () => {
|
|
918
|
+
const nativeAssetsMap = {};
|
|
919
|
+
for (const nativeAssetId of Object.values(assets_controllers_1.SPOT_PRICES_SUPPORT_INFO)) {
|
|
920
|
+
const { chainId } = (0, utils_1.parseCaipAssetType)(nativeAssetId);
|
|
921
|
+
nativeAssetsMap[chainId] = nativeAssetId;
|
|
922
|
+
}
|
|
923
|
+
return nativeAssetsMap;
|
|
924
|
+
};
|
|
925
|
+
queryApiClient.queryClient
|
|
926
|
+
.fetchQuery({
|
|
927
|
+
queryKey: NATIVE_ASSETS_QUERY_KEY,
|
|
928
|
+
queryFn: async () => {
|
|
929
|
+
// TODO: Build from backend API when it is available.
|
|
930
|
+
return buildNativeAssetsFromConstant();
|
|
931
|
+
},
|
|
932
|
+
staleTime: Infinity,
|
|
933
|
+
gcTime: Infinity,
|
|
934
|
+
})
|
|
935
|
+
.catch((error) => {
|
|
936
|
+
// Failure to populate native asset cache is non-fatal;
|
|
937
|
+
// #isNativeAsset falls back to the seed data from buildNativeAssetsFromConstant.
|
|
938
|
+
log('Failed to populate native asset cache, falling back to seed data', error);
|
|
939
|
+
});
|
|
940
|
+
// Seed the cache synchronously so that synchronous consumers (e.g.
|
|
941
|
+
// #isNativeAsset, #resolveNativeAssetIds) have data available immediately.
|
|
942
|
+
// When fetchQuery resolves (currently instant, future: API), it overwrites
|
|
943
|
+
// this with potentially fresher data.
|
|
944
|
+
const initialNativeAssetMap = buildNativeAssetsFromConstant();
|
|
945
|
+
queryApiClient.setCachedData(NATIVE_ASSETS_QUERY_KEY, initialNativeAssetMap);
|
|
910
946
|
}, _AssetsController_initializeState = function _AssetsController_initializeState() {
|
|
911
947
|
const { enabledNetworkMap } = this.messenger.call('NetworkEnablementController:getState');
|
|
912
948
|
__classPrivateFieldSet(this, _AssetsController_enabledChains, __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_extractEnabledChains).call(this, enabledNetworkMap), "f");
|
|
@@ -1144,11 +1180,28 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1144
1180
|
});
|
|
1145
1181
|
}
|
|
1146
1182
|
return { response: result.response, durationByDataSource };
|
|
1183
|
+
}, _AssetsController_getNativeAssetMap = function _AssetsController_getNativeAssetMap() {
|
|
1184
|
+
return (__classPrivateFieldGet(this, _AssetsController_queryApiClient, "f").getCachedData(NATIVE_ASSETS_QUERY_KEY) ?? {});
|
|
1185
|
+
}, _AssetsController_isNativeAsset = function _AssetsController_isNativeAsset(assetId) {
|
|
1186
|
+
const parsed = (0, utils_1.parseCaipAssetType)(assetId);
|
|
1187
|
+
if (parsed.assetNamespace === 'slip44') {
|
|
1188
|
+
return true;
|
|
1189
|
+
}
|
|
1190
|
+
const lower = assetId.toLowerCase();
|
|
1191
|
+
const isInNativeAssetMap = Object.values(__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this)).some((id) => id.toLowerCase() === lower);
|
|
1192
|
+
if (isInNativeAssetMap) {
|
|
1193
|
+
return true;
|
|
1194
|
+
}
|
|
1195
|
+
if (parsed.assetNamespace === 'erc20' &&
|
|
1196
|
+
parsed.assetReference === constants_1.ZERO_ADDRESS) {
|
|
1197
|
+
return true;
|
|
1198
|
+
}
|
|
1199
|
+
return false;
|
|
1147
1200
|
}, _AssetsController_resolveNativeAssetIds = function _AssetsController_resolveNativeAssetIds(chains) {
|
|
1148
|
-
const
|
|
1201
|
+
const nativeAssetMap = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this);
|
|
1149
1202
|
const ids = [];
|
|
1150
1203
|
for (const chainId of chains) {
|
|
1151
|
-
const nativeId =
|
|
1204
|
+
const nativeId = nativeAssetMap[chainId];
|
|
1152
1205
|
if (nativeId) {
|
|
1153
1206
|
ids.push(nativeId);
|
|
1154
1207
|
}
|
|
@@ -1366,7 +1419,7 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1366
1419
|
}
|
|
1367
1420
|
const assetChainId = extractChainId(typedAssetId);
|
|
1368
1421
|
// Skip native tokens on Tempo networks
|
|
1369
|
-
if (__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_shouldHideNativeToken).call(this, assetChainId,
|
|
1422
|
+
if (__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_shouldHideNativeToken).call(this, assetChainId, metadata)) {
|
|
1370
1423
|
continue;
|
|
1371
1424
|
}
|
|
1372
1425
|
if (!chainIdSet.has(assetChainId)) {
|
|
@@ -1402,14 +1455,12 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1402
1455
|
}
|
|
1403
1456
|
}
|
|
1404
1457
|
return result;
|
|
1405
|
-
}, _AssetsController_shouldHideNativeToken = function _AssetsController_shouldHideNativeToken(chainId,
|
|
1458
|
+
}, _AssetsController_shouldHideNativeToken = function _AssetsController_shouldHideNativeToken(chainId, metadata) {
|
|
1406
1459
|
// Check if it's a chain that should skip native tokens
|
|
1407
1460
|
if (!controller_utils_1.CHAIN_IDS_WITH_NO_NATIVE_TOKEN.includes(chainId)) {
|
|
1408
1461
|
return false;
|
|
1409
1462
|
}
|
|
1410
|
-
|
|
1411
|
-
const isNative = metadata.type === 'native' || assetId.includes('/slip44:');
|
|
1412
|
-
return isNative;
|
|
1463
|
+
return metadata.type === 'native';
|
|
1413
1464
|
}, _AssetsController_tokenStandardToAssetType = function _AssetsController_tokenStandardToAssetType(tokenStandard) {
|
|
1414
1465
|
switch (tokenStandard) {
|
|
1415
1466
|
case 'native':
|