@metamask/assets-controller 0.2.0 → 2.0.0

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 (202) hide show
  1. package/CHANGELOG.md +39 -1
  2. package/dist/AssetsController-method-action-types.cjs +7 -0
  3. package/dist/AssetsController-method-action-types.cjs.map +1 -0
  4. package/dist/AssetsController-method-action-types.d.cts +78 -0
  5. package/dist/AssetsController-method-action-types.d.cts.map +1 -0
  6. package/dist/AssetsController-method-action-types.d.mts +78 -0
  7. package/dist/AssetsController-method-action-types.d.mts.map +1 -0
  8. package/dist/AssetsController-method-action-types.mjs +6 -0
  9. package/dist/AssetsController-method-action-types.mjs.map +1 -0
  10. package/dist/AssetsController.cjs +346 -271
  11. package/dist/AssetsController.cjs.map +1 -1
  12. package/dist/AssetsController.d.cts +92 -96
  13. package/dist/AssetsController.d.cts.map +1 -1
  14. package/dist/AssetsController.d.mts +92 -96
  15. package/dist/AssetsController.d.mts.map +1 -1
  16. package/dist/AssetsController.mjs +347 -272
  17. package/dist/AssetsController.mjs.map +1 -1
  18. package/dist/data-sources/AbstractDataSource.cjs +8 -0
  19. package/dist/data-sources/AbstractDataSource.cjs.map +1 -1
  20. package/dist/data-sources/AbstractDataSource.d.cts +16 -1
  21. package/dist/data-sources/AbstractDataSource.d.cts.map +1 -1
  22. package/dist/data-sources/AbstractDataSource.d.mts +16 -1
  23. package/dist/data-sources/AbstractDataSource.d.mts.map +1 -1
  24. package/dist/data-sources/AbstractDataSource.mjs +8 -0
  25. package/dist/data-sources/AbstractDataSource.mjs.map +1 -1
  26. package/dist/data-sources/AccountsApiDataSource.cjs +92 -111
  27. package/dist/data-sources/AccountsApiDataSource.cjs.map +1 -1
  28. package/dist/data-sources/AccountsApiDataSource.d.cts +27 -70
  29. package/dist/data-sources/AccountsApiDataSource.d.cts.map +1 -1
  30. package/dist/data-sources/AccountsApiDataSource.d.mts +27 -70
  31. package/dist/data-sources/AccountsApiDataSource.d.mts.map +1 -1
  32. package/dist/data-sources/AccountsApiDataSource.mjs +88 -107
  33. package/dist/data-sources/AccountsApiDataSource.mjs.map +1 -1
  34. package/dist/data-sources/BackendWebsocketDataSource.cjs +141 -46
  35. package/dist/data-sources/BackendWebsocketDataSource.cjs.map +1 -1
  36. package/dist/data-sources/BackendWebsocketDataSource.d.cts +19 -66
  37. package/dist/data-sources/BackendWebsocketDataSource.d.cts.map +1 -1
  38. package/dist/data-sources/BackendWebsocketDataSource.d.mts +19 -66
  39. package/dist/data-sources/BackendWebsocketDataSource.d.mts.map +1 -1
  40. package/dist/data-sources/BackendWebsocketDataSource.mjs +141 -46
  41. package/dist/data-sources/BackendWebsocketDataSource.mjs.map +1 -1
  42. package/dist/data-sources/PriceDataSource.cjs +39 -48
  43. package/dist/data-sources/PriceDataSource.cjs.map +1 -1
  44. package/dist/data-sources/PriceDataSource.d.cts +13 -92
  45. package/dist/data-sources/PriceDataSource.d.cts.map +1 -1
  46. package/dist/data-sources/PriceDataSource.d.mts +13 -92
  47. package/dist/data-sources/PriceDataSource.d.mts.map +1 -1
  48. package/dist/data-sources/PriceDataSource.mjs +39 -48
  49. package/dist/data-sources/PriceDataSource.mjs.map +1 -1
  50. package/dist/data-sources/RpcDataSource.cjs +184 -142
  51. package/dist/data-sources/RpcDataSource.cjs.map +1 -1
  52. package/dist/data-sources/RpcDataSource.d.cts +29 -114
  53. package/dist/data-sources/RpcDataSource.d.cts.map +1 -1
  54. package/dist/data-sources/RpcDataSource.d.mts +29 -114
  55. package/dist/data-sources/RpcDataSource.d.mts.map +1 -1
  56. package/dist/data-sources/RpcDataSource.mjs +185 -143
  57. package/dist/data-sources/RpcDataSource.mjs.map +1 -1
  58. package/dist/data-sources/SnapDataSource.cjs +53 -39
  59. package/dist/data-sources/SnapDataSource.cjs.map +1 -1
  60. package/dist/data-sources/SnapDataSource.d.cts +9 -45
  61. package/dist/data-sources/SnapDataSource.d.cts.map +1 -1
  62. package/dist/data-sources/SnapDataSource.d.mts +9 -45
  63. package/dist/data-sources/SnapDataSource.d.mts.map +1 -1
  64. package/dist/data-sources/SnapDataSource.mjs +53 -39
  65. package/dist/data-sources/SnapDataSource.mjs.map +1 -1
  66. package/dist/data-sources/StakedBalanceDataSource.cjs +609 -0
  67. package/dist/data-sources/StakedBalanceDataSource.cjs.map +1 -0
  68. package/dist/data-sources/StakedBalanceDataSource.d.cts +72 -0
  69. package/dist/data-sources/StakedBalanceDataSource.d.cts.map +1 -0
  70. package/dist/data-sources/StakedBalanceDataSource.d.mts +72 -0
  71. package/dist/data-sources/StakedBalanceDataSource.d.mts.map +1 -0
  72. package/dist/data-sources/StakedBalanceDataSource.mjs +605 -0
  73. package/dist/data-sources/StakedBalanceDataSource.mjs.map +1 -0
  74. package/dist/data-sources/TokenDataSource.cjs +15 -21
  75. package/dist/data-sources/TokenDataSource.cjs.map +1 -1
  76. package/dist/data-sources/TokenDataSource.d.cts +3 -25
  77. package/dist/data-sources/TokenDataSource.d.cts.map +1 -1
  78. package/dist/data-sources/TokenDataSource.d.mts +3 -25
  79. package/dist/data-sources/TokenDataSource.d.mts.map +1 -1
  80. package/dist/data-sources/TokenDataSource.mjs +15 -21
  81. package/dist/data-sources/TokenDataSource.mjs.map +1 -1
  82. package/dist/data-sources/evm-rpc-services/index.cjs +5 -1
  83. package/dist/data-sources/evm-rpc-services/index.cjs.map +1 -1
  84. package/dist/data-sources/evm-rpc-services/index.d.cts +1 -1
  85. package/dist/data-sources/evm-rpc-services/index.d.cts.map +1 -1
  86. package/dist/data-sources/evm-rpc-services/index.d.mts +1 -1
  87. package/dist/data-sources/evm-rpc-services/index.d.mts.map +1 -1
  88. package/dist/data-sources/evm-rpc-services/index.mjs +1 -1
  89. package/dist/data-sources/evm-rpc-services/index.mjs.map +1 -1
  90. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.cjs +132 -0
  91. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.cjs.map +1 -0
  92. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.cts +78 -0
  93. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.cts.map +1 -0
  94. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.mts +78 -0
  95. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.mts.map +1 -0
  96. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.mjs +126 -0
  97. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.mjs.map +1 -0
  98. package/dist/data-sources/evm-rpc-services/services/TokenDetector.cjs +16 -0
  99. package/dist/data-sources/evm-rpc-services/services/TokenDetector.cjs.map +1 -1
  100. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.cts +5 -1
  101. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.cts.map +1 -1
  102. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.mts +5 -1
  103. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.mts.map +1 -1
  104. package/dist/data-sources/evm-rpc-services/services/TokenDetector.mjs +16 -0
  105. package/dist/data-sources/evm-rpc-services/services/TokenDetector.mjs.map +1 -1
  106. package/dist/data-sources/evm-rpc-services/services/index.cjs +6 -1
  107. package/dist/data-sources/evm-rpc-services/services/index.cjs.map +1 -1
  108. package/dist/data-sources/evm-rpc-services/services/index.d.cts +1 -0
  109. package/dist/data-sources/evm-rpc-services/services/index.d.cts.map +1 -1
  110. package/dist/data-sources/evm-rpc-services/services/index.d.mts +1 -0
  111. package/dist/data-sources/evm-rpc-services/services/index.d.mts.map +1 -1
  112. package/dist/data-sources/evm-rpc-services/services/index.mjs +1 -0
  113. package/dist/data-sources/evm-rpc-services/services/index.mjs.map +1 -1
  114. package/dist/data-sources/evm-rpc-services/types/services.cjs.map +1 -1
  115. package/dist/data-sources/evm-rpc-services/types/services.d.cts +4 -0
  116. package/dist/data-sources/evm-rpc-services/types/services.d.cts.map +1 -1
  117. package/dist/data-sources/evm-rpc-services/types/services.d.mts +4 -0
  118. package/dist/data-sources/evm-rpc-services/types/services.d.mts.map +1 -1
  119. package/dist/data-sources/evm-rpc-services/types/services.mjs.map +1 -1
  120. package/dist/data-sources/evm-rpc-services/types/state.cjs.map +1 -1
  121. package/dist/data-sources/evm-rpc-services/types/state.d.cts +3 -3
  122. package/dist/data-sources/evm-rpc-services/types/state.d.cts.map +1 -1
  123. package/dist/data-sources/evm-rpc-services/types/state.d.mts +3 -3
  124. package/dist/data-sources/evm-rpc-services/types/state.d.mts.map +1 -1
  125. package/dist/data-sources/evm-rpc-services/types/state.mjs.map +1 -1
  126. package/dist/data-sources/evm-rpc-services/utils/index.cjs +9 -1
  127. package/dist/data-sources/evm-rpc-services/utils/index.cjs.map +1 -1
  128. package/dist/data-sources/evm-rpc-services/utils/index.d.cts +2 -0
  129. package/dist/data-sources/evm-rpc-services/utils/index.d.cts.map +1 -1
  130. package/dist/data-sources/evm-rpc-services/utils/index.d.mts +2 -0
  131. package/dist/data-sources/evm-rpc-services/utils/index.d.mts.map +1 -1
  132. package/dist/data-sources/evm-rpc-services/utils/index.mjs +2 -0
  133. package/dist/data-sources/evm-rpc-services/utils/index.mjs.map +1 -1
  134. package/dist/data-sources/evm-rpc-services/utils/parsing.cjs +47 -0
  135. package/dist/data-sources/evm-rpc-services/utils/parsing.cjs.map +1 -0
  136. package/dist/data-sources/evm-rpc-services/utils/parsing.d.cts +25 -0
  137. package/dist/data-sources/evm-rpc-services/utils/parsing.d.cts.map +1 -0
  138. package/dist/data-sources/evm-rpc-services/utils/parsing.d.mts +25 -0
  139. package/dist/data-sources/evm-rpc-services/utils/parsing.d.mts.map +1 -0
  140. package/dist/data-sources/evm-rpc-services/utils/parsing.mjs +39 -0
  141. package/dist/data-sources/evm-rpc-services/utils/parsing.mjs.map +1 -0
  142. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.cjs +68 -0
  143. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.cjs.map +1 -0
  144. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.cts +25 -0
  145. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.cts.map +1 -0
  146. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.mts +25 -0
  147. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.mts.map +1 -0
  148. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.mjs +62 -0
  149. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.mjs.map +1 -0
  150. package/dist/data-sources/index.cjs +3 -6
  151. package/dist/data-sources/index.cjs.map +1 -1
  152. package/dist/data-sources/index.d.cts +7 -7
  153. package/dist/data-sources/index.d.cts.map +1 -1
  154. package/dist/data-sources/index.d.mts +7 -7
  155. package/dist/data-sources/index.d.mts.map +1 -1
  156. package/dist/data-sources/index.mjs +2 -3
  157. package/dist/data-sources/index.mjs.map +1 -1
  158. package/dist/index.cjs +6 -6
  159. package/dist/index.cjs.map +1 -1
  160. package/dist/index.d.cts +11 -11
  161. package/dist/index.d.cts.map +1 -1
  162. package/dist/index.d.mts +11 -11
  163. package/dist/index.d.mts.map +1 -1
  164. package/dist/index.mjs +3 -3
  165. package/dist/index.mjs.map +1 -1
  166. package/dist/middlewares/DetectionMiddleware.cjs +8 -28
  167. package/dist/middlewares/DetectionMiddleware.cjs.map +1 -1
  168. package/dist/middlewares/DetectionMiddleware.d.cts +4 -26
  169. package/dist/middlewares/DetectionMiddleware.d.cts.map +1 -1
  170. package/dist/middlewares/DetectionMiddleware.d.mts +4 -26
  171. package/dist/middlewares/DetectionMiddleware.d.mts.map +1 -1
  172. package/dist/middlewares/DetectionMiddleware.mjs +8 -28
  173. package/dist/middlewares/DetectionMiddleware.mjs.map +1 -1
  174. package/dist/middlewares/index.cjs.map +1 -1
  175. package/dist/middlewares/index.d.cts +1 -1
  176. package/dist/middlewares/index.d.cts.map +1 -1
  177. package/dist/middlewares/index.d.mts +1 -1
  178. package/dist/middlewares/index.d.mts.map +1 -1
  179. package/dist/middlewares/index.mjs.map +1 -1
  180. package/dist/selectors/balance.cjs +306 -0
  181. package/dist/selectors/balance.cjs.map +1 -0
  182. package/dist/selectors/balance.d.cts +22 -0
  183. package/dist/selectors/balance.d.cts.map +1 -0
  184. package/dist/selectors/balance.d.mts +22 -0
  185. package/dist/selectors/balance.d.mts.map +1 -0
  186. package/dist/selectors/balance.mjs +297 -0
  187. package/dist/selectors/balance.mjs.map +1 -0
  188. package/dist/types.cjs.map +1 -1
  189. package/dist/types.d.cts +56 -21
  190. package/dist/types.d.cts.map +1 -1
  191. package/dist/types.d.mts +56 -21
  192. package/dist/types.d.mts.map +1 -1
  193. package/dist/types.mjs.map +1 -1
  194. package/package.json +13 -10
  195. package/dist/data-sources/initDataSources.cjs +0 -215
  196. package/dist/data-sources/initDataSources.cjs.map +0 -1
  197. package/dist/data-sources/initDataSources.d.cts +0 -140
  198. package/dist/data-sources/initDataSources.d.cts.map +0 -1
  199. package/dist/data-sources/initDataSources.d.mts +0 -140
  200. package/dist/data-sources/initDataSources.d.mts.map +0 -1
  201. package/dist/data-sources/initDataSources.mjs +0 -210
  202. package/dist/data-sources/initDataSources.mjs.map +0 -1
