@metamask-previews/assets-controller 14.0.2-preview-3e34650c2 → 14.0.2-preview-4f4c98e

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 (573) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/{AssetsController-method-action-types.d.mts → AssetsController-method-action-types.d.ts} +2 -2
  3. package/dist/AssetsController-method-action-types.d.ts.map +1 -0
  4. package/dist/{AssetsController-method-action-types.mjs → AssetsController-method-action-types.js} +1 -1
  5. package/dist/AssetsController-method-action-types.js.map +1 -0
  6. package/dist/{AssetsController.d.cts → AssetsController.d.ts} +30 -30
  7. package/dist/AssetsController.d.ts.map +1 -0
  8. package/dist/{AssetsController.mjs → AssetsController.js} +28 -29
  9. package/dist/AssetsController.js.map +1 -0
  10. package/dist/data-sources/{AbstractDataSource.d.mts → AbstractDataSource.d.ts} +2 -2
  11. package/dist/data-sources/AbstractDataSource.d.ts.map +1 -0
  12. package/dist/data-sources/{AbstractDataSource.mjs → AbstractDataSource.js} +1 -1
  13. package/dist/data-sources/AbstractDataSource.js.map +1 -0
  14. package/dist/data-sources/{AccountActivityDataSource.d.cts → AccountActivityDataSource.d.ts} +6 -6
  15. package/dist/data-sources/AccountActivityDataSource.d.ts.map +1 -0
  16. package/dist/data-sources/{AccountActivityDataSource.mjs → AccountActivityDataSource.js} +11 -11
  17. package/dist/data-sources/AccountActivityDataSource.js.map +1 -0
  18. package/dist/data-sources/{AccountsApiDataSource.d.cts → AccountsApiDataSource.d.ts} +7 -7
  19. package/dist/data-sources/AccountsApiDataSource.d.ts.map +1 -0
  20. package/dist/data-sources/{AccountsApiDataSource.mjs → AccountsApiDataSource.js} +7 -8
  21. package/dist/data-sources/AccountsApiDataSource.js.map +1 -0
  22. package/dist/data-sources/{PriceDataSource.d.cts → PriceDataSource.d.ts} +5 -5
  23. package/dist/data-sources/PriceDataSource.d.ts.map +1 -0
  24. package/dist/data-sources/{PriceDataSource.mjs → PriceDataSource.js} +7 -8
  25. package/dist/data-sources/PriceDataSource.js.map +1 -0
  26. package/dist/data-sources/{RpcDataSource.d.cts → RpcDataSource.d.ts} +10 -10
  27. package/dist/data-sources/RpcDataSource.d.ts.map +1 -0
  28. package/dist/data-sources/{RpcDataSource.mjs → RpcDataSource.js} +11 -11
  29. package/dist/data-sources/RpcDataSource.js.map +1 -0
  30. package/dist/data-sources/{SnapDataSource.d.cts → SnapDataSource.d.ts} +8 -8
  31. package/dist/data-sources/SnapDataSource.d.ts.map +1 -0
  32. package/dist/data-sources/{SnapDataSource.mjs → SnapDataSource.js} +6 -6
  33. package/dist/data-sources/SnapDataSource.js.map +1 -0
  34. package/dist/data-sources/{StakedBalanceDataSource.d.cts → StakedBalanceDataSource.d.ts} +5 -5
  35. package/dist/data-sources/StakedBalanceDataSource.d.ts.map +1 -0
  36. package/dist/data-sources/{StakedBalanceDataSource.mjs → StakedBalanceDataSource.js} +7 -7
  37. package/dist/data-sources/StakedBalanceDataSource.js.map +1 -0
  38. package/dist/data-sources/{TokenDataSource.d.cts → TokenDataSource.d.ts} +5 -5
  39. package/dist/data-sources/TokenDataSource.d.ts.map +1 -0
  40. package/dist/data-sources/{TokenDataSource.mjs → TokenDataSource.js} +7 -8
  41. package/dist/data-sources/TokenDataSource.js.map +1 -0
  42. package/dist/data-sources/evm-rpc-services/clients/{MulticallClient.d.cts → MulticallClient.d.ts} +3 -3
  43. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.ts.map +1 -0
  44. package/dist/data-sources/evm-rpc-services/clients/{MulticallClient.mjs → MulticallClient.js} +5 -5
  45. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.js.map +1 -0
  46. package/dist/data-sources/evm-rpc-services/clients/{TokensApiClient.d.cts → TokensApiClient.d.ts} +2 -2
  47. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.ts.map +1 -0
  48. package/dist/data-sources/evm-rpc-services/clients/{TokensApiClient.mjs → TokensApiClient.js} +2 -2
  49. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.js.map +1 -0
  50. package/dist/data-sources/evm-rpc-services/clients/index.d.ts +4 -0
  51. package/dist/data-sources/evm-rpc-services/clients/index.d.ts.map +1 -0
  52. package/dist/data-sources/evm-rpc-services/clients/index.js +3 -0
  53. package/dist/data-sources/evm-rpc-services/clients/index.js.map +1 -0
  54. package/dist/data-sources/evm-rpc-services/{index.d.cts → index.d.ts} +5 -5
  55. package/dist/data-sources/evm-rpc-services/index.d.ts.map +1 -0
  56. package/dist/data-sources/evm-rpc-services/index.js +4 -0
  57. package/dist/data-sources/evm-rpc-services/index.js.map +1 -0
  58. package/dist/data-sources/evm-rpc-services/services/{BalanceFetcher.d.cts → BalanceFetcher.d.ts} +11 -11
  59. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.ts.map +1 -0
  60. package/dist/data-sources/evm-rpc-services/services/{BalanceFetcher.mjs → BalanceFetcher.js} +5 -5
  61. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.js.map +1 -0
  62. package/dist/data-sources/evm-rpc-services/services/{StakedBalanceFetcher.d.mts → StakedBalanceFetcher.d.ts} +13 -14
  63. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.ts.map +1 -0
  64. package/dist/data-sources/evm-rpc-services/services/{StakedBalanceFetcher.mjs → StakedBalanceFetcher.js} +5 -6
  65. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.js.map +1 -0
  66. package/dist/data-sources/evm-rpc-services/services/{TokenDetector.d.cts → TokenDetector.d.ts} +12 -12
  67. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.ts.map +1 -0
  68. package/dist/data-sources/evm-rpc-services/services/{TokenDetector.mjs → TokenDetector.js} +4 -4
  69. package/dist/data-sources/evm-rpc-services/services/TokenDetector.js.map +1 -0
  70. package/dist/data-sources/evm-rpc-services/services/{index.d.cts → index.d.ts} +4 -4
  71. package/dist/data-sources/evm-rpc-services/services/index.d.ts.map +1 -0
  72. package/dist/data-sources/evm-rpc-services/services/index.js +4 -0
  73. package/dist/data-sources/evm-rpc-services/services/index.js.map +1 -0
  74. package/dist/data-sources/evm-rpc-services/types/{assets.d.cts → assets.d.ts} +3 -3
  75. package/dist/data-sources/evm-rpc-services/types/assets.d.ts.map +1 -0
  76. package/dist/data-sources/evm-rpc-services/types/assets.js +2 -0
  77. package/dist/data-sources/evm-rpc-services/types/assets.js.map +1 -0
  78. package/dist/data-sources/evm-rpc-services/types/{config.d.cts → config.d.ts} +2 -2
  79. package/dist/data-sources/evm-rpc-services/types/config.d.ts.map +1 -0
  80. package/dist/data-sources/evm-rpc-services/types/config.js +2 -0
  81. package/dist/data-sources/evm-rpc-services/types/config.js.map +1 -0
  82. package/dist/data-sources/evm-rpc-services/types/{core.d.cts → core.d.ts} +2 -2
  83. package/dist/data-sources/evm-rpc-services/types/core.d.ts.map +1 -0
  84. package/dist/data-sources/evm-rpc-services/types/core.js +2 -0
  85. package/dist/data-sources/evm-rpc-services/types/core.js.map +1 -0
  86. package/dist/data-sources/evm-rpc-services/types/index.d.ts +7 -0
  87. package/dist/data-sources/evm-rpc-services/types/index.d.ts.map +1 -0
  88. package/dist/data-sources/evm-rpc-services/types/index.js +2 -0
  89. package/dist/data-sources/evm-rpc-services/types/index.js.map +1 -0
  90. package/dist/data-sources/evm-rpc-services/types/{multicall.d.cts → multicall.d.ts} +2 -2
  91. package/dist/data-sources/evm-rpc-services/types/multicall.d.ts.map +1 -0
  92. package/dist/data-sources/evm-rpc-services/types/multicall.js +2 -0
  93. package/dist/data-sources/evm-rpc-services/types/multicall.js.map +1 -0
  94. package/dist/data-sources/evm-rpc-services/types/{services.d.cts → services.d.ts} +3 -3
  95. package/dist/data-sources/evm-rpc-services/types/services.d.ts.map +1 -0
  96. package/dist/data-sources/evm-rpc-services/types/services.js +2 -0
  97. package/dist/data-sources/evm-rpc-services/types/services.js.map +1 -0
  98. package/dist/data-sources/evm-rpc-services/types/{state.d.cts → state.d.ts} +2 -2
  99. package/dist/data-sources/evm-rpc-services/types/state.d.ts.map +1 -0
  100. package/dist/data-sources/evm-rpc-services/types/state.js +2 -0
  101. package/dist/data-sources/evm-rpc-services/types/state.js.map +1 -0
  102. package/dist/data-sources/evm-rpc-services/utils/{assets.d.cts → assets.d.ts} +2 -2
  103. package/dist/data-sources/evm-rpc-services/utils/assets.d.ts.map +1 -0
  104. package/dist/data-sources/evm-rpc-services/utils/{assets.mjs → assets.js} +2 -2
  105. package/dist/data-sources/evm-rpc-services/utils/assets.js.map +1 -0
  106. package/dist/data-sources/evm-rpc-services/utils/{batch.d.mts → batch.d.ts} +1 -1
  107. package/dist/data-sources/evm-rpc-services/utils/batch.d.ts.map +1 -0
  108. package/dist/data-sources/evm-rpc-services/utils/{batch.mjs → batch.js} +1 -1
  109. package/dist/data-sources/evm-rpc-services/utils/batch.js.map +1 -0
  110. package/dist/data-sources/evm-rpc-services/utils/index.d.ts +4 -0
  111. package/dist/data-sources/evm-rpc-services/utils/index.d.ts.map +1 -0
  112. package/dist/data-sources/evm-rpc-services/utils/index.js +4 -0
  113. package/dist/data-sources/evm-rpc-services/utils/index.js.map +1 -0
  114. package/dist/data-sources/evm-rpc-services/utils/{parsing.d.mts → parsing.d.ts} +3 -3
  115. package/dist/data-sources/evm-rpc-services/utils/parsing.d.ts.map +1 -0
  116. package/dist/data-sources/evm-rpc-services/utils/{parsing.mjs → parsing.js} +3 -3
  117. package/dist/data-sources/evm-rpc-services/utils/parsing.js.map +1 -0
  118. package/dist/data-sources/evm-rpc-services/utils/{staking-contracts.d.cts → staking-contracts.d.ts} +1 -1
  119. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.ts.map +1 -0
  120. package/dist/data-sources/evm-rpc-services/utils/{staking-contracts.mjs → staking-contracts.js} +3 -3
  121. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.js.map +1 -0
  122. package/dist/data-sources/{index.d.cts → index.d.ts} +9 -9
  123. package/dist/data-sources/index.d.ts.map +1 -0
  124. package/dist/data-sources/index.js +14 -0
  125. package/dist/data-sources/index.js.map +1 -0
  126. package/dist/{defaults.d.mts → defaults.d.ts} +2 -2
  127. package/dist/defaults.d.ts.map +1 -0
  128. package/dist/{defaults.mjs → defaults.js} +1 -1
  129. package/dist/defaults.js.map +1 -0
  130. package/dist/{errors.d.mts → errors.d.ts} +1 -1
  131. package/dist/errors.d.ts.map +1 -0
  132. package/dist/{errors.mjs → errors.js} +1 -1
  133. package/dist/errors.js.map +1 -0
  134. package/dist/{index.d.mts → index.d.ts} +26 -26
  135. package/dist/index.d.ts.map +1 -0
  136. package/dist/{index.mjs → index.js} +13 -13
  137. package/dist/index.js.map +1 -0
  138. package/dist/logger.d.ts +4 -0
  139. package/dist/logger.d.ts.map +1 -0
  140. package/dist/logger.js +4 -0
  141. package/dist/logger.js.map +1 -0
  142. package/dist/middlewares/{CustomAssetGraduationMiddleware.d.cts → CustomAssetGraduationMiddleware.d.ts} +2 -2
  143. package/dist/middlewares/CustomAssetGraduationMiddleware.d.ts.map +1 -0
  144. package/dist/middlewares/{CustomAssetGraduationMiddleware.mjs → CustomAssetGraduationMiddleware.js} +5 -5
  145. package/dist/middlewares/CustomAssetGraduationMiddleware.js.map +1 -0
  146. package/dist/middlewares/{DetectionMiddleware.d.cts → DetectionMiddleware.d.ts} +2 -2
  147. package/dist/middlewares/DetectionMiddleware.d.ts.map +1 -0
  148. package/dist/middlewares/{DetectionMiddleware.mjs → DetectionMiddleware.js} +4 -4
  149. package/dist/middlewares/DetectionMiddleware.js.map +1 -0
  150. package/dist/middlewares/{ParallelMiddleware.d.cts → ParallelMiddleware.d.ts} +2 -2
  151. package/dist/middlewares/ParallelMiddleware.d.ts.map +1 -0
  152. package/dist/middlewares/{ParallelMiddleware.mjs → ParallelMiddleware.js} +2 -9
  153. package/dist/middlewares/{ParallelMiddleware.mjs.map → ParallelMiddleware.js.map} +1 -1
  154. package/dist/middlewares/{RpcFallbackMiddleware.d.cts → RpcFallbackMiddleware.d.ts} +2 -2
  155. package/dist/middlewares/RpcFallbackMiddleware.d.ts.map +1 -0
  156. package/dist/middlewares/{RpcFallbackMiddleware.mjs → RpcFallbackMiddleware.js} +4 -4
  157. package/dist/middlewares/RpcFallbackMiddleware.js.map +1 -0
  158. package/dist/middlewares/index.d.ts +9 -0
  159. package/dist/middlewares/index.d.ts.map +1 -0
  160. package/dist/middlewares/index.js +5 -0
  161. package/dist/middlewares/index.js.map +1 -0
  162. package/dist/migrations/{healAssetsInfoMetadata.d.cts → healAssetsInfoMetadata.d.ts} +4 -4
  163. package/dist/migrations/healAssetsInfoMetadata.d.ts.map +1 -0
  164. package/dist/migrations/{healAssetsInfoMetadata.mjs → healAssetsInfoMetadata.js} +4 -5
  165. package/dist/migrations/healAssetsInfoMetadata.js.map +1 -0
  166. package/dist/selectors/{balance.d.cts → balance.d.ts} +6 -6
  167. package/dist/selectors/balance.d.ts.map +1 -0
  168. package/dist/selectors/{balance.mjs → balance.js} +5 -5
  169. package/dist/selectors/balance.js.map +1 -0
  170. package/dist/{types.d.mts → types.d.ts} +4 -4
  171. package/dist/types.d.ts.map +1 -0
  172. package/dist/{types.mjs → types.js} +1 -1
  173. package/dist/types.js.map +1 -0
  174. package/dist/utils/constants.d.ts +2 -0
  175. package/dist/utils/constants.d.ts.map +1 -0
  176. package/dist/utils/{constants.mjs → constants.js} +1 -1
  177. package/dist/utils/constants.js.map +1 -0
  178. package/dist/utils/{customAssetsRpcSupplement.d.mts → customAssetsRpcSupplement.d.ts} +2 -2
  179. package/dist/utils/customAssetsRpcSupplement.d.ts.map +1 -0
  180. package/dist/utils/{customAssetsRpcSupplement.mjs → customAssetsRpcSupplement.js} +2 -2
  181. package/dist/utils/customAssetsRpcSupplement.js.map +1 -0
  182. package/dist/utils/{dedupingBatchFetcher.d.cts → dedupingBatchFetcher.d.ts} +1 -1
  183. package/dist/utils/dedupingBatchFetcher.d.ts.map +1 -0
  184. package/dist/utils/{dedupingBatchFetcher.mjs → dedupingBatchFetcher.js} +1 -1
  185. package/dist/utils/dedupingBatchFetcher.js.map +1 -0
  186. package/dist/utils/{fetchWithTimeout.d.mts → fetchWithTimeout.d.ts} +1 -1
  187. package/dist/utils/fetchWithTimeout.d.ts.map +1 -0
  188. package/dist/utils/{fetchWithTimeout.mjs → fetchWithTimeout.js} +1 -1
  189. package/dist/utils/fetchWithTimeout.js.map +1 -0
  190. package/dist/utils/{formatExchangeRatesForBridge.d.mts → formatExchangeRatesForBridge.d.ts} +3 -3
  191. package/dist/utils/formatExchangeRatesForBridge.d.ts.map +1 -0
  192. package/dist/utils/{formatExchangeRatesForBridge.mjs → formatExchangeRatesForBridge.js} +6 -7
  193. package/dist/utils/formatExchangeRatesForBridge.js.map +1 -0
  194. package/dist/utils/{formatStateForTransactionPay.d.cts → formatStateForTransactionPay.d.ts} +3 -3
  195. package/dist/utils/formatStateForTransactionPay.d.ts.map +1 -0
  196. package/dist/utils/{formatStateForTransactionPay.mjs → formatStateForTransactionPay.js} +7 -8
  197. package/dist/utils/formatStateForTransactionPay.js.map +1 -0
  198. package/dist/utils/index.d.ts +9 -0
  199. package/dist/utils/index.d.ts.map +1 -0
  200. package/dist/utils/index.js +7 -0
  201. package/dist/utils/index.js.map +1 -0
  202. package/dist/utils/{native-assets.d.cts → native-assets.d.ts} +2 -2
  203. package/dist/utils/native-assets.d.ts.map +1 -0
  204. package/dist/utils/{native-assets.mjs → native-assets.js} +5 -5
  205. package/dist/utils/native-assets.js.map +1 -0
  206. package/dist/utils/{normalizeAmountString.d.mts → normalizeAmountString.d.ts} +1 -1
  207. package/dist/utils/normalizeAmountString.d.ts.map +1 -0
  208. package/dist/utils/{normalizeAmountString.mjs → normalizeAmountString.js} +2 -2
  209. package/dist/utils/normalizeAmountString.js.map +1 -0
  210. package/dist/utils/{normalizeAssetId.d.cts → normalizeAssetId.d.ts} +3 -3
  211. package/dist/utils/normalizeAssetId.d.ts.map +1 -0
  212. package/dist/utils/{normalizeAssetId.mjs → normalizeAssetId.js} +4 -11
  213. package/dist/utils/normalizeAssetId.js.map +1 -0
  214. package/dist/utils/{snaps-assets-migration.d.mts → snaps-assets-migration.d.ts} +5 -5
  215. package/dist/utils/snaps-assets-migration.d.ts.map +1 -0
  216. package/dist/utils/{snaps-assets-migration.mjs → snaps-assets-migration.js} +2 -2
  217. package/dist/utils/snaps-assets-migration.js.map +1 -0
  218. package/dist/utils/{trace.d.mts → trace.d.ts} +2 -2
  219. package/dist/utils/trace.d.ts.map +1 -0
  220. package/dist/utils/{trace.mjs → trace.js} +1 -1
  221. package/dist/utils/trace.js.map +1 -0
  222. package/package.json +15 -18
  223. package/dist/AssetsController-method-action-types.cjs +0 -7
  224. package/dist/AssetsController-method-action-types.cjs.map +0 -1
  225. package/dist/AssetsController-method-action-types.d.cts +0 -181
  226. package/dist/AssetsController-method-action-types.d.cts.map +0 -1
  227. package/dist/AssetsController-method-action-types.d.mts.map +0 -1
  228. package/dist/AssetsController-method-action-types.mjs.map +0 -1
  229. package/dist/AssetsController.cjs +0 -2559
  230. package/dist/AssetsController.cjs.map +0 -1
  231. package/dist/AssetsController.d.cts.map +0 -1
  232. package/dist/AssetsController.d.mts +0 -395
  233. package/dist/AssetsController.d.mts.map +0 -1
  234. package/dist/AssetsController.mjs.map +0 -1
  235. package/dist/data-sources/AbstractDataSource.cjs +0 -111
  236. package/dist/data-sources/AbstractDataSource.cjs.map +0 -1
  237. package/dist/data-sources/AbstractDataSource.d.cts +0 -113
  238. package/dist/data-sources/AbstractDataSource.d.cts.map +0 -1
  239. package/dist/data-sources/AbstractDataSource.d.mts.map +0 -1
  240. package/dist/data-sources/AbstractDataSource.mjs.map +0 -1
  241. package/dist/data-sources/AccountActivityDataSource.cjs +0 -267
  242. package/dist/data-sources/AccountActivityDataSource.cjs.map +0 -1
  243. package/dist/data-sources/AccountActivityDataSource.d.cts.map +0 -1
  244. package/dist/data-sources/AccountActivityDataSource.d.mts +0 -80
  245. package/dist/data-sources/AccountActivityDataSource.d.mts.map +0 -1
  246. package/dist/data-sources/AccountActivityDataSource.mjs.map +0 -1
  247. package/dist/data-sources/AccountsApiDataSource.cjs +0 -586
  248. package/dist/data-sources/AccountsApiDataSource.cjs.map +0 -1
  249. package/dist/data-sources/AccountsApiDataSource.d.cts.map +0 -1
  250. package/dist/data-sources/AccountsApiDataSource.d.mts +0 -82
  251. package/dist/data-sources/AccountsApiDataSource.d.mts.map +0 -1
  252. package/dist/data-sources/AccountsApiDataSource.mjs.map +0 -1
  253. package/dist/data-sources/PriceDataSource.cjs +0 -466
  254. package/dist/data-sources/PriceDataSource.cjs.map +0 -1
  255. package/dist/data-sources/PriceDataSource.d.cts.map +0 -1
  256. package/dist/data-sources/PriceDataSource.d.mts +0 -100
  257. package/dist/data-sources/PriceDataSource.d.mts.map +0 -1
  258. package/dist/data-sources/PriceDataSource.mjs.map +0 -1
  259. package/dist/data-sources/RpcDataSource.cjs +0 -1021
  260. package/dist/data-sources/RpcDataSource.cjs.map +0 -1
  261. package/dist/data-sources/RpcDataSource.d.cts.map +0 -1
  262. package/dist/data-sources/RpcDataSource.d.mts +0 -174
  263. package/dist/data-sources/RpcDataSource.d.mts.map +0 -1
  264. package/dist/data-sources/RpcDataSource.mjs.map +0 -1
  265. package/dist/data-sources/SnapDataSource.cjs +0 -443
  266. package/dist/data-sources/SnapDataSource.cjs.map +0 -1
  267. package/dist/data-sources/SnapDataSource.d.cts.map +0 -1
  268. package/dist/data-sources/SnapDataSource.d.mts +0 -127
  269. package/dist/data-sources/SnapDataSource.d.mts.map +0 -1
  270. package/dist/data-sources/SnapDataSource.mjs.map +0 -1
  271. package/dist/data-sources/StakedBalanceDataSource.cjs +0 -616
  272. package/dist/data-sources/StakedBalanceDataSource.cjs.map +0 -1
  273. package/dist/data-sources/StakedBalanceDataSource.d.cts.map +0 -1
  274. package/dist/data-sources/StakedBalanceDataSource.d.mts +0 -72
  275. package/dist/data-sources/StakedBalanceDataSource.d.mts.map +0 -1
  276. package/dist/data-sources/StakedBalanceDataSource.mjs.map +0 -1
  277. package/dist/data-sources/TokenDataSource.cjs +0 -583
  278. package/dist/data-sources/TokenDataSource.cjs.map +0 -1
  279. package/dist/data-sources/TokenDataSource.d.cts.map +0 -1
  280. package/dist/data-sources/TokenDataSource.d.mts +0 -81
  281. package/dist/data-sources/TokenDataSource.d.mts.map +0 -1
  282. package/dist/data-sources/TokenDataSource.mjs.map +0 -1
  283. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.cjs +0 -705
  284. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.cjs.map +0 -1
  285. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.cts.map +0 -1
  286. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.mts +0 -65
  287. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.mts.map +0 -1
  288. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.mjs.map +0 -1
  289. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.cjs +0 -312
  290. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.cjs.map +0 -1
  291. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.cts.map +0 -1
  292. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.mts +0 -61
  293. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.mts.map +0 -1
  294. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.mjs.map +0 -1
  295. package/dist/data-sources/evm-rpc-services/clients/index.cjs +0 -10
  296. package/dist/data-sources/evm-rpc-services/clients/index.cjs.map +0 -1
  297. package/dist/data-sources/evm-rpc-services/clients/index.d.cts +0 -4
  298. package/dist/data-sources/evm-rpc-services/clients/index.d.cts.map +0 -1
  299. package/dist/data-sources/evm-rpc-services/clients/index.d.mts +0 -4
  300. package/dist/data-sources/evm-rpc-services/clients/index.d.mts.map +0 -1
  301. package/dist/data-sources/evm-rpc-services/clients/index.mjs +0 -3
  302. package/dist/data-sources/evm-rpc-services/clients/index.mjs.map +0 -1
  303. package/dist/data-sources/evm-rpc-services/index.cjs +0 -17
  304. package/dist/data-sources/evm-rpc-services/index.cjs.map +0 -1
  305. package/dist/data-sources/evm-rpc-services/index.d.cts.map +0 -1
  306. package/dist/data-sources/evm-rpc-services/index.d.mts +0 -5
  307. package/dist/data-sources/evm-rpc-services/index.d.mts.map +0 -1
  308. package/dist/data-sources/evm-rpc-services/index.mjs +0 -4
  309. package/dist/data-sources/evm-rpc-services/index.mjs.map +0 -1
  310. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.cjs +0 -247
  311. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.cjs.map +0 -1
  312. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.cts.map +0 -1
  313. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.mts +0 -96
  314. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.mts.map +0 -1
  315. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.mjs.map +0 -1
  316. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.cjs +0 -132
  317. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.cjs.map +0 -1
  318. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.cts +0 -81
  319. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.cts.map +0 -1
  320. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.mts.map +0 -1
  321. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.mjs.map +0 -1
  322. package/dist/data-sources/evm-rpc-services/services/TokenDetector.cjs +0 -230
  323. package/dist/data-sources/evm-rpc-services/services/TokenDetector.cjs.map +0 -1
  324. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.cts.map +0 -1
  325. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.mts +0 -78
  326. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.mts.map +0 -1
  327. package/dist/data-sources/evm-rpc-services/services/TokenDetector.mjs.map +0 -1
  328. package/dist/data-sources/evm-rpc-services/services/index.cjs +0 -13
  329. package/dist/data-sources/evm-rpc-services/services/index.cjs.map +0 -1
  330. package/dist/data-sources/evm-rpc-services/services/index.d.cts.map +0 -1
  331. package/dist/data-sources/evm-rpc-services/services/index.d.mts +0 -4
  332. package/dist/data-sources/evm-rpc-services/services/index.d.mts.map +0 -1
  333. package/dist/data-sources/evm-rpc-services/services/index.mjs +0 -4
  334. package/dist/data-sources/evm-rpc-services/services/index.mjs.map +0 -1
  335. package/dist/data-sources/evm-rpc-services/types/assets.cjs +0 -3
  336. package/dist/data-sources/evm-rpc-services/types/assets.cjs.map +0 -1
  337. package/dist/data-sources/evm-rpc-services/types/assets.d.cts.map +0 -1
  338. package/dist/data-sources/evm-rpc-services/types/assets.d.mts +0 -53
  339. package/dist/data-sources/evm-rpc-services/types/assets.d.mts.map +0 -1
  340. package/dist/data-sources/evm-rpc-services/types/assets.mjs +0 -2
  341. package/dist/data-sources/evm-rpc-services/types/assets.mjs.map +0 -1
  342. package/dist/data-sources/evm-rpc-services/types/config.cjs +0 -3
  343. package/dist/data-sources/evm-rpc-services/types/config.cjs.map +0 -1
  344. package/dist/data-sources/evm-rpc-services/types/config.d.cts.map +0 -1
  345. package/dist/data-sources/evm-rpc-services/types/config.d.mts +0 -18
  346. package/dist/data-sources/evm-rpc-services/types/config.d.mts.map +0 -1
  347. package/dist/data-sources/evm-rpc-services/types/config.mjs +0 -2
  348. package/dist/data-sources/evm-rpc-services/types/config.mjs.map +0 -1
  349. package/dist/data-sources/evm-rpc-services/types/core.cjs +0 -3
  350. package/dist/data-sources/evm-rpc-services/types/core.cjs.map +0 -1
  351. package/dist/data-sources/evm-rpc-services/types/core.d.cts.map +0 -1
  352. package/dist/data-sources/evm-rpc-services/types/core.d.mts +0 -19
  353. package/dist/data-sources/evm-rpc-services/types/core.d.mts.map +0 -1
  354. package/dist/data-sources/evm-rpc-services/types/core.mjs +0 -2
  355. package/dist/data-sources/evm-rpc-services/types/core.mjs.map +0 -1
  356. package/dist/data-sources/evm-rpc-services/types/index.cjs +0 -3
  357. package/dist/data-sources/evm-rpc-services/types/index.cjs.map +0 -1
  358. package/dist/data-sources/evm-rpc-services/types/index.d.cts +0 -7
  359. package/dist/data-sources/evm-rpc-services/types/index.d.cts.map +0 -1
  360. package/dist/data-sources/evm-rpc-services/types/index.d.mts +0 -7
  361. package/dist/data-sources/evm-rpc-services/types/index.d.mts.map +0 -1
  362. package/dist/data-sources/evm-rpc-services/types/index.mjs +0 -2
  363. package/dist/data-sources/evm-rpc-services/types/index.mjs.map +0 -1
  364. package/dist/data-sources/evm-rpc-services/types/multicall.cjs +0 -3
  365. package/dist/data-sources/evm-rpc-services/types/multicall.cjs.map +0 -1
  366. package/dist/data-sources/evm-rpc-services/types/multicall.d.cts.map +0 -1
  367. package/dist/data-sources/evm-rpc-services/types/multicall.d.mts +0 -24
  368. package/dist/data-sources/evm-rpc-services/types/multicall.d.mts.map +0 -1
  369. package/dist/data-sources/evm-rpc-services/types/multicall.mjs +0 -2
  370. package/dist/data-sources/evm-rpc-services/types/multicall.mjs.map +0 -1
  371. package/dist/data-sources/evm-rpc-services/types/services.cjs +0 -3
  372. package/dist/data-sources/evm-rpc-services/types/services.cjs.map +0 -1
  373. package/dist/data-sources/evm-rpc-services/types/services.d.cts.map +0 -1
  374. package/dist/data-sources/evm-rpc-services/types/services.d.mts +0 -70
  375. package/dist/data-sources/evm-rpc-services/types/services.d.mts.map +0 -1
  376. package/dist/data-sources/evm-rpc-services/types/services.mjs +0 -2
  377. package/dist/data-sources/evm-rpc-services/types/services.mjs.map +0 -1
  378. package/dist/data-sources/evm-rpc-services/types/state.cjs +0 -3
  379. package/dist/data-sources/evm-rpc-services/types/state.cjs.map +0 -1
  380. package/dist/data-sources/evm-rpc-services/types/state.d.cts.map +0 -1
  381. package/dist/data-sources/evm-rpc-services/types/state.d.mts +0 -58
  382. package/dist/data-sources/evm-rpc-services/types/state.d.mts.map +0 -1
  383. package/dist/data-sources/evm-rpc-services/types/state.mjs +0 -2
  384. package/dist/data-sources/evm-rpc-services/types/state.mjs.map +0 -1
  385. package/dist/data-sources/evm-rpc-services/utils/assets.cjs +0 -9
  386. package/dist/data-sources/evm-rpc-services/utils/assets.cjs.map +0 -1
  387. package/dist/data-sources/evm-rpc-services/utils/assets.d.cts.map +0 -1
  388. package/dist/data-sources/evm-rpc-services/utils/assets.d.mts +0 -3
  389. package/dist/data-sources/evm-rpc-services/utils/assets.d.mts.map +0 -1
  390. package/dist/data-sources/evm-rpc-services/utils/assets.mjs.map +0 -1
  391. package/dist/data-sources/evm-rpc-services/utils/batch.cjs +0 -45
  392. package/dist/data-sources/evm-rpc-services/utils/batch.cjs.map +0 -1
  393. package/dist/data-sources/evm-rpc-services/utils/batch.d.cts +0 -28
  394. package/dist/data-sources/evm-rpc-services/utils/batch.d.cts.map +0 -1
  395. package/dist/data-sources/evm-rpc-services/utils/batch.d.mts.map +0 -1
  396. package/dist/data-sources/evm-rpc-services/utils/batch.mjs.map +0 -1
  397. package/dist/data-sources/evm-rpc-services/utils/index.cjs +0 -15
  398. package/dist/data-sources/evm-rpc-services/utils/index.cjs.map +0 -1
  399. package/dist/data-sources/evm-rpc-services/utils/index.d.cts +0 -4
  400. package/dist/data-sources/evm-rpc-services/utils/index.d.cts.map +0 -1
  401. package/dist/data-sources/evm-rpc-services/utils/index.d.mts +0 -4
  402. package/dist/data-sources/evm-rpc-services/utils/index.d.mts.map +0 -1
  403. package/dist/data-sources/evm-rpc-services/utils/index.mjs +0 -4
  404. package/dist/data-sources/evm-rpc-services/utils/index.mjs.map +0 -1
  405. package/dist/data-sources/evm-rpc-services/utils/parsing.cjs +0 -47
  406. package/dist/data-sources/evm-rpc-services/utils/parsing.cjs.map +0 -1
  407. package/dist/data-sources/evm-rpc-services/utils/parsing.d.cts +0 -25
  408. package/dist/data-sources/evm-rpc-services/utils/parsing.d.cts.map +0 -1
  409. package/dist/data-sources/evm-rpc-services/utils/parsing.d.mts.map +0 -1
  410. package/dist/data-sources/evm-rpc-services/utils/parsing.mjs.map +0 -1
  411. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.cjs +0 -68
  412. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.cjs.map +0 -1
  413. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.cts.map +0 -1
  414. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.mts +0 -25
  415. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.mts.map +0 -1
  416. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.mjs.map +0 -1
  417. package/dist/data-sources/index.cjs +0 -30
  418. package/dist/data-sources/index.cjs.map +0 -1
  419. package/dist/data-sources/index.d.cts.map +0 -1
  420. package/dist/data-sources/index.d.mts +0 -9
  421. package/dist/data-sources/index.d.mts.map +0 -1
  422. package/dist/data-sources/index.mjs +0 -14
  423. package/dist/data-sources/index.mjs.map +0 -1
  424. package/dist/defaults.cjs +0 -125
  425. package/dist/defaults.cjs.map +0 -1
  426. package/dist/defaults.d.cts +0 -50
  427. package/dist/defaults.d.cts.map +0 -1
  428. package/dist/defaults.d.mts.map +0 -1
  429. package/dist/defaults.mjs.map +0 -1
  430. package/dist/errors.cjs +0 -25
  431. package/dist/errors.cjs.map +0 -1
  432. package/dist/errors.d.cts +0 -25
  433. package/dist/errors.d.cts.map +0 -1
  434. package/dist/errors.d.mts.map +0 -1
  435. package/dist/errors.mjs.map +0 -1
  436. package/dist/index.cjs +0 -67
  437. package/dist/index.cjs.map +0 -1
  438. package/dist/index.d.cts +0 -26
  439. package/dist/index.d.cts.map +0 -1
  440. package/dist/index.d.mts.map +0 -1
  441. package/dist/index.mjs.map +0 -1
  442. package/dist/logger.cjs +0 -7
  443. package/dist/logger.cjs.map +0 -1
  444. package/dist/logger.d.cts +0 -5
  445. package/dist/logger.d.cts.map +0 -1
  446. package/dist/logger.d.mts +0 -5
  447. package/dist/logger.d.mts.map +0 -1
  448. package/dist/logger.mjs +0 -4
  449. package/dist/logger.mjs.map +0 -1
  450. package/dist/middlewares/CustomAssetGraduationMiddleware.cjs +0 -132
  451. package/dist/middlewares/CustomAssetGraduationMiddleware.cjs.map +0 -1
  452. package/dist/middlewares/CustomAssetGraduationMiddleware.d.cts.map +0 -1
  453. package/dist/middlewares/CustomAssetGraduationMiddleware.d.mts +0 -32
  454. package/dist/middlewares/CustomAssetGraduationMiddleware.d.mts.map +0 -1
  455. package/dist/middlewares/CustomAssetGraduationMiddleware.mjs.map +0 -1
  456. package/dist/middlewares/DetectionMiddleware.cjs +0 -154
  457. package/dist/middlewares/DetectionMiddleware.cjs.map +0 -1
  458. package/dist/middlewares/DetectionMiddleware.d.cts.map +0 -1
  459. package/dist/middlewares/DetectionMiddleware.d.mts +0 -40
  460. package/dist/middlewares/DetectionMiddleware.d.mts.map +0 -1
  461. package/dist/middlewares/DetectionMiddleware.mjs.map +0 -1
  462. package/dist/middlewares/ParallelMiddleware.cjs +0 -263
  463. package/dist/middlewares/ParallelMiddleware.cjs.map +0 -1
  464. package/dist/middlewares/ParallelMiddleware.d.cts.map +0 -1
  465. package/dist/middlewares/ParallelMiddleware.d.mts +0 -41
  466. package/dist/middlewares/ParallelMiddleware.d.mts.map +0 -1
  467. package/dist/middlewares/RpcFallbackMiddleware.cjs +0 -90
  468. package/dist/middlewares/RpcFallbackMiddleware.cjs.map +0 -1
  469. package/dist/middlewares/RpcFallbackMiddleware.d.cts.map +0 -1
  470. package/dist/middlewares/RpcFallbackMiddleware.d.mts +0 -23
  471. package/dist/middlewares/RpcFallbackMiddleware.d.mts.map +0 -1
  472. package/dist/middlewares/RpcFallbackMiddleware.mjs.map +0 -1
  473. package/dist/middlewares/index.cjs +0 -14
  474. package/dist/middlewares/index.cjs.map +0 -1
  475. package/dist/middlewares/index.d.cts +0 -9
  476. package/dist/middlewares/index.d.cts.map +0 -1
  477. package/dist/middlewares/index.d.mts +0 -9
  478. package/dist/middlewares/index.d.mts.map +0 -1
  479. package/dist/middlewares/index.mjs +0 -5
  480. package/dist/middlewares/index.mjs.map +0 -1
  481. package/dist/migrations/healAssetsInfoMetadata.cjs +0 -385
  482. package/dist/migrations/healAssetsInfoMetadata.cjs.map +0 -1
  483. package/dist/migrations/healAssetsInfoMetadata.d.cts.map +0 -1
  484. package/dist/migrations/healAssetsInfoMetadata.d.mts +0 -106
  485. package/dist/migrations/healAssetsInfoMetadata.d.mts.map +0 -1
  486. package/dist/migrations/healAssetsInfoMetadata.mjs.map +0 -1
  487. package/dist/selectors/balance.cjs +0 -532
  488. package/dist/selectors/balance.cjs.map +0 -1
  489. package/dist/selectors/balance.d.cts.map +0 -1
  490. package/dist/selectors/balance.d.mts +0 -103
  491. package/dist/selectors/balance.d.mts.map +0 -1
  492. package/dist/selectors/balance.mjs.map +0 -1
  493. package/dist/types.cjs +0 -39
  494. package/dist/types.cjs.map +0 -1
  495. package/dist/types.d.cts +0 -533
  496. package/dist/types.d.cts.map +0 -1
  497. package/dist/types.d.mts.map +0 -1
  498. package/dist/types.mjs.map +0 -1
  499. package/dist/utils/constants.cjs +0 -5
  500. package/dist/utils/constants.cjs.map +0 -1
  501. package/dist/utils/constants.d.cts +0 -2
  502. package/dist/utils/constants.d.cts.map +0 -1
  503. package/dist/utils/constants.d.mts +0 -2
  504. package/dist/utils/constants.d.mts.map +0 -1
  505. package/dist/utils/constants.mjs.map +0 -1
  506. package/dist/utils/customAssetsRpcSupplement.cjs +0 -72
  507. package/dist/utils/customAssetsRpcSupplement.cjs.map +0 -1
  508. package/dist/utils/customAssetsRpcSupplement.d.cts +0 -60
  509. package/dist/utils/customAssetsRpcSupplement.d.cts.map +0 -1
  510. package/dist/utils/customAssetsRpcSupplement.d.mts.map +0 -1
  511. package/dist/utils/customAssetsRpcSupplement.mjs.map +0 -1
  512. package/dist/utils/dedupingBatchFetcher.cjs +0 -168
  513. package/dist/utils/dedupingBatchFetcher.cjs.map +0 -1
  514. package/dist/utils/dedupingBatchFetcher.d.cts.map +0 -1
  515. package/dist/utils/dedupingBatchFetcher.d.mts +0 -72
  516. package/dist/utils/dedupingBatchFetcher.d.mts.map +0 -1
  517. package/dist/utils/dedupingBatchFetcher.mjs.map +0 -1
  518. package/dist/utils/fetchWithTimeout.cjs +0 -30
  519. package/dist/utils/fetchWithTimeout.cjs.map +0 -1
  520. package/dist/utils/fetchWithTimeout.d.cts +0 -11
  521. package/dist/utils/fetchWithTimeout.d.cts.map +0 -1
  522. package/dist/utils/fetchWithTimeout.d.mts.map +0 -1
  523. package/dist/utils/fetchWithTimeout.mjs.map +0 -1
  524. package/dist/utils/formatExchangeRatesForBridge.cjs +0 -161
  525. package/dist/utils/formatExchangeRatesForBridge.cjs.map +0 -1
  526. package/dist/utils/formatExchangeRatesForBridge.d.cts +0 -43
  527. package/dist/utils/formatExchangeRatesForBridge.d.cts.map +0 -1
  528. package/dist/utils/formatExchangeRatesForBridge.d.mts.map +0 -1
  529. package/dist/utils/formatExchangeRatesForBridge.mjs.map +0 -1
  530. package/dist/utils/formatStateForTransactionPay.cjs +0 -174
  531. package/dist/utils/formatStateForTransactionPay.cjs.map +0 -1
  532. package/dist/utils/formatStateForTransactionPay.d.cts.map +0 -1
  533. package/dist/utils/formatStateForTransactionPay.d.mts +0 -72
  534. package/dist/utils/formatStateForTransactionPay.d.mts.map +0 -1
  535. package/dist/utils/formatStateForTransactionPay.mjs.map +0 -1
  536. package/dist/utils/index.cjs +0 -21
  537. package/dist/utils/index.cjs.map +0 -1
  538. package/dist/utils/index.d.cts +0 -9
  539. package/dist/utils/index.d.cts.map +0 -1
  540. package/dist/utils/index.d.mts +0 -9
  541. package/dist/utils/index.d.mts.map +0 -1
  542. package/dist/utils/index.mjs +0 -7
  543. package/dist/utils/index.mjs.map +0 -1
  544. package/dist/utils/native-assets.cjs +0 -64
  545. package/dist/utils/native-assets.cjs.map +0 -1
  546. package/dist/utils/native-assets.d.cts.map +0 -1
  547. package/dist/utils/native-assets.d.mts +0 -19
  548. package/dist/utils/native-assets.d.mts.map +0 -1
  549. package/dist/utils/native-assets.mjs.map +0 -1
  550. package/dist/utils/normalizeAmountString.cjs +0 -64
  551. package/dist/utils/normalizeAmountString.cjs.map +0 -1
  552. package/dist/utils/normalizeAmountString.d.cts +0 -35
  553. package/dist/utils/normalizeAmountString.d.cts.map +0 -1
  554. package/dist/utils/normalizeAmountString.d.mts.map +0 -1
  555. package/dist/utils/normalizeAmountString.mjs.map +0 -1
  556. package/dist/utils/normalizeAssetId.cjs +0 -60
  557. package/dist/utils/normalizeAssetId.cjs.map +0 -1
  558. package/dist/utils/normalizeAssetId.d.cts.map +0 -1
  559. package/dist/utils/normalizeAssetId.d.mts +0 -32
  560. package/dist/utils/normalizeAssetId.d.mts.map +0 -1
  561. package/dist/utils/normalizeAssetId.mjs.map +0 -1
  562. package/dist/utils/snaps-assets-migration.cjs +0 -171
  563. package/dist/utils/snaps-assets-migration.cjs.map +0 -1
  564. package/dist/utils/snaps-assets-migration.d.cts +0 -113
  565. package/dist/utils/snaps-assets-migration.d.cts.map +0 -1
  566. package/dist/utils/snaps-assets-migration.d.mts.map +0 -1
  567. package/dist/utils/snaps-assets-migration.mjs.map +0 -1
  568. package/dist/utils/trace.cjs +0 -120
  569. package/dist/utils/trace.cjs.map +0 -1
  570. package/dist/utils/trace.d.cts +0 -52
  571. package/dist/utils/trace.d.cts.map +0 -1
  572. package/dist/utils/trace.d.mts.map +0 -1
  573. package/dist/utils/trace.mjs.map +0 -1
