@metamask-previews/assets-controllers 111.1.3-preview-b13d916 → 111.1.3-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 (708) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/dist/{AccountTrackerController-method-action-types.d.mts → AccountTrackerController-method-action-types.d.ts} +2 -2
  3. package/dist/AccountTrackerController-method-action-types.d.ts.map +1 -0
  4. package/dist/{AccountTrackerController-method-action-types.mjs → AccountTrackerController-method-action-types.js} +1 -1
  5. package/dist/AccountTrackerController-method-action-types.js.map +1 -0
  6. package/dist/{AccountTrackerController.d.cts → AccountTrackerController.d.ts} +19 -19
  7. package/dist/AccountTrackerController.d.ts.map +1 -0
  8. package/dist/{AccountTrackerController.mjs → AccountTrackerController.js} +17 -25
  9. package/dist/AccountTrackerController.js.map +1 -0
  10. package/dist/{AssetsContractController-method-action-types.d.cts → AssetsContractController-method-action-types.d.ts} +2 -2
  11. package/dist/AssetsContractController-method-action-types.d.ts.map +1 -0
  12. package/dist/{AssetsContractController-method-action-types.mjs → AssetsContractController-method-action-types.js} +1 -1
  13. package/dist/AssetsContractController-method-action-types.js.map +1 -0
  14. package/dist/{AssetsContractController.d.mts → AssetsContractController.d.ts} +30 -30
  15. package/dist/AssetsContractController.d.ts.map +1 -0
  16. package/dist/{AssetsContractController.mjs → AssetsContractController.js} +10 -17
  17. package/dist/AssetsContractController.js.map +1 -0
  18. package/dist/{CurrencyRateController-method-action-types.d.cts → CurrencyRateController-method-action-types.d.ts} +2 -2
  19. package/dist/CurrencyRateController-method-action-types.d.ts.map +1 -0
  20. package/dist/{CurrencyRateController-method-action-types.mjs → CurrencyRateController-method-action-types.js} +1 -1
  21. package/dist/CurrencyRateController-method-action-types.js.map +1 -0
  22. package/dist/{CurrencyRateController.d.mts → CurrencyRateController.d.ts} +14 -14
  23. package/dist/CurrencyRateController.d.ts.map +1 -0
  24. package/dist/{CurrencyRateController.mjs → CurrencyRateController.js} +5 -5
  25. package/dist/CurrencyRateController.js.map +1 -0
  26. package/dist/DeFiPositionsController/{DeFiPositionsController.d.mts → DeFiPositionsController.d.ts} +16 -16
  27. package/dist/DeFiPositionsController/DeFiPositionsController.d.ts.map +1 -0
  28. package/dist/DeFiPositionsController/{DeFiPositionsController.mjs → DeFiPositionsController.js} +6 -6
  29. package/dist/DeFiPositionsController/DeFiPositionsController.js.map +1 -0
  30. package/dist/DeFiPositionsController/{DeFiPositionsControllerV2-method-action-types.d.cts → DeFiPositionsControllerV2-method-action-types.d.ts} +2 -2
  31. package/dist/DeFiPositionsController/DeFiPositionsControllerV2-method-action-types.d.ts.map +1 -0
  32. package/dist/DeFiPositionsController/{DeFiPositionsControllerV2-method-action-types.mjs → DeFiPositionsControllerV2-method-action-types.js} +1 -1
  33. package/dist/DeFiPositionsController/DeFiPositionsControllerV2-method-action-types.js.map +1 -0
  34. package/dist/DeFiPositionsController/{DeFiPositionsControllerV2.d.mts → DeFiPositionsControllerV2.d.ts} +9 -9
  35. package/dist/DeFiPositionsController/DeFiPositionsControllerV2.d.ts.map +1 -0
  36. package/dist/DeFiPositionsController/{DeFiPositionsControllerV2.mjs → DeFiPositionsControllerV2.js} +5 -5
  37. package/dist/DeFiPositionsController/DeFiPositionsControllerV2.js.map +1 -0
  38. package/dist/DeFiPositionsController/{build-defi-balances-query.d.cts → build-defi-balances-query.d.ts} +3 -3
  39. package/dist/DeFiPositionsController/build-defi-balances-query.d.ts.map +1 -0
  40. package/dist/DeFiPositionsController/{build-defi-balances-query.mjs → build-defi-balances-query.js} +3 -3
  41. package/dist/DeFiPositionsController/build-defi-balances-query.js.map +1 -0
  42. package/dist/DeFiPositionsController/{calculate-defi-metrics.d.cts → calculate-defi-metrics.d.ts} +2 -2
  43. package/dist/DeFiPositionsController/calculate-defi-metrics.d.ts.map +1 -0
  44. package/dist/DeFiPositionsController/{calculate-defi-metrics.mjs → calculate-defi-metrics.js} +1 -1
  45. package/dist/DeFiPositionsController/calculate-defi-metrics.js.map +1 -0
  46. package/dist/DeFiPositionsController/{defi-controller-v2-feature-flag.d.cts → defi-controller-v2-feature-flag.d.ts} +2 -2
  47. package/dist/DeFiPositionsController/defi-controller-v2-feature-flag.d.ts.map +1 -0
  48. package/dist/DeFiPositionsController/{defi-controller-v2-feature-flag.mjs → defi-controller-v2-feature-flag.js} +1 -1
  49. package/dist/DeFiPositionsController/defi-controller-v2-feature-flag.js.map +1 -0
  50. package/dist/DeFiPositionsController/{fetch-positions.d.cts → fetch-positions.d.ts} +1 -1
  51. package/dist/DeFiPositionsController/fetch-positions.d.ts.map +1 -0
  52. package/dist/DeFiPositionsController/{fetch-positions.mjs → fetch-positions.js} +2 -2
  53. package/dist/DeFiPositionsController/fetch-positions.js.map +1 -0
  54. package/dist/DeFiPositionsController/{group-defi-positions-v6.d.mts → group-defi-positions-v6.d.ts} +3 -3
  55. package/dist/DeFiPositionsController/group-defi-positions-v6.d.ts.map +1 -0
  56. package/dist/DeFiPositionsController/{group-defi-positions-v6.mjs → group-defi-positions-v6.js} +3 -3
  57. package/dist/DeFiPositionsController/group-defi-positions-v6.js.map +1 -0
  58. package/dist/DeFiPositionsController/{group-defi-positions.d.cts → group-defi-positions.d.ts} +3 -3
  59. package/dist/DeFiPositionsController/group-defi-positions.d.ts.map +1 -0
  60. package/dist/DeFiPositionsController/{group-defi-positions.mjs → group-defi-positions.js} +2 -2
  61. package/dist/DeFiPositionsController/group-defi-positions.js.map +1 -0
  62. package/dist/DeFiPositionsController/{merge-positions-for-accounts.d.cts → merge-positions-for-accounts.d.ts} +2 -2
  63. package/dist/DeFiPositionsController/merge-positions-for-accounts.d.ts.map +1 -0
  64. package/dist/DeFiPositionsController/{merge-positions-for-accounts.mjs → merge-positions-for-accounts.js} +1 -1
  65. package/dist/DeFiPositionsController/merge-positions-for-accounts.js.map +1 -0
  66. package/dist/MultichainAssetsController/{MultichainAssetsController-method-action-types.d.cts → MultichainAssetsController-method-action-types.d.ts} +2 -2
  67. package/dist/MultichainAssetsController/MultichainAssetsController-method-action-types.d.ts.map +1 -0
  68. package/dist/MultichainAssetsController/{MultichainAssetsController-method-action-types.mjs → MultichainAssetsController-method-action-types.js} +1 -1
  69. package/dist/MultichainAssetsController/MultichainAssetsController-method-action-types.js.map +1 -0
  70. package/dist/MultichainAssetsController/{MultichainAssetsController.d.cts → MultichainAssetsController.d.ts} +18 -18
  71. package/dist/MultichainAssetsController/MultichainAssetsController.d.ts.map +1 -0
  72. package/dist/MultichainAssetsController/{MultichainAssetsController.mjs → MultichainAssetsController.js} +9 -9
  73. package/dist/MultichainAssetsController/MultichainAssetsController.js.map +1 -0
  74. package/dist/MultichainAssetsController/{index.d.cts → index.d.ts} +4 -4
  75. package/dist/MultichainAssetsController/index.d.ts.map +1 -0
  76. package/dist/MultichainAssetsController/index.js +2 -0
  77. package/dist/MultichainAssetsController/index.js.map +1 -0
  78. package/dist/MultichainAssetsController/{utils.d.cts → utils.d.ts} +2 -2
  79. package/dist/MultichainAssetsController/utils.d.ts.map +1 -0
  80. package/dist/MultichainAssetsController/{utils.mjs → utils.js} +2 -2
  81. package/dist/MultichainAssetsController/utils.js.map +1 -0
  82. package/dist/MultichainAssetsRatesController/{MultichainAssetsRatesController-method-action-types.d.cts → MultichainAssetsRatesController-method-action-types.d.ts} +2 -2
  83. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.d.ts.map +1 -0
  84. package/dist/MultichainAssetsRatesController/{MultichainAssetsRatesController-method-action-types.mjs → MultichainAssetsRatesController-method-action-types.js} +1 -1
  85. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.js.map +1 -0
  86. package/dist/MultichainAssetsRatesController/{MultichainAssetsRatesController.d.cts → MultichainAssetsRatesController.d.ts} +20 -20
  87. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.d.ts.map +1 -0
  88. package/dist/MultichainAssetsRatesController/{MultichainAssetsRatesController.mjs → MultichainAssetsRatesController.js} +6 -6
  89. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.js.map +1 -0
  90. package/dist/MultichainAssetsRatesController/{constant.d.cts → constant.d.ts} +2 -2
  91. package/dist/MultichainAssetsRatesController/constant.d.ts.map +1 -0
  92. package/dist/MultichainAssetsRatesController/{constant.mjs → constant.js} +1 -1
  93. package/dist/MultichainAssetsRatesController/constant.js.map +1 -0
  94. package/dist/MultichainAssetsRatesController/{index.d.cts → index.d.ts} +5 -5
  95. package/dist/MultichainAssetsRatesController/index.d.ts.map +1 -0
  96. package/dist/MultichainAssetsRatesController/index.js +3 -0
  97. package/dist/MultichainAssetsRatesController/{index.cjs.map → index.js.map} +1 -1
  98. package/dist/MultichainBalancesController/{MultichainBalancesController.d.cts → MultichainBalancesController.d.ts} +8 -8
  99. package/dist/MultichainBalancesController/MultichainBalancesController.d.ts.map +1 -0
  100. package/dist/MultichainBalancesController/{MultichainBalancesController.mjs → MultichainBalancesController.js} +5 -5
  101. package/dist/MultichainBalancesController/MultichainBalancesController.js.map +1 -0
  102. package/dist/MultichainBalancesController/index.d.ts +3 -0
  103. package/dist/MultichainBalancesController/index.d.ts.map +1 -0
  104. package/dist/MultichainBalancesController/index.js +2 -0
  105. package/dist/MultichainBalancesController/index.js.map +1 -0
  106. package/dist/{NftController.d.cts → NftController.d.ts} +13 -13
  107. package/dist/NftController.d.ts.map +1 -0
  108. package/dist/{NftController.mjs → NftController.js} +14 -21
  109. package/dist/NftController.js.map +1 -0
  110. package/dist/{NftDetectionController.d.mts → NftDetectionController.d.ts} +11 -11
  111. package/dist/NftDetectionController.d.ts.map +1 -0
  112. package/dist/{NftDetectionController.mjs → NftDetectionController.js} +5 -5
  113. package/dist/NftDetectionController.js.map +1 -0
  114. package/dist/RatesController/{RatesController.d.cts → RatesController.d.ts} +3 -3
  115. package/dist/RatesController/RatesController.d.ts.map +1 -0
  116. package/dist/RatesController/{RatesController.mjs → RatesController.js} +4 -4
  117. package/dist/RatesController/RatesController.js.map +1 -0
  118. package/dist/RatesController/{index.d.cts → index.d.ts} +3 -3
  119. package/dist/RatesController/index.d.ts.map +1 -0
  120. package/dist/RatesController/index.js +2 -0
  121. package/dist/RatesController/index.js.map +1 -0
  122. package/dist/RatesController/{types.d.cts → types.d.ts} +5 -5
  123. package/dist/RatesController/types.d.ts.map +1 -0
  124. package/dist/RatesController/types.js +2 -0
  125. package/dist/RatesController/types.js.map +1 -0
  126. package/dist/Standards/{ERC20Standard.d.cts → ERC20Standard.d.ts} +3 -3
  127. package/dist/Standards/ERC20Standard.d.ts.map +1 -0
  128. package/dist/Standards/{ERC20Standard.mjs → ERC20Standard.js} +8 -8
  129. package/dist/Standards/ERC20Standard.js.map +1 -0
  130. package/dist/Standards/NftStandards/ERC1155/{ERC1155Standard.d.cts → ERC1155Standard.d.ts} +3 -3
  131. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.d.ts.map +1 -0
  132. package/dist/Standards/NftStandards/ERC1155/{ERC1155Standard.mjs → ERC1155Standard.js} +5 -5
  133. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.js.map +1 -0
  134. package/dist/Standards/NftStandards/ERC721/{ERC721Standard.d.cts → ERC721Standard.d.ts} +2 -2
  135. package/dist/Standards/NftStandards/ERC721/ERC721Standard.d.ts.map +1 -0
  136. package/dist/Standards/NftStandards/ERC721/{ERC721Standard.mjs → ERC721Standard.js} +5 -5
  137. package/dist/Standards/NftStandards/ERC721/ERC721Standard.js.map +1 -0
  138. package/dist/{TokenBalancesController-method-action-types.d.cts → TokenBalancesController-method-action-types.d.ts} +2 -2
  139. package/dist/TokenBalancesController-method-action-types.d.ts.map +1 -0
  140. package/dist/{TokenBalancesController-method-action-types.mjs → TokenBalancesController-method-action-types.js} +1 -1
  141. package/dist/TokenBalancesController-method-action-types.js.map +1 -0
  142. package/dist/{TokenBalancesController.d.cts → TokenBalancesController.d.ts} +28 -31
  143. package/dist/TokenBalancesController.d.ts.map +1 -0
  144. package/dist/{TokenBalancesController.mjs → TokenBalancesController.js} +12 -13
  145. package/dist/TokenBalancesController.js.map +1 -0
  146. package/dist/{TokenDetectionController-method-action-types.d.cts → TokenDetectionController-method-action-types.d.ts} +2 -2
  147. package/dist/TokenDetectionController-method-action-types.d.ts.map +1 -0
  148. package/dist/{TokenDetectionController-method-action-types.mjs → TokenDetectionController-method-action-types.js} +1 -1
  149. package/dist/TokenDetectionController-method-action-types.js.map +1 -0
  150. package/dist/{TokenDetectionController.d.cts → TokenDetectionController.d.ts} +24 -24
  151. package/dist/TokenDetectionController.d.ts.map +1 -0
  152. package/dist/{TokenDetectionController.mjs → TokenDetectionController.js} +6 -13
  153. package/dist/TokenDetectionController.js.map +1 -0
  154. package/dist/{TokenListController.d.cts → TokenListController.d.ts} +15 -15
  155. package/dist/TokenListController.d.ts.map +1 -0
  156. package/dist/{TokenListController.mjs → TokenListController.js} +5 -5
  157. package/dist/TokenListController.js.map +1 -0
  158. package/dist/{TokenListService.d.cts → TokenListService.d.ts} +3 -3
  159. package/dist/TokenListService.d.ts.map +1 -0
  160. package/dist/{TokenListService.mjs → TokenListService.js} +4 -4
  161. package/dist/TokenListService.js.map +1 -0
  162. package/dist/{TokenRatesController.d.cts → TokenRatesController.d.ts} +17 -17
  163. package/dist/TokenRatesController.d.ts.map +1 -0
  164. package/dist/{TokenRatesController.mjs → TokenRatesController.js} +6 -7
  165. package/dist/TokenRatesController.js.map +1 -0
  166. package/dist/TokenSearchDiscoveryDataController/{TokenSearchDiscoveryDataController.d.mts → TokenSearchDiscoveryDataController.d.ts} +8 -8
  167. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.d.ts.map +1 -0
  168. package/dist/TokenSearchDiscoveryDataController/{TokenSearchDiscoveryDataController.mjs → TokenSearchDiscoveryDataController.js} +4 -4
  169. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.js.map +1 -0
  170. package/dist/TokenSearchDiscoveryDataController/index.d.ts +3 -0
  171. package/dist/TokenSearchDiscoveryDataController/index.d.ts.map +1 -0
  172. package/dist/TokenSearchDiscoveryDataController/index.js +2 -0
  173. package/dist/TokenSearchDiscoveryDataController/index.js.map +1 -0
  174. package/dist/TokenSearchDiscoveryDataController/{types.d.cts → types.d.ts} +4 -4
  175. package/dist/TokenSearchDiscoveryDataController/types.d.ts.map +1 -0
  176. package/dist/TokenSearchDiscoveryDataController/types.js +2 -0
  177. package/dist/TokenSearchDiscoveryDataController/types.js.map +1 -0
  178. package/dist/{TokensController-method-action-types.d.cts → TokensController-method-action-types.d.ts} +2 -2
  179. package/dist/TokensController-method-action-types.d.ts.map +1 -0
  180. package/dist/{TokensController-method-action-types.mjs → TokensController-method-action-types.js} +1 -1
  181. package/dist/TokensController-method-action-types.js.map +1 -0
  182. package/dist/{TokensController.d.cts → TokensController.d.ts} +13 -13
  183. package/dist/TokensController.d.ts.map +1 -0
  184. package/dist/{TokensController.mjs → TokensController.js} +16 -24
  185. package/dist/TokensController.js.map +1 -0
  186. package/dist/{assetsUtil.d.mts → assetsUtil.d.ts} +7 -7
  187. package/dist/assetsUtil.d.ts.map +1 -0
  188. package/dist/{assetsUtil.mjs → assetsUtil.js} +6 -13
  189. package/dist/assetsUtil.js.map +1 -0
  190. package/dist/{balances.d.cts → balances.d.ts} +11 -11
  191. package/dist/balances.d.ts.map +1 -0
  192. package/dist/{balances.mjs → balances.js} +6 -6
  193. package/dist/balances.js.map +1 -0
  194. package/dist/{constants.d.cts → constants.d.ts} +1 -1
  195. package/dist/constants.d.ts.map +1 -0
  196. package/dist/{constants.mjs → constants.js} +2 -2
  197. package/dist/constants.js.map +1 -0
  198. package/dist/crypto-compare-service/{crypto-compare.d.cts → crypto-compare.d.ts} +1 -1
  199. package/dist/crypto-compare-service/crypto-compare.d.ts.map +1 -0
  200. package/dist/crypto-compare-service/{crypto-compare.mjs → crypto-compare.js} +3 -3
  201. package/dist/crypto-compare-service/crypto-compare.js.map +1 -0
  202. package/dist/crypto-compare-service/index.d.ts +2 -0
  203. package/dist/crypto-compare-service/index.d.ts.map +1 -0
  204. package/dist/crypto-compare-service/index.js +2 -0
  205. package/dist/crypto-compare-service/index.js.map +1 -0
  206. package/dist/{index.d.mts → index.d.ts} +60 -60
  207. package/dist/index.d.ts.map +1 -0
  208. package/dist/index.js +29 -0
  209. package/dist/index.js.map +1 -0
  210. package/dist/multi-chain-accounts-service/{api-balance-fetcher.d.mts → api-balance-fetcher.d.ts} +5 -5
  211. package/dist/multi-chain-accounts-service/api-balance-fetcher.d.ts.map +1 -0
  212. package/dist/multi-chain-accounts-service/{api-balance-fetcher.mjs → api-balance-fetcher.js} +9 -16
  213. package/dist/multi-chain-accounts-service/api-balance-fetcher.js.map +1 -0
  214. package/dist/multi-chain-accounts-service/{index.d.cts → index.d.ts} +3 -3
  215. package/dist/multi-chain-accounts-service/index.d.ts.map +1 -0
  216. package/dist/multi-chain-accounts-service/index.js +2 -0
  217. package/dist/multi-chain-accounts-service/index.js.map +1 -0
  218. package/dist/multi-chain-accounts-service/mocks/{mock-get-balances.d.cts → mock-get-balances.d.ts} +2 -2
  219. package/dist/multi-chain-accounts-service/mocks/mock-get-balances.d.ts.map +1 -0
  220. package/dist/multi-chain-accounts-service/mocks/{mock-get-balances.mjs → mock-get-balances.js} +1 -1
  221. package/dist/multi-chain-accounts-service/mocks/mock-get-balances.js.map +1 -0
  222. package/dist/multi-chain-accounts-service/mocks/mock-get-supported-networks.d.ts +3 -0
  223. package/dist/multi-chain-accounts-service/mocks/mock-get-supported-networks.d.ts.map +1 -0
  224. package/dist/multi-chain-accounts-service/mocks/{mock-get-supported-networks.mjs → mock-get-supported-networks.js} +1 -1
  225. package/dist/multi-chain-accounts-service/mocks/mock-get-supported-networks.js.map +1 -0
  226. package/dist/multi-chain-accounts-service/{multi-chain-accounts.d.cts → multi-chain-accounts.d.ts} +3 -3
  227. package/dist/multi-chain-accounts-service/multi-chain-accounts.d.ts.map +1 -0
  228. package/dist/multi-chain-accounts-service/{multi-chain-accounts.mjs → multi-chain-accounts.js} +2 -2
  229. package/dist/multi-chain-accounts-service/multi-chain-accounts.js.map +1 -0
  230. package/dist/multi-chain-accounts-service/{types.d.cts → types.d.ts} +1 -1
  231. package/dist/multi-chain-accounts-service/types.d.ts.map +1 -0
  232. package/dist/multi-chain-accounts-service/types.js +2 -0
  233. package/dist/multi-chain-accounts-service/types.js.map +1 -0
  234. package/dist/{multicall.d.cts → multicall.d.ts} +5 -5
  235. package/dist/multicall.d.ts.map +1 -0
  236. package/dist/{multicall.mjs → multicall.js} +5 -12
  237. package/dist/multicall.js.map +1 -0
  238. package/dist/rpc-service/{rpc-balance-fetcher.d.mts → rpc-balance-fetcher.d.ts} +8 -8
  239. package/dist/rpc-service/rpc-balance-fetcher.d.ts.map +1 -0
  240. package/dist/rpc-service/{rpc-balance-fetcher.mjs → rpc-balance-fetcher.js} +6 -13
  241. package/dist/rpc-service/rpc-balance-fetcher.js.map +1 -0
  242. package/dist/selectors/{stringify-balance.d.cts → stringify-balance.d.ts} +2 -2
  243. package/dist/selectors/stringify-balance.d.ts.map +1 -0
  244. package/dist/selectors/{stringify-balance.mjs → stringify-balance.js} +2 -2
  245. package/dist/selectors/stringify-balance.js.map +1 -0
  246. package/dist/selectors/token-selectors.d.ts +109 -0
  247. package/dist/selectors/token-selectors.d.ts.map +1 -0
  248. package/dist/selectors/{token-selectors.mjs → token-selectors.js} +12 -8
  249. package/dist/selectors/token-selectors.js.map +1 -0
  250. package/dist/token-prices-service/{abstract-token-prices-service.d.cts → abstract-token-prices-service.d.ts} +4 -4
  251. package/dist/token-prices-service/abstract-token-prices-service.d.ts.map +1 -0
  252. package/dist/token-prices-service/abstract-token-prices-service.js +2 -0
  253. package/dist/token-prices-service/abstract-token-prices-service.js.map +1 -0
  254. package/dist/token-prices-service/{codefi-v2.d.mts → codefi-v2.d.ts} +82 -82
  255. package/dist/token-prices-service/codefi-v2.d.ts.map +1 -0
  256. package/dist/token-prices-service/{codefi-v2.mjs → codefi-v2.js} +3 -3
  257. package/dist/token-prices-service/codefi-v2.js.map +1 -0
  258. package/dist/token-prices-service/{index.d.cts → index.d.ts} +3 -3
  259. package/dist/token-prices-service/index.d.ts.map +1 -0
  260. package/dist/token-prices-service/{index.mjs → index.js} +2 -2
  261. package/dist/token-prices-service/index.js.map +1 -0
  262. package/dist/{token-service.d.mts → token-service.d.ts} +2 -2
  263. package/dist/token-service.d.ts.map +1 -0
  264. package/dist/{token-service.mjs → token-service.js} +3 -3
  265. package/dist/token-service.js.map +1 -0
  266. package/dist/utils/{create-batch-handler.d.cts → create-batch-handler.d.ts} +1 -1
  267. package/dist/utils/create-batch-handler.d.ts.map +1 -0
  268. package/dist/utils/{create-batch-handler.mjs → create-batch-handler.js} +2 -3
  269. package/dist/utils/create-batch-handler.js.map +1 -0
  270. package/dist/utils/{formatters.d.cts → formatters.d.ts} +1 -1
  271. package/dist/utils/formatters.d.ts.map +1 -0
  272. package/dist/utils/{formatters.mjs → formatters.js} +1 -1
  273. package/dist/utils/formatters.js.map +1 -0
  274. package/dist/utils/{timeout-with-retry.d.cts → timeout-with-retry.d.ts} +1 -1
  275. package/dist/utils/timeout-with-retry.d.ts.map +1 -0
  276. package/dist/utils/{timeout-with-retry.mjs → timeout-with-retry.js} +2 -2
  277. package/dist/utils/timeout-with-retry.js.map +1 -0
  278. package/package.json +15 -19
  279. package/dist/AccountTrackerController-method-action-types.cjs +0 -7
  280. package/dist/AccountTrackerController-method-action-types.cjs.map +0 -1
  281. package/dist/AccountTrackerController-method-action-types.d.cts +0 -55
  282. package/dist/AccountTrackerController-method-action-types.d.cts.map +0 -1
  283. package/dist/AccountTrackerController-method-action-types.d.mts.map +0 -1
  284. package/dist/AccountTrackerController-method-action-types.mjs.map +0 -1
  285. package/dist/AccountTrackerController.cjs +0 -645
  286. package/dist/AccountTrackerController.cjs.map +0 -1
  287. package/dist/AccountTrackerController.d.cts.map +0 -1
  288. package/dist/AccountTrackerController.d.mts +0 -199
  289. package/dist/AccountTrackerController.d.mts.map +0 -1
  290. package/dist/AccountTrackerController.mjs.map +0 -1
  291. package/dist/AssetsContractController-method-action-types.cjs +0 -7
  292. package/dist/AssetsContractController-method-action-types.cjs.map +0 -1
  293. package/dist/AssetsContractController-method-action-types.d.cts.map +0 -1
  294. package/dist/AssetsContractController-method-action-types.d.mts +0 -210
  295. package/dist/AssetsContractController-method-action-types.d.mts.map +0 -1
  296. package/dist/AssetsContractController-method-action-types.mjs.map +0 -1
  297. package/dist/AssetsContractController.cjs +0 -473
  298. package/dist/AssetsContractController.cjs.map +0 -1
  299. package/dist/AssetsContractController.d.cts +0 -258
  300. package/dist/AssetsContractController.d.cts.map +0 -1
  301. package/dist/AssetsContractController.d.mts.map +0 -1
  302. package/dist/AssetsContractController.mjs.map +0 -1
  303. package/dist/CurrencyRateController-method-action-types.cjs +0 -7
  304. package/dist/CurrencyRateController-method-action-types.cjs.map +0 -1
  305. package/dist/CurrencyRateController-method-action-types.d.cts.map +0 -1
  306. package/dist/CurrencyRateController-method-action-types.d.mts +0 -28
  307. package/dist/CurrencyRateController-method-action-types.d.mts.map +0 -1
  308. package/dist/CurrencyRateController-method-action-types.mjs.map +0 -1
  309. package/dist/CurrencyRateController.cjs +0 -341
  310. package/dist/CurrencyRateController.cjs.map +0 -1
  311. package/dist/CurrencyRateController.d.cts +0 -110
  312. package/dist/CurrencyRateController.d.cts.map +0 -1
  313. package/dist/CurrencyRateController.d.mts.map +0 -1
  314. package/dist/CurrencyRateController.mjs.map +0 -1
  315. package/dist/DeFiPositionsController/DeFiPositionsController.cjs +0 -147
  316. package/dist/DeFiPositionsController/DeFiPositionsController.cjs.map +0 -1
  317. package/dist/DeFiPositionsController/DeFiPositionsController.d.cts +0 -94
  318. package/dist/DeFiPositionsController/DeFiPositionsController.d.cts.map +0 -1
  319. package/dist/DeFiPositionsController/DeFiPositionsController.d.mts.map +0 -1
  320. package/dist/DeFiPositionsController/DeFiPositionsController.mjs.map +0 -1
  321. package/dist/DeFiPositionsController/DeFiPositionsControllerV2-method-action-types.cjs +0 -7
  322. package/dist/DeFiPositionsController/DeFiPositionsControllerV2-method-action-types.cjs.map +0 -1
  323. package/dist/DeFiPositionsController/DeFiPositionsControllerV2-method-action-types.d.cts.map +0 -1
  324. package/dist/DeFiPositionsController/DeFiPositionsControllerV2-method-action-types.d.mts +0 -40
  325. package/dist/DeFiPositionsController/DeFiPositionsControllerV2-method-action-types.d.mts.map +0 -1
  326. package/dist/DeFiPositionsController/DeFiPositionsControllerV2-method-action-types.mjs.map +0 -1
  327. package/dist/DeFiPositionsController/DeFiPositionsControllerV2.cjs +0 -226
  328. package/dist/DeFiPositionsController/DeFiPositionsControllerV2.cjs.map +0 -1
  329. package/dist/DeFiPositionsController/DeFiPositionsControllerV2.d.cts +0 -119
  330. package/dist/DeFiPositionsController/DeFiPositionsControllerV2.d.cts.map +0 -1
  331. package/dist/DeFiPositionsController/DeFiPositionsControllerV2.d.mts.map +0 -1
  332. package/dist/DeFiPositionsController/DeFiPositionsControllerV2.mjs.map +0 -1
  333. package/dist/DeFiPositionsController/build-defi-balances-query.cjs +0 -73
  334. package/dist/DeFiPositionsController/build-defi-balances-query.cjs.map +0 -1
  335. package/dist/DeFiPositionsController/build-defi-balances-query.d.cts.map +0 -1
  336. package/dist/DeFiPositionsController/build-defi-balances-query.d.mts +0 -34
  337. package/dist/DeFiPositionsController/build-defi-balances-query.d.mts.map +0 -1
  338. package/dist/DeFiPositionsController/build-defi-balances-query.mjs.map +0 -1
  339. package/dist/DeFiPositionsController/calculate-defi-metrics.cjs +0 -41
  340. package/dist/DeFiPositionsController/calculate-defi-metrics.cjs.map +0 -1
  341. package/dist/DeFiPositionsController/calculate-defi-metrics.d.cts.map +0 -1
  342. package/dist/DeFiPositionsController/calculate-defi-metrics.d.mts +0 -10
  343. package/dist/DeFiPositionsController/calculate-defi-metrics.d.mts.map +0 -1
  344. package/dist/DeFiPositionsController/calculate-defi-metrics.mjs.map +0 -1
  345. package/dist/DeFiPositionsController/defi-controller-v2-feature-flag.cjs +0 -62
  346. package/dist/DeFiPositionsController/defi-controller-v2-feature-flag.cjs.map +0 -1
  347. package/dist/DeFiPositionsController/defi-controller-v2-feature-flag.d.cts.map +0 -1
  348. package/dist/DeFiPositionsController/defi-controller-v2-feature-flag.d.mts +0 -27
  349. package/dist/DeFiPositionsController/defi-controller-v2-feature-flag.d.mts.map +0 -1
  350. package/dist/DeFiPositionsController/defi-controller-v2-feature-flag.mjs.map +0 -1
  351. package/dist/DeFiPositionsController/fetch-positions.cjs +0 -24
  352. package/dist/DeFiPositionsController/fetch-positions.cjs.map +0 -1
  353. package/dist/DeFiPositionsController/fetch-positions.d.cts.map +0 -1
  354. package/dist/DeFiPositionsController/fetch-positions.d.mts +0 -59
  355. package/dist/DeFiPositionsController/fetch-positions.d.mts.map +0 -1
  356. package/dist/DeFiPositionsController/fetch-positions.mjs.map +0 -1
  357. package/dist/DeFiPositionsController/group-defi-positions-v6.cjs +0 -239
  358. package/dist/DeFiPositionsController/group-defi-positions-v6.cjs.map +0 -1
  359. package/dist/DeFiPositionsController/group-defi-positions-v6.d.cts +0 -118
  360. package/dist/DeFiPositionsController/group-defi-positions-v6.d.cts.map +0 -1
  361. package/dist/DeFiPositionsController/group-defi-positions-v6.d.mts.map +0 -1
  362. package/dist/DeFiPositionsController/group-defi-positions-v6.mjs.map +0 -1
  363. package/dist/DeFiPositionsController/group-defi-positions.cjs +0 -96
  364. package/dist/DeFiPositionsController/group-defi-positions.cjs.map +0 -1
  365. package/dist/DeFiPositionsController/group-defi-positions.d.cts.map +0 -1
  366. package/dist/DeFiPositionsController/group-defi-positions.d.mts +0 -36
  367. package/dist/DeFiPositionsController/group-defi-positions.d.mts.map +0 -1
  368. package/dist/DeFiPositionsController/group-defi-positions.mjs.map +0 -1
  369. package/dist/DeFiPositionsController/merge-positions-for-accounts.cjs +0 -71
  370. package/dist/DeFiPositionsController/merge-positions-for-accounts.cjs.map +0 -1
  371. package/dist/DeFiPositionsController/merge-positions-for-accounts.d.cts.map +0 -1
  372. package/dist/DeFiPositionsController/merge-positions-for-accounts.d.mts +0 -16
  373. package/dist/DeFiPositionsController/merge-positions-for-accounts.d.mts.map +0 -1
  374. package/dist/DeFiPositionsController/merge-positions-for-accounts.mjs.map +0 -1
  375. package/dist/MultichainAssetsController/MultichainAssetsController-method-action-types.cjs +0 -7
  376. package/dist/MultichainAssetsController/MultichainAssetsController-method-action-types.cjs.map +0 -1
  377. package/dist/MultichainAssetsController/MultichainAssetsController-method-action-types.d.cts.map +0 -1
  378. package/dist/MultichainAssetsController/MultichainAssetsController-method-action-types.d.mts +0 -43
  379. package/dist/MultichainAssetsController/MultichainAssetsController-method-action-types.d.mts.map +0 -1
  380. package/dist/MultichainAssetsController/MultichainAssetsController-method-action-types.mjs.map +0 -1
  381. package/dist/MultichainAssetsController/MultichainAssetsController.cjs +0 -647
  382. package/dist/MultichainAssetsController/MultichainAssetsController.cjs.map +0 -1
  383. package/dist/MultichainAssetsController/MultichainAssetsController.d.cts.map +0 -1
  384. package/dist/MultichainAssetsController/MultichainAssetsController.d.mts +0 -119
  385. package/dist/MultichainAssetsController/MultichainAssetsController.d.mts.map +0 -1
  386. package/dist/MultichainAssetsController/MultichainAssetsController.mjs.map +0 -1
  387. package/dist/MultichainAssetsController/index.cjs +0 -7
  388. package/dist/MultichainAssetsController/index.cjs.map +0 -1
  389. package/dist/MultichainAssetsController/index.d.cts.map +0 -1
  390. package/dist/MultichainAssetsController/index.d.mts +0 -4
  391. package/dist/MultichainAssetsController/index.d.mts.map +0 -1
  392. package/dist/MultichainAssetsController/index.mjs +0 -2
  393. package/dist/MultichainAssetsController/index.mjs.map +0 -1
  394. package/dist/MultichainAssetsController/utils.cjs +0 -26
  395. package/dist/MultichainAssetsController/utils.cjs.map +0 -1
  396. package/dist/MultichainAssetsController/utils.d.cts.map +0 -1
  397. package/dist/MultichainAssetsController/utils.d.mts +0 -13
  398. package/dist/MultichainAssetsController/utils.d.mts.map +0 -1
  399. package/dist/MultichainAssetsController/utils.mjs.map +0 -1
  400. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.cjs +0 -7
  401. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.cjs.map +0 -1
  402. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.d.cts.map +0 -1
  403. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.d.mts +0 -30
  404. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.d.mts.map +0 -1
  405. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.mjs.map +0 -1
  406. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.cjs +0 -490
  407. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.cjs.map +0 -1
  408. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.d.cts.map +0 -1
  409. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.d.mts +0 -148
  410. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.d.mts.map +0 -1
  411. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.mjs.map +0 -1
  412. package/dist/MultichainAssetsRatesController/constant.cjs +0 -83
  413. package/dist/MultichainAssetsRatesController/constant.cjs.map +0 -1
  414. package/dist/MultichainAssetsRatesController/constant.d.cts.map +0 -1
  415. package/dist/MultichainAssetsRatesController/constant.d.mts +0 -9
  416. package/dist/MultichainAssetsRatesController/constant.d.mts.map +0 -1
  417. package/dist/MultichainAssetsRatesController/constant.mjs.map +0 -1
  418. package/dist/MultichainAssetsRatesController/index.cjs +0 -9
  419. package/dist/MultichainAssetsRatesController/index.d.cts.map +0 -1
  420. package/dist/MultichainAssetsRatesController/index.d.mts +0 -5
  421. package/dist/MultichainAssetsRatesController/index.d.mts.map +0 -1
  422. package/dist/MultichainAssetsRatesController/index.mjs +0 -3
  423. package/dist/MultichainAssetsRatesController/index.mjs.map +0 -1
  424. package/dist/MultichainBalancesController/MultichainBalancesController.cjs +0 -276
  425. package/dist/MultichainBalancesController/MultichainBalancesController.cjs.map +0 -1
  426. package/dist/MultichainBalancesController/MultichainBalancesController.d.cts.map +0 -1
  427. package/dist/MultichainBalancesController/MultichainBalancesController.d.mts +0 -92
  428. package/dist/MultichainBalancesController/MultichainBalancesController.d.mts.map +0 -1
  429. package/dist/MultichainBalancesController/MultichainBalancesController.mjs.map +0 -1
  430. package/dist/MultichainBalancesController/index.cjs +0 -6
  431. package/dist/MultichainBalancesController/index.cjs.map +0 -1
  432. package/dist/MultichainBalancesController/index.d.cts +0 -3
  433. package/dist/MultichainBalancesController/index.d.cts.map +0 -1
  434. package/dist/MultichainBalancesController/index.d.mts +0 -3
  435. package/dist/MultichainBalancesController/index.d.mts.map +0 -1
  436. package/dist/MultichainBalancesController/index.mjs +0 -2
  437. package/dist/MultichainBalancesController/index.mjs.map +0 -1
  438. package/dist/NftController.cjs +0 -1322
  439. package/dist/NftController.cjs.map +0 -1
  440. package/dist/NftController.d.cts.map +0 -1
  441. package/dist/NftController.d.mts +0 -428
  442. package/dist/NftController.d.mts.map +0 -1
  443. package/dist/NftController.mjs.map +0 -1
  444. package/dist/NftDetectionController.cjs +0 -192
  445. package/dist/NftDetectionController.cjs.map +0 -1
  446. package/dist/NftDetectionController.d.cts +0 -378
  447. package/dist/NftDetectionController.d.cts.map +0 -1
  448. package/dist/NftDetectionController.d.mts.map +0 -1
  449. package/dist/NftDetectionController.mjs.map +0 -1
  450. package/dist/RatesController/RatesController.cjs +0 -217
  451. package/dist/RatesController/RatesController.cjs.map +0 -1
  452. package/dist/RatesController/RatesController.d.cts.map +0 -1
  453. package/dist/RatesController/RatesController.d.mts +0 -54
  454. package/dist/RatesController/RatesController.d.mts.map +0 -1
  455. package/dist/RatesController/RatesController.mjs.map +0 -1
  456. package/dist/RatesController/index.cjs +0 -7
  457. package/dist/RatesController/index.cjs.map +0 -1
  458. package/dist/RatesController/index.d.cts.map +0 -1
  459. package/dist/RatesController/index.d.mts +0 -3
  460. package/dist/RatesController/index.d.mts.map +0 -1
  461. package/dist/RatesController/index.mjs +0 -2
  462. package/dist/RatesController/index.mjs.map +0 -1
  463. package/dist/RatesController/types.cjs +0 -3
  464. package/dist/RatesController/types.cjs.map +0 -1
  465. package/dist/RatesController/types.d.cts.map +0 -1
  466. package/dist/RatesController/types.d.mts +0 -100
  467. package/dist/RatesController/types.d.mts.map +0 -1
  468. package/dist/RatesController/types.mjs +0 -2
  469. package/dist/RatesController/types.mjs.map +0 -1
  470. package/dist/Standards/ERC20Standard.cjs +0 -127
  471. package/dist/Standards/ERC20Standard.cjs.map +0 -1
  472. package/dist/Standards/ERC20Standard.d.cts.map +0 -1
  473. package/dist/Standards/ERC20Standard.d.mts +0 -49
  474. package/dist/Standards/ERC20Standard.d.mts.map +0 -1
  475. package/dist/Standards/ERC20Standard.mjs.map +0 -1
  476. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.cjs +0 -189
  477. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.cjs.map +0 -1
  478. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.d.cts.map +0 -1
  479. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.d.mts +0 -95
  480. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.d.mts.map +0 -1
  481. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.mjs.map +0 -1
  482. package/dist/Standards/NftStandards/ERC721/ERC721Standard.cjs +0 -167
  483. package/dist/Standards/NftStandards/ERC721/ERC721Standard.cjs.map +0 -1
  484. package/dist/Standards/NftStandards/ERC721/ERC721Standard.d.cts.map +0 -1
  485. package/dist/Standards/NftStandards/ERC721/ERC721Standard.d.mts +0 -89
  486. package/dist/Standards/NftStandards/ERC721/ERC721Standard.d.mts.map +0 -1
  487. package/dist/Standards/NftStandards/ERC721/ERC721Standard.mjs.map +0 -1
  488. package/dist/TokenBalancesController-method-action-types.cjs +0 -7
  489. package/dist/TokenBalancesController-method-action-types.cjs.map +0 -1
  490. package/dist/TokenBalancesController-method-action-types.d.cts.map +0 -1
  491. package/dist/TokenBalancesController-method-action-types.d.mts +0 -26
  492. package/dist/TokenBalancesController-method-action-types.d.mts.map +0 -1
  493. package/dist/TokenBalancesController-method-action-types.mjs.map +0 -1
  494. package/dist/TokenBalancesController.cjs +0 -923
  495. package/dist/TokenBalancesController.cjs.map +0 -1
  496. package/dist/TokenBalancesController.d.cts.map +0 -1
  497. package/dist/TokenBalancesController.d.mts +0 -160
  498. package/dist/TokenBalancesController.d.mts.map +0 -1
  499. package/dist/TokenBalancesController.mjs.map +0 -1
  500. package/dist/TokenDetectionController-method-action-types.cjs +0 -7
  501. package/dist/TokenDetectionController-method-action-types.cjs.map +0 -1
  502. package/dist/TokenDetectionController-method-action-types.d.cts.map +0 -1
  503. package/dist/TokenDetectionController-method-action-types.d.mts +0 -89
  504. package/dist/TokenDetectionController-method-action-types.d.mts.map +0 -1
  505. package/dist/TokenDetectionController-method-action-types.mjs.map +0 -1
  506. package/dist/TokenDetectionController.cjs +0 -681
  507. package/dist/TokenDetectionController.cjs.map +0 -1
  508. package/dist/TokenDetectionController.d.cts.map +0 -1
  509. package/dist/TokenDetectionController.d.mts +0 -177
  510. package/dist/TokenDetectionController.d.mts.map +0 -1
  511. package/dist/TokenDetectionController.mjs.map +0 -1
  512. package/dist/TokenListController.cjs +0 -537
  513. package/dist/TokenListController.cjs.map +0 -1
  514. package/dist/TokenListController.d.cts.map +0 -1
  515. package/dist/TokenListController.d.mts +0 -138
  516. package/dist/TokenListController.d.mts.map +0 -1
  517. package/dist/TokenListController.mjs.map +0 -1
  518. package/dist/TokenListService.cjs +0 -107
  519. package/dist/TokenListService.cjs.map +0 -1
  520. package/dist/TokenListService.d.cts.map +0 -1
  521. package/dist/TokenListService.d.mts +0 -40
  522. package/dist/TokenListService.d.mts.map +0 -1
  523. package/dist/TokenListService.mjs.map +0 -1
  524. package/dist/TokenRatesController.cjs +0 -327
  525. package/dist/TokenRatesController.cjs.map +0 -1
  526. package/dist/TokenRatesController.d.cts.map +0 -1
  527. package/dist/TokenRatesController.d.mts +0 -191
  528. package/dist/TokenRatesController.d.mts.map +0 -1
  529. package/dist/TokenRatesController.mjs.map +0 -1
  530. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.cjs +0 -129
  531. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.cjs.map +0 -1
  532. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.d.cts +0 -68
  533. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.d.cts.map +0 -1
  534. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.d.mts.map +0 -1
  535. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.mjs.map +0 -1
  536. package/dist/TokenSearchDiscoveryDataController/index.cjs +0 -18
  537. package/dist/TokenSearchDiscoveryDataController/index.cjs.map +0 -1
  538. package/dist/TokenSearchDiscoveryDataController/index.d.cts +0 -3
  539. package/dist/TokenSearchDiscoveryDataController/index.d.cts.map +0 -1
  540. package/dist/TokenSearchDiscoveryDataController/index.d.mts +0 -3
  541. package/dist/TokenSearchDiscoveryDataController/index.d.mts.map +0 -1
  542. package/dist/TokenSearchDiscoveryDataController/index.mjs +0 -2
  543. package/dist/TokenSearchDiscoveryDataController/index.mjs.map +0 -1
  544. package/dist/TokenSearchDiscoveryDataController/types.cjs +0 -3
  545. package/dist/TokenSearchDiscoveryDataController/types.cjs.map +0 -1
  546. package/dist/TokenSearchDiscoveryDataController/types.d.cts.map +0 -1
  547. package/dist/TokenSearchDiscoveryDataController/types.d.mts +0 -19
  548. package/dist/TokenSearchDiscoveryDataController/types.d.mts.map +0 -1
  549. package/dist/TokenSearchDiscoveryDataController/types.mjs +0 -2
  550. package/dist/TokenSearchDiscoveryDataController/types.mjs.map +0 -1
  551. package/dist/TokensController-method-action-types.cjs +0 -7
  552. package/dist/TokensController-method-action-types.cjs.map +0 -1
  553. package/dist/TokensController-method-action-types.d.cts.map +0 -1
  554. package/dist/TokensController-method-action-types.d.mts +0 -104
  555. package/dist/TokensController-method-action-types.d.mts.map +0 -1
  556. package/dist/TokensController-method-action-types.mjs.map +0 -1
  557. package/dist/TokensController.cjs +0 -790
  558. package/dist/TokensController.cjs.map +0 -1
  559. package/dist/TokensController.d.cts.map +0 -1
  560. package/dist/TokensController.d.mts +0 -180
  561. package/dist/TokensController.d.mts.map +0 -1
  562. package/dist/TokensController.mjs.map +0 -1
  563. package/dist/assetsUtil.cjs +0 -374
  564. package/dist/assetsUtil.cjs.map +0 -1
  565. package/dist/assetsUtil.d.cts +0 -215
  566. package/dist/assetsUtil.d.cts.map +0 -1
  567. package/dist/assetsUtil.d.mts.map +0 -1
  568. package/dist/assetsUtil.mjs.map +0 -1
  569. package/dist/balances.cjs +0 -505
  570. package/dist/balances.cjs.map +0 -1
  571. package/dist/balances.d.cts.map +0 -1
  572. package/dist/balances.d.mts +0 -103
  573. package/dist/balances.d.mts.map +0 -1
  574. package/dist/balances.mjs.map +0 -1
  575. package/dist/constants.cjs +0 -88
  576. package/dist/constants.cjs.map +0 -1
  577. package/dist/constants.d.cts.map +0 -1
  578. package/dist/constants.d.mts +0 -30
  579. package/dist/constants.d.mts.map +0 -1
  580. package/dist/constants.mjs.map +0 -1
  581. package/dist/crypto-compare-service/crypto-compare.cjs +0 -119
  582. package/dist/crypto-compare-service/crypto-compare.cjs.map +0 -1
  583. package/dist/crypto-compare-service/crypto-compare.d.cts.map +0 -1
  584. package/dist/crypto-compare-service/crypto-compare.d.mts +0 -22
  585. package/dist/crypto-compare-service/crypto-compare.d.mts.map +0 -1
  586. package/dist/crypto-compare-service/crypto-compare.mjs.map +0 -1
  587. package/dist/crypto-compare-service/index.cjs +0 -7
  588. package/dist/crypto-compare-service/index.cjs.map +0 -1
  589. package/dist/crypto-compare-service/index.d.cts +0 -2
  590. package/dist/crypto-compare-service/index.d.cts.map +0 -1
  591. package/dist/crypto-compare-service/index.d.mts +0 -2
  592. package/dist/crypto-compare-service/index.d.mts.map +0 -1
  593. package/dist/crypto-compare-service/index.mjs +0 -2
  594. package/dist/crypto-compare-service/index.mjs.map +0 -1
  595. package/dist/index.cjs +0 -95
  596. package/dist/index.cjs.map +0 -1
  597. package/dist/index.d.cts +0 -60
  598. package/dist/index.d.cts.map +0 -1
  599. package/dist/index.d.mts.map +0 -1
  600. package/dist/index.mjs +0 -29
  601. package/dist/index.mjs.map +0 -1
  602. package/dist/multi-chain-accounts-service/api-balance-fetcher.cjs +0 -349
  603. package/dist/multi-chain-accounts-service/api-balance-fetcher.cjs.map +0 -1
  604. package/dist/multi-chain-accounts-service/api-balance-fetcher.d.cts +0 -51
  605. package/dist/multi-chain-accounts-service/api-balance-fetcher.d.cts.map +0 -1
  606. package/dist/multi-chain-accounts-service/api-balance-fetcher.d.mts.map +0 -1
  607. package/dist/multi-chain-accounts-service/api-balance-fetcher.mjs.map +0 -1
  608. package/dist/multi-chain-accounts-service/index.cjs +0 -7
  609. package/dist/multi-chain-accounts-service/index.cjs.map +0 -1
  610. package/dist/multi-chain-accounts-service/index.d.cts.map +0 -1
  611. package/dist/multi-chain-accounts-service/index.d.mts +0 -3
  612. package/dist/multi-chain-accounts-service/index.d.mts.map +0 -1
  613. package/dist/multi-chain-accounts-service/index.mjs +0 -2
  614. package/dist/multi-chain-accounts-service/index.mjs.map +0 -1
  615. package/dist/multi-chain-accounts-service/mocks/mock-get-balances.cjs +0 -100
  616. package/dist/multi-chain-accounts-service/mocks/mock-get-balances.cjs.map +0 -1
  617. package/dist/multi-chain-accounts-service/mocks/mock-get-balances.d.cts.map +0 -1
  618. package/dist/multi-chain-accounts-service/mocks/mock-get-balances.d.mts +0 -4
  619. package/dist/multi-chain-accounts-service/mocks/mock-get-balances.d.mts.map +0 -1
  620. package/dist/multi-chain-accounts-service/mocks/mock-get-balances.mjs.map +0 -1
  621. package/dist/multi-chain-accounts-service/mocks/mock-get-supported-networks.cjs +0 -10
  622. package/dist/multi-chain-accounts-service/mocks/mock-get-supported-networks.cjs.map +0 -1
  623. package/dist/multi-chain-accounts-service/mocks/mock-get-supported-networks.d.cts +0 -3
  624. package/dist/multi-chain-accounts-service/mocks/mock-get-supported-networks.d.cts.map +0 -1
  625. package/dist/multi-chain-accounts-service/mocks/mock-get-supported-networks.d.mts +0 -3
  626. package/dist/multi-chain-accounts-service/mocks/mock-get-supported-networks.d.mts.map +0 -1
  627. package/dist/multi-chain-accounts-service/mocks/mock-get-supported-networks.mjs.map +0 -1
  628. package/dist/multi-chain-accounts-service/multi-chain-accounts.cjs +0 -87
  629. package/dist/multi-chain-accounts-service/multi-chain-accounts.cjs.map +0 -1
  630. package/dist/multi-chain-accounts-service/multi-chain-accounts.d.cts.map +0 -1
  631. package/dist/multi-chain-accounts-service/multi-chain-accounts.d.mts +0 -37
  632. package/dist/multi-chain-accounts-service/multi-chain-accounts.d.mts.map +0 -1
  633. package/dist/multi-chain-accounts-service/multi-chain-accounts.mjs.map +0 -1
  634. package/dist/multi-chain-accounts-service/types.cjs +0 -3
  635. package/dist/multi-chain-accounts-service/types.cjs.map +0 -1
  636. package/dist/multi-chain-accounts-service/types.d.cts.map +0 -1
  637. package/dist/multi-chain-accounts-service/types.d.mts +0 -46
  638. package/dist/multi-chain-accounts-service/types.d.mts.map +0 -1
  639. package/dist/multi-chain-accounts-service/types.mjs +0 -2
  640. package/dist/multi-chain-accounts-service/types.mjs.map +0 -1
  641. package/dist/multicall.cjs +0 -1102
  642. package/dist/multicall.cjs.map +0 -1
  643. package/dist/multicall.d.cts.map +0 -1
  644. package/dist/multicall.d.mts +0 -98
  645. package/dist/multicall.d.mts.map +0 -1
  646. package/dist/multicall.mjs.map +0 -1
  647. package/dist/rpc-service/rpc-balance-fetcher.cjs +0 -248
  648. package/dist/rpc-service/rpc-balance-fetcher.cjs.map +0 -1
  649. package/dist/rpc-service/rpc-balance-fetcher.d.cts +0 -41
  650. package/dist/rpc-service/rpc-balance-fetcher.d.cts.map +0 -1
  651. package/dist/rpc-service/rpc-balance-fetcher.d.mts.map +0 -1
  652. package/dist/rpc-service/rpc-balance-fetcher.mjs.map +0 -1
  653. package/dist/selectors/stringify-balance.cjs +0 -72
  654. package/dist/selectors/stringify-balance.cjs.map +0 -1
  655. package/dist/selectors/stringify-balance.d.cts.map +0 -1
  656. package/dist/selectors/stringify-balance.d.mts +0 -23
  657. package/dist/selectors/stringify-balance.d.mts.map +0 -1
  658. package/dist/selectors/stringify-balance.mjs.map +0 -1
  659. package/dist/selectors/token-selectors.cjs +0 -366
  660. package/dist/selectors/token-selectors.cjs.map +0 -1
  661. package/dist/selectors/token-selectors.d.cts +0 -1511
  662. package/dist/selectors/token-selectors.d.cts.map +0 -1
  663. package/dist/selectors/token-selectors.d.mts +0 -1511
  664. package/dist/selectors/token-selectors.d.mts.map +0 -1
  665. package/dist/selectors/token-selectors.mjs.map +0 -1
  666. package/dist/token-prices-service/abstract-token-prices-service.cjs +0 -3
  667. package/dist/token-prices-service/abstract-token-prices-service.cjs.map +0 -1
  668. package/dist/token-prices-service/abstract-token-prices-service.d.cts.map +0 -1
  669. package/dist/token-prices-service/abstract-token-prices-service.d.mts +0 -95
  670. package/dist/token-prices-service/abstract-token-prices-service.d.mts.map +0 -1
  671. package/dist/token-prices-service/abstract-token-prices-service.mjs +0 -2
  672. package/dist/token-prices-service/abstract-token-prices-service.mjs.map +0 -1
  673. package/dist/token-prices-service/codefi-v2.cjs +0 -773
  674. package/dist/token-prices-service/codefi-v2.cjs.map +0 -1
  675. package/dist/token-prices-service/codefi-v2.d.cts +0 -332
  676. package/dist/token-prices-service/codefi-v2.d.cts.map +0 -1
  677. package/dist/token-prices-service/codefi-v2.d.mts.map +0 -1
  678. package/dist/token-prices-service/codefi-v2.mjs.map +0 -1
  679. package/dist/token-prices-service/index.cjs +0 -13
  680. package/dist/token-prices-service/index.cjs.map +0 -1
  681. package/dist/token-prices-service/index.d.cts.map +0 -1
  682. package/dist/token-prices-service/index.d.mts +0 -3
  683. package/dist/token-prices-service/index.d.mts.map +0 -1
  684. package/dist/token-prices-service/index.mjs.map +0 -1
  685. package/dist/token-service.cjs +0 -467
  686. package/dist/token-service.cjs.map +0 -1
  687. package/dist/token-service.d.cts +0 -313
  688. package/dist/token-service.d.cts.map +0 -1
  689. package/dist/token-service.d.mts.map +0 -1
  690. package/dist/token-service.mjs.map +0 -1
  691. package/dist/utils/create-batch-handler.cjs +0 -54
  692. package/dist/utils/create-batch-handler.cjs.map +0 -1
  693. package/dist/utils/create-batch-handler.d.cts.map +0 -1
  694. package/dist/utils/create-batch-handler.d.mts +0 -16
  695. package/dist/utils/create-batch-handler.d.mts.map +0 -1
  696. package/dist/utils/create-batch-handler.mjs.map +0 -1
  697. package/dist/utils/formatters.cjs +0 -275
  698. package/dist/utils/formatters.cjs.map +0 -1
  699. package/dist/utils/formatters.d.cts.map +0 -1
  700. package/dist/utils/formatters.d.mts +0 -63
  701. package/dist/utils/formatters.d.mts.map +0 -1
  702. package/dist/utils/formatters.mjs.map +0 -1
  703. package/dist/utils/timeout-with-retry.cjs +0 -34
  704. package/dist/utils/timeout-with-retry.cjs.map +0 -1
  705. package/dist/utils/timeout-with-retry.d.cts.map +0 -1
  706. package/dist/utils/timeout-with-retry.d.mts +0 -9
  707. package/dist/utils/timeout-with-retry.d.mts.map +0 -1
  708. package/dist/utils/timeout-with-retry.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ### Changed