@@ -1,109 +1,16 @@
1
- import type { ControllerGetStateAction, ControllerStateChangeEvent } from "@metamask/base-controller";
2
- import { BaseController } from "@metamask/base-controller";
1
+ import type { GetTokenListState } from "@metamask/assets-controllers";
3
2
  import type { InternalAccount } from "@metamask/keyring-internal-api";
4
- import type { Messenger } from "@metamask/messenger";
5
- import type { NetworkState, NetworkStatus } from "@metamask/network-controller";
3
+ import type { NetworkControllerGetNetworkClientByIdAction, NetworkControllerGetStateAction, NetworkControllerStateChangeEvent, NetworkStatus } from "@metamask/network-controller";
4
+ import type { NetworkEnablementControllerGetStateAction } from "@metamask/network-enablement-controller";
5
+ import type { TransactionControllerIncomingTransactionsReceivedEvent, TransactionControllerTransactionConfirmedEvent } from "@metamask/transaction-controller";
6
6
  import type { Hex } from "@metamask/utils";
7
- import type { SubscriptionRequest } from "./AbstractDataSource.mjs";
8
- import type { ChainId, Caip19AssetId, AssetMetadata, DataRequest, DataResponse, Middleware } from "../types.mjs";
7
+ import { AbstractDataSource } from "./AbstractDataSource.mjs";
8
+ import type { DataSourceState, SubscriptionRequest } from "./AbstractDataSource.mjs";
9
+ import type { AssetsControllerGetStateAction, AssetsControllerMessenger } from "../AssetsController.mjs";
10
+ import type { ChainId, DataRequest, DataResponse, Middleware } from "../types.mjs";
9
11
  declare const CONTROLLER_NAME = "RpcDataSource";