@@ -10,11 +10,10 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
12
  var _StakedBalanceFetcher_providerGetter, _StakedBalanceFetcher_onStakedBalanceUpdate;
13
- import { Interface } from "@ethersproject/abi";
14
- import { Web3Provider } from "@ethersproject/providers";
15
- import { StaticIntervalPollingControllerOnly } from "@metamask/polling-controller";
16
- import { getStakingContractAddress, getSupportedStakingChainIds, isStakingContractAssetId, weiToHumanReadable } from "../utils/index.mjs";
17
- export { getStakingContractAddress, getSupportedStakingChainIds, isStakingContractAssetId };
13
+ import { Interface } from '@ethersproject/abi';
14
+ import { StaticIntervalPollingControllerOnly } from '@metamask/polling-controller';
15
+ import { getStakingContractAddress, getSupportedStakingChainIds, isStakingContractAssetId, weiToHumanReadable, } from '../utils/index.js';
16
+ export { getStakingContractAddress, getSupportedStakingChainIds, isStakingContractAssetId, };
18
17
  /** Staking contract ABI: getShares(account) and convertToAssets(shares). */
19
18
  const STAKING_CONTRACT_ABI = [
20
19
  {
@@ -123,4 +122,4 @@ export class StakedBalanceFetcher extends StaticIntervalPollingControllerOnly()
123
122
  }
124
123
  }
