@metamask-previews/assets-controller 8.3.3-preview-ddb114f71 → 8.3.3-preview-55c113b0b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGELOG.md +4 -10
  2. package/dist/AssetsController.cjs +7 -31
  3. package/dist/AssetsController.cjs.map +1 -1
  4. package/dist/AssetsController.d.cts +2 -2
  5. package/dist/AssetsController.d.cts.map +1 -1
  6. package/dist/AssetsController.d.mts +2 -2
  7. package/dist/AssetsController.d.mts.map +1 -1
  8. package/dist/AssetsController.mjs +7 -31
  9. package/dist/AssetsController.mjs.map +1 -1
  10. package/dist/data-sources/BackendWebsocketDataSource.cjs +7 -5
  11. package/dist/data-sources/BackendWebsocketDataSource.cjs.map +1 -1
  12. package/dist/data-sources/BackendWebsocketDataSource.d.cts +2 -2
  13. package/dist/data-sources/BackendWebsocketDataSource.d.cts.map +1 -1
  14. package/dist/data-sources/BackendWebsocketDataSource.d.mts +2 -2
  15. package/dist/data-sources/BackendWebsocketDataSource.d.mts.map +1 -1
  16. package/dist/data-sources/BackendWebsocketDataSource.mjs +7 -5
  17. package/dist/data-sources/BackendWebsocketDataSource.mjs.map +1 -1
  18. package/dist/data-sources/RpcDataSource.cjs +50 -29
  19. package/dist/data-sources/RpcDataSource.cjs.map +1 -1
  20. package/dist/data-sources/RpcDataSource.d.cts +2 -4
  21. package/dist/data-sources/RpcDataSource.d.cts.map +1 -1
  22. package/dist/data-sources/RpcDataSource.d.mts +2 -4
  23. package/dist/data-sources/RpcDataSource.d.mts.map +1 -1
  24. package/dist/data-sources/RpcDataSource.mjs +50 -29
  25. package/dist/data-sources/RpcDataSource.mjs.map +1 -1
  26. package/dist/data-sources/StakedBalanceDataSource.cjs +27 -1
  27. package/dist/data-sources/StakedBalanceDataSource.cjs.map +1 -1
  28. package/dist/data-sources/StakedBalanceDataSource.d.cts.map +1 -1
  29. package/dist/data-sources/StakedBalanceDataSource.d.mts.map +1 -1
  30. package/dist/data-sources/StakedBalanceDataSource.mjs +27 -1
  31. package/dist/data-sources/StakedBalanceDataSource.mjs.map +1 -1
  32. package/dist/data-sources/TokenDataSource.cjs +18 -9
  33. package/dist/data-sources/TokenDataSource.cjs.map +1 -1
  34. package/dist/data-sources/TokenDataSource.d.cts +1 -3
  35. package/dist/data-sources/TokenDataSource.d.cts.map +1 -1
  36. package/dist/data-sources/TokenDataSource.d.mts +1 -3
  37. package/dist/data-sources/TokenDataSource.d.mts.map +1 -1
  38. package/dist/data-sources/TokenDataSource.mjs +18 -9
  39. package/dist/data-sources/TokenDataSource.mjs.map +1 -1
  40. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.cjs +9 -103
  41. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.cjs.map +1 -1
  42. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.cts +5 -14
  43. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.cts.map +1 -1
  44. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.mts +5 -14
  45. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.mts.map +1 -1
  46. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.mjs +9 -103
  47. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.mjs.map +1 -1
  48. package/dist/defaults.cjs +20 -1
  49. package/dist/defaults.cjs.map +1 -1
  50. package/dist/defaults.d.cts.map +1 -1
  51. package/dist/defaults.d.mts.map +1 -1
  52. package/dist/defaults.mjs +20 -1
  53. package/dist/defaults.mjs.map +1 -1
  54. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -7,19 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
