@metamask-previews/assets-controller 2.3.0-preview-0ae91e694 → 2.3.0-preview-efc1fb7
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 +5 -1
- package/dist/AssetsController.cjs +21 -20
- 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 +21 -20
- package/dist/AssetsController.mjs.map +1 -1
- package/dist/data-sources/RpcDataSource.cjs +102 -18
- package/dist/data-sources/RpcDataSource.cjs.map +1 -1
- package/dist/data-sources/RpcDataSource.d.cts.map +1 -1
- package/dist/data-sources/RpcDataSource.d.mts.map +1 -1
- package/dist/data-sources/RpcDataSource.mjs +102 -18
- package/dist/data-sources/RpcDataSource.mjs.map +1 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.cjs +1 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.cjs.map +1 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.cts +1 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.cts.map +1 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.mts +1 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.mts.map +1 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.mjs +1 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -13,7 +13,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
13
13
|
- Bump `@metamask/account-tree-controller` from `^5.0.0` to `^5.0.1` ([#8162](https://github.com/MetaMask/core/pull/8162))
|
|
14
14
|
- Bump `@metamask/assets-controllers` from `^100.2.0` to `^100.2.1` ([#8162](https://github.com/MetaMask/core/pull/8162))
|
|
15
15
|
- Bump `@metamask/core-backend` from `^6.1.0` to `^6.1.1` ([#8162](https://github.com/MetaMask/core/pull/8162))
|
|
16
|
-
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- Preserve custom asset metadata (symbol, name, decimals, image) in `AssetsController` when the API returns an empty response for an unknown token, preventing incorrect balance calculations and display for user-deployed tokens added via `wallet_watchAsset` ([#8202](https://github.com/MetaMask/core/pull/8202))
|
|
20
|
+
- Include custom asset token addresses in `RpcDataSource` balance fetches so that on-chain balances are retrieved immediately after token import via `addCustomAsset` ([#8202](https://github.com/MetaMask/core/pull/8202))
|
|
17
21
|
|
|
18
22
|
## [2.3.0]
|
|
19
23
|
|
|
@@ -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_trackMetaMetricsEvent, _AssetsController_firstInitFetchReported, _AssetsController_uiOpen, _AssetsController_keyringUnlocked, _AssetsController_controllerMutex, _AssetsController_activeSubscriptions, _AssetsController_enabledChains, _AssetsController_selectedAccounts_get, _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_updateActive, _AssetsController_registerActionHandlers, _AssetsController_handleActiveChainsUpdate, _AssetsController_executeMiddlewares, _AssetsController_resolveNativeAssetIds, _AssetsController_getNativeAssetIdsForEnabledChains, _AssetsController_getNativeAssetIdsForAccount, _AssetsController_ensureNativeBalancesDefaultZero, _AssetsController_updateState, _AssetsController_getAssetsFromState,
|
|
16
|
+
var _AssetsController_instances, _AssetsController_isEnabled, _AssetsController_isBasicFunctionality, _AssetsController_defaultUpdateInterval, _AssetsController_trackMetaMetricsEvent, _AssetsController_firstInitFetchReported, _AssetsController_uiOpen, _AssetsController_keyringUnlocked, _AssetsController_controllerMutex, _AssetsController_activeSubscriptions, _AssetsController_enabledChains, _AssetsController_selectedAccounts_get, _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_updateActive, _AssetsController_registerActionHandlers, _AssetsController_handleActiveChainsUpdate, _AssetsController_executeMiddlewares, _AssetsController_resolveNativeAssetIds, _AssetsController_getNativeAssetIdsForEnabledChains, _AssetsController_getNativeAssetIdsForAccount, _AssetsController_ensureNativeBalancesDefaultZero, _AssetsController_updateState, _AssetsController_getAssetsFromState, _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");
|
|
@@ -966,7 +966,26 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
966
966
|
if (!(0, lodash_1.isEqual)(previousState.assetsInfo[key], value)) {
|
|
967
967
|
changedMetadata.push(key);
|
|
968
968
|
}
|
|
969
|
-
metadata[key]
|
|
969
|
+
const existing = metadata[key];
|
|
970
|
+
const incoming = value;
|
|
971
|
+
// When the API returns no symbol or name for this token, it has no
|
|
972
|
+
// real knowledge of it (e.g. a user-deployed token not indexed by
|
|
973
|
+
// the API). Preserve richer metadata already in state (e.g. from
|
|
974
|
+
// pendingMetadata set by addCustomAsset) so that the correct
|
|
975
|
+
// decimals/symbol/name/image are not overwritten with empty values.
|
|
976
|
+
if (existing && !incoming.symbol && !incoming.name) {
|
|
977
|
+
metadata[key] = {
|
|
978
|
+
...existing,
|
|
979
|
+
...incoming,
|
|
980
|
+
symbol: existing.symbol,
|
|
981
|
+
name: existing.name,
|
|
982
|
+
decimals: existing.decimals ?? incoming.decimals,
|
|
983
|
+
image: existing.image ?? incoming.image,
|
|
984
|
+
};
|
|
985
|
+
}
|
|
986
|
+
else {
|
|
987
|
+
metadata[key] = value;
|
|
988
|
+
}
|
|
970
989
|
}
|
|
971
990
|
}
|
|
972
991
|
if (normalizedResponse.assetsBalance) {
|
|
@@ -1107,10 +1126,6 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1107
1126
|
continue;
|
|
1108
1127
|
}
|
|
1109
1128
|
const assetChainId = extractChainId(typedAssetId);
|
|
1110
|
-
// Skip native tokens on Tempo networks
|
|
1111
|
-
if (__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_shouldHideNativeToken).call(this, assetChainId, typedAssetId, metadata)) {
|
|
1112
|
-
continue;
|
|
1113
|
-
}
|
|
1114
1129
|
if (!chainIdSet.has(assetChainId)) {
|
|
1115
1130
|
continue;
|
|
1116
1131
|
}
|
|
@@ -1144,20 +1159,6 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1144
1159
|
}
|
|
1145
1160
|
}
|
|
1146
1161
|
return result;
|
|
1147
|
-
}, _AssetsController_shouldHideNativeToken = function _AssetsController_shouldHideNativeToken(chainId, assetId, metadata) {
|
|
1148
|
-
// Chain IDs where native tokens should be skipped (Tempo networks)
|
|
1149
|
-
// These networks return arbitrary large numbers for native token balances via eth_getBalance
|
|
1150
|
-
const CHAIN_IDS_TO_SKIP_NATIVE_TOKEN = [
|
|
1151
|
-
'eip155:42431', // Tempo Testnet
|
|
1152
|
-
'eip155:4217', // Tempo Mainnet
|
|
1153
|
-
];
|
|
1154
|
-
// Check if it's a chain that should skip native tokens
|
|
1155
|
-
if (!CHAIN_IDS_TO_SKIP_NATIVE_TOKEN.includes(chainId)) {
|
|
1156
|
-
return false;
|
|
1157
|
-
}
|
|
1158
|
-
// Check if it's a native token (either by metadata type or assetId format)
|
|
1159
|
-
const isNative = metadata.type === 'native' || assetId.includes('/slip44:');
|
|
1160
|
-
return isNative;
|
|
1161
1162
|
}, _AssetsController_tokenStandardToAssetType = function _AssetsController_tokenStandardToAssetType(tokenStandard) {
|
|
1162
1163
|
switch (tokenStandard) {
|
|
1163
1164
|
case 'native':
|