@metamask-previews/assets-controller 6.0.0-preview-6ce5d58fa → 6.1.0-preview-1e2fe74a0
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 +19 -2
- package/dist/AssetsController.cjs +56 -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 -17
- 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/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/dist/utils/index.cjs +4 -1
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.cts +1 -0
- package/dist/utils/index.d.cts.map +1 -1
- package/dist/utils/index.d.mts +1 -0
- package/dist/utils/index.d.mts.map +1 -1
- package/dist/utils/index.mjs +1 -0
- package/dist/utils/index.mjs.map +1 -1
- package/dist/utils/native-assets.cjs +63 -0
- package/dist/utils/native-assets.cjs.map +1 -0
- package/dist/utils/native-assets.d.cts +19 -0
- package/dist/utils/native-assets.d.cts.map +1 -0
- package/dist/utils/native-assets.d.mts +19 -0
- package/dist/utils/native-assets.d.mts.map +1 -0
- package/dist/utils/native-assets.mjs +58 -0
- package/dist/utils/native-assets.mjs.map +1 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,14 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [6.1.0]
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Add newly supported chains to multicall contract support in `MulticallClient` ([#8346](https://github.com/MetaMask/core/pull/8346))
|
|
15
|
+
- Tempo Mainnet (`4217`/`0x1079`)
|
|
16
|
+
- Tempo Testnet Moderato (`42431`/`0xa5bf`)
|
|
17
|
+
- Ink Mainnet (`57073`/`0xdef1`)
|
|
18
|
+
- Stable mainnet (`988`/`0x3dc`)
|
|
19
|
+
|
|
10
20
|
### Changed
|
|
11
21
|
|
|
12
|
-
- Bump `@metamask/assets-controllers` from `^104.0.0` to `^104.
|
|
22
|
+
- Bump `@metamask/assets-controllers` from `^104.0.0` to `^104.3.0` ([#8509](https://github.com/MetaMask/core/pull/8509), [#8544](https://github.com/MetaMask/core/pull/8544), [#8559](https://github.com/MetaMask/core/pull/8559))
|
|
13
23
|
- Bump `@metamask/keyring-api` from `^21.6.0` to `^23.0.1` ([#8464](https://github.com/MetaMask/core/pull/8464))
|
|
14
24
|
- Bump `@metamask/keyring-internal-api` from `^10.0.0` to `^10.1.1` ([#8464](https://github.com/MetaMask/core/pull/8464))
|
|
15
25
|
- Bump `@metamask/keyring-snap-client` from `^8.2.0` to `^9.0.1` ([#8464](https://github.com/MetaMask/core/pull/8464))
|
|
16
26
|
- Bump `@metamask/transaction-controller` from `^64.2.0` to `^64.3.0` ([#8482](https://github.com/MetaMask/core/pull/8482))
|
|
17
27
|
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
- 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))
|
|
31
|
+
- Previously, native assets represented as ERC-20 tokens were not recognized as native, causing incorrect token type classification.
|
|
32
|
+
- 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))
|
|
33
|
+
|
|
18
34
|
## [6.0.0]
|
|
19
35
|
|
|
20
36
|
### Added
|
|
@@ -337,7 +353,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
337
353
|
- Refactor `RpcDataSource` to delegate polling to `BalanceFetcher` and `TokenDetector` services ([#7709](https://github.com/MetaMask/core/pull/7709))
|
|
338
354
|
- Refactor `BalanceFetcher` and `TokenDetector` to extend `StaticIntervalPollingControllerOnly` for independent polling management ([#7709](https://github.com/MetaMask/core/pull/7709))
|
|
339
355
|
|
|
340
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@6.
|
|
356
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@6.1.0...HEAD
|
|
357
|
+
[6.1.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@6.0.0...@metamask/assets-controller@6.1.0
|
|
341
358
|
[6.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@5.0.1...@metamask/assets-controller@6.0.0
|
|
342
359
|
[5.0.1]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@5.0.0...@metamask/assets-controller@5.0.1
|
|
343
360
|
[5.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controller@4.0.0...@metamask/assets-controller@5.0.0
|
|
@@ -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");
|
|
@@ -34,6 +34,8 @@ 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
36
|
const utils_2 = require("./utils/index.cjs");
|
|
37
|
+
const constants_1 = require("./utils/constants.cjs");
|
|
38
|
+
const NATIVE_ASSETS_QUERY_KEY = ['nativeAssets'];
|
|
37
39
|
// ============================================================================
|
|
38
40
|
// CONTROLLER CONSTANTS
|
|
39
41
|
// ============================================================================
|
|
@@ -262,12 +264,15 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
262
264
|
_AssetsController_detectionMiddleware.set(this, void 0);
|
|
263
265
|
_AssetsController_tokenDataSource.set(this, void 0);
|
|
264
266
|
_AssetsController_unsubscribeBasicFunctionality.set(this, null);
|
|
267
|
+
_AssetsController_queryApiClient.set(this, void 0);
|
|
265
268
|
_AssetsController_onActiveChainsUpdated.set(this, void 0);
|
|
266
269
|
__classPrivateFieldSet(this, _AssetsController_isEnabled, isEnabled(), "f");
|
|
267
270
|
__classPrivateFieldSet(this, _AssetsController_isBasicFunctionality, isBasicFunctionality ?? (() => true), "f");
|
|
268
271
|
__classPrivateFieldSet(this, _AssetsController_defaultUpdateInterval, defaultUpdateInterval, "f");
|
|
269
272
|
__classPrivateFieldSet(this, _AssetsController_trace, trace, "f");
|
|
273
|
+
__classPrivateFieldSet(this, _AssetsController_queryApiClient, queryApiClient, "f");
|
|
270
274
|
const rpcConfig = rpcDataSourceConfig ?? {};
|
|
275
|
+
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_initializeNativeAssetsMap).call(this, queryApiClient);
|
|
271
276
|
__classPrivateFieldSet(this, _AssetsController_onActiveChainsUpdated, (dataSourceName, chains, previousChains) => {
|
|
272
277
|
try {
|
|
273
278
|
__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_handleActiveChainsUpdate).call(this, dataSourceName, chains, previousChains);
|
|
@@ -283,6 +288,7 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
283
288
|
messenger: this.messenger,
|
|
284
289
|
queryApiClient,
|
|
285
290
|
onActiveChainsUpdated: __classPrivateFieldGet(this, _AssetsController_onActiveChainsUpdated, "f"),
|
|
291
|
+
isNativeAsset: (assetId) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_isNativeAsset).call(this, assetId),
|
|
286
292
|
}), "f");
|
|
287
293
|
__classPrivateFieldSet(this, _AssetsController_accountsApiDataSource, new AccountsApiDataSource_1.AccountsApiDataSource({
|
|
288
294
|
queryApiClient,
|
|
@@ -296,6 +302,8 @@ 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] ??
|
|
306
|
+
`${chainId}/erc20:${constants_1.ZERO_ADDRESS}`,
|
|
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,25 @@ _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
|
+
queryApiClient.queryClient
|
|
918
|
+
.fetchQuery({
|
|
919
|
+
queryKey: NATIVE_ASSETS_QUERY_KEY,
|
|
920
|
+
queryFn: utils_2.buildNativeAssetsFromApi,
|
|
921
|
+
staleTime: Infinity,
|
|
922
|
+
gcTime: Infinity,
|
|
923
|
+
})
|
|
924
|
+
.catch((error) => {
|
|
925
|
+
// Failure to populate native asset cache is non-fatal;
|
|
926
|
+
// #isNativeAsset falls back to the seed data from buildNativeAssetsFromConstant.
|
|
927
|
+
log('Failed to populate native asset cache, falling back to seed data', error);
|
|
928
|
+
});
|
|
929
|
+
// Seed the cache synchronously so that synchronous consumers (e.g.
|
|
930
|
+
// #isNativeAsset, #resolveNativeAssetIds) have data available immediately.
|
|
931
|
+
// When fetchQuery resolves (currently instant, future: API), it overwrites
|
|
932
|
+
// this with potentially fresher data.
|
|
933
|
+
const initialNativeAssetMap = (0, utils_2.buildNativeAssetsFromConstant)();
|
|
934
|
+
queryApiClient.setCachedData(NATIVE_ASSETS_QUERY_KEY, initialNativeAssetMap);
|
|
910
935
|
}, _AssetsController_initializeState = function _AssetsController_initializeState() {
|
|
911
936
|
const { enabledNetworkMap } = this.messenger.call('NetworkEnablementController:getState');
|
|
912
937
|
__classPrivateFieldSet(this, _AssetsController_enabledChains, __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_extractEnabledChains).call(this, enabledNetworkMap), "f");
|
|
@@ -1144,11 +1169,28 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1144
1169
|
});
|
|
1145
1170
|
}
|
|
1146
1171
|
return { response: result.response, durationByDataSource };
|
|
1172
|
+
}, _AssetsController_getNativeAssetMap = function _AssetsController_getNativeAssetMap() {
|
|
1173
|
+
return (__classPrivateFieldGet(this, _AssetsController_queryApiClient, "f").getCachedData(NATIVE_ASSETS_QUERY_KEY) ?? {});
|
|
1174
|
+
}, _AssetsController_isNativeAsset = function _AssetsController_isNativeAsset(assetId) {
|
|
1175
|
+
const parsed = (0, utils_1.parseCaipAssetType)(assetId);
|
|
1176
|
+
if (parsed.assetNamespace === 'slip44') {
|
|
1177
|
+
return true;
|
|
1178
|
+
}
|
|
1179
|
+
const lower = assetId.toLowerCase();
|
|
1180
|
+
const isInNativeAssetMap = Object.values(__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this)).some((id) => id.toLowerCase() === lower);
|
|
1181
|
+
if (isInNativeAssetMap) {
|
|
1182
|
+
return true;
|
|
1183
|
+
}
|
|
1184
|
+
if (parsed.assetNamespace === 'erc20' &&
|
|
1185
|
+
parsed.assetReference === constants_1.ZERO_ADDRESS) {
|
|
1186
|
+
return true;
|
|
1187
|
+
}
|
|
1188
|
+
return false;
|
|
1147
1189
|
}, _AssetsController_resolveNativeAssetIds = function _AssetsController_resolveNativeAssetIds(chains) {
|
|
1148
|
-
const
|
|
1190
|
+
const nativeAssetMap = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this);
|
|
1149
1191
|
const ids = [];
|
|
1150
1192
|
for (const chainId of chains) {
|
|
1151
|
-
const nativeId =
|
|
1193
|
+
const nativeId = nativeAssetMap[chainId];
|
|
1152
1194
|
if (nativeId) {
|
|
1153
1195
|
ids.push(nativeId);
|
|
1154
1196
|
}
|
|
@@ -1366,7 +1408,7 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1366
1408
|
}
|
|
1367
1409
|
const assetChainId = extractChainId(typedAssetId);
|
|
1368
1410
|
// Skip native tokens on Tempo networks
|
|
1369
|
-
if (__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_shouldHideNativeToken).call(this, assetChainId,
|
|
1411
|
+
if (__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_shouldHideNativeToken).call(this, assetChainId, metadata)) {
|
|
1370
1412
|
continue;
|
|
1371
1413
|
}
|
|
1372
1414
|
if (!chainIdSet.has(assetChainId)) {
|
|
@@ -1402,14 +1444,12 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1402
1444
|
}
|
|
1403
1445
|
}
|
|
1404
1446
|
return result;
|
|
1405
|
-
}, _AssetsController_shouldHideNativeToken = function _AssetsController_shouldHideNativeToken(chainId,
|
|
1447
|
+
}, _AssetsController_shouldHideNativeToken = function _AssetsController_shouldHideNativeToken(chainId, metadata) {
|
|
1406
1448
|
// Check if it's a chain that should skip native tokens
|
|
1407
1449
|
if (!controller_utils_1.CHAIN_IDS_WITH_NO_NATIVE_TOKEN.includes(chainId)) {
|
|
1408
1450
|
return false;
|
|
1409
1451
|
}
|
|
1410
|
-
|
|
1411
|
-
const isNative = metadata.type === 'native' || assetId.includes('/slip44:');
|
|
1412
|
-
return isNative;
|
|
1452
|
+
return metadata.type === 'native';
|
|
1413
1453
|
}, _AssetsController_tokenStandardToAssetType = function _AssetsController_tokenStandardToAssetType(tokenStandard) {
|
|
1414
1454
|
switch (tokenStandard) {
|
|
1415
1455
|
case 'native':
|