10
- export type RpcDataSourceGetAssetsMiddlewareAction = {
11
- type: 'RpcDataSource:getAssetsMiddleware';
12
- handler: () => Middleware;
13
- };
14
- export type RpcDataSourceGetActiveChainsAction = {
15
- type: 'RpcDataSource:getActiveChains';
16
- handler: () => Promise<ChainId[]>;
17
- };
18
- export type RpcDataSourceFetchAction = {
19
- type: 'RpcDataSource:fetch';
20
- handler: (request: DataRequest) => Promise<DataResponse>;
21
- };
22
- export type RpcDataSourceSubscribeAction = {
23
- type: 'RpcDataSource:subscribe';
24
- handler: (request: SubscriptionRequest) => Promise<void>;
25
- };
26
- export type RpcDataSourceUnsubscribeAction = {
27
- type: 'RpcDataSource:unsubscribe';
28
- handler: (subscriptionId: string) => Promise<void>;
29
- };
30
- export type RpcDataSourceGetStateAction = ControllerGetStateAction<typeof CONTROLLER_NAME, RpcDataSourceState>;
31
- export type RpcDataSourceActions = RpcDataSourceGetStateAction | RpcDataSourceGetAssetsMiddlewareAction | RpcDataSourceGetActiveChainsAction | RpcDataSourceFetchAction | RpcDataSourceSubscribeAction | RpcDataSourceUnsubscribeAction;
32
- export type RpcDataSourceActiveChainsChangedEvent = {
33
- type: 'RpcDataSource:activeChainsUpdated';
34
- payload: [ChainId[]];
35
- };
36
- export type RpcDataSourceAssetsUpdatedEvent = {
37
- type: 'RpcDataSource:assetsUpdated';
38
- payload: [DataResponse, string | undefined];
39
- };
40
- export type RpcDataSourceStateChangeEvent = ControllerStateChangeEvent<typeof CONTROLLER_NAME, RpcDataSourceState>;
41
- export type RpcDataSourceEvents = RpcDataSourceStateChangeEvent | RpcDataSourceActiveChainsChangedEvent | RpcDataSourceAssetsUpdatedEvent;
42
- export type NetworkControllerGetStateAction = {
43
- type: 'NetworkController:getState';
44
- handler: () => NetworkState;
45
- };
46
- export type NetworkControllerGetNetworkClientByIdAction = {
47
- type: 'NetworkController:getNetworkClientById';
48
- handler: (networkClientId: string) => NetworkClient;
49
- };
50
- export type NetworkClient = {
51
- provider: EthereumProvider;
52
- configuration: {
53
- chainId: string;
54
- };
55
- };
56
- export type EthereumProvider = {
57
- request: (args: {
58
- method: string;
59
- params?: unknown[];
60
- }) => Promise<unknown>;
61
- };
62
- export type NetworkControllerStateChangeEvent = {
63
- type: 'NetworkController:stateChange';
64
- payload: [NetworkState, Patch[]];
65
- };
66
- type Patch = {
67
- op: 'add' | 'remove' | 'replace';
68
- path: string[];
69
- value?: unknown;
70
- };
71
- type AssetsControllerActiveChainsUpdateAction = {
72
- type: 'AssetsController:activeChainsUpdate';
73
- handler: (dataSourceId: string, activeChains: ChainId[]) => void;
74
- };
75
- type AssetsControllerAssetsUpdateAction = {
76
- type: 'AssetsController:assetsUpdate';
77
- handler: (response: DataResponse, sourceId: string) => Promise<void>;
78
- };
79
- type TokenListControllerGetStateAction = {
80
- type: 'TokenListController:getState';
81
- handler: () => {
82
- tokensChainsCache: Record<string, {
83
- timestamp: number;
84
- data: Record<string, unknown>;
85
- }>;
86
- };
87
- };
88
- type AssetsControllerGetStateAction = {
89
- type: 'AssetsController:getState';
90
- handler: () => {
91
- assetsMetadata: Record<Caip19AssetId, AssetMetadata>;
92
- assetsBalance: Record<string, Record<string, {
93
- amount: string;
94
- }>>;
95
- };
96
- };
97
- type NetworkEnablementControllerGetStateAction = {
98
- type: 'NetworkEnablementController:getState';
99
- handler: () => {
100
- enabledNetworkMap: Record<string, Record<string, boolean>>;
101
- nativeAssetIdentifiers: Record<string, string>;
102
- };
103
- };
104
- export type RpcDataSourceAllowedActions = NetworkControllerGetStateAction | NetworkControllerGetNetworkClientByIdAction | AssetsControllerActiveChainsUpdateAction | AssetsControllerAssetsUpdateAction | AssetsControllerGetStateAction | TokenListControllerGetStateAction | NetworkEnablementControllerGetStateAction;
105
- export type RpcDataSourceAllowedEvents = NetworkControllerStateChangeEvent;
106
- export type RpcDataSourceMessenger = Messenger<typeof CONTROLLER_NAME, RpcDataSourceActions | RpcDataSourceAllowedActions, RpcDataSourceEvents | RpcDataSourceAllowedEvents>;
12
+ export type RpcDataSourceAllowedActions = NetworkControllerGetStateAction | NetworkControllerGetNetworkClientByIdAction | AssetsControllerGetStateAction | GetTokenListState | NetworkEnablementControllerGetStateAction;
13
+ export type RpcDataSourceAllowedEvents = NetworkControllerStateChangeEvent | TransactionControllerTransactionConfirmedEvent | TransactionControllerIncomingTransactionsReceivedEvent;
107
14
  /** Network status for each chain */