11
11
 
12
+ - **BREAKING:** Bump minimum Node.js version to 22 ([#9168](https://github.com/MetaMask/core/pull/9168))
12
13
  - Bump `@metamask/remote-feature-flag-controller` from `^6.0.0` to `^6.1.0` ([#9980](https://github.com/MetaMask/core/pull/9980))
13
14
 
14
15
  ## [111.1.3]
@@ -2,7 +2,7 @@
2
2
  * This file is auto generated.
3
3
  * Do not edit manually.
4
4
  */
5
- import type { AccountTrackerController } from "./AccountTrackerController.mjs";
5
+ import type { AccountTrackerController } from './AccountTrackerController.js';
6
6
  /**
7
7
  * Refreshes the balances of the accounts depending on the multi-account setting.
8
8
  * If multi-account is disabled, only updates the selected account balance.
@@ -52,4 +52,4 @@ export type AccountTrackerControllerUpdateStakedBalancesAction = {
52
52
  * Union of all AccountTrackerController action types.
53
53
  */
54
54
  export type AccountTrackerControllerMethodActions = AccountTrackerControllerRefreshAction | AccountTrackerControllerSyncBalanceWithAddressesAction | AccountTrackerControllerUpdateNativeBalancesAction | AccountTrackerControllerUpdateStakedBalancesAction;
55
- //# sourceMappingURL=AccountTrackerController-method-action-types.d.mts.map
55
+ //# sourceMappingURL=AccountTrackerController-method-action-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountTrackerController-method-action-types.d.ts","sourceRoot":"","sources":["../src/AccountTrackerController-method-action-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,MAAM,qCAAqC,GAAG;IAClD,IAAI,EAAE,kCAAkC,CAAC;IACzC,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC,CAAC;CAC9C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,sDAAsD,GAAG;IACnE,IAAI,EAAE,mDAAmD,CAAC;IAC1D,OAAO,EAAE,wBAAwB,CAAC,0BAA0B,CAAC,CAAC;CAC/D,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,kDAAkD,GAAG;IAC/D,IAAI,EAAE,+CAA+C,CAAC;IACtD,OAAO,EAAE,wBAAwB,CAAC,sBAAsB,CAAC,CAAC;CAC3D,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,kDAAkD,GAAG;IAC/D,IAAI,EAAE,+CAA+C,CAAC;IACtD,OAAO,EAAE,wBAAwB,CAAC,sBAAsB,CAAC,CAAC;CAC3D,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qCAAqC,GAC7C,qCAAqC,GACrC,sDAAsD,GACtD,kDAAkD,GAClD,kDAAkD,CAAC"}
@@ -3,4 +3,4 @@
3
3
  * Do not edit manually.
4
4
  */
5
5
  export {};
6
- //# sourceMappingURL=AccountTrackerController-method-action-types.mjs.map
6
+ //# sourceMappingURL=AccountTrackerController-method-action-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountTrackerController-method-action-types.js","sourceRoot":"","sources":["../src/AccountTrackerController-method-action-types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * This file is auto generated.\n * Do not edit manually.\n */\n\nimport type { AccountTrackerController } from './AccountTrackerController.js';\n\n/**\n * Refreshes the balances of the accounts depending on the multi-account setting.\n * If multi-account is disabled, only updates the selected account balance.\n * If multi-account is enabled, updates balances for all accounts.\n *\n * @param networkClientIds - Optional network client IDs to fetch a network client with\n * @param queryAllAccounts - Whether to query all accounts or just the selected account\n */\nexport type AccountTrackerControllerRefreshAction = {\n type: `AccountTrackerController:refresh`;\n handler: AccountTrackerController['refresh'];\n};\n\n/**\n * Sync accounts balances with some additional addresses.\n *\n * @param addresses - the additional addresses, may be hardware wallet addresses.\n * @param networkClientId - Optional networkClientId to fetch a network client with.\n * @returns accounts - addresses with synced balance\n */\nexport type AccountTrackerControllerSyncBalanceWithAddressesAction = {\n type: `AccountTrackerController:syncBalanceWithAddresses`;\n handler: AccountTrackerController['syncBalanceWithAddresses'];\n};\n\n/**\n * Updates the balances of multiple native tokens in a single batch operation.\n * This is more efficient than calling updateNativeToken multiple times as it\n * triggers only one state update.\n *\n * @param balances - Array of balance updates, each containing address, chainId, and balance.\n */\nexport type AccountTrackerControllerUpdateNativeBalancesAction = {\n type: `AccountTrackerController:updateNativeBalances`;\n handler: AccountTrackerController['updateNativeBalances'];\n};\n\n/**\n * Updates the staked balances of multiple accounts in a single batch operation.\n * This is more efficient than updating staked balances individually as it\n * triggers only one state update.\n *\n * @param stakedBalances - Array of staked balance updates, each containing address, chainId, and stakedBalance.\n */\nexport type AccountTrackerControllerUpdateStakedBalancesAction = {\n type: `AccountTrackerController:updateStakedBalances`;\n handler: AccountTrackerController['updateStakedBalances'];\n};\n\n/**\n * Union of all AccountTrackerController action types.\n */\nexport type AccountTrackerControllerMethodActions =\n | AccountTrackerControllerRefreshAction\n | AccountTrackerControllerSyncBalanceWithAddressesAction\n | AccountTrackerControllerUpdateNativeBalancesAction\n | AccountTrackerControllerUpdateStakedBalancesAction;\n"]}
@@ -1,13 +1,13 @@
1
- import type { AccountsControllerSelectedEvmAccountChangeEvent, AccountsControllerGetSelectedAccountAction, AccountsControllerListAccountsAction } from "@metamask/accounts-controller";
2
- import type { ControllerStateChangeEvent, ControllerGetStateAction } from "@metamask/base-controller";
3
- import type { KeyringControllerGetStateAction, KeyringControllerLockEvent, KeyringControllerUnlockEvent } from "@metamask/keyring-controller";
4
- import type { Messenger } from "@metamask/messenger";
5
- import type { NetworkClientId, NetworkControllerGetNetworkClientByIdAction, NetworkControllerGetStateAction, NetworkControllerNetworkAddedEvent } from "@metamask/network-controller";
6
- import type { NetworkEnablementControllerGetStateAction, NetworkEnablementControllerListPopularEvmNetworksAction } from "@metamask/network-enablement-controller";
7
- import type { TransactionControllerTransactionConfirmedEvent, TransactionControllerUnapprovedTransactionAddedEvent } from "@metamask/transaction-controller";
8
- import type { Hex } from "@metamask/utils";
9
- import type { AccountTrackerControllerMethodActions } from "./AccountTrackerController-method-action-types.cjs";
10
- import type { AssetsContractController, StakedBalance } from "./AssetsContractController.cjs";
1
+ import type { AccountsControllerSelectedEvmAccountChangeEvent, AccountsControllerGetSelectedAccountAction, AccountsControllerListAccountsAction } from '@metamask/accounts-controller';
2
+ import type { ControllerStateChangeEvent, ControllerGetStateAction } from '@metamask/base-controller';
3
+ import type { KeyringControllerGetStateAction, KeyringControllerLockEvent, KeyringControllerUnlockEvent } from '@metamask/keyring-controller';
4
+ import type { Messenger } from '@metamask/messenger';
5
+ import type { NetworkClientId, NetworkControllerGetNetworkClientByIdAction, NetworkControllerGetStateAction, NetworkControllerNetworkAddedEvent } from '@metamask/network-controller';
6
+ import type { NetworkEnablementControllerGetStateAction, NetworkEnablementControllerListPopularEvmNetworksAction } from '@metamask/network-enablement-controller';
7
+ import type { TransactionControllerTransactionConfirmedEvent, TransactionControllerUnapprovedTransactionAddedEvent } from '@metamask/transaction-controller';
8
+ import type { Hex } from '@metamask/utils';
9
+ import type { AccountTrackerControllerMethodActions } from './AccountTrackerController-method-action-types.js';
10
+ import type { AssetsContractController, StakedBalance } from './AssetsContractController.js';
11
11
  /**
12
12
  * The name of the {@link AccountTrackerController}.
13
13
  */
@@ -78,18 +78,18 @@ type AccountTrackerPollingInput = {
78
78
  queryAllAccounts?: boolean;
79
79
  };
80
80
  declare const AccountTrackerController_base: (abstract new (...args: any[]) => {
81
- readonly "__#6@#intervalIds": Record<string, NodeJS.Timeout>;
82
- "__#6@#intervalLength": number | undefined;
83
- setIntervalLength(intervalLength: number): void;
84
- getIntervalLength(): number | undefined;
85
- _startPolling(input: AccountTrackerPollingInput): void;
86
- _stopPollingByPollingTokenSetId(key: string): void;
87
- readonly "__#3@#pollingTokenSets": Map<string, Set<string>>;
88
- readonly "__#3@#callbacks": Map<string, Set<(input: AccountTrackerPollingInput) => void>>;
81
+ readonly _callbacks: Map<string, Set<(input: AccountTrackerPollingInput) => void>>;
89
82
  _executePoll(input: AccountTrackerPollingInput): Promise<void>;
90
83
  startPolling(input: AccountTrackerPollingInput): string;
91
84
  stopAllPolling(): void;
92
85
  stopPollingByPollingToken(pollingToken: string): void;
86
+ readonly _intervalIds: Record<import("@metamask/polling-controller").PollingTokenSetId, NodeJS.Timeout>;
87
+ _intervalLength: number | undefined;
88
+ setIntervalLength(intervalLength: number): void;
89
+ getIntervalLength(): number | undefined;
90
+ _startPolling(input: AccountTrackerPollingInput): void;
91
+ _stopPollingByPollingTokenSetId(key: import("@metamask/polling-controller").PollingTokenSetId): void;
92
+ readonly _pollingTokenSets: Map<import("@metamask/polling-controller").PollingTokenSetId, Set<string>>;
93
93
  onPollingComplete(input: AccountTrackerPollingInput, callback: (input: AccountTrackerPollingInput) => void): void;
94
94
  }) & typeof import("@metamask/base-controller").BaseController;
95
95
  /**
@@ -196,4 +196,4 @@ export declare class AccountTrackerController extends AccountTrackerController_b
196
196
  }[]): void;
197
197
  }
198
198
  export default AccountTrackerController;
199
- //# sourceMappingURL=AccountTrackerController.d.cts.map
199
+ //# sourceMappingURL=AccountTrackerController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountTrackerController.d.ts","sourceRoot":"","sources":["../src/AccountTrackerController.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,+CAA+C,EAC/C,0CAA0C,EAC1C,oCAAoC,EACrC,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EAEzB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,KAAK,EACV,+BAA+B,EAC/B,0BAA0B,EAC1B,4BAA4B,EAC7B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAEV,eAAe,EACf,2CAA2C,EAC3C,+BAA+B,EAC/B,kCAAkC,EACnC,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,yCAAyC,EACzC,uDAAuD,EACxD,MAAM,yCAAyC,CAAC;AAEjD,OAAO,KAAK,EACV,8CAA8C,EAC9C,oDAAoD,EAErD,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAI3C,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,mDAAmD,CAAC;AAE/G,OAAO,KAAK,EACV,wBAAwB,EACxB,aAAa,EACd,MAAM,+BAA+B,CAAC;AAUvC;;GAEG;AACH,QAAA,MAAM,cAAc,6BAA6B,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG,GAAG,CAAC;AAC7B,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC;AA4DlC;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC1C,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAC,CAAC;CAC9E,CAAC;AAWF;;GAEG;AACH,MAAM,MAAM,sCAAsC,GAAG,wBAAwB,CAC3E,OAAO,cAAc,EACrB,6BAA6B,CAC9B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,+BAA+B,GACvC,sCAAsC,GACtC,qCAAqC,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,oCAAoC,GACpC;IACE,IAAI,EAAE,gCAAgC,CAAC;IACvC,OAAO,EAAE,MAAM;QAAE,6BAA6B,EAAE,OAAO,CAAA;KAAE,CAAC;CAC3D,GACD,0CAA0C,GAC1C,+BAA+B,GAC/B,2CAA2C,GAC3C,yCAAyC,GACzC,uDAAuD,GACvD,+BAA+B,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,wCAAwC,GAClD,0BAA0B,CACxB,OAAO,cAAc,EACrB,6BAA6B,CAC9B,CAAC;AAEJ;;GAEG;AACH,MAAM,MAAM,8BAA8B,GACxC,wCAAwC,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,+CAA+C,GAC/C,oDAAoD,GACpD,8CAA8C,GAC9C,kCAAkC,GAClC,0BAA0B,GAC1B,4BAA4B,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,iCAAiC,GAAG,SAAS,CACvD,OAAO,cAAc,EACrB,+BAA+B,GAAG,cAAc,EAChD,8BAA8B,GAAG,aAAa,CAC/C,CAAC;AAEF,0EAA0E;AAC1E,KAAK,0BAA0B,GAAG;IAChC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;;;;;;;;;;;;;;;;AASF;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,8BAC5C,OAAO,cAAc,EACrB,6BAA6B,EAC7B,iCAAiC,CAClC;;IAsBC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,EACV,QAAgB,EAChB,KAAK,EACL,SAAS,EACT,wBAAwB,EACxB,mBAA2B,EAC3B,mBAA4C,EAC5C,qBAA2C,EAC3C,eAAqC,EACrC,WAAiC,EACjC,2BAAkD,EAClD,YAAmC,GACpC,EAAE;QACD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAC/C,SAAS,EAAE,iCAAiC,CAAC;QAC7C,wBAAwB,EAAE,wBAAwB,CAAC,0BAA0B,CAAC,CAAC;QAC/E,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,UAAU,EAAE,CAAC;QACzC,2BAA2B,CAAC,EAAE,MAAM,OAAO,CAAC;QAC5C,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC;QACtC,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC;QAChC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;KAC9B,EA0HA;IAED;;;;;OAKG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAkND;;;;;;OAMG;IACG,YAAY,CAAC,EACjB,gBAAgB,EAChB,gBAAwB,GACzB,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5C;IAED;;;;;;;OAOG;IACG,OAAO,CACX,gBAAgB,EAAE,eAAe,EAAE,EACnC,gBAAgB,GAAE,OAAe,GAChC,OAAO,CAAC,IAAI,CAAC,CAqBf;IAEK,gBAAgB,CAAC,EACrB,gBAAgB,EAChB,SAAS,GACV,EAAE;QACD,gBAAgB,EAAE,eAAe,EAAE,CAAC;QACpC,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBhB;IAmLD;;;;;;OAMG;IACG,wBAAwB,CAC5B,SAAS,EAAE,MAAM,EAAE,EACnB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CACR,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,aAAa,CAAA;KAAE,CAAC,CACnE,CA0DA;IAED;;;;;;OAMG;IACH,oBAAoB,CAClB,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,EAAE,GAC1D,IAAI,CA6CN;IAED;;;;;;OAMG;IACH,oBAAoB,CAClB,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,GAAG,CAAC;QACb,aAAa,EAAE,aAAa,CAAC;KAC9B,EAAE,GACF,IAAI,CA8CN;CACF;eAEc,wBAAwB"}
@@ -1,34 +1,26 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
1
6
  var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
7
  if (kind === "m") throw new TypeError("Private method is not writable");
3
8
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
10
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
11
  };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
12
  var _AccountTrackerController_instances, _AccountTrackerController_refreshMutex, _AccountTrackerController_includeStakedAssets, _AccountTrackerController_accountsApiChainIds, _AccountTrackerController_getStakedBalanceForChain, _AccountTrackerController_balanceFetchers, _AccountTrackerController_fetchingEnabled, _AccountTrackerController_isOnboarded, _AccountTrackerController_isHomepageSectionsV1Enabled, _AccountTrackerController_isDeprecated, _AccountTrackerController_isLocked, _AccountTrackerController_enforceDisabledState, _AccountTrackerController_syncAccounts, _AccountTrackerController_getProvider, _AccountTrackerController_getNetworkClient, _AccountTrackerController_createAccountsApiFetcher, _AccountTrackerController_getCorrectNetworkClient, _AccountTrackerController_getNetworkClientIds, _AccountTrackerController_refreshAccounts;
13
- function $importDefault(module) {
14
- if (module?.__esModule) {
15
- return module.default;
16
- }
17
- return module;
18
- }
19
- import { Web3Provider } from "@ethersproject/providers";
20
- import { query, safelyExecuteWithTimeout, toChecksumHexAddress } from "@metamask/controller-utils";
21
- import $EthQuery from "@metamask/eth-query";
22
- const EthQuery = $importDefault($EthQuery);
23
- import { StaticIntervalPollingController } from "@metamask/polling-controller";
24
- import { assert, KnownCaipNamespace } from "@metamask/utils";
25
- import { Mutex } from "async-mutex";
26
- import $lodash from "lodash";
27
- const { cloneDeep, isEqual } = $lodash;
28
- import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from "./AssetsContractController.mjs";
29
- import { shouldIncludeNativeToken } from "./constants.mjs";
30
- import { AccountsApiBalanceFetcher } from "./multi-chain-accounts-service/api-balance-fetcher.mjs";
31
- import { RpcBalanceFetcher } from "./rpc-service/rpc-balance-fetcher.mjs";
13
+ import { Web3Provider } from '@ethersproject/providers';
14
+ import { query, safelyExecuteWithTimeout, toChecksumHexAddress, } from '@metamask/controller-utils';
15
+ import EthQuery from '@metamask/eth-query';
16
+ import { StaticIntervalPollingController } from '@metamask/polling-controller';
17
+ import { assert, KnownCaipNamespace } from '@metamask/utils';
18
+ import { Mutex } from 'async-mutex';
19
+ import { cloneDeep, isEqual } from 'lodash-es';
20
+ import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from './AssetsContractController.js';
21
+ import { shouldIncludeNativeToken } from './constants.js';
22
+ import { AccountsApiBalanceFetcher } from './multi-chain-accounts-service/api-balance-fetcher.js';
23
+ import { RpcBalanceFetcher } from './rpc-service/rpc-balance-fetcher.js';
32
24
  /**
33
25
  * The name of the {@link AccountTrackerController}.
34
26
  */
@@ -643,4 +635,4 @@ _AccountTrackerController_refreshMutex = new WeakMap(), _AccountTrackerControlle
643
635
  }
644
636
  };
645
637
  export default AccountTrackerController;
646
- //# sourceMappingURL=AccountTrackerController.mjs.map
638
+ //# sourceMappingURL=AccountTrackerController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountTrackerController.js","sourceRoot":"","sources":["../src/AccountTrackerController.ts"],"names":[],"mappings":"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","sourcesContent":["import { Web3Provider } from '@ethersproject/providers';\nimport type {\n AccountsControllerSelectedEvmAccountChangeEvent,\n AccountsControllerGetSelectedAccountAction,\n AccountsControllerListAccountsAction,\n} from '@metamask/accounts-controller';\nimport type {\n ControllerStateChangeEvent,\n ControllerGetStateAction,\n StateMetadata,\n} from '@metamask/base-controller';\nimport {\n query,\n safelyExecuteWithTimeout,\n toChecksumHexAddress,\n} from '@metamask/controller-utils';\nimport EthQuery from '@metamask/eth-query';\nimport type {\n KeyringControllerGetStateAction,\n KeyringControllerLockEvent,\n KeyringControllerUnlockEvent,\n} from '@metamask/keyring-controller';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport type { Messenger } from '@metamask/messenger';\nimport type {\n NetworkClient,\n NetworkClientId,\n NetworkControllerGetNetworkClientByIdAction,\n NetworkControllerGetStateAction,\n NetworkControllerNetworkAddedEvent,\n} from '@metamask/network-controller';\nimport type {\n NetworkEnablementControllerGetStateAction,\n NetworkEnablementControllerListPopularEvmNetworksAction,\n} from '@metamask/network-enablement-controller';\nimport { StaticIntervalPollingController } from '@metamask/polling-controller';\nimport type {\n TransactionControllerTransactionConfirmedEvent,\n TransactionControllerUnapprovedTransactionAddedEvent,\n TransactionMeta,\n} from '@metamask/transaction-controller';\nimport { assert, KnownCaipNamespace } from '@metamask/utils';\nimport type { Hex } from '@metamask/utils';\nimport { Mutex } from 'async-mutex';\nimport { cloneDeep, isEqual } from 'lodash-es';\n\nimport type { AccountTrackerControllerMethodActions } from './AccountTrackerController-method-action-types.js';\nimport { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from './AssetsContractController.js';\nimport type {\n AssetsContractController,\n StakedBalance,\n} from './AssetsContractController.js';\nimport { shouldIncludeNativeToken } from './constants.js';\nimport { AccountsApiBalanceFetcher } from './multi-chain-accounts-service/api-balance-fetcher.js';\nimport type {\n BalanceFetcher,\n BalanceFetchResult,\n ProcessedBalance,\n} from './multi-chain-accounts-service/api-balance-fetcher.js';\nimport { RpcBalanceFetcher } from './rpc-service/rpc-balance-fetcher.js';\n\n/**\n * The name of the {@link AccountTrackerController}.\n */\nconst controllerName = 'AccountTrackerController';\n\nexport type ChainIdHex = Hex;\nexport type ChecksumAddress = Hex;\n\nconst ZERO_ADDRESS =\n '0x0000000000000000000000000000000000000000' as ChecksumAddress;\n\n/**\n * Creates an RPC balance fetcher configured for AccountTracker use case.\n * Returns only native balances and staked balances (no token balances).\n *\n * @param getProvider - Function to get Web3Provider for a given chain ID\n * @param getNetworkClient - Function to get NetworkClient for a given chain ID\n * @param includeStakedAssets - Whether to include staked assets in the fetch\n * @returns BalanceFetcher configured to fetch only native and optionally staked balances\n */\nfunction createAccountTrackerRpcBalanceFetcher(\n getProvider: (chainId: Hex) => Web3Provider,\n getNetworkClient: (chainId: Hex) => NetworkClient,\n includeStakedAssets: boolean,\n): BalanceFetcher {\n // Provide empty tokens state to ensure only native and staked balances are fetched\n const getEmptyTokensState = (): {\n allTokens: Record<string, never>;\n allDetectedTokens: Record<string, never>;\n } => ({\n allTokens: {},\n allDetectedTokens: {},\n });\n\n const rpcBalanceFetcher = new RpcBalanceFetcher(\n getProvider,\n getNetworkClient,\n getEmptyTokensState,\n );\n\n // Wrap the RpcBalanceFetcher to filter staked balances when not needed\n return {\n supports(_chainId: ChainIdHex): boolean {\n return rpcBalanceFetcher.supports();\n },\n\n async fetch(\n params: Parameters<BalanceFetcher['fetch']>[0],\n ): Promise<BalanceFetchResult> {\n const result = await rpcBalanceFetcher.fetch(params);\n\n if (!includeStakedAssets) {\n // Filter out staked balances from the results\n return {\n balances: result.balances.filter(\n (balance) => balance.token === ZERO_ADDRESS,\n ),\n unprocessedChainIds: result.unprocessedChainIds,\n };\n }\n\n return result;\n },\n };\n}\n\n/**\n * AccountInformation\n *\n * Account information object\n *\n * balance - Hex string of an account balance in wei\n *\n * stakedBalance - Hex string of an account staked balance in wei\n */\nexport type AccountInformation = {\n balance: string;\n stakedBalance?: string;\n};\n\n/**\n * AccountTrackerControllerState\n *\n * Account tracker controller state\n *\n * accountsByChainId - Map of addresses to account information by chain\n */\nexport type AccountTrackerControllerState = {\n accountsByChainId: Record<string, { [address: string]: AccountInformation }>;\n};\n\nconst accountTrackerMetadata: StateMetadata<AccountTrackerControllerState> = {\n accountsByChainId: {\n includeInStateLogs: false,\n persist: true,\n includeInDebugSnapshot: false,\n usedInUi: true,\n },\n};\n\n/**\n * The action that can be performed to get the state of the {@link AccountTrackerController}.\n */\nexport type AccountTrackerControllerGetStateAction = ControllerGetStateAction<\n typeof controllerName,\n AccountTrackerControllerState\n>;\n\n/**\n * The actions that can be performed using the {@link AccountTrackerController}.\n */\nexport type AccountTrackerControllerActions =\n | AccountTrackerControllerGetStateAction\n | AccountTrackerControllerMethodActions;\n\n/**\n * The messenger of the {@link AccountTrackerController} for communication.\n */\nexport type AllowedActions =\n | AccountsControllerListAccountsAction\n | {\n type: 'PreferencesController:getState';\n handler: () => { isMultiAccountBalancesEnabled: boolean };\n }\n | AccountsControllerGetSelectedAccountAction\n | NetworkControllerGetStateAction\n | NetworkControllerGetNetworkClientByIdAction\n | NetworkEnablementControllerGetStateAction\n | NetworkEnablementControllerListPopularEvmNetworksAction\n | KeyringControllerGetStateAction;\n\n/**\n * The event that {@link AccountTrackerController} can emit.\n */\nexport type AccountTrackerControllerStateChangeEvent =\n ControllerStateChangeEvent<\n typeof controllerName,\n AccountTrackerControllerState\n >;\n\n/**\n * The events that {@link AccountTrackerController} can emit.\n */\nexport type AccountTrackerControllerEvents =\n AccountTrackerControllerStateChangeEvent;\n\n/**\n * The external events available to the {@link AccountTrackerController}.\n */\nexport type AllowedEvents =\n | AccountsControllerSelectedEvmAccountChangeEvent\n | TransactionControllerUnapprovedTransactionAddedEvent\n | TransactionControllerTransactionConfirmedEvent\n | NetworkControllerNetworkAddedEvent\n | KeyringControllerLockEvent\n | KeyringControllerUnlockEvent;\n\n/**\n * The messenger of the {@link AccountTrackerController}.\n */\nexport type AccountTrackerControllerMessenger = Messenger<\n typeof controllerName,\n AccountTrackerControllerActions | AllowedActions,\n AccountTrackerControllerEvents | AllowedEvents\n>;\n\n/** The input to start polling for the {@link AccountTrackerController} */\ntype AccountTrackerPollingInput = {\n networkClientIds: NetworkClientId[];\n queryAllAccounts?: boolean;\n};\n\nconst MESSENGER_EXPOSED_METHODS = [\n 'updateNativeBalances',\n 'updateStakedBalances',\n 'refresh',\n 'syncBalanceWithAddresses',\n] as const;\n\n/**\n * Controller that tracks the network balances for all user accounts.\n */\nexport class AccountTrackerController extends StaticIntervalPollingController<AccountTrackerPollingInput>()<\n typeof controllerName,\n AccountTrackerControllerState,\n AccountTrackerControllerMessenger\n> {\n readonly #refreshMutex = new Mutex();\n\n readonly #includeStakedAssets: boolean;\n\n readonly #accountsApiChainIds: () => ChainIdHex[];\n\n readonly #getStakedBalanceForChain: AssetsContractController['getStakedBalanceForChain'];\n\n readonly #balanceFetchers: BalanceFetcher[];\n\n readonly #fetchingEnabled: () => boolean;\n\n readonly #isOnboarded: () => boolean;\n\n readonly #isHomepageSectionsV1Enabled: () => boolean;\n\n readonly #isDeprecated: () => boolean;\n\n /** Track if the keyring is locked */\n #isLocked = true;\n\n /**\n * Creates an AccountTracker instance.\n *\n * @param options - The controller options.\n * @param options.interval - Polling interval used to fetch new account balances.\n * @param options.state - Initial state to set on this controller.\n * @param options.messenger - The controller messenger.\n * @param options.getStakedBalanceForChain - The function to get the staked native asset balance for a chain.\n * @param options.includeStakedAssets - Whether to include staked assets in the account balances.\n * @param options.accountsApiChainIds - Function that returns array of chainIds that should use Accounts-API strategy (if supported by API).\n * @param options.allowExternalServices - Disable external HTTP calls (privacy / offline mode).\n * @param options.fetchingEnabled - Function that returns whether the controller is fetching enabled.\n * @param options.isOnboarded - Whether the user has completed onboarding. If false, balance updates are skipped.\n * @param options.isHomepageSectionsV1Enabled - Whether the homepage sections v1 is enabled.\n * @param options.isDeprecated - Optional function that returns true to completely\n * disable this controller (no requests, no state updates). When it returns\n * `true`, `accountsByChainId` is reset to `{}` at construction and at every\n * entry point, so no stale balances remain in state. The function is evaluated\n * dynamically on each entry point so it can be toggled at runtime. Intended for\n * use when a higher-level controller (e.g. AssetsController) supersedes this one.\n */\n constructor({\n interval = 10000,\n state,\n messenger,\n getStakedBalanceForChain,\n includeStakedAssets = false,\n accountsApiChainIds = (): ChainIdHex[] => [],\n allowExternalServices = (): boolean => true,\n fetchingEnabled = (): boolean => true,\n isOnboarded = (): boolean => true,\n isHomepageSectionsV1Enabled = (): boolean => false,\n isDeprecated = (): boolean => false,\n }: {\n interval?: number;\n state?: Partial<AccountTrackerControllerState>;\n messenger: AccountTrackerControllerMessenger;\n getStakedBalanceForChain: AssetsContractController['getStakedBalanceForChain'];\n includeStakedAssets?: boolean;\n accountsApiChainIds?: () => ChainIdHex[];\n isHomepageSectionsV1Enabled?: () => boolean;\n allowExternalServices?: () => boolean;\n fetchingEnabled?: () => boolean;\n isOnboarded?: () => boolean;\n isDeprecated?: () => boolean;\n }) {\n const { selectedNetworkClientId } = messenger.call(\n 'NetworkController:getState',\n );\n const {\n configuration: { chainId },\n } = messenger.call(\n 'NetworkController:getNetworkClientById',\n selectedNetworkClientId,\n );\n super({\n name: controllerName,\n messenger,\n state: {\n accountsByChainId: {\n [chainId]: {},\n },\n ...state,\n },\n metadata: accountTrackerMetadata,\n });\n this.#getStakedBalanceForChain = getStakedBalanceForChain;\n\n this.#includeStakedAssets = includeStakedAssets;\n this.#accountsApiChainIds = accountsApiChainIds;\n this.#isHomepageSectionsV1Enabled = isHomepageSectionsV1Enabled;\n\n // Initialize balance fetchers - Strategy order: API first, then RPC fallback\n this.#balanceFetchers = [\n ...(accountsApiChainIds().length > 0 && allowExternalServices()\n ? [this.#createAccountsApiFetcher()]\n : []),\n createAccountTrackerRpcBalanceFetcher(\n this.#getProvider,\n this.#getNetworkClient,\n this.#includeStakedAssets,\n ),\n ];\n\n this.#fetchingEnabled = fetchingEnabled;\n this.#isOnboarded = isOnboarded;\n this.#isDeprecated = isDeprecated;\n\n if (this.#isDeprecated()) {\n this.#enforceDisabledState();\n }\n\n const { isUnlocked } = this.messenger.call('KeyringController:getState');\n this.#isLocked = !isUnlocked;\n\n this.setIntervalLength(interval);\n\n this.messenger.subscribe(\n 'AccountsController:selectedEvmAccountChange',\n (newAddress, prevAddress) => {\n if (newAddress !== prevAddress) {\n // Making an async call for this new event\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.refresh(this.#getNetworkClientIds());\n }\n },\n (event): string => event.address,\n );\n\n this.messenger.subscribe(\n 'NetworkController:networkAdded',\n (networkConfiguration) => {\n const { networkClientId } =\n networkConfiguration.rpcEndpoints[\n networkConfiguration.defaultRpcEndpointIndex\n ];\n this.refresh([networkClientId]).catch(() => {\n // Silently handle refresh errors\n });\n },\n );\n\n this.messenger.subscribe('KeyringController:unlock', () => {\n this.#isLocked = false;\n const networkClientIds = this.#getNetworkClientIds();\n this.refresh(networkClientIds).catch((error) => {\n console.error('Error refreshing balances after keyring unlock:', error);\n });\n });\n\n this.messenger.subscribe('KeyringController:lock', () => {\n this.#isLocked = true;\n });\n\n this.messenger.subscribe(\n 'TransactionController:unapprovedTransactionAdded',\n (transactionMeta: TransactionMeta) => {\n const addresses = [transactionMeta.txParams.from];\n if (transactionMeta.txParams.to) {\n addresses.push(transactionMeta.txParams.to);\n }\n this.refreshAddresses({\n networkClientIds: [transactionMeta.networkClientId],\n addresses,\n }).catch(() => {\n // Silently handle refresh errors\n });\n },\n );\n\n this.messenger.subscribe(\n 'TransactionController:transactionConfirmed',\n (transactionMeta: TransactionMeta) => {\n const addresses = [transactionMeta.txParams.from];\n if (transactionMeta.txParams.to) {\n addresses.push(transactionMeta.txParams.to);\n }\n this.refreshAddresses({\n networkClientIds: [transactionMeta.networkClientId],\n addresses,\n }).catch(() => {\n // Silently handle refresh errors\n });\n },\n );\n\n messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);\n }\n\n /**\n * Whether the controller is active (keyring is unlocked and user is onboarded).\n * When locked or not onboarded, balance updates should be skipped.\n *\n * @returns Whether the controller should perform balance updates.\n */\n get isActive(): boolean {\n return !this.#isLocked && this.#isOnboarded();\n }\n\n /**\n * Clears all persisted `accountsByChainId` so that no stale balances remain in\n * state.\n *\n * Called from every entry point when `isDeprecated()` is true so that a runtime\n * toggle propagates to state immediately, even if the controller was originally\n * constructed while it was enabled. The update is skipped when\n * `accountsByChainId` is already empty to avoid emitting redundant state\n * changes.\n */\n #enforceDisabledState(): void {\n if (Object.keys(this.state.accountsByChainId).length === 0) {\n return;\n }\n this.update((state) => {\n state.accountsByChainId = {};\n });\n }\n\n #syncAccounts(newChainIds: string[]): void {\n const accountsByChainId = cloneDeep(this.state.accountsByChainId);\n const { selectedNetworkClientId } = this.messenger.call(\n 'NetworkController:getState',\n );\n const {\n configuration: { chainId: currentChainId },\n } = this.messenger.call(\n 'NetworkController:getNetworkClientById',\n selectedNetworkClientId,\n );\n\n const existing = Object.keys(accountsByChainId?.[currentChainId] ?? {});\n\n // Initialize new chain IDs if they don't exist\n newChainIds.forEach((newChainId) => {\n if (!accountsByChainId[newChainId]) {\n accountsByChainId[newChainId] = {};\n existing.forEach((address) => {\n accountsByChainId[newChainId][address] = { balance: '0x0' };\n });\n }\n });\n\n // Note: The address from the preferences controller are checksummed\n // The addresses from the accounts controller are lowercased\n const addresses = Object.values(\n this.messenger\n .call('AccountsController:listAccounts')\n .map((internalAccount) =>\n toChecksumHexAddress(internalAccount.address),\n ),\n );\n const newAddresses = addresses.filter(\n (address) => !existing.includes(address),\n );\n const oldAddresses = existing.filter(\n (address) => !addresses.includes(address),\n );\n Object.keys(accountsByChainId).forEach((chainId) => {\n newAddresses.forEach((address) => {\n if (!accountsByChainId[chainId][address]) {\n accountsByChainId[chainId][address] = {\n balance: '0x0',\n };\n }\n });\n });\n\n Object.keys(accountsByChainId).forEach((chainId) => {\n oldAddresses.forEach((address) => {\n delete accountsByChainId[chainId][address];\n });\n });\n\n if (!isEqual(this.state.accountsByChainId, accountsByChainId)) {\n this.update((state) => {\n state.accountsByChainId = accountsByChainId;\n });\n }\n }\n\n readonly #getProvider = (chainId: Hex): Web3Provider => {\n const { networkConfigurationsByChainId } = this.messenger.call(\n 'NetworkController:getState',\n );\n const networkConfig = networkConfigurationsByChainId[chainId];\n const { networkClientId } =\n networkConfig.rpcEndpoints[networkConfig.defaultRpcEndpointIndex];\n const client = this.messenger.call(\n 'NetworkController:getNetworkClientById',\n networkClientId,\n );\n return new Web3Provider(client.provider);\n };\n\n readonly #getNetworkClient = (chainId: Hex): NetworkClient => {\n const { networkConfigurationsByChainId } = this.messenger.call(\n 'NetworkController:getState',\n );\n const networkConfig = networkConfigurationsByChainId[chainId];\n const { networkClientId } =\n networkConfig.rpcEndpoints[networkConfig.defaultRpcEndpointIndex];\n return this.messenger.call(\n 'NetworkController:getNetworkClientById',\n networkClientId,\n );\n };\n\n /**\n * Creates an AccountsApiBalanceFetcher that only supports chains in the accountsApiChainIds array\n *\n * @returns A BalanceFetcher that wraps AccountsApiBalanceFetcher with chainId filtering\n */\n readonly #createAccountsApiFetcher = (): BalanceFetcher => {\n const originalFetcher = new AccountsApiBalanceFetcher(\n 'extension',\n this.#getProvider,\n );\n\n return {\n supports: (chainId: ChainIdHex): boolean => {\n // Only support chains that are both:\n // 1. In our specified accountsApiChainIds array\n // 2. Actually supported by the AccountsApi\n return (\n this.#accountsApiChainIds().includes(chainId) &&\n originalFetcher.supports(chainId)\n );\n },\n fetch: originalFetcher.fetch.bind(originalFetcher),\n };\n };\n\n /**\n * Resolves a networkClientId to a network client config\n * or globally selected network config if not provided\n *\n * @param networkClientId - Optional networkClientId to fetch a network client with\n * @returns network client config\n */\n #getCorrectNetworkClient(networkClientId?: NetworkClientId): {\n chainId: Hex;\n provider: NetworkClient['provider'];\n ethQuery: EthQuery;\n blockTracker: NetworkClient['blockTracker'];\n } {\n const selectedNetworkClientId =\n networkClientId ??\n this.messenger.call('NetworkController:getState').selectedNetworkClientId;\n const {\n configuration: { chainId },\n provider,\n blockTracker,\n } = this.messenger.call(\n 'NetworkController:getNetworkClientById',\n selectedNetworkClientId,\n );\n\n return {\n chainId,\n provider,\n ethQuery: new EthQuery(provider),\n blockTracker,\n };\n }\n\n /**\n * Retrieves the list of network client IDs.\n *\n * @returns An array of network client IDs.\n */\n #getNetworkClientIds(): NetworkClientId[] {\n const { networkConfigurationsByChainId } = this.messenger.call(\n 'NetworkController:getState',\n );\n\n if (this.#isHomepageSectionsV1Enabled()) {\n const popularEvmChainIds = this.messenger.call(\n 'NetworkEnablementController:listPopularEvmNetworks',\n );\n return popularEvmChainIds\n .map((hexChainId) => {\n const networkConfig = networkConfigurationsByChainId[hexChainId];\n return networkConfig?.rpcEndpoints[\n networkConfig.defaultRpcEndpointIndex\n ]?.networkClientId;\n })\n .filter((id): id is NetworkClientId => id !== undefined);\n }\n\n const { enabledNetworkMap } = this.messenger.call(\n 'NetworkEnablementController:getState',\n );\n\n const evmEnabledStorageKeys = enabledNetworkMap[KnownCaipNamespace.Eip155]\n ? Object.keys(enabledNetworkMap[KnownCaipNamespace.Eip155])\n : [];\n\n return evmEnabledStorageKeys\n .map((hexChainId) => {\n const networkConfig = networkConfigurationsByChainId[hexChainId as Hex];\n return networkConfig?.rpcEndpoints[\n networkConfig.defaultRpcEndpointIndex\n ]?.networkClientId;\n })\n .filter((id): id is NetworkClientId => id !== undefined);\n }\n\n /**\n * Refreshes the balances of the accounts using the networkClientId\n *\n * @param input - The input for the poll.\n * @param input.networkClientIds - The network client IDs used to get balances.\n * @param input.queryAllAccounts - Whether to query all accounts or just the selected account\n */\n async _executePoll({\n networkClientIds,\n queryAllAccounts = false,\n }: AccountTrackerPollingInput): Promise<void> {\n if (this.#isDeprecated()) {\n this.#enforceDisabledState();\n return;\n }\n // TODO: Either fix this lint violation or explain why it's necessary to ignore.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.refresh(networkClientIds, queryAllAccounts);\n }\n\n /**\n * Refreshes the balances of the accounts depending on the multi-account setting.\n * If multi-account is disabled, only updates the selected account balance.\n * If multi-account is enabled, updates balances for all accounts.\n *\n * @param networkClientIds - Optional network client IDs to fetch a network client with\n * @param queryAllAccounts - Whether to query all accounts or just the selected account\n */\n async refresh(\n networkClientIds: NetworkClientId[],\n queryAllAccounts: boolean = false,\n ): Promise<void> {\n if (this.#isDeprecated()) {\n this.#enforceDisabledState();\n return;\n }\n const selectedAccount = this.messenger.call(\n 'AccountsController:getSelectedAccount',\n );\n const allAccounts = this.messenger.call('AccountsController:listAccounts');\n const { isMultiAccountBalancesEnabled } = this.messenger.call(\n 'PreferencesController:getState',\n );\n\n await this.#refreshAccounts({\n networkClientIds,\n queryAllAccounts: queryAllAccounts ?? isMultiAccountBalancesEnabled,\n selectedAccount: toChecksumHexAddress(\n selectedAccount.address,\n ) as ChecksumAddress,\n allAccounts,\n });\n }\n\n async refreshAddresses({\n networkClientIds,\n addresses,\n }: {\n networkClientIds: NetworkClientId[];\n addresses: string[];\n }): Promise<void> {\n if (this.#isDeprecated()) {\n this.#enforceDisabledState();\n return;\n }\n const checksummedAddresses = addresses.map((address) =>\n toChecksumHexAddress(address),\n );\n\n const accounts = this.messenger\n .call('AccountsController:listAccounts')\n .filter((account) =>\n checksummedAddresses.includes(toChecksumHexAddress(account.address)),\n );\n\n await this.#refreshAccounts({\n networkClientIds,\n queryAllAccounts: true,\n selectedAccount: '0x0',\n allAccounts: accounts,\n });\n }\n\n async #refreshAccounts({\n networkClientIds,\n queryAllAccounts,\n selectedAccount,\n allAccounts,\n }: {\n networkClientIds: NetworkClientId[];\n queryAllAccounts: boolean;\n selectedAccount: ChecksumAddress;\n allAccounts: InternalAccount[];\n }): Promise<void> {\n const releaseLock = await this.#refreshMutex.acquire();\n try {\n const chainIds = networkClientIds.map((networkClientId) => {\n const { chainId } = this.#getCorrectNetworkClient(networkClientId);\n return chainId;\n });\n\n this.#syncAccounts(chainIds);\n\n if (!this.#fetchingEnabled() || !this.isActive) {\n return;\n }\n\n // Use balance fetchers with fallback strategy\n const aggregated: ProcessedBalance[] = [];\n let remainingChains = [...chainIds] as ChainIdHex[];\n\n // Temporary normalization to lowercase for balance fetching to match TokenBalancesController and enable HTTP caching\n const lowerCaseSelectedAccount =\n selectedAccount.toLowerCase() as ChecksumAddress;\n const lowerCaseAllAccounts = allAccounts.map((account) => ({\n ...account,\n address: account.address.toLowerCase(),\n }));\n\n // Try each fetcher in order, removing successfully processed chains\n for (const fetcher of this.#balanceFetchers) {\n const supportedChains = remainingChains.filter((chainId) =>\n fetcher.supports(chainId),\n );\n if (!supportedChains.length) {\n continue;\n }\n\n try {\n const result = await fetcher.fetch({\n chainIds: supportedChains,\n queryAllAccounts,\n selectedAccount: lowerCaseSelectedAccount,\n allAccounts: lowerCaseAllAccounts,\n });\n\n if (result.balances && result.balances.length > 0) {\n aggregated.push(...result.balances);\n // Remove chains that were successfully processed\n const processedChains = new Set(\n result.balances.map((b) => b.chainId),\n );\n remainingChains = remainingChains.filter(\n (chain) => !processedChains.has(chain),\n );\n }\n\n // Add unprocessed chains back to remainingChains for next fetcher\n if (\n result.unprocessedChainIds &&\n result.unprocessedChainIds.length > 0\n ) {\n // Only add chains that were originally requested and aren't already in remainingChains\n const currentRemainingChains = remainingChains;\n const chainsToAdd = result.unprocessedChainIds.filter(\n (chainId) =>\n supportedChains.includes(chainId) &&\n !currentRemainingChains.includes(chainId),\n );\n remainingChains.push(...chainsToAdd);\n }\n } catch (error) {\n console.warn(\n `Balance fetcher failed for chains ${supportedChains.join(', ')}: ${String(error)}`,\n );\n // Continue to next fetcher (fallback)\n }\n\n // If all chains have been processed, break early\n if (remainingChains.length === 0) {\n break;\n }\n }\n\n // Build a _copy_ of the current state and track whether anything changed\n const nextAccountsByChainId: AccountTrackerControllerState['accountsByChainId'] =\n cloneDeep(this.state.accountsByChainId);\n let hasChanges = false;\n\n // Process the aggregated balance results\n const stakedBalancesByChainAndAddress: Record<\n string,\n Record<string, string>\n > = {};\n\n aggregated.forEach(({ success, value, account, token, chainId }) => {\n if (success && value !== undefined) {\n const checksumAddress = toChecksumHexAddress(account);\n const hexValue = `0x${value.toString(16)}`;\n\n if (token === ZERO_ADDRESS) {\n // Native balance\n // Ensure the account entry exists before accessing it\n if (!nextAccountsByChainId[chainId]) {\n nextAccountsByChainId[chainId] = {};\n }\n if (!nextAccountsByChainId[chainId][checksumAddress]) {\n nextAccountsByChainId[chainId][checksumAddress] = {\n balance: '0x0',\n };\n }\n\n if (\n nextAccountsByChainId[chainId][checksumAddress].balance !==\n hexValue\n ) {\n nextAccountsByChainId[chainId][checksumAddress].balance =\n hexValue;\n hasChanges = true;\n }\n } else if (\n STAKING_CONTRACT_ADDRESS_BY_CHAINID[chainId]?.toLowerCase() ===\n token.toLowerCase()\n ) {\n // Staked balance (from staking contract address)\n if (!stakedBalancesByChainAndAddress[chainId]) {\n stakedBalancesByChainAndAddress[chainId] = {};\n }\n stakedBalancesByChainAndAddress[chainId][checksumAddress] =\n hexValue;\n }\n }\n });\n\n // Apply staked balances\n Object.entries(stakedBalancesByChainAndAddress).forEach(\n ([chainId, balancesByAddress]) => {\n Object.entries(balancesByAddress).forEach(\n ([address, stakedBalance]) => {\n // Ensure account structure exists\n if (!nextAccountsByChainId[chainId]) {\n nextAccountsByChainId[chainId] = {};\n }\n if (!nextAccountsByChainId[chainId][address]) {\n nextAccountsByChainId[chainId][address] = { balance: '0x0' };\n }\n if (\n nextAccountsByChainId[chainId][address].stakedBalance !==\n stakedBalance\n ) {\n nextAccountsByChainId[chainId][address].stakedBalance =\n stakedBalance;\n hasChanges = true;\n }\n },\n );\n },\n );\n\n // Only update state if something changed\n if (hasChanges) {\n this.update((state) => {\n state.accountsByChainId = nextAccountsByChainId;\n });\n }\n } finally {\n releaseLock();\n }\n }\n\n /**\n * Sync accounts balances with some additional addresses.\n *\n * @param addresses - the additional addresses, may be hardware wallet addresses.\n * @param networkClientId - Optional networkClientId to fetch a network client with.\n * @returns accounts - addresses with synced balance\n */\n async syncBalanceWithAddresses(\n addresses: string[],\n networkClientId?: NetworkClientId,\n ): Promise<\n Record<string, { balance: string; stakedBalance?: StakedBalance }>\n > {\n if (this.#isDeprecated()) {\n this.#enforceDisabledState();\n return {};\n }\n // Skip balance fetching if locked or not onboarded to avoid unnecessary RPC calls\n if (!this.isActive) {\n return {};\n }\n\n const { ethQuery, chainId } =\n this.#getCorrectNetworkClient(networkClientId);\n\n // Skip native token fetching for chains that return arbitrary large numbers\n if (!shouldIncludeNativeToken(chainId)) {\n // Return empty balances for chains that skip native token fetching\n return addresses.reduce<\n Record<string, { balance: string; stakedBalance?: StakedBalance }>\n >((acc, address) => {\n acc[address] = { balance: '0x0' };\n return acc;\n }, {});\n }\n\n // TODO: This should use multicall when enabled by the user.\n return await Promise.all(\n addresses.map(\n (address): Promise<[string, string, StakedBalance] | undefined> => {\n return safelyExecuteWithTimeout(async () => {\n assert(ethQuery, 'Provider not set.');\n const balance = await query(ethQuery, 'getBalance', [address]);\n\n let stakedBalance: StakedBalance;\n if (this.#includeStakedAssets) {\n stakedBalance = (\n await this.#getStakedBalanceForChain([address], networkClientId)\n )[address];\n }\n return [address, balance, stakedBalance];\n });\n },\n ),\n ).then((value) => {\n return value.reduce((obj, item) => {\n if (!item) {\n return obj;\n }\n\n const [address, balance, stakedBalance] = item;\n return {\n ...obj,\n [address]: {\n balance,\n stakedBalance,\n },\n };\n }, {});\n });\n }\n\n /**\n * Updates the balances of multiple native tokens in a single batch operation.\n * This is more efficient than calling updateNativeToken multiple times as it\n * triggers only one state update.\n *\n * @param balances - Array of balance updates, each containing address, chainId, and balance.\n */\n updateNativeBalances(\n balances: { address: string; chainId: Hex; balance: Hex }[],\n ): void {\n if (this.#isDeprecated()) {\n this.#enforceDisabledState();\n return;\n }\n const nextAccountsByChainId = cloneDeep(this.state.accountsByChainId);\n let hasChanges = false;\n\n balances.forEach(({ address, chainId, balance }) => {\n const checksumAddress = toChecksumHexAddress(address);\n\n // Ensure the chainId exists in the state\n if (!nextAccountsByChainId[chainId]) {\n nextAccountsByChainId[chainId] = {};\n hasChanges = true;\n }\n\n // Check if the address exists for this chain\n const accountExists = Boolean(\n nextAccountsByChainId[chainId][checksumAddress],\n );\n\n // Ensure the address exists for this chain\n if (!accountExists) {\n nextAccountsByChainId[chainId][checksumAddress] = {\n balance: '0x0',\n };\n hasChanges = true;\n }\n\n // Only update the balance if it has changed, or if this is a new account\n const currentBalance =\n nextAccountsByChainId[chainId][checksumAddress].balance;\n if (!accountExists || currentBalance !== balance) {\n nextAccountsByChainId[chainId][checksumAddress].balance = balance;\n hasChanges = true;\n }\n });\n\n // Only call update if there are actual changes\n if (hasChanges) {\n this.update((state) => {\n state.accountsByChainId = nextAccountsByChainId;\n });\n }\n }\n\n /**\n * Updates the staked balances of multiple accounts in a single batch operation.\n * This is more efficient than updating staked balances individually as it\n * triggers only one state update.\n *\n * @param stakedBalances - Array of staked balance updates, each containing address, chainId, and stakedBalance.\n */\n updateStakedBalances(\n stakedBalances: {\n address: string;\n chainId: Hex;\n stakedBalance: StakedBalance;\n }[],\n ): void {\n if (this.#isDeprecated()) {\n this.#enforceDisabledState();\n return;\n }\n const nextAccountsByChainId = cloneDeep(this.state.accountsByChainId);\n let hasChanges = false;\n\n stakedBalances.forEach(({ address, chainId, stakedBalance }) => {\n const checksumAddress = toChecksumHexAddress(address);\n\n // Ensure the chainId exists in the state\n if (!nextAccountsByChainId[chainId]) {\n nextAccountsByChainId[chainId] = {};\n hasChanges = true;\n }\n\n // Check if the address exists for this chain\n const accountExists = Boolean(\n nextAccountsByChainId[chainId][checksumAddress],\n );\n\n // Ensure the address exists for this chain\n if (!accountExists) {\n nextAccountsByChainId[chainId][checksumAddress] = {\n balance: '0x0',\n };\n hasChanges = true;\n }\n\n // Only update the staked balance if it has changed, or if this is a new account\n const currentStakedBalance =\n nextAccountsByChainId[chainId][checksumAddress].stakedBalance;\n if (!accountExists || !isEqual(currentStakedBalance, stakedBalance)) {\n nextAccountsByChainId[chainId][checksumAddress].stakedBalance =\n stakedBalance;\n hasChanges = true;\n }\n });\n\n // Only call update if there are actual changes\n if (hasChanges) {\n this.update((state) => {\n state.accountsByChainId = nextAccountsByChainId;\n });\n }\n }\n}\n\nexport default AccountTrackerController;\n"]}
@@ -2,7 +2,7 @@
2
2
  * This file is auto generated.
3
3
  * Do not edit manually.
4
4
  */
5
- import type { AssetsContractController } from "./AssetsContractController.cjs";
5
+ import type { AssetsContractController } from './AssetsContractController.js';
6
6
  /**
7
7
  * Get a ERC20Standard instance using the relevant provider instance.
8
8
  *
@@ -207,4 +207,4 @@ export type AssetsContractControllerGetStakedBalanceForChainAction = {
207
207
  * Union of all AssetsContractController action types.
208
208
  */
209
209
  export type AssetsContractControllerMethodActions = AssetsContractControllerGetERC20StandardAction | AssetsContractControllerGetERC721StandardAction | AssetsContractControllerGetERC1155StandardAction | AssetsContractControllerGetERC20BalanceOfAction | AssetsContractControllerGetERC20TokenDecimalsAction | AssetsContractControllerGetERC20TokenNameAction | AssetsContractControllerGetERC721NftTokenIdAction | AssetsContractControllerGetTokenStandardAndDetailsAction | AssetsContractControllerGetERC721TokenURIAction | AssetsContractControllerGetERC721AssetNameAction | AssetsContractControllerGetERC721AssetSymbolAction | AssetsContractControllerGetERC721OwnerOfAction | AssetsContractControllerGetERC1155TokenURIAction | AssetsContractControllerGetERC1155BalanceOfAction | AssetsContractControllerTransferSingleERC1155Action | AssetsContractControllerGetBalancesInSingleCallAction | AssetsContractControllerGetStakedBalanceForChainAction;
210
- //# sourceMappingURL=AssetsContractController-method-action-types.d.cts.map
210
+ //# sourceMappingURL=AssetsContractController-method-action-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetsContractController-method-action-types.d.ts","sourceRoot":"","sources":["../src/AssetsContractController-method-action-types.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,4 @@
3
3
  * Do not edit manually.
4
4
  */
5
5
  export {};
6
- //# sourceMappingURL=AssetsContractController-method-action-types.mjs.map
6
+ //# sourceMappingURL=AssetsContractController-method-action-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetsContractController-method-action-types.js","sourceRoot":"","sources":["../src/AssetsContractController-method-action-types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * This file is auto generated.\n * Do not edit manually.\n */\n\nimport type { AssetsContractController } from './AssetsContractController.js';\n\n/**\n * Get a ERC20Standard instance using the relevant provider instance.\n *\n * @param networkClientId - Network Client ID used to get the provider.\n * @returns ERC20Standard instance.\n */\nexport type AssetsContractControllerGetERC20StandardAction = {\n type: `AssetsContractController:getERC20Standard`;\n handler: AssetsContractController['getERC20Standard'];\n};\n\n/**\n * Get a ERC721Standard instance using the relevant provider instance.\n *\n * @param networkClientId - Network Client ID used to get the provider.\n * @returns ERC721Standard instance.\n */\nexport type AssetsContractControllerGetERC721StandardAction = {\n type: `AssetsContractController:getERC721Standard`;\n handler: AssetsContractController['getERC721Standard'];\n};\n\n/**\n * Get a ERC1155Standard instance using the relevant provider instance.\n *\n * @param networkClientId - Network Client ID used to get the provider.\n * @returns ERC1155Standard instance.\n */\nexport type AssetsContractControllerGetERC1155StandardAction = {\n type: `AssetsContractController:getERC1155Standard`;\n handler: AssetsContractController['getERC1155Standard'];\n};\n\n/**\n * Get balance or count for current account on specific asset contract.\n *\n * @param address - Asset ERC20 contract address.\n * @param selectedAddress - Current account public address.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to BN object containing balance for current account on specific asset contract.\n */\nexport type AssetsContractControllerGetERC20BalanceOfAction = {\n type: `AssetsContractController:getERC20BalanceOf`;\n handler: AssetsContractController['getERC20BalanceOf'];\n};\n\n/**\n * Query for the decimals for a given ERC20 asset.\n *\n * @param address - ERC20 asset contract address.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'decimals'.\n */\nexport type AssetsContractControllerGetERC20TokenDecimalsAction = {\n type: `AssetsContractController:getERC20TokenDecimals`;\n handler: AssetsContractController['getERC20TokenDecimals'];\n};\n\n/**\n * Query for the name for a given ERC20 asset.\n *\n * @param address - ERC20 asset contract address.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'decimals'.\n */\nexport type AssetsContractControllerGetERC20TokenNameAction = {\n type: `AssetsContractController:getERC20TokenName`;\n handler: AssetsContractController['getERC20TokenName'];\n};\n\n/**\n * Enumerate assets assigned to an owner.\n *\n * @param address - ERC721 asset contract address.\n * @param selectedAddress - Current account public address.\n * @param index - An NFT counter less than `balanceOf(selectedAddress)`.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to token identifier for the 'index'th asset assigned to 'selectedAddress'.\n */\nexport type AssetsContractControllerGetERC721NftTokenIdAction = {\n type: `AssetsContractController:getERC721NftTokenId`;\n handler: AssetsContractController['getERC721NftTokenId'];\n};\n\n/**\n * Enumerate assets assigned to an owner.\n *\n * @param tokenAddress - ERC721 asset contract address.\n * @param userAddress - Current account public address.\n * @param tokenId - ERC721 asset identifier.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to an object containing the token standard and a set of details which depend on which standard the token supports.\n */\nexport type AssetsContractControllerGetTokenStandardAndDetailsAction = {\n type: `AssetsContractController:getTokenStandardAndDetails`;\n handler: AssetsContractController['getTokenStandardAndDetails'];\n};\n\n/**\n * Query for tokenURI for a given ERC721 asset.\n *\n * @param address - ERC721 asset contract address.\n * @param tokenId - ERC721 asset identifier.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'tokenURI'.\n */\nexport type AssetsContractControllerGetERC721TokenURIAction = {\n type: `AssetsContractController:getERC721TokenURI`;\n handler: AssetsContractController['getERC721TokenURI'];\n};\n\n/**\n * Query for name for a given asset.\n *\n * @param address - ERC721 or ERC20 asset contract address.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'name'.\n */\nexport type AssetsContractControllerGetERC721AssetNameAction = {\n type: `AssetsContractController:getERC721AssetName`;\n handler: AssetsContractController['getERC721AssetName'];\n};\n\n/**\n * Query for symbol for a given asset.\n *\n * @param address - ERC721 or ERC20 asset contract address.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'symbol'.\n */\nexport type AssetsContractControllerGetERC721AssetSymbolAction = {\n type: `AssetsContractController:getERC721AssetSymbol`;\n handler: AssetsContractController['getERC721AssetSymbol'];\n};\n\n/**\n * Query for owner for a given ERC721 asset.\n *\n * @param address - ERC721 asset contract address.\n * @param tokenId - ERC721 asset identifier.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the owner address.\n */\nexport type AssetsContractControllerGetERC721OwnerOfAction = {\n type: `AssetsContractController:getERC721OwnerOf`;\n handler: AssetsContractController['getERC721OwnerOf'];\n};\n\n/**\n * Query for tokenURI for a given asset.\n *\n * @param address - ERC1155 asset contract address.\n * @param tokenId - ERC1155 asset identifier.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'tokenURI'.\n */\nexport type AssetsContractControllerGetERC1155TokenURIAction = {\n type: `AssetsContractController:getERC1155TokenURI`;\n handler: AssetsContractController['getERC1155TokenURI'];\n};\n\n/**\n * Query for balance of a given ERC 1155 token.\n *\n * @param userAddress - Wallet public address.\n * @param nftAddress - ERC1155 asset contract address.\n * @param nftId - ERC1155 asset identifier.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'balanceOf'.\n */\nexport type AssetsContractControllerGetERC1155BalanceOfAction = {\n type: `AssetsContractController:getERC1155BalanceOf`;\n handler: AssetsContractController['getERC1155BalanceOf'];\n};\n\n/**\n * Transfer single ERC1155 token.\n *\n * @param nftAddress - ERC1155 token address.\n * @param senderAddress - ERC1155 token sender.\n * @param recipientAddress - ERC1155 token recipient.\n * @param nftId - ERC1155 token id.\n * @param qty - Quantity of tokens to be sent.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'transferSingle' ERC1155 token.\n */\nexport type AssetsContractControllerTransferSingleERC1155Action = {\n type: `AssetsContractController:transferSingleERC1155`;\n handler: AssetsContractController['transferSingleERC1155'];\n};\n\n/**\n * Get the token balance for a list of token addresses in a single call. Only non-zero balances\n * are returned.\n *\n * @param selectedAddress - The address to check token balances for.\n * @param tokensToDetect - The token addresses to detect balances for.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns The list of non-zero token balances.\n */\nexport type AssetsContractControllerGetBalancesInSingleCallAction = {\n type: `AssetsContractController:getBalancesInSingleCall`;\n handler: AssetsContractController['getBalancesInSingleCall'];\n};\n\n/**\n * Get the staked ethereum balance for multiple addresses in a single call.\n *\n * @param addresses - The addresses to check staked ethereum balance for.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns The hex staked ethereum balance for address.\n */\nexport type AssetsContractControllerGetStakedBalanceForChainAction = {\n type: `AssetsContractController:getStakedBalanceForChain`;\n handler: AssetsContractController['getStakedBalanceForChain'];\n};\n\n/**\n * Union of all AssetsContractController action types.\n */\nexport type AssetsContractControllerMethodActions =\n | AssetsContractControllerGetERC20StandardAction\n | AssetsContractControllerGetERC721StandardAction\n | AssetsContractControllerGetERC1155StandardAction\n | AssetsContractControllerGetERC20BalanceOfAction\n | AssetsContractControllerGetERC20TokenDecimalsAction\n | AssetsContractControllerGetERC20TokenNameAction\n | AssetsContractControllerGetERC721NftTokenIdAction\n | AssetsContractControllerGetTokenStandardAndDetailsAction\n | AssetsContractControllerGetERC721TokenURIAction\n | AssetsContractControllerGetERC721AssetNameAction\n | AssetsContractControllerGetERC721AssetSymbolAction\n | AssetsContractControllerGetERC721OwnerOfAction\n | AssetsContractControllerGetERC1155TokenURIAction\n | AssetsContractControllerGetERC1155BalanceOfAction\n | AssetsContractControllerTransferSingleERC1155Action\n | AssetsContractControllerGetBalancesInSingleCallAction\n | AssetsContractControllerGetStakedBalanceForChainAction;\n"]}
@@ -1,12 +1,12 @@
1
- import type { Messenger } from "@metamask/messenger";
2
- import type { NetworkClientId, NetworkControllerGetNetworkClientByIdAction, NetworkControllerGetNetworkConfigurationByNetworkClientIdAction, NetworkControllerGetSelectedNetworkClientAction, NetworkControllerGetStateAction, NetworkControllerNetworkDidChangeEvent, Provider } from "@metamask/network-controller";
3
- import type { PreferencesControllerStateChangeEvent } from "@metamask/preferences-controller";
4
- import type { Hex } from "@metamask/utils";
5
- import type BN from "bn.js";
6
- import type { AssetsContractControllerMethodActions } from "./AssetsContractController-method-action-types.mjs";
7
- import { ERC20Standard } from "./Standards/ERC20Standard.mjs";
8
- import { ERC721Standard } from "./Standards/NftStandards/ERC721/ERC721Standard.mjs";
9
- import { ERC1155Standard } from "./Standards/NftStandards/ERC1155/ERC1155Standard.mjs";
1
+ import type { Messenger } from '@metamask/messenger';
2
+ import type { NetworkClientId, NetworkControllerGetNetworkClientByIdAction, NetworkControllerGetNetworkConfigurationByNetworkClientIdAction, NetworkControllerGetSelectedNetworkClientAction, NetworkControllerGetStateAction, NetworkControllerNetworkDidChangeEvent, Provider } from '@metamask/network-controller';
3
+ import type { PreferencesControllerStateChangeEvent } from '@metamask/preferences-controller';
4
+ import type { Hex } from '@metamask/utils';
5
+ import type BN from 'bn.js';
6
+ import type { AssetsContractControllerMethodActions } from './AssetsContractController-method-action-types.js';
7
+ import { ERC20Standard } from './Standards/ERC20Standard.js';
8
+ import { ERC721Standard } from './Standards/NftStandards/ERC721/ERC721Standard.js';
9
+ import { ERC1155Standard } from './Standards/NftStandards/ERC1155/ERC1155Standard.js';
10
10
  /**
11
11
  * Check if token detection is enabled for certain networks
12
12
  *
@@ -14,27 +14,27 @@ import { ERC1155Standard } from "./Standards/NftStandards/ERC1155/ERC1155Standar
14
14
  * @returns Whether the current network supports token detection
15
15
  */
16
16
  export declare const SINGLE_CALL_BALANCES_ADDRESS_BY_CHAINID: {
17
- readonly "0x1": "0xb1f8e55c7f64d203c1400b9d8555d050f94adf39";
18
- readonly "0x38": "0x2352c63A83f9Fd126af8676146721Fa00924d7e4";
19
- readonly "0x89": "0x2352c63A83f9Fd126af8676146721Fa00924d7e4";
20
- readonly "0xa86a": "0xD023D153a0DFa485130ECFdE2FAA7e612EF94818";
21
- readonly "0x4e454152": "0x1286415D333855237f89Df27D388127181448538";
22
- readonly "0xe704": "0x10dAd7Ca3921471f616db788D9300DC97Db01783";
23
- readonly "0xe708": "0xF62e6a41561b3650a69Bb03199C735e3E3328c0D";
24
- readonly "0xa4b1": "0x151E24A486D7258dd7C33Fb67E4bB01919B7B32c";
25
- readonly "0xa": "0xB1c568e9C3E6bdaf755A60c7418C269eb11524FC";
26
- readonly "0x2105": "0x6AA75276052D96696134252587894ef5FFA520af";
27
- readonly "0x144": "0x458fEd3144680a5b8bcfaa0F9594aa19B4Ea2D34";
28
- readonly "0x19": "0x768ca200f0fc702ac9ea502498c18f5eff176378";
29
- readonly "0xa4ec": "0x6aa75276052d96696134252587894ef5ffa520af";
30
- readonly "0x64": "0x6aa75276052d96696134252587894ef5ffa520af";
31
- readonly "0xfa": "0x6aa75276052d96696134252587894ef5ffa520af";
32
- readonly "0x44d": "0x6aa75276052d96696134252587894ef5ffa520af";
33
- readonly "0x504": "0x6aa75276052d96696134252587894ef5ffa520af";
34
- readonly "0x505": "0x6aa75276052d96696134252587894ef5ffa520af";
35
- readonly "0x1237": "0x1C0b2428d5C520EF51310dd1f93fBA6B58b47dA6";
17
+ readonly "0x1": '0xb1f8e55c7f64d203c1400b9d8555d050f94adf39';
18
+ readonly "0x38": '0x2352c63A83f9Fd126af8676146721Fa00924d7e4';
19
+ readonly "0x89": '0x2352c63A83f9Fd126af8676146721Fa00924d7e4';
20
+ readonly "0xa86a": '0xD023D153a0DFa485130ECFdE2FAA7e612EF94818';
21
+ readonly "0x4e454152": '0x1286415D333855237f89Df27D388127181448538';
22
+ readonly "0xe704": '0x10dAd7Ca3921471f616db788D9300DC97Db01783';
23
+ readonly "0xe708": '0xF62e6a41561b3650a69Bb03199C735e3E3328c0D';
24
+ readonly "0xa4b1": '0x151E24A486D7258dd7C33Fb67E4bB01919B7B32c';
25
+ readonly "0xa": '0xB1c568e9C3E6bdaf755A60c7418C269eb11524FC';
26
+ readonly "0x2105": '0x6AA75276052D96696134252587894ef5FFA520af';
27
+ readonly "0x144": '0x458fEd3144680a5b8bcfaa0F9594aa19B4Ea2D34';
28
+ readonly "0x19": '0x768ca200f0fc702ac9ea502498c18f5eff176378';
29
+ readonly "0xa4ec": '0x6aa75276052d96696134252587894ef5ffa520af';
30
+ readonly "0x64": '0x6aa75276052d96696134252587894ef5ffa520af';
31
+ readonly "0xfa": '0x6aa75276052d96696134252587894ef5ffa520af';
32
+ readonly "0x44d": '0x6aa75276052d96696134252587894ef5ffa520af';
33
+ readonly "0x504": '0x6aa75276052d96696134252587894ef5ffa520af';
34
+ readonly "0x505": '0x6aa75276052d96696134252587894ef5ffa520af';
35
+ readonly "0x1237": '0x1C0b2428d5C520EF51310dd1f93fBA6B58b47dA6';
36
36
  };
37
- export declare const STAKING_CONTRACT_ADDRESS_BY_CHAINID: Record<`0x${string}`, string>;
37
+ export declare const STAKING_CONTRACT_ADDRESS_BY_CHAINID: Record<Hex, string>;
38
38
  export declare const MISSING_PROVIDER_ERROR = "AssetsContractController failed to set the provider correctly. A provider must be set for this method to be available";
39
39
  /**
40
40
  * BalanceMap
@@ -255,4 +255,4 @@ export declare class AssetsContractController {
255
255
  getStakedBalanceForChain(addresses: string[], networkClientId?: NetworkClientId): Promise<Record<string, StakedBalance>>;
256
256
  }
257
257
  export default AssetsContractController;
258
- //# sourceMappingURL=AssetsContractController.d.mts.map
258
+ //# sourceMappingURL=AssetsContractController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetsContractController.d.ts","sourceRoot":"","sources":["../src/AssetsContractController.ts"],"names":[],"mappings":"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"}
@@ -10,22 +10,15 @@ 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 _AssetsContractController_instances, _AssetsContractController_provider, _AssetsContractController_ipfsGateway, _AssetsContractController_chainId, _AssetsContractController_registerEventSubscriptions, _AssetsContractController_getCorrectProvider, _AssetsContractController_getCorrectChainId;
13
- function $importDefault(module) {
14
- if (module?.__esModule) {
15
- return module.default;
16
- }
17
- return module;
18
- }
19
- import { Contract } from "@ethersproject/contracts";
20
- import { Web3Provider } from "@ethersproject/providers";
21
- import { IPFS_DEFAULT_GATEWAY_URL } from "@metamask/controller-utils";
22
- import $abiSingleCallBalancesContract from "single-call-balance-checker-abi";
23
- const abiSingleCallBalancesContract = $importDefault($abiSingleCallBalancesContract);
24
- import { SupportedStakedBalanceNetworks, SupportedTokenDetectionNetworks } from "./assetsUtil.mjs";
25
- import { multicallOrFallback } from "./multicall.mjs";
26
- import { ERC20Standard } from "./Standards/ERC20Standard.mjs";
27
- import { ERC721Standard } from "./Standards/NftStandards/ERC721/ERC721Standard.mjs";
28
- import { ERC1155Standard } from "./Standards/NftStandards/ERC1155/ERC1155Standard.mjs";
13
+ import { Contract } from '@ethersproject/contracts';
14
+ import { Web3Provider } from '@ethersproject/providers';
15
+ import { IPFS_DEFAULT_GATEWAY_URL } from '@metamask/controller-utils';
16
+ import abiSingleCallBalancesContract from 'single-call-balance-checker-abi';
17
+ import { SupportedStakedBalanceNetworks, SupportedTokenDetectionNetworks, } from './assetsUtil.js';
18
+ import { multicallOrFallback } from './multicall.js';
19
+ import { ERC20Standard } from './Standards/ERC20Standard.js';
20
+ import { ERC721Standard } from './Standards/NftStandards/ERC721/ERC721Standard.js';
21
+ import { ERC1155Standard } from './Standards/NftStandards/ERC1155/ERC1155Standard.js';
29
22
  /**
30
23
  * Check if token detection is enabled for certain networks
31
24
  *
@@ -470,4 +463,4 @@ _AssetsContractController_provider = new WeakMap(), _AssetsContractController_ip
470
463
  return networkClient.configuration?.chainId ?? __classPrivateFieldGet(this, _AssetsContractController_chainId, "f");
471
464
  };
472
465
  export default AssetsContractController;
473
- //# sourceMappingURL=AssetsContractController.mjs.map
466
+ //# sourceMappingURL=AssetsContractController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetsContractController.js","sourceRoot":"","sources":["../src/AssetsContractController.ts"],"names":[],"mappings":"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","sourcesContent":["// import { BigNumber } from '@ethersproject/bignumber';\nimport type { BigNumber } from '@ethersproject/bignumber';\nimport { Contract } from '@ethersproject/contracts';\nimport { Web3Provider } from '@ethersproject/providers';\nimport { IPFS_DEFAULT_GATEWAY_URL } from '@metamask/controller-utils';\nimport type { Messenger } from '@metamask/messenger';\nimport type {\n NetworkClientId,\n NetworkControllerGetNetworkClientByIdAction,\n NetworkControllerGetNetworkConfigurationByNetworkClientIdAction,\n NetworkControllerGetSelectedNetworkClientAction,\n NetworkControllerGetStateAction,\n NetworkControllerNetworkDidChangeEvent,\n Provider,\n} from '@metamask/network-controller';\nimport type { PreferencesControllerStateChangeEvent } from '@metamask/preferences-controller';\nimport type { Hex } from '@metamask/utils';\nimport type BN from 'bn.js';\nimport abiSingleCallBalancesContract from 'single-call-balance-checker-abi';\n\nimport type { AssetsContractControllerMethodActions } from './AssetsContractController-method-action-types.js';\nimport {\n SupportedStakedBalanceNetworks,\n SupportedTokenDetectionNetworks,\n} from './assetsUtil.js';\nimport type { Call } from './multicall.js';\nimport { multicallOrFallback } from './multicall.js';\nimport { ERC20Standard } from './Standards/ERC20Standard.js';\nimport { ERC721Standard } from './Standards/NftStandards/ERC721/ERC721Standard.js';\nimport { ERC1155Standard } from './Standards/NftStandards/ERC1155/ERC1155Standard.js';\n\n/**\n * Check if token detection is enabled for certain networks\n *\n * @param chainId - ChainID of network\n * @returns Whether the current network supports token detection\n */\nexport const SINGLE_CALL_BALANCES_ADDRESS_BY_CHAINID = {\n [SupportedTokenDetectionNetworks.Mainnet]:\n '0xb1f8e55c7f64d203c1400b9d8555d050f94adf39',\n [SupportedTokenDetectionNetworks.Bsc]:\n '0x2352c63A83f9Fd126af8676146721Fa00924d7e4',\n [SupportedTokenDetectionNetworks.Polygon]:\n '0x2352c63A83f9Fd126af8676146721Fa00924d7e4',\n [SupportedTokenDetectionNetworks.Avax]:\n '0xD023D153a0DFa485130ECFdE2FAA7e612EF94818',\n [SupportedTokenDetectionNetworks.Aurora]:\n '0x1286415D333855237f89Df27D388127181448538',\n [SupportedTokenDetectionNetworks.LineaGoerli]:\n '0x10dAd7Ca3921471f616db788D9300DC97Db01783',\n [SupportedTokenDetectionNetworks.LineaMainnet]:\n '0xF62e6a41561b3650a69Bb03199C735e3E3328c0D',\n [SupportedTokenDetectionNetworks.Arbitrum]:\n '0x151E24A486D7258dd7C33Fb67E4bB01919B7B32c',\n [SupportedTokenDetectionNetworks.Optimism]:\n '0xB1c568e9C3E6bdaf755A60c7418C269eb11524FC',\n [SupportedTokenDetectionNetworks.Base]:\n '0x6AA75276052D96696134252587894ef5FFA520af',\n [SupportedTokenDetectionNetworks.Zksync]:\n '0x458fEd3144680a5b8bcfaa0F9594aa19B4Ea2D34',\n [SupportedTokenDetectionNetworks.Cronos]:\n '0x768ca200f0fc702ac9ea502498c18f5eff176378',\n [SupportedTokenDetectionNetworks.Celo]:\n '0x6aa75276052d96696134252587894ef5ffa520af',\n [SupportedTokenDetectionNetworks.Gnosis]:\n '0x6aa75276052d96696134252587894ef5ffa520af',\n [SupportedTokenDetectionNetworks.Fantom]:\n '0x6aa75276052d96696134252587894ef5ffa520af',\n [SupportedTokenDetectionNetworks.PolygonZkevm]:\n '0x6aa75276052d96696134252587894ef5ffa520af',\n [SupportedTokenDetectionNetworks.Moonbeam]:\n '0x6aa75276052d96696134252587894ef5ffa520af',\n [SupportedTokenDetectionNetworks.Moonriver]:\n '0x6aa75276052d96696134252587894ef5ffa520af',\n [SupportedTokenDetectionNetworks.Robinhood]:\n '0x1C0b2428d5C520EF51310dd1f93fBA6B58b47dA6',\n} as const satisfies Record<Hex, string>;\n\nexport const STAKING_CONTRACT_ADDRESS_BY_CHAINID = {\n [SupportedStakedBalanceNetworks.Mainnet]:\n '0x4fef9d741011476750a243ac70b9789a63dd47df',\n [SupportedStakedBalanceNetworks.Hoodi]:\n '0xe96ac18cfe5a7af8fe1fe7bc37ff110d88bc67ff',\n} as Record<Hex, string>;\n\nexport const MISSING_PROVIDER_ERROR =\n 'AssetsContractController failed to set the provider correctly. A provider must be set for this method to be available';\n\n/**\n * BalanceMap\n *\n * Key value object containing the balance for each tokenAddress\n *\n * [tokenAddress] - Address of the token\n */\nexport type BalanceMap = {\n [tokenAddress: string]: BN;\n};\n\n/**\n * The name of the {@link AssetsContractController}\n */\nconst name = 'AssetsContractController';\n\n/**\n * The union of all internal messenger actions available to the {@link AssetsContractControllerMessenger}.\n */\nexport type AssetsContractControllerActions =\n AssetsContractControllerMethodActions;\n\n/**\n * The union of all internal messenger events available to the {@link AssetsContractControllerMessenger}.\n */\nexport type AssetsContractControllerEvents = never;\n\n/**\n * The union of all external messenger actions that must be allowed by the {@link AssetsContractControllerMessenger}.\n */\nexport type AllowedActions =\n | NetworkControllerGetNetworkClientByIdAction\n | NetworkControllerGetNetworkConfigurationByNetworkClientIdAction\n | NetworkControllerGetSelectedNetworkClientAction\n | NetworkControllerGetStateAction;\n\n/**\n * The union of all external messenger event that must be allowed by the {@link AssetsContractControllerMessenger}.\n */\nexport type AllowedEvents =\n | PreferencesControllerStateChangeEvent\n | NetworkControllerNetworkDidChangeEvent;\n\n/**\n * The messenger of the {@link AssetsContractController}.\n */\nexport type AssetsContractControllerMessenger = Messenger<\n typeof name,\n AssetsContractControllerActions | AllowedActions,\n AssetsContractControllerEvents | AllowedEvents\n>;\n\nexport type StakedBalance = string | undefined;\n\nconst MESSENGER_EXPOSED_METHODS = [\n 'getERC20Standard',\n 'getERC721Standard',\n 'getERC1155Standard',\n 'getERC20BalanceOf',\n 'getERC20TokenDecimals',\n 'getERC20TokenName',\n 'getERC721NftTokenId',\n 'getERC721TokenURI',\n 'getERC721AssetName',\n 'getERC721AssetSymbol',\n 'getERC721OwnerOf',\n 'getERC1155TokenURI',\n 'getERC1155BalanceOf',\n 'transferSingleERC1155',\n 'getTokenStandardAndDetails',\n 'getBalancesInSingleCall',\n 'getStakedBalanceForChain',\n] as const;\n\n/**\n * Controller that interacts with contracts on mainnet through web3\n */\nexport class AssetsContractController {\n readonly name: typeof name = name;\n\n protected messenger: AssetsContractControllerMessenger;\n\n #provider: Provider | undefined;\n\n #ipfsGateway: string;\n\n #chainId: Hex;\n\n /**\n * Creates a AssetsContractController instance.\n *\n * @param options - The controller options.\n * @param options.messenger - The messenger.\n * @param options.chainId - The chain ID of the current network.\n */\n constructor({\n messenger,\n chainId: initialChainId,\n }: {\n messenger: AssetsContractControllerMessenger;\n chainId: Hex;\n }) {\n this.messenger = messenger;\n this.#provider = undefined;\n this.#ipfsGateway = IPFS_DEFAULT_GATEWAY_URL;\n this.#chainId = initialChainId;\n\n messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);\n this.#registerEventSubscriptions();\n }\n\n #registerEventSubscriptions() {\n this.messenger.subscribe(\n `PreferencesController:stateChange`,\n ({ ipfsGateway }) => {\n this.#ipfsGateway = ipfsGateway;\n },\n );\n\n this.messenger.subscribe(\n `NetworkController:networkDidChange`,\n ({ selectedNetworkClientId }) => {\n const chainId = this.#getCorrectChainId(selectedNetworkClientId);\n\n if (this.#chainId !== chainId) {\n this.#chainId = chainId;\n // @ts-expect-error TODO: remove this annotation once the `Eip1193Provider` class is released\n this.#provider = this.#getCorrectProvider();\n }\n },\n );\n }\n\n /**\n * Sets a new provider.\n *\n * @param provider - Provider used to create a new underlying Web3 instance\n */\n setProvider(provider: Provider | undefined) {\n this.#provider = provider;\n }\n\n get ipfsGateway() {\n return this.#ipfsGateway;\n }\n\n get chainId() {\n return this.#chainId;\n }\n\n /**\n * Get the relevant provider instance.\n *\n * @param networkClientId - Network Client ID.\n * @returns Web3Provider instance.\n */\n #getCorrectProvider(networkClientId?: NetworkClientId): Web3Provider {\n const provider = networkClientId\n ? this.messenger.call(\n `NetworkController:getNetworkClientById`,\n networkClientId,\n ).provider\n : (this.messenger.call('NetworkController:getSelectedNetworkClient')\n ?.provider ?? this.#provider);\n\n if (provider === undefined) {\n throw new Error(MISSING_PROVIDER_ERROR);\n }\n\n return new Web3Provider(provider);\n }\n\n /**\n * Get the relevant chain ID.\n *\n * @param networkClientId - Network Client ID used to get the provider.\n * @returns Hex chain ID.\n */\n #getCorrectChainId(networkClientId?: NetworkClientId): Hex {\n if (networkClientId) {\n const networkClientConfiguration = this.messenger.call(\n 'NetworkController:getNetworkConfigurationByNetworkClientId',\n networkClientId,\n );\n if (networkClientConfiguration) {\n return networkClientConfiguration.chainId;\n }\n }\n const { selectedNetworkClientId } = this.messenger.call(\n 'NetworkController:getState',\n );\n const networkClient = this.messenger.call(\n 'NetworkController:getNetworkClientById',\n selectedNetworkClientId,\n );\n return networkClient.configuration?.chainId ?? this.#chainId;\n }\n\n /**\n * Get a ERC20Standard instance using the relevant provider instance.\n *\n * @param networkClientId - Network Client ID used to get the provider.\n * @returns ERC20Standard instance.\n */\n getERC20Standard(networkClientId?: NetworkClientId): ERC20Standard {\n const provider = this.#getCorrectProvider(networkClientId);\n return new ERC20Standard(provider);\n }\n\n /**\n * Get a ERC721Standard instance using the relevant provider instance.\n *\n * @param networkClientId - Network Client ID used to get the provider.\n * @returns ERC721Standard instance.\n */\n getERC721Standard(networkClientId?: NetworkClientId): ERC721Standard {\n const provider = this.#getCorrectProvider(networkClientId);\n return new ERC721Standard(provider);\n }\n\n /**\n * Get a ERC1155Standard instance using the relevant provider instance.\n *\n * @param networkClientId - Network Client ID used to get the provider.\n * @returns ERC1155Standard instance.\n */\n getERC1155Standard(networkClientId?: NetworkClientId): ERC1155Standard {\n const provider = this.#getCorrectProvider(networkClientId);\n return new ERC1155Standard(provider);\n }\n\n /**\n * Get balance or count for current account on specific asset contract.\n *\n * @param address - Asset ERC20 contract address.\n * @param selectedAddress - Current account public address.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to BN object containing balance for current account on specific asset contract.\n */\n async getERC20BalanceOf(\n address: string,\n selectedAddress: string,\n networkClientId?: NetworkClientId,\n ): Promise<BN> {\n const erc20Standard = this.getERC20Standard(networkClientId);\n return erc20Standard.getBalanceOf(address, selectedAddress);\n }\n\n /**\n * Query for the decimals for a given ERC20 asset.\n *\n * @param address - ERC20 asset contract address.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'decimals'.\n */\n async getERC20TokenDecimals(\n address: string,\n networkClientId?: NetworkClientId,\n ): Promise<string> {\n const erc20Standard = this.getERC20Standard(networkClientId);\n return erc20Standard.getTokenDecimals(address);\n }\n\n /**\n * Query for the name for a given ERC20 asset.\n *\n * @param address - ERC20 asset contract address.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'decimals'.\n */\n async getERC20TokenName(\n address: string,\n networkClientId?: NetworkClientId,\n ): Promise<string> {\n const erc20Standard = this.getERC20Standard(networkClientId);\n return erc20Standard.getTokenName(address);\n }\n\n /**\n * Enumerate assets assigned to an owner.\n *\n * @param address - ERC721 asset contract address.\n * @param selectedAddress - Current account public address.\n * @param index - An NFT counter less than `balanceOf(selectedAddress)`.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to token identifier for the 'index'th asset assigned to 'selectedAddress'.\n */\n async getERC721NftTokenId(\n address: string,\n selectedAddress: string,\n index: number,\n networkClientId?: NetworkClientId,\n ): Promise<string> {\n const erc721Standard = this.getERC721Standard(networkClientId);\n return erc721Standard.getNftTokenId(address, selectedAddress, index);\n }\n\n /**\n * Enumerate assets assigned to an owner.\n *\n * @param tokenAddress - ERC721 asset contract address.\n * @param userAddress - Current account public address.\n * @param tokenId - ERC721 asset identifier.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to an object containing the token standard and a set of details which depend on which standard the token supports.\n */\n async getTokenStandardAndDetails(\n tokenAddress: string,\n userAddress?: string,\n tokenId?: string,\n networkClientId?: NetworkClientId,\n ): Promise<{\n standard: string;\n tokenURI?: string | undefined;\n symbol?: string | undefined;\n name?: string | undefined;\n decimals?: string | undefined;\n balance?: BN | undefined;\n }> {\n // Asserts provider is available\n this.#getCorrectProvider(networkClientId);\n\n // ERC721\n try {\n const erc721Standard = this.getERC721Standard(networkClientId);\n return {\n ...(await erc721Standard.getDetails(\n tokenAddress,\n this.#ipfsGateway,\n tokenId,\n )),\n };\n } catch {\n // Ignore\n }\n\n // ERC1155\n try {\n const erc1155Standard = this.getERC1155Standard(networkClientId);\n return {\n ...(await erc1155Standard.getDetails(\n tokenAddress,\n this.#ipfsGateway,\n tokenId,\n )),\n };\n } catch {\n // Ignore\n }\n\n // ERC20\n try {\n const erc20Standard = this.getERC20Standard(networkClientId);\n return {\n ...(await erc20Standard.getDetails(tokenAddress, userAddress)),\n };\n } catch {\n // Ignore\n }\n\n throw new Error('Unable to determine contract standard');\n }\n\n /**\n * Query for tokenURI for a given ERC721 asset.\n *\n * @param address - ERC721 asset contract address.\n * @param tokenId - ERC721 asset identifier.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'tokenURI'.\n */\n async getERC721TokenURI(\n address: string,\n tokenId: string,\n networkClientId?: NetworkClientId,\n ): Promise<string> {\n const erc721Standard = this.getERC721Standard(networkClientId);\n return erc721Standard.getTokenURI(address, tokenId);\n }\n\n /**\n * Query for name for a given asset.\n *\n * @param address - ERC721 or ERC20 asset contract address.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'name'.\n */\n async getERC721AssetName(\n address: string,\n networkClientId?: NetworkClientId,\n ): Promise<string> {\n const erc721Standard = this.getERC721Standard(networkClientId);\n return erc721Standard.getAssetName(address);\n }\n\n /**\n * Query for symbol for a given asset.\n *\n * @param address - ERC721 or ERC20 asset contract address.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'symbol'.\n */\n async getERC721AssetSymbol(\n address: string,\n networkClientId?: NetworkClientId,\n ): Promise<string> {\n const erc721Standard = this.getERC721Standard(networkClientId);\n return erc721Standard.getAssetSymbol(address);\n }\n\n /**\n * Query for owner for a given ERC721 asset.\n *\n * @param address - ERC721 asset contract address.\n * @param tokenId - ERC721 asset identifier.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the owner address.\n */\n async getERC721OwnerOf(\n address: string,\n tokenId: string,\n networkClientId?: NetworkClientId,\n ): Promise<string> {\n const erc721Standard = this.getERC721Standard(networkClientId);\n return erc721Standard.getOwnerOf(address, tokenId);\n }\n\n /**\n * Query for tokenURI for a given asset.\n *\n * @param address - ERC1155 asset contract address.\n * @param tokenId - ERC1155 asset identifier.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'tokenURI'.\n */\n async getERC1155TokenURI(\n address: string,\n tokenId: string,\n networkClientId?: NetworkClientId,\n ): Promise<string> {\n const erc1155Standard = this.getERC1155Standard(networkClientId);\n return erc1155Standard.getTokenURI(address, tokenId);\n }\n\n /**\n * Query for balance of a given ERC 1155 token.\n *\n * @param userAddress - Wallet public address.\n * @param nftAddress - ERC1155 asset contract address.\n * @param nftId - ERC1155 asset identifier.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'balanceOf'.\n */\n async getERC1155BalanceOf(\n userAddress: string,\n nftAddress: string,\n nftId: string,\n networkClientId?: NetworkClientId,\n ): Promise<BN> {\n const erc1155Standard = this.getERC1155Standard(networkClientId);\n return erc1155Standard.getBalanceOf(nftAddress, userAddress, nftId);\n }\n\n /**\n * Transfer single ERC1155 token.\n *\n * @param nftAddress - ERC1155 token address.\n * @param senderAddress - ERC1155 token sender.\n * @param recipientAddress - ERC1155 token recipient.\n * @param nftId - ERC1155 token id.\n * @param qty - Quantity of tokens to be sent.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns Promise resolving to the 'transferSingle' ERC1155 token.\n */\n async transferSingleERC1155(\n nftAddress: string,\n senderAddress: string,\n recipientAddress: string,\n nftId: string,\n qty: string,\n networkClientId?: NetworkClientId,\n ): Promise<void> {\n const erc1155Standard = this.getERC1155Standard(networkClientId);\n return erc1155Standard.transferSingle(\n nftAddress,\n senderAddress,\n recipientAddress,\n nftId,\n qty,\n );\n }\n\n /**\n * Get the token balance for a list of token addresses in a single call. Only non-zero balances\n * are returned.\n *\n * @param selectedAddress - The address to check token balances for.\n * @param tokensToDetect - The token addresses to detect balances for.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns The list of non-zero token balances.\n */\n async getBalancesInSingleCall(\n selectedAddress: string,\n tokensToDetect: string[],\n networkClientId?: NetworkClientId,\n ) {\n const chainId = this.#getCorrectChainId(networkClientId);\n const provider = this.#getCorrectProvider(networkClientId);\n if (\n !((id): id is keyof typeof SINGLE_CALL_BALANCES_ADDRESS_BY_CHAINID =>\n id in SINGLE_CALL_BALANCES_ADDRESS_BY_CHAINID)(chainId)\n ) {\n // Only fetch balance if contract address exists\n return {};\n }\n const contractAddress = SINGLE_CALL_BALANCES_ADDRESS_BY_CHAINID[chainId];\n\n const contract = new Contract(\n contractAddress,\n abiSingleCallBalancesContract,\n provider,\n );\n const result = await contract.balances([selectedAddress], tokensToDetect);\n const nonZeroBalances: BalanceMap = {};\n /* istanbul ignore else */\n if (result.length > 0) {\n tokensToDetect.forEach((tokenAddress, index) => {\n const balance: BN = result[index];\n /* istanbul ignore else */\n if (String(balance) !== '0') {\n nonZeroBalances[tokenAddress] = balance;\n }\n });\n }\n return nonZeroBalances;\n }\n\n /**\n * Get the staked ethereum balance for multiple addresses in a single call.\n *\n * @param addresses - The addresses to check staked ethereum balance for.\n * @param networkClientId - Network Client ID to fetch the provider with.\n * @returns The hex staked ethereum balance for address.\n */\n async getStakedBalanceForChain(\n addresses: string[],\n networkClientId?: NetworkClientId,\n ): Promise<Record<string, StakedBalance>> {\n const chainId = this.#getCorrectChainId(networkClientId);\n const provider = this.#getCorrectProvider(networkClientId);\n\n const balances = addresses.reduce<Record<string, StakedBalance>>(\n (accumulator, address) => {\n accumulator[address] = '0x00';\n return accumulator;\n },\n {},\n );\n\n // Only fetch staked balance on supported networks\n if (\n ![\n SupportedStakedBalanceNetworks.Mainnet,\n SupportedStakedBalanceNetworks.Hoodi,\n ].includes(chainId as SupportedStakedBalanceNetworks)\n ) {\n return {};\n }\n // Only fetch staked balance if contract address exists\n if (\n !((id): id is keyof typeof STAKING_CONTRACT_ADDRESS_BY_CHAINID =>\n id in STAKING_CONTRACT_ADDRESS_BY_CHAINID)(chainId)\n ) {\n return {};\n }\n\n const contractAddress = STAKING_CONTRACT_ADDRESS_BY_CHAINID[chainId];\n const 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\n try {\n const calls = addresses.map((address) => ({\n contract: new Contract(contractAddress, abi, provider),\n functionSignature: 'getShares(address)',\n arguments: [address],\n }));\n\n const userShares = await multicallOrFallback(calls, chainId, provider);\n\n const nonZeroCalls = userShares\n .map((shares, index) => {\n if (shares.success && (shares.value as BigNumber).gt(0)) {\n return {\n address: addresses[index],\n call: {\n contract: new Contract(contractAddress, abi, provider),\n functionSignature: 'convertToAssets(uint256)',\n arguments: [(shares.value as BigNumber).toString()],\n },\n };\n }\n return null;\n })\n .filter(Boolean) as { call: Call; address: string }[];\n\n const nonZeroBalances = await multicallOrFallback(\n nonZeroCalls.map((call) => call.call),\n chainId,\n provider,\n );\n nonZeroBalances.forEach((balance, index) => {\n if (balance.success && balance.value) {\n const { address } = nonZeroCalls[index];\n balances[address] = (balance.value as BigNumber).toHexString();\n }\n });\n } catch (error) {\n // if we get an error, log and return the default value\n console.error(error);\n }\n\n return balances;\n }\n}\n\nexport default AssetsContractController;\n"]}