@metamask-previews/assets-controller 6.0.0-preview-bfba73e1e → 6.0.0-preview-89121e086
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 +15 -1
- package/dist/AssetsController.cjs +57 -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 +57 -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 +16 -8
- 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 +16 -8
- 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/native-assets.cjs +63 -0
- package/dist/native-assets.cjs.map +1 -0
- package/dist/native-assets.d.cts +24 -0
- package/dist/native-assets.d.cts.map +1 -0
- package/dist/native-assets.d.mts +24 -0
- package/dist/native-assets.d.mts.map +1 -0
- package/dist/native-assets.mjs +58 -0
- package/dist/native-assets.mjs.map +1 -0
- 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 +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,14 +7,28 @@ 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
|
-
- Bump `@metamask/assets-controllers` from `^104.0.0` to `^104.
|
|
20
|
+
- Bump `@metamask/assets-controllers` from `^104.0.0` to `^104.2.0` ([#8509](https://github.com/MetaMask/core/pull/8509),[#8544](https://github.com/MetaMask/core/pull/8544))
|
|
13
21
|
- Bump `@metamask/keyring-api` from `^21.6.0` to `^23.0.1` ([#8464](https://github.com/MetaMask/core/pull/8464))
|
|
14
22
|
- Bump `@metamask/keyring-internal-api` from `^10.0.0` to `^10.1.1` ([#8464](https://github.com/MetaMask/core/pull/8464))
|
|
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,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_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
19
|
const base_controller_1 = require("@metamask/base-controller");
|
|
@@ -33,7 +33,10 @@ const TokenDataSource_1 = require("./data-sources/TokenDataSource.cjs");
|
|
|
33
33
|
const logger_1 = require("./logger.cjs");
|
|
34
34
|
const DetectionMiddleware_1 = require("./middlewares/DetectionMiddleware.cjs");
|
|
35
35
|
const ParallelMiddleware_1 = require("./middlewares/ParallelMiddleware.cjs");
|
|
36
|
+
const native_assets_1 = require("./native-assets.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,8 @@ 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] ??
|
|
307
|
+
`${chainId}/erc20:${constants_1.ZERO_ADDRESS}`,
|
|
299
308
|
...rpcConfig,
|
|
300
309
|
isOnboarded: rpcConfig.isOnboarded ?? isOnboarded,
|
|
301
310
|
}), "f");
|
|
@@ -307,8 +316,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
307
316
|
__classPrivateFieldSet(this, _AssetsController_tokenDataSource, new TokenDataSource_1.TokenDataSource(this.messenger, {
|
|
308
317
|
queryApiClient,
|
|
309
318
|
getNativeAssetIds: () => {
|
|
310
|
-
|
|
311
|
-
return Object.values(nativeAssetIdentifiers);
|
|
319
|
+
return __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetIdsForEnabledChains).call(this);
|
|
312
320
|
},
|
|
313
321
|
}), "f");
|
|
314
322
|
__classPrivateFieldSet(this, _AssetsController_priceDataSource, new PriceDataSource_1.PriceDataSource({
|
|
@@ -496,12 +504,12 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
496
504
|
* @returns Bridge-compatible exchange rate state derived from assetsPrice and selectedCurrency.
|
|
497
505
|
*/
|
|
498
506
|
getExchangeRatesForBridge() {
|
|
499
|
-
const { nativeAssetIdentifiers } = this.messenger.call('NetworkEnablementController:getState');
|
|
500
507
|
const { networkConfigurationsByChainId } = this.messenger.call('NetworkController:getState');
|
|
501
508
|
return (0, utils_2.formatExchangeRatesForBridge)({
|
|
509
|
+
assetsInfo: this.state.assetsInfo,
|
|
502
510
|
assetsPrice: this.state.assetsPrice,
|
|
503
511
|
selectedCurrency: this.state.selectedCurrency,
|
|
504
|
-
nativeAssetIdentifiers,
|
|
512
|
+
nativeAssetIdentifiers: __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this),
|
|
505
513
|
networkConfigurationsByChainId,
|
|
506
514
|
});
|
|
507
515
|
}
|
|
@@ -516,7 +524,6 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
516
524
|
*/
|
|
517
525
|
getStateForTransactionPay() {
|
|
518
526
|
const accounts = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getSelectedAccounts).call(this);
|
|
519
|
-
const { nativeAssetIdentifiers } = this.messenger.call('NetworkEnablementController:getState');
|
|
520
527
|
const { networkConfigurationsByChainId } = this.messenger.call('NetworkController:getState');
|
|
521
528
|
return (0, utils_2.formatStateForTransactionPay)({
|
|
522
529
|
assetsBalance: this.state.assetsBalance,
|
|
@@ -524,7 +531,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
524
531
|
assetsPrice: this.state.assetsPrice,
|
|
525
532
|
selectedCurrency: this.state.selectedCurrency,
|
|
526
533
|
accounts: accounts.map((a) => ({ id: a.id, address: a.address })),
|
|
527
|
-
nativeAssetIdentifiers,
|
|
534
|
+
nativeAssetIdentifiers: __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this),
|
|
528
535
|
networkConfigurationsByChainId,
|
|
529
536
|
});
|
|
530
537
|
}
|
|
@@ -568,7 +575,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
568
575
|
if (pendingMetadata) {
|
|
569
576
|
const parsed = (0, utils_1.parseCaipAssetType)(normalizedAssetId);
|
|
570
577
|
let tokenType = 'erc20';
|
|
571
|
-
if (
|
|
578
|
+
if (__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_isNativeAsset).call(this, normalizedAssetId)) {
|
|
572
579
|
tokenType = 'native';
|
|
573
580
|
}
|
|
574
581
|
else if (parsed.assetNamespace === 'spl') {
|
|
@@ -844,7 +851,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
844
851
|
}
|
|
845
852
|
}
|
|
846
853
|
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 = {
|
|
854
|
+
_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
855
|
controller: 'AssetsController',
|
|
849
856
|
}) {
|
|
850
857
|
if (!__classPrivateFieldGet(this, _AssetsController_trace, "f")) {
|
|
@@ -907,6 +914,25 @@ _AssetsController_isEnabled = new WeakMap(), _AssetsController_isBasicFunctional
|
|
|
907
914
|
__classPrivateFieldGet(this, _AssetsController_snapDataSource, "f"),
|
|
908
915
|
__classPrivateFieldGet(this, _AssetsController_rpcDataSource, "f"),
|
|
909
916
|
];
|
|
917
|
+
}, _AssetsController_initializeNativeAssetsMap = function _AssetsController_initializeNativeAssetsMap(queryApiClient) {
|
|
918
|
+
queryApiClient.queryClient
|
|
919
|
+
.fetchQuery({
|
|
920
|
+
queryKey: NATIVE_ASSETS_QUERY_KEY,
|
|
921
|
+
queryFn: native_assets_1.buildNativeAssetsFromApi,
|
|
922
|
+
staleTime: Infinity,
|
|
923
|
+
gcTime: Infinity,
|
|
924
|
+
})
|
|
925
|
+
.catch((error) => {
|
|
926
|
+
// Failure to populate native asset cache is non-fatal;
|
|
927
|
+
// #isNativeAsset falls back to the seed data from buildNativeAssetsFromConstant.
|
|
928
|
+
log('Failed to populate native asset cache, falling back to seed data', error);
|
|
929
|
+
});
|
|
930
|
+
// Seed the cache synchronously so that synchronous consumers (e.g.
|
|
931
|
+
// #isNativeAsset, #resolveNativeAssetIds) have data available immediately.
|
|
932
|
+
// When fetchQuery resolves (currently instant, future: API), it overwrites
|
|
933
|
+
// this with potentially fresher data.
|
|
934
|
+
const initialNativeAssetMap = (0, native_assets_1.buildNativeAssetsFromConstant)();
|
|
935
|
+
queryApiClient.setCachedData(NATIVE_ASSETS_QUERY_KEY, initialNativeAssetMap);
|
|
910
936
|
}, _AssetsController_initializeState = function _AssetsController_initializeState() {
|
|
911
937
|
const { enabledNetworkMap } = this.messenger.call('NetworkEnablementController:getState');
|
|
912
938
|
__classPrivateFieldSet(this, _AssetsController_enabledChains, __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_extractEnabledChains).call(this, enabledNetworkMap), "f");
|
|
@@ -1144,11 +1170,28 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1144
1170
|
});
|
|
1145
1171
|
}
|
|
1146
1172
|
return { response: result.response, durationByDataSource };
|
|
1173
|
+
}, _AssetsController_getNativeAssetMap = function _AssetsController_getNativeAssetMap() {
|
|
1174
|
+
return (__classPrivateFieldGet(this, _AssetsController_queryApiClient, "f").getCachedData(NATIVE_ASSETS_QUERY_KEY) ?? {});
|
|
1175
|
+
}, _AssetsController_isNativeAsset = function _AssetsController_isNativeAsset(assetId) {
|
|
1176
|
+
const parsed = (0, utils_1.parseCaipAssetType)(assetId);
|
|
1177
|
+
if (parsed.assetNamespace === 'slip44') {
|
|
1178
|
+
return true;
|
|
1179
|
+
}
|
|
1180
|
+
const lower = assetId.toLowerCase();
|
|
1181
|
+
const isInNativeAssetMap = Object.values(__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this)).some((id) => id.toLowerCase() === lower);
|
|
1182
|
+
if (isInNativeAssetMap) {
|
|
1183
|
+
return true;
|
|
1184
|
+
}
|
|
1185
|
+
if (parsed.assetNamespace === 'erc20' &&
|
|
1186
|
+
parsed.assetReference === constants_1.ZERO_ADDRESS) {
|
|
1187
|
+
return true;
|
|
1188
|
+
}
|
|
1189
|
+
return false;
|
|
1147
1190
|
}, _AssetsController_resolveNativeAssetIds = function _AssetsController_resolveNativeAssetIds(chains) {
|
|
1148
|
-
const
|
|
1191
|
+
const nativeAssetMap = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this);
|
|
1149
1192
|
const ids = [];
|
|
1150
1193
|
for (const chainId of chains) {
|
|
1151
|
-
const nativeId =
|
|
1194
|
+
const nativeId = nativeAssetMap[chainId];
|
|
1152
1195
|
if (nativeId) {
|
|
1153
1196
|
ids.push(nativeId);
|
|
1154
1197
|
}
|
|
@@ -1366,7 +1409,7 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1366
1409
|
}
|
|
1367
1410
|
const assetChainId = extractChainId(typedAssetId);
|
|
1368
1411
|
// Skip native tokens on Tempo networks
|
|
1369
|
-
if (__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_shouldHideNativeToken).call(this, assetChainId,
|
|
1412
|
+
if (__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_shouldHideNativeToken).call(this, assetChainId, metadata)) {
|
|
1370
1413
|
continue;
|
|
1371
1414
|
}
|
|
1372
1415
|
if (!chainIdSet.has(assetChainId)) {
|
|
@@ -1402,14 +1445,12 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1402
1445
|
}
|
|
1403
1446
|
}
|
|
1404
1447
|
return result;
|
|
1405
|
-
}, _AssetsController_shouldHideNativeToken = function _AssetsController_shouldHideNativeToken(chainId,
|
|
1448
|
+
}, _AssetsController_shouldHideNativeToken = function _AssetsController_shouldHideNativeToken(chainId, metadata) {
|
|
1406
1449
|
// Check if it's a chain that should skip native tokens
|
|
1407
1450
|
if (!controller_utils_1.CHAIN_IDS_WITH_NO_NATIVE_TOKEN.includes(chainId)) {
|
|
1408
1451
|
return false;
|
|
1409
1452
|
}
|
|
1410
|
-
|
|
1411
|
-
const isNative = metadata.type === 'native' || assetId.includes('/slip44:');
|
|
1412
|
-
return isNative;
|
|
1453
|
+
return metadata.type === 'native';
|
|
1413
1454
|
}, _AssetsController_tokenStandardToAssetType = function _AssetsController_tokenStandardToAssetType(tokenStandard) {
|
|
1414
1455
|
switch (tokenStandard) {
|
|
1415
1456
|
case 'native':
|