125
124
  _StakedBalanceFetcher_providerGetter = new WeakMap(), _StakedBalanceFetcher_onStakedBalanceUpdate = new WeakMap();
126
- //# sourceMappingURL=StakedBalanceFetcher.mjs.map
125
+ //# sourceMappingURL=StakedBalanceFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StakedBalanceFetcher.js","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/services/StakedBalanceFetcher.ts"],"names":[],"mappings":"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","sourcesContent":["import { Interface } from '@ethersproject/abi';\nimport { Web3Provider } from '@ethersproject/providers';\nimport { StaticIntervalPollingControllerOnly } from '@metamask/polling-controller';\n\nimport type { Address, AccountId, ChainId } from '../types/index.js';\nimport {\n getStakingContractAddress,\n getSupportedStakingChainIds,\n isStakingContractAssetId,\n weiToHumanReadable,\n} from '../utils/index.js';\n\nexport {\n getStakingContractAddress,\n getSupportedStakingChainIds,\n isStakingContractAssetId,\n};\n\nexport type StakedBalancePollingInput = {\n /** Chain ID (hex format, e.g. 0x1) */\n chainId: ChainId;\n /** Account ID */\n accountId: AccountId;\n /** Account address */\n accountAddress: Address;\n};\n\n/** Human-readable staked balance (e.g. \"1.5\" for 1.5 ETH). */\nexport type StakedBalance = {\n amount: string;\n};\n\n/** Result reported via the update callback. */\nexport type StakedBalanceFetchResult = {\n /** Account ID (UUID). */\n accountId: AccountId;\n /** Hex chain ID. */\n chainId: ChainId;\n /** Human-readable staked balance. */\n balance: StakedBalance;\n};\n\n/**\n * Callback type for staked balance updates.\n */\nexport type OnStakedBalanceUpdateCallback = (\n result: StakedBalanceFetchResult,\n) => void;\n\n/** Staking contract ABI: getShares(account) and convertToAssets(shares). */\nconst STAKING_CONTRACT_ABI = [\n {\n inputs: [{ internalType: 'address', name: 'account', type: 'address' }],\n name: 'getShares',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ internalType: 'uint256', name: 'shares', type: 'uint256' }],\n name: 'convertToAssets',\n outputs: [{ internalType: 'uint256', name: 'assets', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n];\n\nexport const STAKING_INTERFACE = new Interface(STAKING_CONTRACT_ABI);\n\nconst STAKING_DECIMALS = 18;\n\nexport type StakedBalanceFetcherConfig = {\n /** Polling interval in ms (default: 180s) */\n pollingInterval?: number;\n /** Returns the network provider for the given chain. Required for fetchStakedBalance. */\n getNetworkProvider?: (chainId: ChainId) => Web3Provider | undefined;\n};\n\nconst DEFAULT_STAKED_BALANCE_INTERVAL = 180_000; // 3 minutes\n\nexport class StakedBalanceFetcher extends StaticIntervalPollingControllerOnly<StakedBalancePollingInput>() {\n readonly #providerGetter?: (chainId: ChainId) => Web3Provider | undefined;\n\n #onStakedBalanceUpdate: OnStakedBalanceUpdateCallback | undefined;\n\n constructor(config?: StakedBalanceFetcherConfig) {\n super();\n this.#providerGetter = config?.getNetworkProvider;\n\n this.setIntervalLength(\n config?.pollingInterval ?? DEFAULT_STAKED_BALANCE_INTERVAL,\n );\n }\n\n /**\n * Register a callback that is invoked after every successful poll with\n * the staked balance (including zero). Zero is reported so that merged\n * updates can clear prior non-zero state.\n *\n * @param callback - The callback to invoke.\n */\n setOnStakedBalanceUpdate(callback: OnStakedBalanceUpdateCallback): void {\n this.#onStakedBalanceUpdate = callback;\n }\n\n async _executePoll(input: StakedBalancePollingInput): Promise<void> {\n let result: StakedBalance;\n try {\n result = await this.fetchStakedBalance(input);\n } catch {\n // Do not push an update on provider/RPC failure; otherwise we would\n // overwrite existing non-zero staked balances with zero in state.\n return;\n }\n\n if (this.#onStakedBalanceUpdate) {\n this.#onStakedBalanceUpdate({\n accountId: input.accountId,\n chainId: input.chainId,\n balance: result,\n });\n }\n }\n\n /**\n * Fetches the staked balance for an account on a chain using the same\n * staking contract as AccountTrackerController (getShares then convertToAssets).\n * Returns a human-readable amount string (e.g. \"1.5\" for 1.5 ETH).\n * Throws when no provider is available or when the RPC/contract call fails, so\n * callers do not persist a false zero and overwrite existing balances.\n *\n * @param input - Chain, account ID, and address to query.\n * @returns Human-readable staked balance (amount string).\n * @throws When provider is missing or when getShares/convertToAssets fails.\n */\n async fetchStakedBalance(\n input: StakedBalancePollingInput,\n ): Promise<StakedBalance> {\n const { chainId, accountAddress } = input;\n const provider = this.#providerGetter?.(chainId);\n if (!provider) {\n throw new Error('StakedBalanceFetcher: no provider available for chain');\n }\n const contractAddress = getStakingContractAddress(chainId);\n\n if (!contractAddress) {\n return { amount: '0' };\n }\n\n try {\n const sharesCalldata = STAKING_INTERFACE.encodeFunctionData('getShares', [\n accountAddress,\n ]);\n const sharesResult = await provider.call({\n to: contractAddress,\n data: sharesCalldata,\n });\n const sharesRaw = STAKING_INTERFACE.decodeFunctionResult(\n 'getShares',\n sharesResult,\n )[0];\n const sharesBigNum = BigInt(sharesRaw.toString());\n\n if (sharesBigNum === 0n) {\n return { amount: '0' };\n }\n\n const assetsCalldata = STAKING_INTERFACE.encodeFunctionData(\n 'convertToAssets',\n [sharesBigNum],\n );\n const assetsResult = await provider.call({\n to: contractAddress,\n data: assetsCalldata,\n });\n const assetsRaw = STAKING_INTERFACE.decodeFunctionResult(\n 'convertToAssets',\n assetsResult,\n )[0];\n const assetsWei = BigInt(assetsRaw.toString());\n\n const amount = weiToHumanReadable(assetsWei, STAKING_DECIMALS);\n return { amount };\n } catch (error) {\n throw error instanceof Error\n ? error\n : new Error('StakedBalanceFetcher: failed to fetch staked balance');\n }\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
- import type { MulticallClient } from "../clients/index.cjs";
2
- import type { TokensApiClient } from "../clients/TokensApiClient.cjs";
3
- import type { AccountId, Address, ChainId, TokenDetectionOptions, TokenDetectionResult } from "../types/index.cjs";
1
+ import type { MulticallClient } from '../clients/index.js';
2
+ import type { TokensApiClient } from '../clients/TokensApiClient.js';
3
+ import type { AccountId, Address, ChainId, TokenDetectionOptions, TokenDetectionResult } from '../types/index.js';
4
4
  export type TokenDetectorConfig = {
5
5
  /** Function returning whether token detection is enabled (avoids stale value) */
6
6
  tokenDetectionEnabled?: () => boolean;
@@ -27,18 +27,18 @@ export type DetectionPollingInput = {
27
27
  */
28
28
  export type OnDetectionUpdateCallback = (result: TokenDetectionResult) => void;
29
29
  declare const TokenDetector_base: (abstract new (...args: any[]) => {
30
- readonly "__#6@#intervalIds": Record<string, NodeJS.Timeout>;
31
- "__#6@#intervalLength": number | undefined;
32
- setIntervalLength(intervalLength: number): void;
33
- getIntervalLength(): number | undefined;
34
- _startPolling(input: DetectionPollingInput): void;
35
- _stopPollingByPollingTokenSetId(key: string): void;
36
- readonly "__#3@#pollingTokenSets": Map<string, Set<string>>;
37
- readonly "__#3@#callbacks": Map<string, Set<(input: DetectionPollingInput) => void>>;
30
+ readonly _callbacks: Map<string, Set<(input: DetectionPollingInput) => void>>;
38
31
  _executePoll(input: DetectionPollingInput): Promise<void>;
39
32
  startPolling(input: DetectionPollingInput): string;
40
33
  stopAllPolling(): void;
41
34
  stopPollingByPollingToken(pollingToken: string): void;
35
+ readonly _intervalIds: Record<import("@metamask/polling-controller").PollingTokenSetId, NodeJS.Timeout>;
36
+ _intervalLength: number | undefined;
37
+ setIntervalLength(intervalLength: number): void;
38
+ getIntervalLength(): number | undefined;
39
+ _startPolling(input: DetectionPollingInput): void;
40
+ _stopPollingByPollingTokenSetId(key: import("@metamask/polling-controller").PollingTokenSetId): void;
41
+ readonly _pollingTokenSets: Map<import("@metamask/polling-controller").PollingTokenSetId, Set<string>>;
42
42
  onPollingComplete(input: DetectionPollingInput, callback: (input: DetectionPollingInput) => void): void;
43
43
  }) & {
44
44
  new (): {};
@@ -75,4 +75,4 @@ export declare class TokenDetector extends TokenDetector_base {
75
75
  detectTokens(chainId: ChainId, accountId: AccountId, accountAddress: Address, options?: TokenDetectionOptions): Promise<TokenDetectionResult>;
76
76
  }
77
77
  export {};
78
- //# sourceMappingURL=TokenDetector.d.cts.map
78
+ //# sourceMappingURL=TokenDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenDetector.d.ts","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/services/TokenDetector.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EACV,SAAS,EACT,OAAO,EAKP,OAAO,EACP,qBAAqB,EACrB,oBAAoB,EAErB,MAAM,mBAAmB,CAAC;AAO3B,MAAM,MAAM,mBAAmB,GAAG;IAChC,iFAAiF;IACjF,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC;IACtC,yGAAyG;IACzG,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,sBAAsB;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;;;;;;;;;;;;;;;;;;AAE/E;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,kBAA4D;;IAW7F,YACE,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,MAAM,CAAC,EAAE,mBAAmB,EAgB7B;IAED;;;;OAIG;IACH,oBAAoB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI,CAE9D;IAED;;;;;OAKG;IACG,YAAY,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAc9D;IAED;;;;;;OAMG;IACG,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAG3D;IAEK,YAAY,CAChB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,OAAO,EACvB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,CAoF/B;CAsJF"}
@@ -10,9 +10,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
12
  var _TokenDetector_instances, _TokenDetector_multicallClient, _TokenDetector_tokensApiClient, _TokenDetector_config, _TokenDetector_tokenListCache, _TokenDetector_onDetectionUpdate, _TokenDetector_fetchAndCacheTokenList, _TokenDetector_processBalanceResponses, _TokenDetector_formatBalance, _TokenDetector_getTokenMetadata, _TokenDetector_createAsset;
13
- import { StaticIntervalPollingControllerOnly } from "@metamask/polling-controller";
14
- import { projectLogger, createModuleLogger } from "../../../logger.mjs";
15
- import { reduceInBatchesSerially } from "../utils/index.mjs";
13
+ import { StaticIntervalPollingControllerOnly } from '@metamask/polling-controller';
14
+ import { projectLogger, createModuleLogger } from '../../../logger.js';
15
+ import { reduceInBatchesSerially } from '../utils/index.js';
16
16
  const log = createModuleLogger(projectLogger, 'TokenDetector');
17
17
  const DEFAULT_DETECTION_INTERVAL = 180000; // 3 minutes
18
18
  /**
@@ -223,4 +223,4 @@ _TokenDetector_multicallClient = new WeakMap(), _TokenDetector_tokensApiClient =
223
223
  aggregators: metadata?.aggregators,
224
224
  };
225
225
  };
226
- //# sourceMappingURL=TokenDetector.mjs.map
226
+ //# sourceMappingURL=TokenDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenDetector.js","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/services/TokenDetector.ts"],"names":[],"mappings":"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","sourcesContent":["import { StaticIntervalPollingControllerOnly } from '@metamask/polling-controller';\nimport type { CaipAssetType } from '@metamask/utils';\n\nimport { projectLogger, createModuleLogger } from '../../../logger.js';\nimport type { MulticallClient } from '../clients/index.js';\nimport type { TokensApiClient } from '../clients/TokensApiClient.js';\nimport type {\n AccountId,\n Address,\n Asset,\n AssetBalance,\n BalanceOfRequest,\n BalanceOfResponse,\n ChainId,\n TokenDetectionOptions,\n TokenDetectionResult,\n TokenListEntry,\n} from '../types/index.js';\nimport { reduceInBatchesSerially } from '../utils/index.js';\n\nconst log = createModuleLogger(projectLogger, 'TokenDetector');\n\nconst DEFAULT_DETECTION_INTERVAL = 180_000; // 3 minutes\n\nexport type TokenDetectorConfig = {\n /** Function returning whether token detection is enabled (avoids stale value) */\n tokenDetectionEnabled?: () => boolean;\n /** Function returning whether external services are allowed (avoids stale value; default: () => true) */\n useExternalService?: () => boolean;\n defaultBatchSize?: number;\n defaultTimeoutMs?: number;\n /** Polling interval in ms (default: 3 minutes) */\n pollingInterval?: number;\n};\n\n/**\n * Polling input for TokenDetector - identifies what to poll for.\n */\nexport type DetectionPollingInput = {\n /** Chain ID (hex format) */\n chainId: ChainId;\n /** Account ID */\n accountId: AccountId;\n /** Account address */\n accountAddress: Address;\n};\n\n/**\n * Callback type for token detection updates.\n */\nexport type OnDetectionUpdateCallback = (result: TokenDetectionResult) => void;\n\n/**\n * TokenDetector - Detects tokens with non-zero balances via multicall.\n * Fetches the token list from the Tokens API and uses multicall to check balances.\n * Extends StaticIntervalPollingControllerOnly for built-in polling support.\n */\nexport class TokenDetector extends StaticIntervalPollingControllerOnly<DetectionPollingInput>() {\n readonly #multicallClient: MulticallClient;\n\n readonly #tokensApiClient: TokensApiClient;\n\n readonly #config: Required<Omit<TokenDetectorConfig, 'pollingInterval'>>;\n\n readonly #tokenListCache: Map<ChainId, TokenListEntry[]> = new Map();\n\n #onDetectionUpdate: OnDetectionUpdateCallback | undefined;\n\n constructor(\n multicallClient: MulticallClient,\n tokensApiClient: TokensApiClient,\n config?: TokenDetectorConfig,\n ) {\n super();\n this.#multicallClient = multicallClient;\n this.#tokensApiClient = tokensApiClient;\n this.#config = {\n tokenDetectionEnabled:\n config?.tokenDetectionEnabled ?? ((): boolean => true),\n useExternalService: config?.useExternalService ?? ((): boolean => true),\n defaultBatchSize: config?.defaultBatchSize ?? 300,\n defaultTimeoutMs: config?.defaultTimeoutMs ?? 30000,\n };\n\n this.setIntervalLength(\n config?.pollingInterval ?? DEFAULT_DETECTION_INTERVAL,\n );\n }\n\n /**\n * Set the callback to receive detection updates during polling.\n *\n * @param callback - Function to call with detection results.\n */\n setOnDetectionUpdate(callback: OnDetectionUpdateCallback): void {\n this.#onDetectionUpdate = callback;\n }\n\n /**\n * Execute a poll cycle (required by base class).\n * Detects tokens and calls the update callback.\n *\n * @param input - The polling input.\n */\n async _executePoll(input: DetectionPollingInput): Promise<void> {\n try {\n const result = await this.detectTokens(\n input.chainId,\n input.accountId,\n input.accountAddress,\n );\n\n if (this.#onDetectionUpdate && result.detectedAssets.length > 0) {\n this.#onDetectionUpdate(result);\n }\n } catch (error) {\n log('Token detection poll failed', { chainId: input.chainId, error });\n }\n }\n\n /**\n * Fetch the list of token addresses to check for the given chain.\n * Calls the Tokens API and caches the result for metadata lookups.\n *\n * @param chainId - Chain ID in hex format.\n * @returns Array of token contract addresses.\n */\n async getTokensToCheck(chainId: ChainId): Promise<Address[]> {\n const tokenList = await this.#fetchAndCacheTokenList(chainId);\n return tokenList.map((entry) => entry.address as Address);\n }\n\n async detectTokens(\n chainId: ChainId,\n accountId: AccountId,\n accountAddress: Address,\n options?: TokenDetectionOptions,\n ): Promise<TokenDetectionResult> {\n const tokenDetectionEnabled =\n options?.tokenDetectionEnabled ?? this.#config.tokenDetectionEnabled();\n const useExternalService =\n options?.useExternalService ?? this.#config.useExternalService();\n if (!tokenDetectionEnabled || !useExternalService) {\n return {\n chainId,\n accountId,\n accountAddress,\n detectedAssets: [],\n detectedBalances: [],\n zeroBalanceAddresses: [],\n failedAddresses: [],\n timestamp: Date.now(),\n };\n }\n const batchSize = options?.batchSize ?? this.#config.defaultBatchSize;\n const timestamp = Date.now();\n\n const tokensToCheck = await this.getTokensToCheck(chainId);\n\n if (tokensToCheck.length === 0) {\n return {\n chainId,\n accountId,\n accountAddress,\n detectedAssets: [],\n detectedBalances: [],\n zeroBalanceAddresses: [],\n failedAddresses: [],\n timestamp,\n };\n }\n\n const balanceRequests: BalanceOfRequest[] = tokensToCheck.map(\n (tokenAddress) => ({\n tokenAddress,\n accountAddress,\n }),\n );\n\n type DetectionAccumulator = {\n detectedAssets: Asset[];\n detectedBalances: AssetBalance[];\n zeroBalanceAddresses: Address[];\n failedAddresses: Address[];\n };\n\n const result = await reduceInBatchesSerially<\n BalanceOfRequest,\n DetectionAccumulator\n >({\n values: balanceRequests,\n batchSize,\n initialResult: {\n detectedAssets: [],\n detectedBalances: [],\n zeroBalanceAddresses: [],\n failedAddresses: [],\n },\n eachBatch: async (workingResult, batch) => {\n const responses = await this.#multicallClient.batchBalanceOf(\n chainId,\n batch,\n );\n\n return this.#processBalanceResponses(\n responses,\n workingResult as DetectionAccumulator,\n chainId,\n accountId,\n timestamp,\n );\n },\n });\n\n return {\n chainId,\n accountId,\n accountAddress,\n ...result,\n timestamp,\n };\n }\n\n async #fetchAndCacheTokenList(chainId: ChainId): Promise<TokenListEntry[]> {\n try {\n const list = await this.#tokensApiClient.fetchTokenList(chainId);\n this.#tokenListCache.set(chainId, list);\n return list;\n } catch (error) {\n const cached = this.#tokenListCache.get(chainId);\n log('Failed to fetch token list; using stale cache', {\n chainId,\n cachedCount: cached?.length ?? 0,\n error,\n });\n return cached ?? [];\n }\n }\n\n #processBalanceResponses(\n responses: BalanceOfResponse[],\n accumulator: {\n detectedAssets: Asset[];\n detectedBalances: AssetBalance[];\n zeroBalanceAddresses: Address[];\n failedAddresses: Address[];\n },\n chainId: ChainId,\n accountId: AccountId,\n timestamp: number,\n ): {\n detectedAssets: Asset[];\n detectedBalances: AssetBalance[];\n zeroBalanceAddresses: Address[];\n failedAddresses: Address[];\n } {\n const {\n detectedAssets,\n detectedBalances,\n zeroBalanceAddresses,\n failedAddresses,\n } = accumulator;\n\n for (const response of responses) {\n if (!response.success) {\n failedAddresses.push(response.tokenAddress);\n continue;\n }\n\n const balance = response.balance ?? '0';\n\n if (balance === '0' || balance === '') {\n zeroBalanceAddresses.push(response.tokenAddress);\n continue;\n }\n\n const tokenMetadata = this.#getTokenMetadata(\n chainId,\n response.tokenAddress,\n );\n\n const asset = this.#createAsset(\n chainId,\n response.tokenAddress,\n tokenMetadata,\n );\n detectedAssets.push(asset);\n\n if (tokenMetadata?.decimals === undefined) {\n continue;\n }\n\n const { decimals } = tokenMetadata;\n const formattedBalance = this.#formatBalance(balance, decimals);\n detectedBalances.push({\n assetId: asset.assetId,\n accountId,\n chainId,\n balance,\n formattedBalance,\n decimals,\n timestamp,\n });\n }\n\n return {\n detectedAssets,\n detectedBalances,\n zeroBalanceAddresses,\n failedAddresses,\n };\n }\n\n #formatBalance(rawBalance: string, decimals: number): string {\n try {\n const balanceBigInt = BigInt(rawBalance);\n const divisor = BigInt(10 ** decimals);\n\n const integerPart = balanceBigInt / divisor;\n const remainder = balanceBigInt % divisor;\n const fractionalStr = remainder.toString().padStart(decimals, '0');\n const trimmedFractional = fractionalStr.replace(/0+$/u, '');\n\n if (trimmedFractional === '') {\n return integerPart.toString();\n }\n\n return `${integerPart}.${trimmedFractional}`;\n } catch {\n return rawBalance;\n }\n }\n\n #getTokenMetadata(\n chainId: ChainId,\n tokenAddress: Address,\n ): TokenListEntry | undefined {\n const list = this.#tokenListCache.get(chainId) ?? [];\n const lowerAddress = tokenAddress.toLowerCase();\n\n const exact = list.find((entry) => entry.address === tokenAddress);\n if (exact) {\n return exact;\n }\n\n return list.find((entry) => entry.address.toLowerCase() === lowerAddress);\n }\n\n #createAsset(\n chainId: ChainId,\n tokenAddress: Address,\n metadata: TokenListEntry | undefined,\n ): Asset {\n const chainIdDecimal = parseInt(chainId, 16);\n\n const assetId =\n `eip155:${chainIdDecimal}/erc20:${tokenAddress.toLowerCase()}` as CaipAssetType;\n\n return {\n assetId,\n chainId,\n address: tokenAddress,\n type: 'erc20',\n symbol: metadata?.symbol,\n name: metadata?.name,\n decimals: metadata?.decimals,\n image: metadata?.iconUrl,\n isNative: false,\n aggregators: metadata?.aggregators,\n };\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- export { TokenDetector, type TokenDetectorConfig, type DetectionPollingInput, type OnDetectionUpdateCallback, } from "./TokenDetector.cjs";
2
- export { BalanceFetcher, type BalanceFetcherConfig, type BalanceFetcherMessenger, type BalancePollingInput, type OnBalanceUpdateCallback, } from "./BalanceFetcher.cjs";
3
- export { StakedBalanceFetcher, getSupportedStakingChainIds, getStakingContractAddress, isStakingContractAssetId, type StakedBalanceFetcherConfig, type StakedBalancePollingInput, type StakedBalanceFetchResult, type OnStakedBalanceUpdateCallback, } from "./StakedBalanceFetcher.cjs";
4
- //# sourceMappingURL=index.d.cts.map
1
+ export { TokenDetector, type TokenDetectorConfig, type DetectionPollingInput, type OnDetectionUpdateCallback, } from './TokenDetector.js';
2
+ export { BalanceFetcher, type BalanceFetcherConfig, type BalanceFetcherMessenger, type BalancePollingInput, type OnBalanceUpdateCallback, } from './BalanceFetcher.js';
3
+ export { StakedBalanceFetcher, getSupportedStakingChainIds, getStakingContractAddress, isStakingContractAssetId, type StakedBalanceFetcherConfig, type StakedBalancePollingInput, type StakedBalanceFetchResult, type OnStakedBalanceUpdateCallback, } from './StakedBalanceFetcher.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,GAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,GACnC,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { TokenDetector, } from './TokenDetector.js';
2
+ export { BalanceFetcher, } from './BalanceFetcher.js';
3
+ export { StakedBalanceFetcher, getSupportedStakingChainIds, getStakingContractAddress, isStakingContractAssetId, } from './StakedBalanceFetcher.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,GAId,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,GAKf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,GAKzB,MAAM,2BAA2B,CAAC","sourcesContent":["export {\n TokenDetector,\n type TokenDetectorConfig,\n type DetectionPollingInput,\n type OnDetectionUpdateCallback,\n} from './TokenDetector.js';\nexport {\n BalanceFetcher,\n type BalanceFetcherConfig,\n type BalanceFetcherMessenger,\n type BalancePollingInput,\n type OnBalanceUpdateCallback,\n} from './BalanceFetcher.js';\nexport {\n StakedBalanceFetcher,\n getSupportedStakingChainIds,\n getStakingContractAddress,\n isStakingContractAssetId,\n type StakedBalanceFetcherConfig,\n type StakedBalancePollingInput,\n type StakedBalanceFetchResult,\n type OnStakedBalanceUpdateCallback,\n} from './StakedBalanceFetcher.js';\n"]}
@@ -1,5 +1,5 @@
1
- import type { CaipAssetType } from "@metamask/utils";
2
- import type { AccountId, Address, AssetType, ChainId } from "./core.cjs";
1
+ import type { CaipAssetType } from '@metamask/utils';
2
+ import type { AccountId, Address, AssetType, ChainId } from './core.js';
3
3
  /**
4
4
  * Core asset definition.
5
5
  */
@@ -50,4 +50,4 @@ export type AssetBalance = {
50
50
  /** Timestamp when balance was fetched */
51
51
  timestamp: number;
52
52
  };
53
- //# sourceMappingURL=assets.d.cts.map
53
+ //# sourceMappingURL=assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/types/assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,+BAA+B;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,+BAA+B;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,wBAAwB;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,gBAAgB,EAAE,MAAM,CAAC;IACzB,0GAA0G;IAC1G,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/types/assets.ts"],"names":[],"mappings":"","sourcesContent":["import type { CaipAssetType } from '@metamask/utils';\n\nimport type { AccountId, Address, AssetType, ChainId } from './core.js';\n\n/**\n * Core asset definition.\n */\nexport type Asset = {\n /** CAIP-19 asset identifier */\n assetId: CaipAssetType;\n /** Chain ID in hex format */\n chainId: ChainId;\n /** Contract address (zero address for native) */\n address: Address;\n /** Asset type */\n type: AssetType;\n /** Token symbol (e.g., \"ETH\", \"USDC\") */\n symbol?: string;\n /** Token name (e.g., \"Ethereum\", \"USD Coin\") */\n name?: string;\n /** Token decimals */\n decimals?: number;\n /** Logo image URL */\n image?: string;\n /** Whether this is the chain's native token */\n isNative: boolean;\n /** Spam detection flag */\n isSpam?: boolean;\n /** Verification status */\n verified?: boolean;\n /** Token list sources */\n aggregators?: string[];\n};\n\n/**\n * Asset balance for a specific account.\n */\nexport type AssetBalance = {\n /** CAIP-19 asset identifier */\n assetId: CaipAssetType;\n /** Account ID (UUID) */\n accountId: AccountId;\n /** Chain ID in hex format */\n chainId: ChainId;\n /** Raw balance as string (wei/smallest unit) */\n balance: string;\n /** Human-readable balance (balance / 10^decimals) */\n formattedBalance: string;\n /** Token decimals used for formatting; omitted when unknown (raw `balance` only; resolved downstream). */\n decimals?: number;\n /** Block number when balance was fetched */\n blockNumber?: number;\n /** Timestamp when balance was fetched */\n timestamp: number;\n};\n"]}
@@ -1,4 +1,4 @@
1
- import type { ChainId } from "./core.cjs";
1
+ import type { ChainId } from './core.js';
2
2
  /**
3
3
  * Minimal provider interface for RPC calls.
4
4
  */
@@ -15,4 +15,4 @@ export type Provider = {
15
15
  * Function to get provider for a specific chain.
16
16
  */
17
17
  export type GetProviderFunction = (chainId: ChainId) => Provider;
18
- //# sourceMappingURL=config.d.cts.map
18
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,CAAC,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9D,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/types/config.ts"],"names":[],"mappings":"","sourcesContent":["import type { ChainId } from './core.js';\n\n/**\n * Minimal provider interface for RPC calls.\n */\nexport type Provider = {\n call(transaction: { to: string; data: string }): Promise<string>;\n getBalance(address: string): Promise<{ toString(): string }>;\n};\n\n/**\n * Function to get provider for a specific chain.\n */\nexport type GetProviderFunction = (chainId: ChainId) => Provider;\n"]}
@@ -1,4 +1,4 @@
1
- import type { CaipAssetType, Hex } from "@metamask/utils";
1
+ import type { CaipAssetType, Hex } from '@metamask/utils';
2
2
  export type { CaipAssetType };
3
3
  /**
4
4
  * Account ID - UUID from InternalAccount.id
@@ -16,4 +16,4 @@ export type Address = Hex;
16
16
  * Asset type identifier for categorization.
17
17
  */
18
18
  export type AssetType = 'native' | 'erc20' | 'erc721' | 'erc1155';
19
- //# sourceMappingURL=core.d.cts.map
19
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/types/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAG1D,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/types/core.ts"],"names":[],"mappings":"","sourcesContent":["import type { CaipAssetType, Hex } from '@metamask/utils';\n\n// Re-export for convenience\nexport type { CaipAssetType };\n\n/**\n * Account ID - UUID from InternalAccount.id\n */\nexport type AccountId = string;\n\n/**\n * Chain ID in hex format (e.g., \"0x1\" for Ethereum mainnet)\n */\nexport type ChainId = Hex;\n\n/**\n * Token/Contract address in hex format\n */\nexport type Address = Hex;\n\n/**\n * Asset type identifier for categorization.\n */\nexport type AssetType = 'native' | 'erc20' | 'erc721' | 'erc1155';\n"]}
@@ -0,0 +1,7 @@
1
+ export type { AccountId, Address, AssetType, CaipAssetType, ChainId, } from './core.js';
2
+ export type { Asset, AssetBalance } from './assets.js';
3
+ export type { AssetsBalanceState, TokenChainsCacheEntry, TokenListEntry, TokenListState, } from './state.js';
4
+ export type { GetProviderFunction, Provider } from './config.js';
5
+ export type { BalanceOfRequest, BalanceOfResponse } from './multicall.js';
6
+ export type { AssetFetchEntry, BalanceFetchResult, TokenDetectionOptions, TokenDetectionResult, } from './services.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/types/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,SAAS,EACT,OAAO,EACP,SAAS,EACT,aAAa,EACb,OAAO,GACR,MAAM,WAAW,CAAC;AAGnB,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGvD,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGjE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAG1E,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/types/index.ts"],"names":[],"mappings":"","sourcesContent":["// Core types\nexport type {\n AccountId,\n Address,\n AssetType,\n CaipAssetType,\n ChainId,\n} from './core.js';\n\n// Asset types\nexport type { Asset, AssetBalance } from './assets.js';\n\n// State types\nexport type {\n AssetsBalanceState,\n TokenChainsCacheEntry,\n TokenListEntry,\n TokenListState,\n} from './state.js';\n\n// Config types\nexport type { GetProviderFunction, Provider } from './config.js';\n\n// Multicall types\nexport type { BalanceOfRequest, BalanceOfResponse } from './multicall.js';\n\n// Service types\nexport type {\n AssetFetchEntry,\n BalanceFetchResult,\n TokenDetectionOptions,\n TokenDetectionResult,\n} from './services.js';\n"]}
@@ -1,4 +1,4 @@
1
- import type { Address } from "./core.cjs";
1
+ import type { Address } from './core.js';
2
2
  /**
3
3
  * Balance request for batch balance fetching.
4
4
  */
@@ -21,4 +21,4 @@ export type BalanceOfResponse = {
21
21
  /** Balance as string (raw value) */
22
22
  balance?: string;
23
23
  };
24
- //# sourceMappingURL=multicall.d.cts.map
24
+ //# sourceMappingURL=multicall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/types/multicall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,uDAAuD;IACvD,YAAY,EAAE,OAAO,CAAC;IACtB,2CAA2C;IAC3C,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,6BAA6B;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,sBAAsB;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=multicall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multicall.js","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/types/multicall.ts"],"names":[],"mappings":"","sourcesContent":["import type { Address } from './core.js';\n\n/**\n * Balance request for batch balance fetching.\n */\nexport type BalanceOfRequest = {\n /** Token contract address (zero address for native) */\n tokenAddress: Address;\n /** Account address to check balance for */\n accountAddress: Address;\n};\n\n/**\n * Balance response from batch balance fetching.\n */\nexport type BalanceOfResponse = {\n /** Token contract address */\n tokenAddress: Address;\n /** Account address */\n accountAddress: Address;\n /** Whether the call succeeded */\n success: boolean;\n /** Balance as string (raw value) */\n balance?: string;\n};\n"]}
@@ -1,5 +1,5 @@
1
- import type { Asset, AssetBalance } from "./assets.cjs";
2
- import type { AccountId, Address, CaipAssetType, ChainId } from "./core.cjs";
1
+ import type { Asset, AssetBalance } from './assets.js';
2
+ import type { AccountId, Address, CaipAssetType, ChainId } from './core.js';
3
3
  /**
4
4
  * Token detection result.
5
5
  */
@@ -67,4 +67,4 @@ export type AssetFetchEntry = {
67
67
  /** Token decimals (omit when unknown — balance fetcher returns raw balance for RpcDataSource to resolve). */
68
68
  decimals?: number;
69
69
  };
70
- //# sourceMappingURL=services.d.cts.map
70
+ //# sourceMappingURL=services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/types/services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,eAAe;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,yCAAyC;IACzC,cAAc,EAAE,OAAO,CAAC;IACxB,mDAAmD;IACnD,cAAc,EAAE,KAAK,EAAE,CAAC;IACxB,yCAAyC;IACzC,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,oDAAoD;IACpD,oBAAoB,EAAE,OAAO,EAAE,CAAC;IAChC,uCAAuC;IACvC,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,yCAAyC;IACzC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,8FAA8F;IAC9F,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,eAAe;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,sBAAsB;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,uBAAuB;IACvB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,2CAA2C;IAC3C,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,oCAAoC;IACpC,OAAO,EAAE,aAAa,CAAC;IACvB,gHAAgH;IAChH,OAAO,EAAE,OAAO,CAAC;IACjB,6GAA6G;IAC7G,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/types/services.ts"],"names":[],"mappings":"","sourcesContent":["import type { Asset, AssetBalance } from './assets.js';\nimport type { AccountId, Address, CaipAssetType, ChainId } from './core.js';\n\n/**\n * Token detection result.\n */\nexport type TokenDetectionResult = {\n /** Chain ID */\n chainId: ChainId;\n /** Account ID */\n accountId: AccountId;\n /** Account address used for detection */\n accountAddress: Address;\n /** Newly detected tokens with non-zero balances */\n detectedAssets: Asset[];\n /** Balances for newly detected tokens */\n detectedBalances: AssetBalance[];\n /** Tokens that were checked but had zero balance */\n zeroBalanceAddresses: Address[];\n /** Tokens that failed to be checked */\n failedAddresses: Address[];\n /** Timestamp of detection */\n timestamp: number;\n};\n\n/**\n * Token detection options.\n */\nexport type TokenDetectionOptions = {\n /** Whether token detection is enabled */\n tokenDetectionEnabled?: boolean;\n /** Whether external services (e.g. token list API) are allowed; detection stops when false */\n useExternalService?: boolean;\n /** Maximum number of tokens to check per batch */\n batchSize?: number;\n /** Timeout for detection in milliseconds */\n timeout?: number;\n};\n\n/**\n * Balance fetch result.\n */\nexport type BalanceFetchResult = {\n /** Chain ID */\n chainId: ChainId;\n /** Account ID */\n accountId: AccountId;\n /** Account address */\n accountAddress: Address;\n /** Fetched balances */\n balances: AssetBalance[];\n /** Token addresses that failed to fetch */\n failedAddresses: Address[];\n /** Block number when balances were fetched */\n blockNumber?: number;\n /** Timestamp of fetch */\n timestamp: number;\n};\n\n/**\n * Entry describing a single asset to fetch a balance for.\n * Bundles the CAIP-19 asset ID with the on-chain address (zero address for\n * native assets even when the chain has a native asset with a non-zero address)\n * and optional metadata\n */\nexport type AssetFetchEntry = {\n /** CAIP-19 asset type identifier */\n assetId: CaipAssetType;\n /** On-chain contract address (zero address for native assets regardless of the chain's native asset address) */\n address: Address;\n /** Token decimals (omit when unknown — balance fetcher returns raw balance for RpcDataSource to resolve). */\n decimals?: number;\n};\n"]}
@@ -1,4 +1,4 @@
1
- import type { ChainId } from "./core.cjs";
1
+ import type { ChainId } from './core.js';
2
2
  /**
3
3
  * Single token entry from token list.
4
4
  */
@@ -55,4 +55,4 @@ export type AssetsBalanceState = {
55
55
  */
56
56
  customAssets?: Record<string, string[]>;
57
57
  };
58
- //# sourceMappingURL=state.d.cts.map
58
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/types/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACtC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;CAC3D,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACjE;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACzC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/types/state.ts"],"names":[],"mappings":"","sourcesContent":["import type { ChainId } from './core.js';\n\n/**\n * Single token entry from token list.\n */\nexport type TokenListEntry = {\n /** Contract address */\n address: string;\n /** Token symbol */\n symbol: string;\n /** Token name */\n name: string;\n /** Token decimals */\n decimals: number;\n /** Logo URL */\n iconUrl?: string;\n /** Aggregator sources */\n aggregators?: string[];\n /** Occurrence count in lists */\n occurrences?: number;\n};\n\n/**\n * Cache entry for a chain's token list.\n */\nexport type TokenChainsCacheEntry = {\n /** Timestamp when the cache was last updated */\n timestamp: number;\n /** Token list data: address -> TokenListEntry */\n data: Record<string, TokenListEntry>;\n};\n\n/**\n * Token list state shape (from TokenListController).\n */\nexport type TokenListState = {\n /** Map of chain ID to token list cache entry */\n tokensChainsCache: Record<ChainId, TokenChainsCacheEntry>;\n};\n\n/**\n * Single asset balance entry.\n */\nexport type AssetBalanceEntry = {\n /** Human-readable balance amount */\n amount: string;\n};\n\n/**\n * Assets balance state shape (from AssetsController).\n * Maps accountId -> assetId (CAIP-19) -> balance entry.\n */\nexport type AssetsBalanceState = {\n /** Balance data per account: accountId -> assetId -> balance */\n assetsBalance: Record<string, Record<string, AssetBalanceEntry>>;\n /**\n * User-added custom assets per account: accountId -> CAIP-19 asset IDs.\n * Used to ensure RPC polling refreshes custom assets even when they have\n * no entry in `assetsBalance` yet (e.g. zero balance, first fetch failed).\n */\n customAssets?: Record<string, string[]>;\n};\n"]}
@@ -1,3 +1,3 @@
1
- import { CaipChainId } from "@metamask/utils";
1
+ import { CaipChainId } from '@metamask/utils';
2
2
  export declare function shouldSkipNativeForCaipChainId(caipChainId: CaipChainId): boolean;
3
- //# sourceMappingURL=assets.d.cts.map
3
+ //# sourceMappingURL=assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/utils/assets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,WAAW,GACvB,OAAO,CAIT"}
@@ -1,5 +1,5 @@
1
- import { CHAIN_IDS_WITH_NO_NATIVE_TOKEN } from "@metamask/controller-utils";
1
+ import { CHAIN_IDS_WITH_NO_NATIVE_TOKEN } from '@metamask/controller-utils';
2
2
  export function shouldSkipNativeForCaipChainId(caipChainId) {
3
3
  return CHAIN_IDS_WITH_NO_NATIVE_TOKEN.includes(caipChainId);
4
4
  }
5
- //# sourceMappingURL=assets.mjs.map
5
+ //# sourceMappingURL=assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/utils/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAG5E,MAAM,UAAU,8BAA8B,CAC5C,WAAwB;IAExB,OAAQ,8BAAoD,CAAC,QAAQ,CACnE,WAAW,CACZ,CAAC;AACJ,CAAC","sourcesContent":["import { CHAIN_IDS_WITH_NO_NATIVE_TOKEN } from '@metamask/controller-utils';\nimport { CaipChainId } from '@metamask/utils';\n\nexport function shouldSkipNativeForCaipChainId(\n caipChainId: CaipChainId,\n): boolean {\n return (CHAIN_IDS_WITH_NO_NATIVE_TOKEN as readonly string[]).includes(\n caipChainId,\n );\n}\n"]}
@@ -25,4 +25,4 @@ export declare function reduceInBatchesSerially<Value, Result>({ values, batchSi
25
25
  eachBatch: (workingResult: Partial<Result>, batch: Value[], index: number) => Partial<Result> | Promise<Partial<Result>>;
26
26
  initialResult: Partial<Result>;
27
27
  }): Promise<Result>;
28
- //# sourceMappingURL=batch.d.mts.map
28
+ //# sourceMappingURL=batch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/utils/batch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAC5C,MAAM,EAAE,YAAY,EAAE,EACtB,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACnC,YAAY,EAAE,EAAE,CAUlB;AAED;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,EAC3D,MAAM,EACN,SAAS,EACT,SAAS,EACT,aAAa,GACd,EAAE;IACD,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,CACT,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,EAC9B,KAAK,EAAE,KAAK,EAAE,EACd,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CAChC,GAAG,OAAO,CAAC,MAAM,CAAC,CAUlB"}
@@ -37,4 +37,4 @@ export async function reduceInBatchesSerially({ values, batchSize, eachBatch, in
37
37
  const finalResult = workingResult;
38
38
  return finalResult;
39
39
  }
40
- //# sourceMappingURL=batch.mjs.map
40
+ //# sourceMappingURL=batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/utils/batch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAsB,EACtB,EAAE,SAAS,EAAyB;IAEpC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAgB,EAC3D,MAAM,EACN,SAAS,EACT,SAAS,EACT,aAAa,GAUd;IACC,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,IAAI,aAAa,GAAG,aAAa,CAAC;IAClC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/C,aAAa,GAAG,MAAM,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IACD,6EAA6E;IAC7E,6BAA6B;IAC7B,MAAM,WAAW,GAAG,aAAuB,CAAC;IAC5C,OAAO,WAAW,CAAC;AACrB,CAAC","sourcesContent":["/**\n * Divides an array into batches of specified size.\n *\n * @param values - Array of values to divide.\n * @param options - Options containing batchSize.\n * @param options.batchSize - The size of each batch.\n * @returns Array of batches.\n */\nexport function divideIntoBatches<ArrayElement>(\n values: ArrayElement[],\n { batchSize }: { batchSize: number },\n): ArrayElement[][] {\n if (batchSize <= 0) {\n throw new Error('batchSize must be greater than 0');\n }\n\n const batches: ArrayElement[][] = [];\n for (let i = 0; i < values.length; i += batchSize) {\n batches.push(values.slice(i, i + batchSize));\n }\n return batches;\n}\n\n/**\n * Reduces an array in serial batches, applying an async function to each batch.\n *\n * @param options - The options for batch reduction.\n * @param options.values - Array of values to process.\n * @param options.batchSize - Size of each batch.\n * @param options.eachBatch - Async function to apply to each batch.\n * @param options.initialResult - Initial result value.\n * @returns The final reduced result.\n */\nexport async function reduceInBatchesSerially<Value, Result>({\n values,\n batchSize,\n eachBatch,\n initialResult,\n}: {\n values: Value[];\n batchSize: number;\n eachBatch: (\n workingResult: Partial<Result>,\n batch: Value[],\n index: number,\n ) => Partial<Result> | Promise<Partial<Result>>;\n initialResult: Partial<Result>;\n}): Promise<Result> {\n const batches = divideIntoBatches(values, { batchSize });\n let workingResult = initialResult;\n for (const [index, batch] of batches.entries()) {\n workingResult = await eachBatch(workingResult, batch, index);\n }\n // There's no way around this — we have to assume that in the end, the result\n // matches the intended type.\n const finalResult = workingResult as Result;\n return finalResult;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ export { divideIntoBatches, reduceInBatchesSerially } from './batch.js';
2
+ export { chainIdToHex, weiToHumanReadable } from './parsing.js';
3
+ export { getStakingContractAddress, getSupportedStakingChainIds, isStakingContractAssetId, STAKING_CONTRACT_ADDRESS_BY_CHAINID, } from './staking-contracts.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,EACxB,mCAAmC,GACpC,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { divideIntoBatches, reduceInBatchesSerially } from './batch.js';
2
+ export { chainIdToHex, weiToHumanReadable } from './parsing.js';
3
+ export { getStakingContractAddress, getSupportedStakingChainIds, isStakingContractAssetId, STAKING_CONTRACT_ADDRESS_BY_CHAINID, } from './staking-contracts.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,EACxB,mCAAmC,GACpC,MAAM,wBAAwB,CAAC","sourcesContent":["export { divideIntoBatches, reduceInBatchesSerially } from './batch.js';\nexport { chainIdToHex, weiToHumanReadable } from './parsing.js';\nexport {\n getStakingContractAddress,\n getSupportedStakingChainIds,\n isStakingContractAssetId,\n STAKING_CONTRACT_ADDRESS_BY_CHAINID,\n} from './staking-contracts.js';\n"]}
@@ -1,5 +1,5 @@
1
- import type { CaipChainId, Hex } from "@metamask/utils";
2
- import type { ChainId } from "../types/index.mjs";
1
+ import type { CaipChainId, Hex } from '@metamask/utils';
2
+ import type { ChainId } from '../types/index.js';
3
3
  /**
4
4
  * Convert wei to human-readable amount with decimals, trim trailing zeros.
5
5
  * Uses BigNumber for precision.
@@ -22,4 +22,4 @@ export declare function weiToHumanReadable(wei: string | bigint, decimals: numbe
22
22
  * @returns Hex chain ID for contract map lookup.
23
23
  */
24
24
  export declare function chainIdToHex(chainId: ChainId | CaipChainId): Hex;
25
- //# sourceMappingURL=parsing.d.mts.map
25
+ //# sourceMappingURL=parsing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/utils/parsing.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAKR;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,GAAG,GAAG,CAShE"}
@@ -1,5 +1,5 @@
1
- import { isCaipChainId, isStrictHexString, numberToHex, parseCaipChainId } from "@metamask/utils";
2
- import BigNumberJS from "bignumber.js";
1
+ import { isCaipChainId, isStrictHexString, numberToHex, parseCaipChainId, } from '@metamask/utils';
2
+ import { BigNumber as BigNumberJS } from 'bignumber.js';
3
3
  /**
4
4
  * Convert wei to human-readable amount with decimals, trim trailing zeros.
5
5
  * Uses BigNumber for precision.
@@ -36,4 +36,4 @@ export function chainIdToHex(chainId) {
36
36
  }
37
37
  return chainId;
38
38
  }
39
- //# sourceMappingURL=parsing.mjs.map
39
+ //# sourceMappingURL=parsing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsing.js","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/utils/parsing.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AAIxD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAoB,EACpB,QAAgB;IAEhB,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9D,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC7C,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,OAA8B;IACzD,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import {\n isCaipChainId,\n isStrictHexString,\n numberToHex,\n parseCaipChainId,\n} from '@metamask/utils';\nimport type { CaipChainId, Hex } from '@metamask/utils';\nimport { BigNumber as BigNumberJS } from 'bignumber.js';\n\nimport type { ChainId } from '../types/index.js';\n\n/**\n * Convert wei to human-readable amount with decimals, trim trailing zeros.\n * Uses BigNumber for precision.\n *\n * Note: `.shiftedBy(-decimals).toFixed()` (no args) rounds to DECIMAL_PLACES (0\n * by default in bignumber.js), producing integers (e.g. 1.5 ETH → \"2\").\n * We use `.toFixed(decimals)` to preserve fractional precision, then trim\n * trailing zeros so the result is e.g. \"1.5\" instead of \"1.500000000000000000\".\n *\n * @param wei - Balance in wei as bigint or decimal string.\n * @param decimals - Token decimals (e.g. 18).\n * @returns Human-readable amount string (e.g. \"1.5\").\n */\nexport function weiToHumanReadable(\n wei: string | bigint,\n decimals: number,\n): string {\n const weiStr = typeof wei === 'bigint' ? wei.toString() : wei;\n const fixed = new BigNumberJS(weiStr).shiftedBy(-decimals).toFixed(decimals);\n const trimmed = fixed.replace(/\\.?0+$/u, '');\n return trimmed === '' ? '0' : trimmed;\n}\n\n/**\n * Normalize chain ID to hex for contract lookup (e.g. eip155:1 -> 0x1).\n * Uses @metamask/utils for CAIP parsing.\n *\n * @param chainId - CAIP-2 or hex chain ID.\n * @returns Hex chain ID for contract map lookup.\n */\nexport function chainIdToHex(chainId: ChainId | CaipChainId): Hex {\n if (isStrictHexString(chainId)) {\n return chainId;\n }\n if (isCaipChainId(chainId)) {\n const { reference } = parseCaipChainId(chainId);\n return numberToHex(parseInt(reference, 10));\n }\n return chainId;\n}\n"]}
@@ -22,4 +22,4 @@ export declare function getStakingContractAddress(chainId: string): string | und
22
22
  * @returns True if the asset is a staking contract.
23
23
  */
24
24
  export declare function isStakingContractAssetId(assetId: string): boolean;
25
- //# sourceMappingURL=staking-contracts.d.cts.map
25
+ //# sourceMappingURL=staking-contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staking-contracts.d.ts","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/utils/staking-contracts.ts"],"names":[],"mappings":"AAUA,uEAAuE;AACvE,eAAO,MAAM,mCAAmC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGtE,CAAC;AAmBF;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG7E;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAajE"}
@@ -1,5 +1,5 @@
1
- import { convertHexToDecimal } from "@metamask/controller-utils";
2
- import { isCaipAssetType, isCaipChainId, isStrictHexString, KnownCaipNamespace, parseCaipAssetType, toCaipChainId } from "@metamask/utils";
1
+ import { convertHexToDecimal } from '@metamask/controller-utils';
2
+ import { isCaipAssetType, isCaipChainId, isStrictHexString, KnownCaipNamespace, parseCaipAssetType, toCaipChainId, } from '@metamask/utils';
3
3
  /** Staking contract addresses by CAIP-2 chain ID (e.g. "eip155:1"). */
4
4
  export const STAKING_CONTRACT_ADDRESS_BY_CHAINID = {
5
5
  'eip155:1': '0x4fef9d741011476750a243ac70b9789a63dd47df', // Mainnet
@@ -59,4 +59,4 @@ export function isStakingContractAssetId(assetId) {
59
59
  const stakingAddress = getStakingContractAddress(parsed.chainId)?.toLowerCase();
60
60
  return stakingAddress !== undefined && address === stakingAddress;
61
61
  }
62
- //# sourceMappingURL=staking-contracts.mjs.map
62
+ //# sourceMappingURL=staking-contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staking-contracts.js","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/utils/staking-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EACL,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,uEAAuE;AACvE,MAAM,CAAC,MAAM,mCAAmC,GAA2B;IACzE,UAAU,EAAE,4CAA4C,EAAE,UAAU;IACpE,eAAe,EAAE,4CAA4C,EAAE,kBAAkB;CAClF,CAAC;AAEF;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC;QAC1C,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;QACzC,CAAC,CAAC,OAAO,CAAC;IACZ,OAAO,aAAa,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,mCAAmC,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,cAAc,KAAK,OAAO,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;IACpD,MAAM,cAAc,GAAG,yBAAyB,CAC9C,MAAM,CAAC,OAAO,CACf,EAAE,WAAW,EAAE,CAAC;IACjB,OAAO,cAAc,KAAK,SAAS,IAAI,OAAO,KAAK,cAAc,CAAC;AACpE,CAAC","sourcesContent":["import { convertHexToDecimal } from '@metamask/controller-utils';\nimport {\n isCaipAssetType,\n isCaipChainId,\n isStrictHexString,\n KnownCaipNamespace,\n parseCaipAssetType,\n toCaipChainId,\n} from '@metamask/utils';\n\n/** Staking contract addresses by CAIP-2 chain ID (e.g. \"eip155:1\"). */\nexport const STAKING_CONTRACT_ADDRESS_BY_CHAINID: Record<string, string> = {\n 'eip155:1': '0x4fef9d741011476750a243ac70b9789a63dd47df', // Mainnet\n 'eip155:560048': '0xe96ac18cfe5a7af8fe1fe7bc37ff110d88bc67ff', // Hoodi (0x88bb0)\n};\n\n/**\n * Normalize chain ID to CAIP-2 for lookup (e.g. \"0x1\" -> \"eip155:1\").\n * Uses @metamask/utils for CAIP parsing.\n *\n * @param chainId - Hex chain ID (e.g. \"0x1\") or CAIP-2 (e.g. \"eip155:1\").\n * @returns CAIP-2 chain ID.\n */\nfunction toCaip2ChainId(chainId: string): string {\n if (isCaipChainId(chainId)) {\n return chainId;\n }\n const reference = isStrictHexString(chainId)\n ? convertHexToDecimal(chainId).toString()\n : chainId;\n return toCaipChainId(KnownCaipNamespace.Eip155, reference);\n}\n\n/**\n * Returns the set of CAIP-2 chain IDs that have a known staking contract.\n *\n * @returns Array of CAIP-2 chain IDs.\n */\nexport function getSupportedStakingChainIds(): string[] {\n return Object.keys(STAKING_CONTRACT_ADDRESS_BY_CHAINID);\n}\n\n/**\n * Returns the staking contract address for a chain, or undefined if not supported.\n *\n * @param chainId - Hex chain ID (e.g. \"0x1\") or CAIP-2 (e.g. \"eip155:1\").\n * @returns Contract address (checksummed as stored) or undefined.\n */\nexport function getStakingContractAddress(chainId: string): string | undefined {\n const caip2 = toCaip2ChainId(chainId);\n return STAKING_CONTRACT_ADDRESS_BY_CHAINID[caip2];\n}\n\n/**\n * Returns true if the CAIP-19 asset ID is for a known staking contract.\n * Used to skip fetching metadata for staking contracts from the tokens API.\n * Uses @metamask/utils parseCaipAssetType for CAIP-19 parsing.\n *\n * @param assetId - CAIP-19 asset ID (e.g. \"eip155:1/erc20:0x4fef9d741011476750a243ac70b9789a63dd47df\").\n * @returns True if the asset is a staking contract.\n */\nexport function isStakingContractAssetId(assetId: string): boolean {\n if (!isCaipAssetType(assetId)) {\n return false;\n }\n const parsed = parseCaipAssetType(assetId);\n if (parsed.assetNamespace !== 'erc20') {\n return false;\n }\n const address = parsed.assetReference.toLowerCase();\n const stakingAddress = getStakingContractAddress(\n parsed.chainId,\n )?.toLowerCase();\n return stakingAddress !== undefined && address === stakingAddress;\n}\n"]}
@@ -1,9 +1,9 @@
1
- export { AbstractDataSource, type DataSourceState, type SubscriptionRequest, } from "./AbstractDataSource.cjs";
2
- export { AccountsApiDataSource, type AccountsApiDataSourceConfig, type AccountsApiDataSourceOptions, type AccountsApiDataSourceState, type AccountsApiDataSourceAllowedActions, } from "./AccountsApiDataSource.cjs";
3
- export { AccountActivityDataSource, createAccountActivityDataSource, type AccountActivityDataSourceOptions, type AccountActivityDataSourceState, type AccountActivityDataSourceAllowedEvents, } from "./AccountActivityDataSource.cjs";
4
- export { RpcDataSource, createRpcDataSource, type RpcDataSourceConfig, type RpcDataSourceOptions, type RpcDataSourceState, type RpcDataSourceAllowedActions, type RpcDataSourceAllowedEvents, type ChainStatus, } from "./RpcDataSource.cjs";
5
- export { TokenDataSource, type TokenDataSourceOptions, type TokenDataSourceAllowedActions, } from "./TokenDataSource.cjs";
6
- export { PriceDataSource, type PriceDataSourceConfig, type PriceDataSourceOptions, } from "./PriceDataSource.cjs";
7
- export { SnapDataSource, createSnapDataSource, SNAP_DATA_SOURCE_NAME, KEYRING_PERMISSION, getChainIdsCaveat, extractChainFromAssetId, type SnapDataSourceState, type SnapDataSourceOptions, type SnapDataSourceAllowedActions, type SnapDataSourceAllowedEvents, } from "./SnapDataSource.cjs";
8
- export { StakedBalanceDataSource, type StakedBalanceDataSourceConfig, type StakedBalanceDataSourceOptions, } from "./StakedBalanceDataSource.cjs";
9
- //# sourceMappingURL=index.d.cts.map
1
+ export { AbstractDataSource, type DataSourceState, type SubscriptionRequest, } from './AbstractDataSource.js';
2
+ export { AccountsApiDataSource, type AccountsApiDataSourceConfig, type AccountsApiDataSourceOptions, type AccountsApiDataSourceState, type AccountsApiDataSourceAllowedActions, } from './AccountsApiDataSource.js';
3
+ export { AccountActivityDataSource, createAccountActivityDataSource, type AccountActivityDataSourceOptions, type AccountActivityDataSourceState, type AccountActivityDataSourceAllowedEvents, } from './AccountActivityDataSource.js';
4
+ export { RpcDataSource, createRpcDataSource, type RpcDataSourceConfig, type RpcDataSourceOptions, type RpcDataSourceState, type RpcDataSourceAllowedActions, type RpcDataSourceAllowedEvents, type ChainStatus, } from './RpcDataSource.js';
5
+ export { TokenDataSource, type TokenDataSourceOptions, type TokenDataSourceAllowedActions, } from './TokenDataSource.js';
6
+ export { PriceDataSource, type PriceDataSourceConfig, type PriceDataSourceOptions, } from './PriceDataSource.js';
7
+ export { SnapDataSource, createSnapDataSource, SNAP_DATA_SOURCE_NAME, KEYRING_PERMISSION, getChainIdsCaveat, extractChainFromAssetId, type SnapDataSourceState, type SnapDataSourceOptions, type SnapDataSourceAllowedActions, type SnapDataSourceAllowedEvents, } from './SnapDataSource.js';
8
+ export { StakedBalanceDataSource, type StakedBalanceDataSourceConfig, type StakedBalanceDataSourceOptions, } from './StakedBalanceDataSource.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data-sources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,qBAAqB,EACrB,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,KAAK,mCAAmC,GACzC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,KAAK,gCAAgC,EACrC,KAAK,8BAA8B,EACnC,KAAK,sCAAsC,GAC5C,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,WAAW,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,GACnC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EAErB,kBAAkB,EAElB,iBAAiB,EACjB,uBAAuB,EAEvB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,GACjC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,uBAAuB,EACvB,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,GACpC,MAAM,8BAA8B,CAAC"}