@metamask/assets-controller 8.3.3 → 9.0.1

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 (60) hide show
  1. package/CHANGELOG.md +32 -1
  2. package/dist/AssetsController.cjs +31 -7
  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 +31 -7
  9. package/dist/AssetsController.mjs.map +1 -1
  10. package/dist/data-sources/BackendWebsocketDataSource.cjs +5 -7
  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 +5 -7
  17. package/dist/data-sources/BackendWebsocketDataSource.mjs.map +1 -1
  18. package/dist/data-sources/RpcDataSource.cjs +31 -51
  19. package/dist/data-sources/RpcDataSource.cjs.map +1 -1
  20. package/dist/data-sources/RpcDataSource.d.cts +4 -2
  21. package/dist/data-sources/RpcDataSource.d.cts.map +1 -1
  22. package/dist/data-sources/RpcDataSource.d.mts +4 -2
  23. package/dist/data-sources/RpcDataSource.d.mts.map +1 -1
  24. package/dist/data-sources/RpcDataSource.mjs +31 -51
  25. package/dist/data-sources/RpcDataSource.mjs.map +1 -1
  26. package/dist/data-sources/StakedBalanceDataSource.cjs +1 -27
  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 +1 -27
  31. package/dist/data-sources/StakedBalanceDataSource.mjs.map +1 -1
  32. package/dist/data-sources/TokenDataSource.cjs +9 -18
  33. package/dist/data-sources/TokenDataSource.cjs.map +1 -1
  34. package/dist/data-sources/TokenDataSource.d.cts +3 -1
  35. package/dist/data-sources/TokenDataSource.d.cts.map +1 -1
  36. package/dist/data-sources/TokenDataSource.d.mts +3 -1
  37. package/dist/data-sources/TokenDataSource.d.mts.map +1 -1
  38. package/dist/data-sources/TokenDataSource.mjs +9 -18
  39. package/dist/data-sources/TokenDataSource.mjs.map +1 -1
  40. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.cjs +3 -5
  41. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.cjs.map +1 -1
  42. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.cts.map +1 -1
  43. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.mts.map +1 -1
  44. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.mjs +4 -6
  45. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.mjs.map +1 -1
  46. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.cjs +103 -9
  47. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.cjs.map +1 -1
  48. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.cts +14 -5
  49. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.cts.map +1 -1
  50. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.mts +14 -5
  51. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.mts.map +1 -1
  52. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.mjs +103 -9
  53. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.mjs.map +1 -1
  54. package/dist/defaults.cjs +20 -1
  55. package/dist/defaults.cjs.map +1 -1
  56. package/dist/defaults.d.cts.map +1 -1
  57. package/dist/defaults.d.mts.map +1 -1
  58. package/dist/defaults.mjs +20 -1
  59. package/dist/defaults.mjs.map +1 -1
  60. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"RpcDataSource.d.cts","sourceRoot":"","sources":["../../src/data-sources/RpcDataSource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RpcDataSource.d.cts","sourceRoot":"","sources":["../../src/data-sources/RpcDataSource.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { InternalAccount } from "@metamask/keyring-internal-api";
2
2
  import type { NetworkControllerGetNetworkClientByIdAction, NetworkControllerGetStateAction, NetworkControllerStateChangeEvent, NetworkStatus } from "@metamask/network-controller";
3
- import type { TransactionControllerIncomingTransactionsReceivedEvent, TransactionControllerTransactionConfirmedEvent } from "@metamask/transaction-controller";
3
+ import type { TransactionControllerTransactionConfirmedEvent } from "@metamask/transaction-controller";
4
4
  import type { Hex } from "@metamask/utils";
5
5
  import type { AssetsControllerGetStateAction, AssetsControllerMessenger } from "../AssetsController.mjs";
6
6
  import type { ChainId, Caip19AssetId, DataRequest, DataResponse, Middleware } from "../types.mjs";
@@ -9,7 +9,7 @@ import type { DataSourceState, SubscriptionRequest } from "./AbstractDataSource.
9
9
  import type { TokenListQueryClient } from "./evm-rpc-services/index.mjs";
10
10
  declare const CONTROLLER_NAME = "RpcDataSource";
11
11
  export type RpcDataSourceAllowedActions = NetworkControllerGetStateAction | NetworkControllerGetNetworkClientByIdAction | AssetsControllerGetStateAction;
12
- export type RpcDataSourceAllowedEvents = NetworkControllerStateChangeEvent | TransactionControllerTransactionConfirmedEvent | TransactionControllerIncomingTransactionsReceivedEvent;
12
+ export type RpcDataSourceAllowedEvents = NetworkControllerStateChangeEvent | TransactionControllerTransactionConfirmedEvent;
13
13
  /** Network status for each chain */
14
14
  export type ChainStatus = {
15
15
  chainId: ChainId;
@@ -63,6 +63,8 @@ export type RpcDataSourceOptions = {
63
63
  * token-list responses across detector polls.
64
64
  */
65
65
  queryClient?: TokenListQueryClient;
66
+ /** Returns the asset type ('native' | 'erc20' | 'spl') for the given CAIP-19 asset ID */
67
+ getAssetType: (assetId: Caip19AssetId) => 'native' | 'erc20' | 'spl';
66
68
  };
67
69
  /**
68
70
  * Convert CAIP chain ID or hex chain ID to hex chain ID.
@@ -1 +1 @@
1
- {"version":3,"file":"RpcDataSource.d.mts","sourceRoot":"","sources":["../../src/data-sources/RpcDataSource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RpcDataSource.d.mts","sourceRoot":"","sources":["../../src/data-sources/RpcDataSource.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _RpcDataSource_instances, _RpcDataSource_messenger, _RpcDataSource_onActiveChainsUpdated, _RpcDataSource_getNativeAssetForChain, _RpcDataSource_timeout, _RpcDataSource_tokenDetectionEnabled, _RpcDataSource_useExternalService, _RpcDataSource_isOnboarded, _RpcDataSource_activeChains, _RpcDataSource_chainStatuses, _RpcDataSource_providerCache, _RpcDataSource_activeSubscriptions, _RpcDataSource_unsubscribeTransactionConfirmed, _RpcDataSource_unsubscribeIncomingTransactions, _RpcDataSource_multicallClient, _RpcDataSource_balanceFetcher, _RpcDataSource_tokenDetector, _RpcDataSource_convertToHumanReadable, _RpcDataSource_collectMetadataForBalances, _RpcDataSource_hasValidDecimals, _RpcDataSource_pickValidDecimals, _RpcDataSource_handleBalanceUpdate, _RpcDataSource_handleDetectionUpdate, _RpcDataSource_subscribeToNetworkController, _RpcDataSource_subscribeToTransactionEvents, _RpcDataSource_onTransactionConfirmed, _RpcDataSource_onIncomingTransactions, _RpcDataSource_refreshBalanceForChains, _RpcDataSource_initializeFromNetworkController, _RpcDataSource_updateFromNetworkState, _RpcDataSource_getProvider, _RpcDataSource_getMulticallProvider, _RpcDataSource_clearProviderCache, _RpcDataSource_fetchDecimalsViaRpc, _RpcDataSource_getExistingAssetsMetadata;
12
+ var _RpcDataSource_instances, _RpcDataSource_messenger, _RpcDataSource_onActiveChainsUpdated, _RpcDataSource_getNativeAssetForChain, _RpcDataSource_timeout, _RpcDataSource_tokenDetectionEnabled, _RpcDataSource_useExternalService, _RpcDataSource_isOnboarded, _RpcDataSource_activeChains, _RpcDataSource_chainStatuses, _RpcDataSource_providerCache, _RpcDataSource_activeSubscriptions, _RpcDataSource_unsubscribeTransactionConfirmed, _RpcDataSource_multicallClient, _RpcDataSource_balanceFetcher, _RpcDataSource_tokenDetector, _RpcDataSource_getAssetType, _RpcDataSource_convertToHumanReadable, _RpcDataSource_collectMetadataForBalances, _RpcDataSource_hasValidDecimals, _RpcDataSource_pickValidDecimals, _RpcDataSource_handleBalanceUpdate, _RpcDataSource_handleDetectionUpdate, _RpcDataSource_subscribeToNetworkController, _RpcDataSource_subscribeToTransactionEvents, _RpcDataSource_onTransactionConfirmed, _RpcDataSource_refreshBalanceForChains, _RpcDataSource_initializeFromNetworkController, _RpcDataSource_updateFromNetworkState, _RpcDataSource_getProvider, _RpcDataSource_getMulticallProvider, _RpcDataSource_clearProviderCache, _RpcDataSource_fetchDecimalsViaRpc, _RpcDataSource_getExistingAssetsMetadata;
13
13
  import { Web3Provider } from "@ethersproject/providers";
14
14
  import { toHex } from "@metamask/controller-utils";
15
15
  import { isStrictHexString, isCaipChainId, parseCaipAssetType, parseCaipChainId } from "@metamask/utils";
@@ -77,14 +77,15 @@ export class RpcDataSource extends AbstractDataSource {
77
77
  /** Active subscriptions by ID */
78
78
  _RpcDataSource_activeSubscriptions.set(this, new Map());
79
79
  _RpcDataSource_unsubscribeTransactionConfirmed.set(this, undefined);
80
- _RpcDataSource_unsubscribeIncomingTransactions.set(this, undefined);
81
80
  // Rpc-datasource components
82
81
  _RpcDataSource_multicallClient.set(this, void 0);
83
82
  _RpcDataSource_balanceFetcher.set(this, void 0);
84
83
  _RpcDataSource_tokenDetector.set(this, void 0);
84
+ _RpcDataSource_getAssetType.set(this, void 0);
85
85
  __classPrivateFieldSet(this, _RpcDataSource_messenger, options.messenger, "f");
86
86
  __classPrivateFieldSet(this, _RpcDataSource_onActiveChainsUpdated, options.onActiveChainsUpdated, "f");
87
87
  __classPrivateFieldSet(this, _RpcDataSource_getNativeAssetForChain, options.getNativeAssetForChain, "f");
88
+ __classPrivateFieldSet(this, _RpcDataSource_getAssetType, options.getAssetType, "f");
88
89
  __classPrivateFieldSet(this, _RpcDataSource_timeout, options.timeout ?? 10000, "f");
89
90
  __classPrivateFieldSet(this, _RpcDataSource_tokenDetectionEnabled, options.tokenDetectionEnabled ?? (() => true), "f");
90
91
  __classPrivateFieldSet(this, _RpcDataSource_useExternalService, options.useExternalService ?? (() => true), "f");
@@ -253,7 +254,7 @@ export class RpcDataSource extends AbstractDataSource {
253
254
  const parsed = parseCaipAssetType(assetId);
254
255
  const assetChainId = `${parsed.chain.namespace}:${parsed.chain.reference}`;
255
256
  if (assetChainId === chainId &&
256
- parsed.assetNamespace === 'erc20') {
257
+ __classPrivateFieldGet(this, _RpcDataSource_getAssetType, "f").call(this, assetId) === 'erc20') {
257
258
  const tokenAddress = parsed.assetReference.toLowerCase();
258
259
  const normalizedId = normalizeAssetId(assetId);
259
260
  const decimals = existingMetadata[normalizedId]?.decimals;
@@ -293,7 +294,7 @@ export class RpcDataSource extends AbstractDataSource {
293
294
  let decimals = __classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_pickValidDecimals).call(this, stateMetadata, pipelineMetadata);
294
295
  if (decimals === undefined) {
295
296
  const parsed = parseCaipAssetType(balance.assetId);
296
- if (parsed.assetNamespace === 'erc20') {
297
+ if (__classPrivateFieldGet(this, _RpcDataSource_getAssetType, "f").call(this, balance.assetId) === 'erc20') {
297
298
  decimals = await __classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_fetchDecimalsViaRpc).call(this, chainId, parsed.assetReference);
298
299
  }
299
300
  }
@@ -314,15 +315,11 @@ export class RpcDataSource extends AbstractDataSource {
314
315
  if (!shouldSkipNative) {
315
316
  assetsBalance[accountId][nativeAssetId] = { amount: '0' };
316
317
  }
317
- // Even on error, include native token metadata. Prefer the richer
318
- // metadata already in state (e.g. enriched with image/description
319
- // by the price/info API) and fall back to a minimal stub only when
320
- // nothing is in state yet, so we don't clobber that richer metadata.
318
+ // On error, emit a stub only when no valid metadata exists in state
319
+ // yet. Re-emitting existing metadata would overwrite richer entries
320
+ // (e.g. image/description added by AccountsAPI) with a simpler stub.
321
321
  const existingNativeMeta = __classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_getExistingAssetsMetadata).call(this)[nativeAssetId];
322
- if (__classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_hasValidDecimals).call(this, existingNativeMeta)) {
323
- assetsInfo[nativeAssetId] = existingNativeMeta;
324
- }
325
- else {
322
+ if (!__classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_hasValidDecimals).call(this, existingNativeMeta)) {
326
323
  const chainStatus = __classPrivateFieldGet(this, _RpcDataSource_chainStatuses, "f")[chainId];
327
324
  if (chainStatus) {
328
325
  assetsInfo[nativeAssetId] = {
@@ -397,7 +394,7 @@ export class RpcDataSource extends AbstractDataSource {
397
394
  for (const asset of result.detectedAssets) {
398
395
  if (asset.symbol && asset.decimals !== undefined) {
399
396
  assetsInfo[asset.assetId] = {
400
- type: 'erc20',
397
+ type: __classPrivateFieldGet(this, _RpcDataSource_getAssetType, "f").call(this, asset.assetId),
401
398
  symbol: asset.symbol,
402
399
  name: asset.name ?? asset.symbol,
403
400
  decimals: asset.decimals,
@@ -605,7 +602,6 @@ export class RpcDataSource extends AbstractDataSource {
605
602
  destroy() {
606
603
  log('Destroying RpcDataSource');
607
604
  __classPrivateFieldGet(this, _RpcDataSource_unsubscribeTransactionConfirmed, "f")?.call(this);
608
- __classPrivateFieldGet(this, _RpcDataSource_unsubscribeIncomingTransactions, "f")?.call(this);
609
605
  // Stop all polling
610
606
  __classPrivateFieldGet(this, _RpcDataSource_balanceFetcher, "f").stopAllPolling();
611
607
  __classPrivateFieldGet(this, _RpcDataSource_tokenDetector, "f").stopAllPolling();
@@ -615,7 +611,7 @@ export class RpcDataSource extends AbstractDataSource {
615
611
  __classPrivateFieldGet(this, _RpcDataSource_providerCache, "f").clear();
616
612
  }
617
613
  }
618
- _RpcDataSource_messenger = new WeakMap(), _RpcDataSource_onActiveChainsUpdated = new WeakMap(), _RpcDataSource_getNativeAssetForChain = new WeakMap(), _RpcDataSource_timeout = new WeakMap(), _RpcDataSource_tokenDetectionEnabled = new WeakMap(), _RpcDataSource_useExternalService = new WeakMap(), _RpcDataSource_isOnboarded = new WeakMap(), _RpcDataSource_activeChains = new WeakMap(), _RpcDataSource_chainStatuses = new WeakMap(), _RpcDataSource_providerCache = new WeakMap(), _RpcDataSource_activeSubscriptions = new WeakMap(), _RpcDataSource_unsubscribeTransactionConfirmed = new WeakMap(), _RpcDataSource_unsubscribeIncomingTransactions = new WeakMap(), _RpcDataSource_multicallClient = new WeakMap(), _RpcDataSource_balanceFetcher = new WeakMap(), _RpcDataSource_tokenDetector = new WeakMap(), _RpcDataSource_instances = new WeakSet(), _RpcDataSource_convertToHumanReadable = function _RpcDataSource_convertToHumanReadable(rawBalance, decimals) {
614
+ _RpcDataSource_messenger = new WeakMap(), _RpcDataSource_onActiveChainsUpdated = new WeakMap(), _RpcDataSource_getNativeAssetForChain = new WeakMap(), _RpcDataSource_timeout = new WeakMap(), _RpcDataSource_tokenDetectionEnabled = new WeakMap(), _RpcDataSource_useExternalService = new WeakMap(), _RpcDataSource_isOnboarded = new WeakMap(), _RpcDataSource_activeChains = new WeakMap(), _RpcDataSource_chainStatuses = new WeakMap(), _RpcDataSource_providerCache = new WeakMap(), _RpcDataSource_activeSubscriptions = new WeakMap(), _RpcDataSource_unsubscribeTransactionConfirmed = new WeakMap(), _RpcDataSource_multicallClient = new WeakMap(), _RpcDataSource_balanceFetcher = new WeakMap(), _RpcDataSource_tokenDetector = new WeakMap(), _RpcDataSource_getAssetType = new WeakMap(), _RpcDataSource_instances = new WeakSet(), _RpcDataSource_convertToHumanReadable = function _RpcDataSource_convertToHumanReadable(rawBalance, decimals) {
619
615
  if (!Number.isFinite(decimals) || decimals < 0) {
620
616
  log('Invalid decimals — defaulting balance to "0"', {
621
617
  rawBalance,
@@ -637,32 +633,27 @@ _RpcDataSource_messenger = new WeakMap(), _RpcDataSource_onActiveChainsUpdated =
637
633
  for (const balance of balances) {
638
634
  const existingMeta = existingMetadata[balance.assetId];
639
635
  const isNative = existingMeta?.type === 'native' ||
640
- balance.assetId.toLowerCase() === nativeAssetId?.toLowerCase();
641
- if (isNative) {
642
- // Prefer existing (richer) metadata in state it may have been
643
- // enriched by the price/info API with image, description, etc.
644
- // Only emit a minimal stub when there's nothing in state yet,
645
- // so we don't clobber that richer metadata on every balance refresh.
646
- if (__classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_hasValidDecimals).call(this, existingMeta)) {
647
- assetsInfo[balance.assetId] = existingMeta;
648
- }
649
- else {
650
- const chainStatus = __classPrivateFieldGet(this, _RpcDataSource_chainStatuses, "f")[chainId];
651
- if (chainStatus) {
652
- assetsInfo[balance.assetId] = {
653
- type: 'native',
654
- symbol: chainStatus.nativeCurrency,
655
- name: chainStatus.nativeCurrency,
656
- decimals: 18,
657
- };
658
- }
636
+ balance.assetId.toLowerCase() === nativeAssetId?.toLowerCase() ||
637
+ __classPrivateFieldGet(this, _RpcDataSource_getAssetType, "f").call(this, balance.assetId) === 'native';
638
+ if (isNative && !__classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_hasValidDecimals).call(this, existingMeta)) {
639
+ // Only emit a stub when no valid metadata exists in state yet.
640
+ // Re-emitting existing metadata into the response would overwrite
641
+ // richer entries (e.g. image/description added by AccountsAPI) with
642
+ // a simpler stub on every balance poll cycle.
643
+ const chainStatus = __classPrivateFieldGet(this, _RpcDataSource_chainStatuses, "f")[chainId];
644
+ if (chainStatus) {
645
+ assetsInfo[balance.assetId] = {
646
+ type: 'native',
647
+ symbol: chainStatus.nativeCurrency,
648
+ name: chainStatus.nativeCurrency,
649
+ decimals: 18,
650
+ };
659
651
  }
660
652
  }
661
- else if (existingMeta) {
662
- // For ERC20 tokens, use existing metadata from state if available.
663
- // Unknown ERC-20s are omitted until TokenDataSource enriches them.
664
- assetsInfo[balance.assetId] = existingMeta;
665
- }
653
+ // For ERC-20 tokens and native tokens with existing valid metadata:
654
+ // do not re-emit the existing state entry is already correct.
655
+ // Decimals for balance conversion are resolved via stateMetadata in
656
+ // the callers (pickValidDecimals(stateMetadata, pipelineMetadata)).
666
657
  }
667
658
  return assetsInfo;
668
659
  }, _RpcDataSource_hasValidDecimals = function _RpcDataSource_hasValidDecimals(metadata) {
@@ -741,7 +732,7 @@ async function _RpcDataSource_handleBalanceUpdate(result) {
741
732
  // Only include if we have metadata (symbol and decimals at minimum)
742
733
  if (asset.symbol && asset.decimals !== undefined) {
743
734
  newMetadata[asset.assetId] = {
744
- type: 'erc20',
735
+ type: __classPrivateFieldGet(this, _RpcDataSource_getAssetType, "f").call(this, asset.assetId),
745
736
  symbol: asset.symbol,
746
737
  name: asset.name ?? asset.symbol,
747
738
  decimals: asset.decimals,
@@ -798,8 +789,6 @@ async function _RpcDataSource_handleBalanceUpdate(result) {
798
789
  }, _RpcDataSource_subscribeToTransactionEvents = function _RpcDataSource_subscribeToTransactionEvents() {
799
790
  const unsubConfirmed = __classPrivateFieldGet(this, _RpcDataSource_messenger, "f").subscribe('TransactionController:transactionConfirmed', __classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_onTransactionConfirmed).bind(this));
800
791
  __classPrivateFieldSet(this, _RpcDataSource_unsubscribeTransactionConfirmed, typeof unsubConfirmed === 'function' ? unsubConfirmed : undefined, "f");
801
- const unsubIncoming = __classPrivateFieldGet(this, _RpcDataSource_messenger, "f").subscribe('TransactionController:incomingTransactionsReceived', __classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_onIncomingTransactions).bind(this));
802
- __classPrivateFieldSet(this, _RpcDataSource_unsubscribeIncomingTransactions, typeof unsubIncoming === 'function' ? unsubIncoming : undefined, "f");
803
792
  }, _RpcDataSource_onTransactionConfirmed = function _RpcDataSource_onTransactionConfirmed(payload) {
804
793
  const hexChainId = payload?.chainId;
805
794
  if (!hexChainId) {
@@ -809,15 +798,6 @@ async function _RpcDataSource_handleBalanceUpdate(result) {
809
798
  __classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_refreshBalanceForChains).call(this, [caipChainId]).catch((error) => {
810
799
  log('Failed to refresh balance after transaction confirmed', { error });
811
800
  });
812
- }, _RpcDataSource_onIncomingTransactions = function _RpcDataSource_onIncomingTransactions(payload) {
813
- const chainIds = Array.from(new Set((payload ?? [])
814
- .map((item) => item?.chainId)
815
- .filter((id) => Boolean(id))));
816
- const caipChainIds = chainIds.map((hexChainId) => `eip155:${parseInt(hexChainId, 16)}`);
817
- const toRefresh = caipChainIds.length > 0 ? caipChainIds : [...__classPrivateFieldGet(this, _RpcDataSource_activeChains, "f")];
818
- __classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_refreshBalanceForChains).call(this, toRefresh).catch((error) => {
819
- log('Failed to refresh balance after incoming transactions', { error });
820
- });
821
801
  }, _RpcDataSource_refreshBalanceForChains =
822
802
  /**
823
803
  * Fetch balances for the given chains across all active subscriptions and