108
15
  export type ChainStatus = {
109
16
  chainId: ChainId;
@@ -115,16 +22,31 @@ export type ChainStatus = {
115
22
  };
116
23
  /** RpcDataSource is stateless */
117
24
  export type RpcDataSourceState = Record<never, never>;
25
+ /** Optional configuration for RpcDataSource when the controller instantiates it. */
26
+ export type RpcDataSourceConfig = {
27
+ balanceInterval?: number;
28
+ detectionInterval?: number;
29
+ /** Function returning whether token detection is enabled (avoids stale value) */
30
+ tokenDetectionEnabled?: () => boolean;
31
+ /** Function returning whether external services are allowed (avoids stale value; default: () => true) */
32
+ useExternalService?: () => boolean;
33
+ timeout?: number;
34
+ };
118
35
  export type RpcDataSourceOptions = {
119
- messenger: RpcDataSourceMessenger;
36
+ /** The AssetsController messenger (shared by all data sources). */
37
+ messenger: AssetsControllerMessenger;
38
+ /** Called when active chains are updated. Pass dataSourceName so the controller knows the source. */
39
+ onActiveChainsUpdated: (dataSourceName: string, chains: ChainId[], previousChains: ChainId[]) => void;
120
40
  /** Request timeout in ms */
121
41
  timeout?: number;
122
42
  /** Balance polling interval in ms (default: 30s) */
123
43
  balanceInterval?: number;
124
44
  /** Token detection polling interval in ms (default: 180s / 3 min) */
125
45
  detectionInterval?: number;
126
- /** Whether token detection is enabled */
127
- tokenDetectionEnabled?: boolean;
46
+ /** Function returning whether token detection is enabled (avoids stale value) */
47
+ tokenDetectionEnabled?: () => boolean;
48
+ /** Function returning whether external services are allowed (avoids stale value; default: () => true) */
49
+ useExternalService?: () => boolean;
128
50
  };
129
51
  /**
130
52
  * Convert CAIP chain ID or hex chain ID to hex chain ID.
@@ -151,7 +73,7 @@ export declare const caipChainIdToHex: (chainId: string) => Hex;
151
73
  * - RpcDataSource:activeChainsUpdated
152
74
  * - RpcDataSource:assetsUpdated
153
75
  */
154
- export declare class RpcDataSource extends BaseController<typeof CONTROLLER_NAME, RpcDataSourceState, RpcDataSourceMessenger> {
76
+ export declare class RpcDataSource extends AbstractDataSource<typeof CONTROLLER_NAME, DataSourceState> {
155
77
  #private;
156
78
  constructor(options: RpcDataSourceOptions);
157
79
  /**
@@ -159,13 +81,6 @@ export declare class RpcDataSource extends BaseController<typeof CONTROLLER_NAME
159
81
  *
160
82
  * @returns The name of this data source.
161
83
  */
162
- getName(): string;
163
- /**
164
- * Get currently active chains.
165
- *
166
- * @returns Promise resolving to array of active chain IDs.
167
- */
168
- getActiveChains(): Promise<ChainId[]>;
169
84
  /**
170
85
  * Get the status of all configured chains.
171
86
  *
@@ -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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"}