- ### Changed
11
-
12
- - **BREAKING:** `RpcDataSourceOptions`, `TokenDataSourceOptions`, and `BackendWebsocketDataSourceOptions` no longer accept `isNativeAsset: (assetId) => boolean`; replace it with `getAssetType: (assetId) => 'native' | 'erc20' | 'spl'` ([#9063](https://github.com/MetaMask/core/pull/9063))
13
- - Token detection via `TokensApiClient` is now gated behind the `/v2/supportedNetworks` endpoint; chains absent from the supported-networks list are skipped and return an empty token list, and token-list request failures return an empty array instead of throwing ([#9063](https://github.com/MetaMask/core/pull/9063))
14
- - Bump `@metamask/transaction-controller` from `^67.0.0` to `^67.1.0` ([#9066](https://github.com/MetaMask/core/pull/9066))
15
-
16
- ### Removed
10
+ ### Added
17
11
 
18
- - **BREAKING:** Remove `TransactionController:incomingTransactionsReceived` from `AssetsController` allowed events and `RpcDataSourceAllowedEvents`; remove associated balance refresh on incoming transactions ([#9012](https://github.com/MetaMask/core/pull/9012))
12
+ - Add USDC on ARC mainnet (`eip155:5042/erc20:0x3600000000000000000000000000000000000000`) to default tokens to display on ARC ([#9011](https://github.com/MetaMask/core/pull/9011))
19
13
 
20
- ### Fixed
14
+ ### Changed
21
15
 
22
- - `RpcDataSource`, `TokenDataSource`, and `BackendWebsocketDataSource` now correctly classify native tokens exposed via a non-zero-address ERC-20 interface (e.g. Immutable zkEVM's IMX, Arc's USDC at `0x3600…0000`) as `type: 'native'` instead of `type: 'erc20'` ([#9063](https://github.com/MetaMask/core/pull/9063))
16
+ - Bump `@metamask/transaction-controller` from `^67.0.0` to `^67.1.0` ([#9066](https://github.com/MetaMask/core/pull/9066))
23
17
 
24
18
  ## [8.3.3]
25
19
 
@@ -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_captureException, _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_customAssetGraduationMiddleware, _AssetsController_rpcFallbackMiddleware, _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_getAssetType, _AssetsController_resolveNativeAssetIds, _AssetsController_getNativeAssetIdsForEnabledChains, _AssetsController_getNativeAssetIdsForAccount, _AssetsController_ensureNativeBalancesDefaultZero, _AssetsController_ensureDefaultTrackedAssetsSeeded, _AssetsController_updateState, _AssetsController_getAssetsFromState, _AssetsController_shouldHideNativeToken, _AssetsController_tokenStandardToAssetType, _AssetsController_start, _AssetsController_stop, _AssetsController_subscribeAssets, _AssetsController_subscribeAssetsBalance, _AssetsController_subscribeRpcCustomAssetsSupplement, _AssetsController_unsubscribeBySubscriptionKey, _AssetsController_subscribeStakedBalance, _AssetsController_buildChainToAccountsMap, _AssetsController_subscribeDataSource, _AssetsController_unsubscribeDataSource, _AssetsController_buildDataRequest, _AssetsController_getEnabledChainsForAccount, _AssetsController_handleAccountGroupChanged, _AssetsController_handleEnabledNetworksChanged, _AssetsController_handleNetworkAdded, _AssetsController_refreshAssetsAfterNetworkChange;
16
+ var _AssetsController_instances, _AssetsController_isEnabled, _AssetsController_isBasicFunctionality, _AssetsController_defaultUpdateInterval, _AssetsController_trace, _AssetsController_captureException, _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_customAssetGraduationMiddleware, _AssetsController_rpcFallbackMiddleware, _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_ensureDefaultTrackedAssetsSeeded, _AssetsController_updateState, _AssetsController_getAssetsFromState, _AssetsController_shouldHideNativeToken, _AssetsController_tokenStandardToAssetType, _AssetsController_start, _AssetsController_stop, _AssetsController_subscribeAssets, _AssetsController_subscribeAssetsBalance, _AssetsController_subscribeRpcCustomAssetsSupplement, _AssetsController_unsubscribeBySubscriptionKey, _AssetsController_subscribeStakedBalance, _AssetsController_buildChainToAccountsMap, _AssetsController_subscribeDataSource, _AssetsController_unsubscribeDataSource, _AssetsController_buildDataRequest, _AssetsController_getEnabledChainsForAccount, _AssetsController_handleAccountGroupChanged, _AssetsController_handleEnabledNetworksChanged, _AssetsController_handleNetworkAdded, _AssetsController_refreshAssetsAfterNetworkChange;
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");
@@ -306,7 +306,7 @@ class AssetsController extends base_controller_1.BaseController {
306
306
  messenger: this.messenger,
307
307
  queryApiClient,
308
308
  onActiveChainsUpdated: __classPrivateFieldGet(this, _AssetsController_onActiveChainsUpdated, "f"),
309
- getAssetType: (assetId) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getAssetType).call(this, assetId),
309
+ isNativeAsset: (assetId) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_isNativeAsset).call(this, assetId),
310
310
  }), "f");
311
311
  __classPrivateFieldSet(this, _AssetsController_accountsApiDataSource, new AccountsApiDataSource_1.AccountsApiDataSource({
312
312
  queryApiClient,
@@ -329,7 +329,6 @@ class AssetsController extends base_controller_1.BaseController {
329
329
  queryClient: queryApiClient.queryClient,
330
330
  ...rpcConfig,
331
331
  isOnboarded: rpcConfig.isOnboarded ?? isOnboarded,
332
- getAssetType: (assetId) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getAssetType).call(this, assetId),
333
332
  }), "f");
334
333
  __classPrivateFieldSet(this, _AssetsController_stakedBalanceDataSource, new StakedBalanceDataSource_1.StakedBalanceDataSource({
335
334
  messenger: this.messenger,
@@ -341,7 +340,6 @@ class AssetsController extends base_controller_1.BaseController {
341
340
  getNativeAssetIds: () => {
342
341
  return __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetIdsForEnabledChains).call(this);
343
342
  },
344
- getAssetType: (assetId) => __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getAssetType).call(this, assetId),
345
343
  }), "f");
346
344
  __classPrivateFieldSet(this, _AssetsController_priceDataSource, new PriceDataSource_1.PriceDataSource({
347
345
  queryApiClient,
@@ -1282,16 +1280,6 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
1282
1280
  return true;
1283
1281
  }
1284
1282
  return false;
1285
- }, _AssetsController_getAssetType = function _AssetsController_getAssetType(assetId) {
1286
- const parsed = (0, utils_1.parseCaipAssetType)(assetId);
1287
- if (__classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_isNativeAsset).call(this, assetId)) {
1288
- return 'native';
1289
- }
1290
- if (parsed.chain.namespace === utils_1.KnownCaipNamespace.Solana &&
1291
- parsed.assetNamespace === TokenDataSource_1.CaipAssetNamespace.Token) {
1292
- return 'spl';
1293
- }
1294
- return 'erc20';
1295
1283
  }, _AssetsController_resolveNativeAssetIds = function _AssetsController_resolveNativeAssetIds(chains) {
1296
1284
  const nativeAssetMap = __classPrivateFieldGet(this, _AssetsController_instances, "m", _AssetsController_getNativeAssetMap).call(this);
1297
1285
  const ids = [];
@@ -1421,27 +1409,15 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
1421
1409
  for (const [accountId, accountBalances] of Object.entries(normalizedResponse.assetsBalance)) {
1422
1410
  const previousBalances = previousState.assetsBalance[accountId] ?? {};
1423
1411
  const customAssetIds = state.customAssets[accountId] ?? [];
1424
- // Full: response is authoritative for the chains it covered;
1425
- // balances for chains not in the response are preserved from
1426
- // previous state so unsupported chains (e.g. Ink on AccountsAPI)
1427
- // are never inadvertently reset to zero.
1412
+ // Full: response is authoritative; preserve custom assets not in response.
1428
1413
  // Merge: response overlays previous balances.
1414
+ // Callers that fetch partial data (e.g. newly added chains) must set updateMode: 'merge'.
1429
1415
  const effective = mode === 'merge'
1430
1416
  ? { ...previousBalances, ...accountBalances }
1431
1417
  : (() => {
1432
- // Determine which chain namespaces this response covers.
1433
- const coveredChains = new Set(Object.keys(accountBalances).map((assetId) => assetId.split('/')[0]));
1434
- // Start from previous balances, dropping only entries for
1435
- // chains this response is authoritative over.
1436
- const next = {};
1437
- for (const [assetId, balance] of Object.entries(previousBalances)) {
1438
- if (!coveredChains.has(assetId.split('/')[0])) {
1439
- next[assetId] = balance;
1440
- }
1441
- }
1442
- // Apply the response (authoritative for covered chains).
1443
- Object.assign(next, accountBalances);
1444
- // Preserve custom assets that the response omitted.
1418
+ const next = {
1419
+ ...accountBalances,
1420
+ };
1445
1421
  for (const customId of customAssetIds) {
1446
1422
  if (!(customId in next)) {
1447
1423
  const prev = previousBalances[customId];