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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (573) hide show
  1. package/CHANGELOG.md +0 -5
  2. package/dist/AssetsController-method-action-types.cjs +7 -0
  3. package/dist/AssetsController-method-action-types.cjs.map +1 -0
  4. package/dist/{AssetsController-method-action-types.d.ts → AssetsController-method-action-types.d.cts} +2 -2
  5. package/dist/AssetsController-method-action-types.d.cts.map +1 -0
  6. package/dist/AssetsController-method-action-types.d.mts +181 -0
  7. package/dist/AssetsController-method-action-types.d.mts.map +1 -0
  8. package/dist/{AssetsController-method-action-types.js → AssetsController-method-action-types.mjs} +1 -1
  9. package/dist/AssetsController-method-action-types.mjs.map +1 -0
  10. package/dist/AssetsController.cjs +2559 -0
  11. package/dist/AssetsController.cjs.map +1 -0
  12. package/dist/{AssetsController.d.ts → AssetsController.d.cts} +30 -30
  13. package/dist/AssetsController.d.cts.map +1 -0
  14. package/dist/AssetsController.d.mts +395 -0
  15. package/dist/AssetsController.d.mts.map +1 -0
  16. package/dist/{AssetsController.js → AssetsController.mjs} +29 -28
  17. package/dist/AssetsController.mjs.map +1 -0
  18. package/dist/data-sources/AbstractDataSource.cjs +111 -0
  19. package/dist/data-sources/AbstractDataSource.cjs.map +1 -0
  20. package/dist/data-sources/{AbstractDataSource.d.ts → AbstractDataSource.d.cts} +2 -2
  21. package/dist/data-sources/AbstractDataSource.d.cts.map +1 -0
  22. package/dist/data-sources/AbstractDataSource.d.mts +113 -0
  23. package/dist/data-sources/AbstractDataSource.d.mts.map +1 -0
  24. package/dist/data-sources/{AbstractDataSource.js → AbstractDataSource.mjs} +1 -1
  25. package/dist/data-sources/AbstractDataSource.mjs.map +1 -0
  26. package/dist/data-sources/AccountActivityDataSource.cjs +267 -0
  27. package/dist/data-sources/AccountActivityDataSource.cjs.map +1 -0
  28. package/dist/data-sources/{AccountActivityDataSource.d.ts → AccountActivityDataSource.d.cts} +6 -6
  29. package/dist/data-sources/AccountActivityDataSource.d.cts.map +1 -0
  30. package/dist/data-sources/AccountActivityDataSource.d.mts +80 -0
  31. package/dist/data-sources/AccountActivityDataSource.d.mts.map +1 -0
  32. package/dist/data-sources/{AccountActivityDataSource.js → AccountActivityDataSource.mjs} +11 -11
  33. package/dist/data-sources/AccountActivityDataSource.mjs.map +1 -0
  34. package/dist/data-sources/AccountsApiDataSource.cjs +586 -0
  35. package/dist/data-sources/AccountsApiDataSource.cjs.map +1 -0
  36. package/dist/data-sources/{AccountsApiDataSource.d.ts → AccountsApiDataSource.d.cts} +7 -7
  37. package/dist/data-sources/AccountsApiDataSource.d.cts.map +1 -0
  38. package/dist/data-sources/AccountsApiDataSource.d.mts +82 -0
  39. package/dist/data-sources/AccountsApiDataSource.d.mts.map +1 -0
  40. package/dist/data-sources/{AccountsApiDataSource.js → AccountsApiDataSource.mjs} +8 -7
  41. package/dist/data-sources/AccountsApiDataSource.mjs.map +1 -0
  42. package/dist/data-sources/PriceDataSource.cjs +466 -0
  43. package/dist/data-sources/PriceDataSource.cjs.map +1 -0
  44. package/dist/data-sources/{PriceDataSource.d.ts → PriceDataSource.d.cts} +5 -5
  45. package/dist/data-sources/PriceDataSource.d.cts.map +1 -0
  46. package/dist/data-sources/PriceDataSource.d.mts +100 -0
  47. package/dist/data-sources/PriceDataSource.d.mts.map +1 -0
  48. package/dist/data-sources/{PriceDataSource.js → PriceDataSource.mjs} +8 -7
  49. package/dist/data-sources/PriceDataSource.mjs.map +1 -0
  50. package/dist/data-sources/RpcDataSource.cjs +1021 -0
  51. package/dist/data-sources/RpcDataSource.cjs.map +1 -0
  52. package/dist/data-sources/{RpcDataSource.d.ts → RpcDataSource.d.cts} +10 -10
  53. package/dist/data-sources/RpcDataSource.d.cts.map +1 -0
  54. package/dist/data-sources/RpcDataSource.d.mts +174 -0
  55. package/dist/data-sources/RpcDataSource.d.mts.map +1 -0
  56. package/dist/data-sources/{RpcDataSource.js → RpcDataSource.mjs} +11 -11
  57. package/dist/data-sources/RpcDataSource.mjs.map +1 -0
  58. package/dist/data-sources/SnapDataSource.cjs +443 -0
  59. package/dist/data-sources/SnapDataSource.cjs.map +1 -0
  60. package/dist/data-sources/{SnapDataSource.d.ts → SnapDataSource.d.cts} +8 -8
  61. package/dist/data-sources/SnapDataSource.d.cts.map +1 -0
  62. package/dist/data-sources/SnapDataSource.d.mts +127 -0
  63. package/dist/data-sources/SnapDataSource.d.mts.map +1 -0
  64. package/dist/data-sources/{SnapDataSource.js → SnapDataSource.mjs} +6 -6
  65. package/dist/data-sources/SnapDataSource.mjs.map +1 -0
  66. package/dist/data-sources/StakedBalanceDataSource.cjs +616 -0
  67. package/dist/data-sources/StakedBalanceDataSource.cjs.map +1 -0
  68. package/dist/data-sources/{StakedBalanceDataSource.d.ts → StakedBalanceDataSource.d.cts} +5 -5
  69. package/dist/data-sources/StakedBalanceDataSource.d.cts.map +1 -0
  70. package/dist/data-sources/StakedBalanceDataSource.d.mts +72 -0
  71. package/dist/data-sources/StakedBalanceDataSource.d.mts.map +1 -0
  72. package/dist/data-sources/{StakedBalanceDataSource.js → StakedBalanceDataSource.mjs} +7 -7
  73. package/dist/data-sources/StakedBalanceDataSource.mjs.map +1 -0
  74. package/dist/data-sources/TokenDataSource.cjs +583 -0
  75. package/dist/data-sources/TokenDataSource.cjs.map +1 -0
  76. package/dist/data-sources/{TokenDataSource.d.ts → TokenDataSource.d.cts} +5 -5
  77. package/dist/data-sources/TokenDataSource.d.cts.map +1 -0
  78. package/dist/data-sources/TokenDataSource.d.mts +81 -0
  79. package/dist/data-sources/TokenDataSource.d.mts.map +1 -0
  80. package/dist/data-sources/{TokenDataSource.js → TokenDataSource.mjs} +8 -7
  81. package/dist/data-sources/TokenDataSource.mjs.map +1 -0
  82. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.cjs +705 -0
  83. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.cjs.map +1 -0
  84. package/dist/data-sources/evm-rpc-services/clients/{MulticallClient.d.ts → MulticallClient.d.cts} +3 -3
  85. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.cts.map +1 -0
  86. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.mts +65 -0
  87. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.mts.map +1 -0
  88. package/dist/data-sources/evm-rpc-services/clients/{MulticallClient.js → MulticallClient.mjs} +5 -5
  89. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.mjs.map +1 -0
  90. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.cjs +312 -0
  91. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.cjs.map +1 -0
  92. package/dist/data-sources/evm-rpc-services/clients/{TokensApiClient.d.ts → TokensApiClient.d.cts} +2 -2
  93. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.cts.map +1 -0
  94. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.mts +61 -0
  95. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.mts.map +1 -0
  96. package/dist/data-sources/evm-rpc-services/clients/{TokensApiClient.js → TokensApiClient.mjs} +2 -2
  97. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.mjs.map +1 -0
  98. package/dist/data-sources/evm-rpc-services/clients/index.cjs +10 -0
  99. package/dist/data-sources/evm-rpc-services/clients/index.cjs.map +1 -0
  100. package/dist/data-sources/evm-rpc-services/clients/index.d.cts +4 -0
  101. package/dist/data-sources/evm-rpc-services/clients/index.d.cts.map +1 -0
  102. package/dist/data-sources/evm-rpc-services/clients/index.d.mts +4 -0
  103. package/dist/data-sources/evm-rpc-services/clients/index.d.mts.map +1 -0
  104. package/dist/data-sources/evm-rpc-services/clients/index.mjs +3 -0
  105. package/dist/data-sources/evm-rpc-services/clients/index.mjs.map +1 -0
  106. package/dist/data-sources/evm-rpc-services/index.cjs +17 -0
  107. package/dist/data-sources/evm-rpc-services/index.cjs.map +1 -0
  108. package/dist/data-sources/evm-rpc-services/{index.d.ts → index.d.cts} +5 -5
  109. package/dist/data-sources/evm-rpc-services/index.d.cts.map +1 -0
  110. package/dist/data-sources/evm-rpc-services/index.d.mts +5 -0
  111. package/dist/data-sources/evm-rpc-services/index.d.mts.map +1 -0
  112. package/dist/data-sources/evm-rpc-services/index.mjs +4 -0
  113. package/dist/data-sources/evm-rpc-services/index.mjs.map +1 -0
  114. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.cjs +247 -0
  115. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.cjs.map +1 -0
  116. package/dist/data-sources/evm-rpc-services/services/{BalanceFetcher.d.ts → BalanceFetcher.d.cts} +11 -11
  117. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.cts.map +1 -0
  118. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.mts +96 -0
  119. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.mts.map +1 -0
  120. package/dist/data-sources/evm-rpc-services/services/{BalanceFetcher.js → BalanceFetcher.mjs} +5 -5
  121. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.mjs.map +1 -0
  122. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.cjs +132 -0
  123. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.cjs.map +1 -0
  124. package/dist/data-sources/evm-rpc-services/services/{StakedBalanceFetcher.d.ts → StakedBalanceFetcher.d.cts} +14 -13
  125. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.cts.map +1 -0
  126. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.mts +81 -0
  127. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.mts.map +1 -0
  128. package/dist/data-sources/evm-rpc-services/services/{StakedBalanceFetcher.js → StakedBalanceFetcher.mjs} +6 -5
  129. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.mjs.map +1 -0
  130. package/dist/data-sources/evm-rpc-services/services/TokenDetector.cjs +230 -0
  131. package/dist/data-sources/evm-rpc-services/services/TokenDetector.cjs.map +1 -0
  132. package/dist/data-sources/evm-rpc-services/services/{TokenDetector.d.ts → TokenDetector.d.cts} +12 -12
  133. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.cts.map +1 -0
  134. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.mts +78 -0
  135. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.mts.map +1 -0
  136. package/dist/data-sources/evm-rpc-services/services/{TokenDetector.js → TokenDetector.mjs} +4 -4
  137. package/dist/data-sources/evm-rpc-services/services/TokenDetector.mjs.map +1 -0
  138. package/dist/data-sources/evm-rpc-services/services/index.cjs +13 -0
  139. package/dist/data-sources/evm-rpc-services/services/index.cjs.map +1 -0
  140. package/dist/data-sources/evm-rpc-services/services/{index.d.ts → index.d.cts} +4 -4
  141. package/dist/data-sources/evm-rpc-services/services/index.d.cts.map +1 -0
  142. package/dist/data-sources/evm-rpc-services/services/index.d.mts +4 -0
  143. package/dist/data-sources/evm-rpc-services/services/index.d.mts.map +1 -0
  144. package/dist/data-sources/evm-rpc-services/services/index.mjs +4 -0
  145. package/dist/data-sources/evm-rpc-services/services/index.mjs.map +1 -0
  146. package/dist/data-sources/evm-rpc-services/types/assets.cjs +3 -0
  147. package/dist/data-sources/evm-rpc-services/types/assets.cjs.map +1 -0
  148. package/dist/data-sources/evm-rpc-services/types/{assets.d.ts → assets.d.cts} +3 -3
  149. package/dist/data-sources/evm-rpc-services/types/assets.d.cts.map +1 -0
  150. package/dist/data-sources/evm-rpc-services/types/assets.d.mts +53 -0
  151. package/dist/data-sources/evm-rpc-services/types/assets.d.mts.map +1 -0
  152. package/dist/data-sources/evm-rpc-services/types/assets.mjs +2 -0
  153. package/dist/data-sources/evm-rpc-services/types/assets.mjs.map +1 -0
  154. package/dist/data-sources/evm-rpc-services/types/config.cjs +3 -0
  155. package/dist/data-sources/evm-rpc-services/types/config.cjs.map +1 -0
  156. package/dist/data-sources/evm-rpc-services/types/{config.d.ts → config.d.cts} +2 -2
  157. package/dist/data-sources/evm-rpc-services/types/config.d.cts.map +1 -0
  158. package/dist/data-sources/evm-rpc-services/types/config.d.mts +18 -0
  159. package/dist/data-sources/evm-rpc-services/types/config.d.mts.map +1 -0
  160. package/dist/data-sources/evm-rpc-services/types/config.mjs +2 -0
  161. package/dist/data-sources/evm-rpc-services/types/config.mjs.map +1 -0
  162. package/dist/data-sources/evm-rpc-services/types/core.cjs +3 -0
  163. package/dist/data-sources/evm-rpc-services/types/core.cjs.map +1 -0
  164. package/dist/data-sources/evm-rpc-services/types/{core.d.ts → core.d.cts} +2 -2
  165. package/dist/data-sources/evm-rpc-services/types/core.d.cts.map +1 -0
  166. package/dist/data-sources/evm-rpc-services/types/core.d.mts +19 -0
  167. package/dist/data-sources/evm-rpc-services/types/core.d.mts.map +1 -0
  168. package/dist/data-sources/evm-rpc-services/types/core.mjs +2 -0
  169. package/dist/data-sources/evm-rpc-services/types/core.mjs.map +1 -0
  170. package/dist/data-sources/evm-rpc-services/types/index.cjs +3 -0
  171. package/dist/data-sources/evm-rpc-services/types/index.cjs.map +1 -0
  172. package/dist/data-sources/evm-rpc-services/types/index.d.cts +7 -0
  173. package/dist/data-sources/evm-rpc-services/types/index.d.cts.map +1 -0
  174. package/dist/data-sources/evm-rpc-services/types/index.d.mts +7 -0
  175. package/dist/data-sources/evm-rpc-services/types/index.d.mts.map +1 -0
  176. package/dist/data-sources/evm-rpc-services/types/index.mjs +2 -0
  177. package/dist/data-sources/evm-rpc-services/types/index.mjs.map +1 -0
  178. package/dist/data-sources/evm-rpc-services/types/multicall.cjs +3 -0
  179. package/dist/data-sources/evm-rpc-services/types/multicall.cjs.map +1 -0
  180. package/dist/data-sources/evm-rpc-services/types/{multicall.d.ts → multicall.d.cts} +2 -2
  181. package/dist/data-sources/evm-rpc-services/types/multicall.d.cts.map +1 -0
  182. package/dist/data-sources/evm-rpc-services/types/multicall.d.mts +24 -0
  183. package/dist/data-sources/evm-rpc-services/types/multicall.d.mts.map +1 -0
  184. package/dist/data-sources/evm-rpc-services/types/multicall.mjs +2 -0
  185. package/dist/data-sources/evm-rpc-services/types/multicall.mjs.map +1 -0
  186. package/dist/data-sources/evm-rpc-services/types/services.cjs +3 -0
  187. package/dist/data-sources/evm-rpc-services/types/services.cjs.map +1 -0
  188. package/dist/data-sources/evm-rpc-services/types/{services.d.ts → services.d.cts} +3 -3
  189. package/dist/data-sources/evm-rpc-services/types/services.d.cts.map +1 -0
  190. package/dist/data-sources/evm-rpc-services/types/services.d.mts +70 -0
  191. package/dist/data-sources/evm-rpc-services/types/services.d.mts.map +1 -0
  192. package/dist/data-sources/evm-rpc-services/types/services.mjs +2 -0
  193. package/dist/data-sources/evm-rpc-services/types/services.mjs.map +1 -0
  194. package/dist/data-sources/evm-rpc-services/types/state.cjs +3 -0
  195. package/dist/data-sources/evm-rpc-services/types/state.cjs.map +1 -0
  196. package/dist/data-sources/evm-rpc-services/types/{state.d.ts → state.d.cts} +2 -2
  197. package/dist/data-sources/evm-rpc-services/types/state.d.cts.map +1 -0
  198. package/dist/data-sources/evm-rpc-services/types/state.d.mts +58 -0
  199. package/dist/data-sources/evm-rpc-services/types/state.d.mts.map +1 -0
  200. package/dist/data-sources/evm-rpc-services/types/state.mjs +2 -0
  201. package/dist/data-sources/evm-rpc-services/types/state.mjs.map +1 -0
  202. package/dist/data-sources/evm-rpc-services/utils/assets.cjs +9 -0
  203. package/dist/data-sources/evm-rpc-services/utils/assets.cjs.map +1 -0
  204. package/dist/data-sources/evm-rpc-services/utils/{assets.d.ts → assets.d.cts} +2 -2
  205. package/dist/data-sources/evm-rpc-services/utils/assets.d.cts.map +1 -0
  206. package/dist/data-sources/evm-rpc-services/utils/assets.d.mts +3 -0
  207. package/dist/data-sources/evm-rpc-services/utils/assets.d.mts.map +1 -0
  208. package/dist/data-sources/evm-rpc-services/utils/{assets.js → assets.mjs} +2 -2
  209. package/dist/data-sources/evm-rpc-services/utils/assets.mjs.map +1 -0
  210. package/dist/data-sources/evm-rpc-services/utils/batch.cjs +45 -0
  211. package/dist/data-sources/evm-rpc-services/utils/batch.cjs.map +1 -0
  212. package/dist/data-sources/evm-rpc-services/utils/{batch.d.ts → batch.d.cts} +1 -1
  213. package/dist/data-sources/evm-rpc-services/utils/batch.d.cts.map +1 -0
  214. package/dist/data-sources/evm-rpc-services/utils/batch.d.mts +28 -0
  215. package/dist/data-sources/evm-rpc-services/utils/batch.d.mts.map +1 -0
  216. package/dist/data-sources/evm-rpc-services/utils/{batch.js → batch.mjs} +1 -1
  217. package/dist/data-sources/evm-rpc-services/utils/batch.mjs.map +1 -0
  218. package/dist/data-sources/evm-rpc-services/utils/index.cjs +15 -0
  219. package/dist/data-sources/evm-rpc-services/utils/index.cjs.map +1 -0
  220. package/dist/data-sources/evm-rpc-services/utils/index.d.cts +4 -0
  221. package/dist/data-sources/evm-rpc-services/utils/index.d.cts.map +1 -0
  222. package/dist/data-sources/evm-rpc-services/utils/index.d.mts +4 -0
  223. package/dist/data-sources/evm-rpc-services/utils/index.d.mts.map +1 -0
  224. package/dist/data-sources/evm-rpc-services/utils/index.mjs +4 -0
  225. package/dist/data-sources/evm-rpc-services/utils/index.mjs.map +1 -0
  226. package/dist/data-sources/evm-rpc-services/utils/parsing.cjs +47 -0
  227. package/dist/data-sources/evm-rpc-services/utils/parsing.cjs.map +1 -0
  228. package/dist/data-sources/evm-rpc-services/utils/{parsing.d.ts → parsing.d.cts} +3 -3
  229. package/dist/data-sources/evm-rpc-services/utils/parsing.d.cts.map +1 -0
  230. package/dist/data-sources/evm-rpc-services/utils/parsing.d.mts +25 -0
  231. package/dist/data-sources/evm-rpc-services/utils/parsing.d.mts.map +1 -0
  232. package/dist/data-sources/evm-rpc-services/utils/{parsing.js → parsing.mjs} +3 -3
  233. package/dist/data-sources/evm-rpc-services/utils/parsing.mjs.map +1 -0
  234. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.cjs +68 -0
  235. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.cjs.map +1 -0
  236. package/dist/data-sources/evm-rpc-services/utils/{staking-contracts.d.ts → staking-contracts.d.cts} +1 -1
  237. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.cts.map +1 -0
  238. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.mts +25 -0
  239. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.mts.map +1 -0
  240. package/dist/data-sources/evm-rpc-services/utils/{staking-contracts.js → staking-contracts.mjs} +3 -3
  241. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.mjs.map +1 -0
  242. package/dist/data-sources/index.cjs +30 -0
  243. package/dist/data-sources/index.cjs.map +1 -0
  244. package/dist/data-sources/{index.d.ts → index.d.cts} +9 -9
  245. package/dist/data-sources/index.d.cts.map +1 -0
  246. package/dist/data-sources/index.d.mts +9 -0
  247. package/dist/data-sources/index.d.mts.map +1 -0
  248. package/dist/data-sources/index.mjs +14 -0
  249. package/dist/data-sources/index.mjs.map +1 -0
  250. package/dist/defaults.cjs +125 -0
  251. package/dist/defaults.cjs.map +1 -0
  252. package/dist/{defaults.d.ts → defaults.d.cts} +2 -2
  253. package/dist/defaults.d.cts.map +1 -0
  254. package/dist/defaults.d.mts +50 -0
  255. package/dist/defaults.d.mts.map +1 -0
  256. package/dist/{defaults.js → defaults.mjs} +1 -1
  257. package/dist/defaults.mjs.map +1 -0
  258. package/dist/errors.cjs +25 -0
  259. package/dist/errors.cjs.map +1 -0
  260. package/dist/{errors.d.ts → errors.d.cts} +1 -1
  261. package/dist/errors.d.cts.map +1 -0
  262. package/dist/errors.d.mts +25 -0
  263. package/dist/errors.d.mts.map +1 -0
  264. package/dist/{errors.js → errors.mjs} +1 -1
  265. package/dist/errors.mjs.map +1 -0
  266. package/dist/index.cjs +67 -0
  267. package/dist/index.cjs.map +1 -0
  268. package/dist/{index.d.ts → index.d.cts} +26 -26
  269. package/dist/index.d.cts.map +1 -0
  270. package/dist/index.d.mts +26 -0
  271. package/dist/index.d.mts.map +1 -0
  272. package/dist/{index.js → index.mjs} +13 -13
  273. package/dist/index.mjs.map +1 -0
  274. package/dist/logger.cjs +7 -0
  275. package/dist/logger.cjs.map +1 -0
  276. package/dist/logger.d.cts +5 -0
  277. package/dist/logger.d.cts.map +1 -0
  278. package/dist/logger.d.mts +5 -0
  279. package/dist/logger.d.mts.map +1 -0
  280. package/dist/logger.mjs +4 -0
  281. package/dist/logger.mjs.map +1 -0
  282. package/dist/middlewares/CustomAssetGraduationMiddleware.cjs +132 -0
  283. package/dist/middlewares/CustomAssetGraduationMiddleware.cjs.map +1 -0
  284. package/dist/middlewares/{CustomAssetGraduationMiddleware.d.ts → CustomAssetGraduationMiddleware.d.cts} +2 -2
  285. package/dist/middlewares/CustomAssetGraduationMiddleware.d.cts.map +1 -0
  286. package/dist/middlewares/CustomAssetGraduationMiddleware.d.mts +32 -0
  287. package/dist/middlewares/CustomAssetGraduationMiddleware.d.mts.map +1 -0
  288. package/dist/middlewares/{CustomAssetGraduationMiddleware.js → CustomAssetGraduationMiddleware.mjs} +5 -5
  289. package/dist/middlewares/CustomAssetGraduationMiddleware.mjs.map +1 -0
  290. package/dist/middlewares/DetectionMiddleware.cjs +154 -0
  291. package/dist/middlewares/DetectionMiddleware.cjs.map +1 -0
  292. package/dist/middlewares/{DetectionMiddleware.d.ts → DetectionMiddleware.d.cts} +2 -2
  293. package/dist/middlewares/DetectionMiddleware.d.cts.map +1 -0
  294. package/dist/middlewares/DetectionMiddleware.d.mts +40 -0
  295. package/dist/middlewares/DetectionMiddleware.d.mts.map +1 -0
  296. package/dist/middlewares/{DetectionMiddleware.js → DetectionMiddleware.mjs} +4 -4
  297. package/dist/middlewares/DetectionMiddleware.mjs.map +1 -0
  298. package/dist/middlewares/ParallelMiddleware.cjs +263 -0
  299. package/dist/middlewares/ParallelMiddleware.cjs.map +1 -0
  300. package/dist/middlewares/{ParallelMiddleware.d.ts → ParallelMiddleware.d.cts} +2 -2
  301. package/dist/middlewares/ParallelMiddleware.d.cts.map +1 -0
  302. package/dist/middlewares/ParallelMiddleware.d.mts +41 -0
  303. package/dist/middlewares/ParallelMiddleware.d.mts.map +1 -0
  304. package/dist/middlewares/{ParallelMiddleware.js → ParallelMiddleware.mjs} +9 -2
  305. package/dist/middlewares/{ParallelMiddleware.js.map → ParallelMiddleware.mjs.map} +1 -1
  306. package/dist/middlewares/RpcFallbackMiddleware.cjs +90 -0
  307. package/dist/middlewares/RpcFallbackMiddleware.cjs.map +1 -0
  308. package/dist/middlewares/{RpcFallbackMiddleware.d.ts → RpcFallbackMiddleware.d.cts} +2 -2
  309. package/dist/middlewares/RpcFallbackMiddleware.d.cts.map +1 -0
  310. package/dist/middlewares/RpcFallbackMiddleware.d.mts +23 -0
  311. package/dist/middlewares/RpcFallbackMiddleware.d.mts.map +1 -0
  312. package/dist/middlewares/{RpcFallbackMiddleware.js → RpcFallbackMiddleware.mjs} +4 -4
  313. package/dist/middlewares/RpcFallbackMiddleware.mjs.map +1 -0
  314. package/dist/middlewares/index.cjs +14 -0
  315. package/dist/middlewares/index.cjs.map +1 -0
  316. package/dist/middlewares/index.d.cts +9 -0
  317. package/dist/middlewares/index.d.cts.map +1 -0
  318. package/dist/middlewares/index.d.mts +9 -0
  319. package/dist/middlewares/index.d.mts.map +1 -0
  320. package/dist/middlewares/index.mjs +5 -0
  321. package/dist/middlewares/index.mjs.map +1 -0
  322. package/dist/migrations/healAssetsInfoMetadata.cjs +385 -0
  323. package/dist/migrations/healAssetsInfoMetadata.cjs.map +1 -0
  324. package/dist/migrations/{healAssetsInfoMetadata.d.ts → healAssetsInfoMetadata.d.cts} +4 -4
  325. package/dist/migrations/healAssetsInfoMetadata.d.cts.map +1 -0
  326. package/dist/migrations/healAssetsInfoMetadata.d.mts +106 -0
  327. package/dist/migrations/healAssetsInfoMetadata.d.mts.map +1 -0
  328. package/dist/migrations/{healAssetsInfoMetadata.js → healAssetsInfoMetadata.mjs} +5 -4
  329. package/dist/migrations/healAssetsInfoMetadata.mjs.map +1 -0
  330. package/dist/selectors/balance.cjs +532 -0
  331. package/dist/selectors/balance.cjs.map +1 -0
  332. package/dist/selectors/{balance.d.ts → balance.d.cts} +6 -6
  333. package/dist/selectors/balance.d.cts.map +1 -0
  334. package/dist/selectors/balance.d.mts +103 -0
  335. package/dist/selectors/balance.d.mts.map +1 -0
  336. package/dist/selectors/{balance.js → balance.mjs} +5 -5
  337. package/dist/selectors/balance.mjs.map +1 -0
  338. package/dist/types.cjs +39 -0
  339. package/dist/types.cjs.map +1 -0
  340. package/dist/{types.d.ts → types.d.cts} +4 -4
  341. package/dist/types.d.cts.map +1 -0
  342. package/dist/types.d.mts +533 -0
  343. package/dist/types.d.mts.map +1 -0
  344. package/dist/{types.js → types.mjs} +1 -1
  345. package/dist/types.mjs.map +1 -0
  346. package/dist/utils/constants.cjs +5 -0
  347. package/dist/utils/constants.cjs.map +1 -0
  348. package/dist/utils/constants.d.cts +2 -0
  349. package/dist/utils/constants.d.cts.map +1 -0
  350. package/dist/utils/constants.d.mts +2 -0
  351. package/dist/utils/constants.d.mts.map +1 -0
  352. package/dist/utils/{constants.js → constants.mjs} +1 -1
  353. package/dist/utils/constants.mjs.map +1 -0
  354. package/dist/utils/customAssetsRpcSupplement.cjs +72 -0
  355. package/dist/utils/customAssetsRpcSupplement.cjs.map +1 -0
  356. package/dist/utils/{customAssetsRpcSupplement.d.ts → customAssetsRpcSupplement.d.cts} +2 -2
  357. package/dist/utils/customAssetsRpcSupplement.d.cts.map +1 -0
  358. package/dist/utils/customAssetsRpcSupplement.d.mts +60 -0
  359. package/dist/utils/customAssetsRpcSupplement.d.mts.map +1 -0
  360. package/dist/utils/{customAssetsRpcSupplement.js → customAssetsRpcSupplement.mjs} +2 -2
  361. package/dist/utils/customAssetsRpcSupplement.mjs.map +1 -0
  362. package/dist/utils/dedupingBatchFetcher.cjs +168 -0
  363. package/dist/utils/dedupingBatchFetcher.cjs.map +1 -0
  364. package/dist/utils/{dedupingBatchFetcher.d.ts → dedupingBatchFetcher.d.cts} +1 -1
  365. package/dist/utils/dedupingBatchFetcher.d.cts.map +1 -0
  366. package/dist/utils/dedupingBatchFetcher.d.mts +72 -0
  367. package/dist/utils/dedupingBatchFetcher.d.mts.map +1 -0
  368. package/dist/utils/{dedupingBatchFetcher.js → dedupingBatchFetcher.mjs} +1 -1
  369. package/dist/utils/dedupingBatchFetcher.mjs.map +1 -0
  370. package/dist/utils/fetchWithTimeout.cjs +30 -0
  371. package/dist/utils/fetchWithTimeout.cjs.map +1 -0
  372. package/dist/utils/{fetchWithTimeout.d.ts → fetchWithTimeout.d.cts} +1 -1
  373. package/dist/utils/fetchWithTimeout.d.cts.map +1 -0
  374. package/dist/utils/fetchWithTimeout.d.mts +11 -0
  375. package/dist/utils/fetchWithTimeout.d.mts.map +1 -0
  376. package/dist/utils/{fetchWithTimeout.js → fetchWithTimeout.mjs} +1 -1
  377. package/dist/utils/fetchWithTimeout.mjs.map +1 -0
  378. package/dist/utils/formatExchangeRatesForBridge.cjs +161 -0
  379. package/dist/utils/formatExchangeRatesForBridge.cjs.map +1 -0
  380. package/dist/utils/{formatExchangeRatesForBridge.d.ts → formatExchangeRatesForBridge.d.cts} +3 -3
  381. package/dist/utils/formatExchangeRatesForBridge.d.cts.map +1 -0
  382. package/dist/utils/formatExchangeRatesForBridge.d.mts +43 -0
  383. package/dist/utils/formatExchangeRatesForBridge.d.mts.map +1 -0
  384. package/dist/utils/{formatExchangeRatesForBridge.js → formatExchangeRatesForBridge.mjs} +7 -6
  385. package/dist/utils/formatExchangeRatesForBridge.mjs.map +1 -0
  386. package/dist/utils/formatStateForTransactionPay.cjs +174 -0
  387. package/dist/utils/formatStateForTransactionPay.cjs.map +1 -0
  388. package/dist/utils/{formatStateForTransactionPay.d.ts → formatStateForTransactionPay.d.cts} +3 -3
  389. package/dist/utils/formatStateForTransactionPay.d.cts.map +1 -0
  390. package/dist/utils/formatStateForTransactionPay.d.mts +72 -0
  391. package/dist/utils/formatStateForTransactionPay.d.mts.map +1 -0
  392. package/dist/utils/{formatStateForTransactionPay.js → formatStateForTransactionPay.mjs} +8 -7
  393. package/dist/utils/formatStateForTransactionPay.mjs.map +1 -0
  394. package/dist/utils/index.cjs +21 -0
  395. package/dist/utils/index.cjs.map +1 -0
  396. package/dist/utils/index.d.cts +9 -0
  397. package/dist/utils/index.d.cts.map +1 -0
  398. package/dist/utils/index.d.mts +9 -0
  399. package/dist/utils/index.d.mts.map +1 -0
  400. package/dist/utils/index.mjs +7 -0
  401. package/dist/utils/index.mjs.map +1 -0
  402. package/dist/utils/native-assets.cjs +64 -0
  403. package/dist/utils/native-assets.cjs.map +1 -0
  404. package/dist/utils/{native-assets.d.ts → native-assets.d.cts} +2 -2
  405. package/dist/utils/native-assets.d.cts.map +1 -0
  406. package/dist/utils/native-assets.d.mts +19 -0
  407. package/dist/utils/native-assets.d.mts.map +1 -0
  408. package/dist/utils/{native-assets.js → native-assets.mjs} +5 -5
  409. package/dist/utils/native-assets.mjs.map +1 -0
  410. package/dist/utils/normalizeAmountString.cjs +64 -0
  411. package/dist/utils/normalizeAmountString.cjs.map +1 -0
  412. package/dist/utils/{normalizeAmountString.d.ts → normalizeAmountString.d.cts} +1 -1
  413. package/dist/utils/normalizeAmountString.d.cts.map +1 -0
  414. package/dist/utils/normalizeAmountString.d.mts +35 -0
  415. package/dist/utils/normalizeAmountString.d.mts.map +1 -0
  416. package/dist/utils/{normalizeAmountString.js → normalizeAmountString.mjs} +2 -2
  417. package/dist/utils/normalizeAmountString.mjs.map +1 -0
  418. package/dist/utils/normalizeAssetId.cjs +60 -0
  419. package/dist/utils/normalizeAssetId.cjs.map +1 -0
  420. package/dist/utils/{normalizeAssetId.d.ts → normalizeAssetId.d.cts} +3 -3
  421. package/dist/utils/normalizeAssetId.d.cts.map +1 -0
  422. package/dist/utils/normalizeAssetId.d.mts +32 -0
  423. package/dist/utils/normalizeAssetId.d.mts.map +1 -0
  424. package/dist/utils/{normalizeAssetId.js → normalizeAssetId.mjs} +11 -4
  425. package/dist/utils/normalizeAssetId.mjs.map +1 -0
  426. package/dist/utils/snaps-assets-migration.cjs +171 -0
  427. package/dist/utils/snaps-assets-migration.cjs.map +1 -0
  428. package/dist/utils/{snaps-assets-migration.d.ts → snaps-assets-migration.d.cts} +5 -5
  429. package/dist/utils/snaps-assets-migration.d.cts.map +1 -0
  430. package/dist/utils/snaps-assets-migration.d.mts +113 -0
  431. package/dist/utils/snaps-assets-migration.d.mts.map +1 -0
  432. package/dist/utils/{snaps-assets-migration.js → snaps-assets-migration.mjs} +2 -2
  433. package/dist/utils/snaps-assets-migration.mjs.map +1 -0
  434. package/dist/utils/trace.cjs +120 -0
  435. package/dist/utils/trace.cjs.map +1 -0
  436. package/dist/utils/{trace.d.ts → trace.d.cts} +2 -2
  437. package/dist/utils/trace.d.cts.map +1 -0
  438. package/dist/utils/trace.d.mts +52 -0
  439. package/dist/utils/trace.d.mts.map +1 -0
  440. package/dist/utils/{trace.js → trace.mjs} +1 -1
  441. package/dist/utils/trace.mjs.map +1 -0
  442. package/package.json +18 -15
  443. package/dist/AssetsController-method-action-types.d.ts.map +0 -1
  444. package/dist/AssetsController-method-action-types.js.map +0 -1
  445. package/dist/AssetsController.d.ts.map +0 -1
  446. package/dist/AssetsController.js.map +0 -1
  447. package/dist/data-sources/AbstractDataSource.d.ts.map +0 -1
  448. package/dist/data-sources/AbstractDataSource.js.map +0 -1
  449. package/dist/data-sources/AccountActivityDataSource.d.ts.map +0 -1
  450. package/dist/data-sources/AccountActivityDataSource.js.map +0 -1
  451. package/dist/data-sources/AccountsApiDataSource.d.ts.map +0 -1
  452. package/dist/data-sources/AccountsApiDataSource.js.map +0 -1
  453. package/dist/data-sources/PriceDataSource.d.ts.map +0 -1
  454. package/dist/data-sources/PriceDataSource.js.map +0 -1
  455. package/dist/data-sources/RpcDataSource.d.ts.map +0 -1
  456. package/dist/data-sources/RpcDataSource.js.map +0 -1
  457. package/dist/data-sources/SnapDataSource.d.ts.map +0 -1
  458. package/dist/data-sources/SnapDataSource.js.map +0 -1
  459. package/dist/data-sources/StakedBalanceDataSource.d.ts.map +0 -1
  460. package/dist/data-sources/StakedBalanceDataSource.js.map +0 -1
  461. package/dist/data-sources/TokenDataSource.d.ts.map +0 -1
  462. package/dist/data-sources/TokenDataSource.js.map +0 -1
  463. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.ts.map +0 -1
  464. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.js.map +0 -1
  465. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.ts.map +0 -1
  466. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.js.map +0 -1
  467. package/dist/data-sources/evm-rpc-services/clients/index.d.ts +0 -4
  468. package/dist/data-sources/evm-rpc-services/clients/index.d.ts.map +0 -1
  469. package/dist/data-sources/evm-rpc-services/clients/index.js +0 -3
  470. package/dist/data-sources/evm-rpc-services/clients/index.js.map +0 -1
  471. package/dist/data-sources/evm-rpc-services/index.d.ts.map +0 -1
  472. package/dist/data-sources/evm-rpc-services/index.js +0 -4
  473. package/dist/data-sources/evm-rpc-services/index.js.map +0 -1
  474. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.ts.map +0 -1
  475. package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.js.map +0 -1
  476. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.ts.map +0 -1
  477. package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.js.map +0 -1
  478. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.ts.map +0 -1
  479. package/dist/data-sources/evm-rpc-services/services/TokenDetector.js.map +0 -1
  480. package/dist/data-sources/evm-rpc-services/services/index.d.ts.map +0 -1
  481. package/dist/data-sources/evm-rpc-services/services/index.js +0 -4
  482. package/dist/data-sources/evm-rpc-services/services/index.js.map +0 -1
  483. package/dist/data-sources/evm-rpc-services/types/assets.d.ts.map +0 -1
  484. package/dist/data-sources/evm-rpc-services/types/assets.js +0 -2
  485. package/dist/data-sources/evm-rpc-services/types/assets.js.map +0 -1
  486. package/dist/data-sources/evm-rpc-services/types/config.d.ts.map +0 -1
  487. package/dist/data-sources/evm-rpc-services/types/config.js +0 -2
  488. package/dist/data-sources/evm-rpc-services/types/config.js.map +0 -1
  489. package/dist/data-sources/evm-rpc-services/types/core.d.ts.map +0 -1
  490. package/dist/data-sources/evm-rpc-services/types/core.js +0 -2
  491. package/dist/data-sources/evm-rpc-services/types/core.js.map +0 -1
  492. package/dist/data-sources/evm-rpc-services/types/index.d.ts +0 -7
  493. package/dist/data-sources/evm-rpc-services/types/index.d.ts.map +0 -1
  494. package/dist/data-sources/evm-rpc-services/types/index.js +0 -2
  495. package/dist/data-sources/evm-rpc-services/types/index.js.map +0 -1
  496. package/dist/data-sources/evm-rpc-services/types/multicall.d.ts.map +0 -1
  497. package/dist/data-sources/evm-rpc-services/types/multicall.js +0 -2
  498. package/dist/data-sources/evm-rpc-services/types/multicall.js.map +0 -1
  499. package/dist/data-sources/evm-rpc-services/types/services.d.ts.map +0 -1
  500. package/dist/data-sources/evm-rpc-services/types/services.js +0 -2
  501. package/dist/data-sources/evm-rpc-services/types/services.js.map +0 -1
  502. package/dist/data-sources/evm-rpc-services/types/state.d.ts.map +0 -1
  503. package/dist/data-sources/evm-rpc-services/types/state.js +0 -2
  504. package/dist/data-sources/evm-rpc-services/types/state.js.map +0 -1
  505. package/dist/data-sources/evm-rpc-services/utils/assets.d.ts.map +0 -1
  506. package/dist/data-sources/evm-rpc-services/utils/assets.js.map +0 -1
  507. package/dist/data-sources/evm-rpc-services/utils/batch.d.ts.map +0 -1
  508. package/dist/data-sources/evm-rpc-services/utils/batch.js.map +0 -1
  509. package/dist/data-sources/evm-rpc-services/utils/index.d.ts +0 -4
  510. package/dist/data-sources/evm-rpc-services/utils/index.d.ts.map +0 -1
  511. package/dist/data-sources/evm-rpc-services/utils/index.js +0 -4
  512. package/dist/data-sources/evm-rpc-services/utils/index.js.map +0 -1
  513. package/dist/data-sources/evm-rpc-services/utils/parsing.d.ts.map +0 -1
  514. package/dist/data-sources/evm-rpc-services/utils/parsing.js.map +0 -1
  515. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.ts.map +0 -1
  516. package/dist/data-sources/evm-rpc-services/utils/staking-contracts.js.map +0 -1
  517. package/dist/data-sources/index.d.ts.map +0 -1
  518. package/dist/data-sources/index.js +0 -14
  519. package/dist/data-sources/index.js.map +0 -1
  520. package/dist/defaults.d.ts.map +0 -1
  521. package/dist/defaults.js.map +0 -1
  522. package/dist/errors.d.ts.map +0 -1
  523. package/dist/errors.js.map +0 -1
  524. package/dist/index.d.ts.map +0 -1
  525. package/dist/index.js.map +0 -1
  526. package/dist/logger.d.ts +0 -4
  527. package/dist/logger.d.ts.map +0 -1
  528. package/dist/logger.js +0 -4
  529. package/dist/logger.js.map +0 -1
  530. package/dist/middlewares/CustomAssetGraduationMiddleware.d.ts.map +0 -1
  531. package/dist/middlewares/CustomAssetGraduationMiddleware.js.map +0 -1
  532. package/dist/middlewares/DetectionMiddleware.d.ts.map +0 -1
  533. package/dist/middlewares/DetectionMiddleware.js.map +0 -1
  534. package/dist/middlewares/ParallelMiddleware.d.ts.map +0 -1
  535. package/dist/middlewares/RpcFallbackMiddleware.d.ts.map +0 -1
  536. package/dist/middlewares/RpcFallbackMiddleware.js.map +0 -1
  537. package/dist/middlewares/index.d.ts +0 -9
  538. package/dist/middlewares/index.d.ts.map +0 -1
  539. package/dist/middlewares/index.js +0 -5
  540. package/dist/middlewares/index.js.map +0 -1
  541. package/dist/migrations/healAssetsInfoMetadata.d.ts.map +0 -1
  542. package/dist/migrations/healAssetsInfoMetadata.js.map +0 -1
  543. package/dist/selectors/balance.d.ts.map +0 -1
  544. package/dist/selectors/balance.js.map +0 -1
  545. package/dist/types.d.ts.map +0 -1
  546. package/dist/types.js.map +0 -1
  547. package/dist/utils/constants.d.ts +0 -2
  548. package/dist/utils/constants.d.ts.map +0 -1
  549. package/dist/utils/constants.js.map +0 -1
  550. package/dist/utils/customAssetsRpcSupplement.d.ts.map +0 -1
  551. package/dist/utils/customAssetsRpcSupplement.js.map +0 -1
  552. package/dist/utils/dedupingBatchFetcher.d.ts.map +0 -1
  553. package/dist/utils/dedupingBatchFetcher.js.map +0 -1
  554. package/dist/utils/fetchWithTimeout.d.ts.map +0 -1
  555. package/dist/utils/fetchWithTimeout.js.map +0 -1
  556. package/dist/utils/formatExchangeRatesForBridge.d.ts.map +0 -1
  557. package/dist/utils/formatExchangeRatesForBridge.js.map +0 -1
  558. package/dist/utils/formatStateForTransactionPay.d.ts.map +0 -1
  559. package/dist/utils/formatStateForTransactionPay.js.map +0 -1
  560. package/dist/utils/index.d.ts +0 -9
  561. package/dist/utils/index.d.ts.map +0 -1
  562. package/dist/utils/index.js +0 -7
  563. package/dist/utils/index.js.map +0 -1
  564. package/dist/utils/native-assets.d.ts.map +0 -1
  565. package/dist/utils/native-assets.js.map +0 -1
  566. package/dist/utils/normalizeAmountString.d.ts.map +0 -1
  567. package/dist/utils/normalizeAmountString.js.map +0 -1
  568. package/dist/utils/normalizeAssetId.d.ts.map +0 -1
  569. package/dist/utils/normalizeAssetId.js.map +0 -1
  570. package/dist/utils/snaps-assets-migration.d.ts.map +0 -1
  571. package/dist/utils/snaps-assets-migration.js.map +0 -1
  572. package/dist/utils/trace.d.ts.map +0 -1
  573. package/dist/utils/trace.js.map +0 -1
@@ -0,0 +1,583 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ 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");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ 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");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _TokenDataSource_instances, _TokenDataSource_apiClient, _TokenDataSource_getNativeAssetIds, _TokenDataSource_getAssetType, _TokenDataSource_messenger, _TokenDataSource_fetchTimeoutMs, _TokenDataSource_getSupportedNetworks, _TokenDataSource_getSuggestedOccurrenceFloors, _TokenDataSource_filterAssetsByNetwork, _TokenDataSource_filterBlockaidSpamTokens;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TokenDataSource = exports.CaipAssetNamespace = void 0;
16
+ const core_backend_1 = require("@metamask/core-backend");
17
+ const phishing_controller_1 = require("@metamask/phishing-controller");
18
+ const utils_1 = require("@metamask/utils");
19
+ const logger_js_1 = require("../logger.cjs");
20
+ const types_js_1 = require("../types.cjs");
21
+ const index_js_1 = require("../utils/index.cjs");
22
+ const index_js_2 = require("./evm-rpc-services/index.cjs");
23
+ // ============================================================================
24
+ // CONSTANTS
25
+ // ============================================================================
26
+ const CONTROLLER_NAME = 'TokenDataSource';
27
+ const DEFAULT_FETCH_TIMEOUT_MS = 15000;
28
+ const log = (0, logger_js_1.createModuleLogger)(logger_js_1.projectLogger, CONTROLLER_NAME);
29
+ /** Max asset IDs per tokens API request. */
30
+ const TOKENS_API_BATCH_SIZE = 50;
31
+ /** Max tokens per PhishingController:bulkScanTokens request (see PhishingController). */
32
+ const BULK_SCAN_BATCH_SIZE = 100;
33
+ /**
34
+ * Fallback minimum aggregator occurrences for EVM ERC-20 spam filtering when
35
+ * Token API `/v1/suggestedOccurrenceFloors` has no entry for the chain (or
36
+ * the floors request fails). Non-EVM tokens are filtered via Blockaid instead.
37
+ */
38
+ const DEFAULT_OCCURRENCE_FLOOR = 3;
39
+ /** CAIP-19 `assetNamespace` segments used across filtering logic. */
40
+ var CaipAssetNamespace;
41
+ (function (CaipAssetNamespace) {
42
+ CaipAssetNamespace["Slip44"] = "slip44";
43
+ CaipAssetNamespace["Erc20"] = "erc20";
44
+ CaipAssetNamespace["Token"] = "token";
45
+ })(CaipAssetNamespace || (exports.CaipAssetNamespace = CaipAssetNamespace = {}));
46
+ const MUSD_ADDRESS_LOWERCASE = '0xaca92e438df0b2401ff60da7e4337b687a2435da';
47
+ // ============================================================================
48
+ // HELPER FUNCTIONS
49
+ // ============================================================================
50
+ /**
51
+ * Transform V3 API response to FungibleAssetMetadata for state storage.
52
+ *
53
+ * Mapping:
54
+ * - assetId → used to derive `type` (native/erc20/spl)
55
+ * - iconUrl → image
56
+ * - All other fields map directly
57
+ *
58
+ * @param assetId - CAIP-19 asset ID used to derive token type.
59
+ * @param assetData - V3 API response data.
60
+ * @param getAssetType - Returns the asset type for a given CAIP-19 asset ID.
61
+ * @returns FungibleAssetMetadata for state storage.
62
+ */
63
+ function transformV3AssetResponseToMetadata(assetId, assetData, getAssetType) {
64
+ const metadata = {
65
+ type: getAssetType(assetId),
66
+ // BaseAssetMetadata fields
67
+ name: assetData.name,
68
+ symbol: assetData.symbol,
69
+ decimals: assetData.decimals,
70
+ image: assetData.iconUrl,
71
+ // Direct mapping fields
72
+ coingeckoId: assetData.coingeckoId,
73
+ occurrences: assetData.occurrences,
74
+ aggregators: assetData.aggregators,
75
+ labels: assetData.labels,
76
+ erc20Permit: assetData.erc20Permit,
77
+ fees: assetData.fees,
78
+ honeypotStatus: assetData.honeypotStatus,
79
+ storage: assetData.storage,
80
+ isContractVerified: assetData.isContractVerified,
81
+ description: assetData.description,
82
+ };
83
+ return metadata;
84
+ }
85
+ /**
86
+ * Resolve the occurrence floor for an EVM asset from suggested floors keyed by
87
+ * decimal chain ID (e.g. `{ "1": 3, "143": 1 }`).
88
+ *
89
+ * @param assetId - CAIP-19 asset ID.
90
+ * @param floors - Map of decimal chain ID → suggested floor.
91
+ * @returns Floor to apply, or {@link DEFAULT_OCCURRENCE_FLOOR} when missing.
92
+ */
93
+ function getOccurrenceFloorForAsset(assetId, floors) {
94
+ try {
95
+ const { chain } = (0, utils_1.parseCaipAssetType)(assetId);
96
+ return floors[chain.reference] ?? DEFAULT_OCCURRENCE_FLOOR;
97
+ }
98
+ catch {
99
+ return DEFAULT_OCCURRENCE_FLOOR;
100
+ }
101
+ }
102
+ // ============================================================================
103
+ // TOKEN DATA SOURCE
104
+ // ============================================================================
105
+ /**
106
+ * TokenDataSource enriches responses with token metadata from the Tokens API.
107
+ *
108
+ * This middleware-based data source:
109
+ * - Checks detected assets for missing metadata/images
110
+ * - Also checks `assetsBalance` entries missing metadata/images (heal path)
111
+ * - Fetches metadata from Tokens API v3 for assets needing enrichment
112
+ * - Filters EVM ERC-20 spam using per-chain floors from Token API
113
+ * `/v1/suggestedOccurrenceFloors` (default floor 3) for newly detected
114
+ * assets only; balance-only heals are enriched without spam-filtering
115
+ * - Merges fetched metadata into the response
116
+ *
117
+ * Pass the same {@link AssetsControllerMessenger} as other data sources for Blockaid
118
+ * token scans.
119
+ */
120
+ class TokenDataSource {
121
+ getName() {
122
+ return this.name;
123
+ }
124
+ constructor(messenger, options) {
125
+ _TokenDataSource_instances.add(this);
126
+ this.name = CONTROLLER_NAME;
127
+ /** ApiPlatformClient for cached API calls */
128
+ _TokenDataSource_apiClient.set(this, void 0);
129
+ /** Returns CAIP-19 native asset IDs from NetworkEnablementController state */
130
+ _TokenDataSource_getNativeAssetIds.set(this, void 0);
131
+ /** Returns the asset type for a given CAIP-19 asset ID */
132
+ _TokenDataSource_getAssetType.set(this, void 0);
133
+ /** Shared controller messenger — used for `PhishingController:bulkScanTokens`. */
134
+ _TokenDataSource_messenger.set(this, void 0);
135
+ _TokenDataSource_fetchTimeoutMs.set(this, void 0);
136
+ __classPrivateFieldSet(this, _TokenDataSource_messenger, messenger, "f");
137
+ __classPrivateFieldSet(this, _TokenDataSource_apiClient, options.queryApiClient, "f");
138
+ __classPrivateFieldSet(this, _TokenDataSource_getNativeAssetIds, options.getNativeAssetIds, "f");
139
+ __classPrivateFieldSet(this, _TokenDataSource_getAssetType, options.getAssetType, "f");
140
+ __classPrivateFieldSet(this, _TokenDataSource_fetchTimeoutMs, options.fetchTimeoutMs ?? DEFAULT_FETCH_TIMEOUT_MS, "f");
141
+ }
142
+ /**
143
+ * Middleware that runs BEFORE DetectionMiddleware for account-activity
144
+ * (websocket) updates. New-to-state EVM ERC-20 balances are enriched with
145
+ * their Token API occurrence counts first, and tokens below the per-chain
146
+ * suggested occurrence floor are dropped from the response (balances and
147
+ * stub metadata) so spam airdrops never reach detection, metadata
148
+ * enrichment, pricing, or state. Custom assets and mUSD are exempt, and
149
+ * assets unknown to the Token API are kept (fail open), mirroring
150
+ * {@link TokenDataSource.assetsMiddleware} filtering semantics.
151
+ *
152
+ * @returns The middleware function for the assets pipeline.
153
+ */
154
+ get occurrenceFilterMiddleware() {
155
+ return (0, types_js_1.forDataTypes)(['balance'], async (ctx, next) => {
156
+ const { response } = ctx;
157
+ const { assetsBalance: stateBalances, assetsInfo: stateMetadata, customAssets, } = ctx.getAssetsState();
158
+ const customAssetIds = new Set(Object.values(customAssets ?? {})
159
+ .flat()
160
+ .map((id) => id.toLowerCase()));
161
+ // State keys are checksummed, but AccountActivity delivers lower-case
162
+ // ERC-20 IDs, so every lookup below compares lower-cased IDs. Matching
163
+ // case-sensitively would classify existing holdings as new and delete
164
+ // the very balance update this pipeline pass is meant to persist.
165
+ const knownMetadataIds = new Set(Object.keys(stateMetadata).map((id) => id.toLowerCase()));
166
+ // Candidates: EVM ERC-20s that are genuinely new (absent from state
167
+ // balances and metadata) — the same assets DetectionMiddleware would
168
+ // mark as newly detected right after this middleware.
169
+ const candidateByLowerId = new Map();
170
+ for (const [accountId, accountBalances] of Object.entries(response.assetsBalance ?? {})) {
171
+ const knownBalanceIds = new Set(Object.keys(stateBalances[accountId] ?? {}).map((id) => id.toLowerCase()));
172
+ for (const assetId of Object.keys(accountBalances)) {
173
+ const caipAssetId = assetId;
174
+ const lowerId = assetId.toLowerCase();
175
+ if (knownBalanceIds.has(lowerId) ||
176
+ knownMetadataIds.has(lowerId) ||
177
+ customAssetIds.has(lowerId) ||
178
+ lowerId.includes(`/erc20:${MUSD_ADDRESS_LOWERCASE}`)) {
179
+ continue;
180
+ }
181
+ try {
182
+ const { assetNamespace, chain } = (0, utils_1.parseCaipAssetType)(caipAssetId);
183
+ if (assetNamespace === CaipAssetNamespace.Erc20 &&
184
+ chain.namespace === utils_1.KnownCaipNamespace.Eip155) {
185
+ candidateByLowerId.set(lowerId, assetId);
186
+ }
187
+ }
188
+ catch {
189
+ // Unparseable IDs are left for downstream middleware to handle.
190
+ }
191
+ }
192
+ }
193
+ if (candidateByLowerId.size === 0) {
194
+ return next(ctx);
195
+ }
196
+ try {
197
+ const [occurrenceResponse, suggestedOccurrenceFloors] = await Promise.all([
198
+ (0, index_js_2.reduceInBatchesSerially)({
199
+ values: [...candidateByLowerId.values()],
200
+ batchSize: TOKENS_API_BATCH_SIZE,
201
+ eachBatch: async (workingResult, batch) => {
202
+ const batchResponse = await (0, index_js_1.fetchWithTimeout)(() => __classPrivateFieldGet(this, _TokenDataSource_apiClient, "f").tokens.fetchV3Assets(batch, {
203
+ includeOccurrences: true,
204
+ }), __classPrivateFieldGet(this, _TokenDataSource_fetchTimeoutMs, "f"));
205
+ return [
206
+ ...workingResult,
207
+ ...batchResponse,
208
+ ];
209
+ },
210
+ initialResult: [],
211
+ }),
212
+ __classPrivateFieldGet(this, _TokenDataSource_instances, "m", _TokenDataSource_getSuggestedOccurrenceFloors).call(this),
213
+ ]);
214
+ // Only assets the API knows can be judged; missing ones are kept.
215
+ const spamAssetIds = new Set();
216
+ for (const assetData of occurrenceResponse) {
217
+ const candidateId = candidateByLowerId.get(assetData.assetId.toLowerCase());
218
+ if (candidateId !== undefined &&
219
+ (assetData.occurrences ?? 0) <
220
+ getOccurrenceFloorForAsset(candidateId, suggestedOccurrenceFloors)) {
221
+ spamAssetIds.add(candidateId);
222
+ }
223
+ }
224
+ if (spamAssetIds.size > 0) {
225
+ for (const accountBalances of Object.values(response.assetsBalance ?? {})) {
226
+ for (const assetId of spamAssetIds) {
227
+ delete accountBalances[assetId];
228
+ }
229
+ }
230
+ if (response.assetsInfo) {
231
+ const spamLowerIds = new Set([...spamAssetIds].map((id) => id.toLowerCase()));
232
+ for (const assetId of Object.keys(response.assetsInfo)) {
233
+ if (spamLowerIds.has(assetId.toLowerCase())) {
234
+ delete response.assetsInfo[assetId];
235
+ }
236
+ }
237
+ }
238
+ log('Filtered low-occurrence websocket assets', {
239
+ assetIds: [...spamAssetIds],
240
+ });
241
+ }
242
+ }
243
+ catch (error) {
244
+ // Fail open — keep all assets when occurrences cannot be fetched.
245
+ log('Failed to fetch occurrences for websocket update', { error });
246
+ }
247
+ return next(ctx);
248
+ });
249
+ }
250
+ /**
251
+ * Get the middleware for enriching responses with token metadata.
252
+ *
253
+ * This middleware:
254
+ * 1. Extracts the response from context
255
+ * 2. Fetches metadata for detected assets and balances missing metadata
256
+ * 3. Enriches the response with fetched metadata
257
+ * 4. Calls next() at the end to continue the middleware chain
258
+ *
259
+ * Spam filtering (EVM occurrence floors / non-EVM Blockaid) applies only to
260
+ * newly `detectedAssets`. Balance-only heals — assets already present in
261
+ * `assetsBalance` but missing `assetsInfo`, which DetectionMiddleware skips —
262
+ * are enriched without being filtered out of balances.
263
+ *
264
+ * @returns The middleware function for the assets pipeline.
265
+ */
266
+ get assetsMiddleware() {
267
+ return (0, types_js_1.forDataTypes)(['metadata'], async (ctx, next) => {
268
+ // Extract response from context
269
+ const { response } = ctx;
270
+ const { assetsInfo: stateMetadata, customAssets } = ctx.getAssetsState();
271
+ const assetIdsNeedingMetadata = new Set();
272
+ // Newly detected asset IDs (lowercase) — subject to spam filtering.
273
+ const detectedAssetIds = new Set();
274
+ // Balance-only heals (in assetsBalance, not newly detected) — enrich
275
+ // metadata but do not spam-filter / delete holdings.
276
+ const balanceHealAssetIds = new Set();
277
+ // Custom assets are user-imported — exempt from spam filtering.
278
+ // State stores asset IDs in their normalized (checksummed) form, but the
279
+ // V3 Tokens API can return them lower-cased. Lowercase both sides so the
280
+ // bypass is robust to address-case differences across data sources.
281
+ const customAssetIds = new Set(Object.values(customAssets ?? {})
282
+ .flat()
283
+ .map((id) => id.toLowerCase()));
284
+ // Always include native asset IDs from NetworkEnablementController
285
+ const nativeAssetIdsList = __classPrivateFieldGet(this, _TokenDataSource_getNativeAssetIds, "f").call(this);
286
+ const nativeAssetIds = new Set(nativeAssetIdsList.map((id) => id.toLowerCase()));
287
+ for (const nativeAssetId of nativeAssetIdsList) {
288
+ assetIdsNeedingMetadata.add(nativeAssetId);
289
+ }
290
+ // Also fetch metadata for detected assets that are missing it
291
+ if (response.detectedAssets) {
292
+ for (const detectedIds of Object.values(response.detectedAssets)) {
293
+ for (const assetId of detectedIds) {
294
+ // Skip if response already has metadata with image
295
+ const responseMetadata = response.assetsInfo?.[assetId];
296
+ if (responseMetadata?.image) {
297
+ continue;
298
+ }
299
+ // Skip if state already has metadata with image
300
+ const existingMetadata = stateMetadata[assetId];
301
+ if (existingMetadata?.image) {
302
+ continue;
303
+ }
304
+ // Skip staking contracts; we use built-in metadata and do not fetch from the tokens API
305
+ if ((0, index_js_2.isStakingContractAssetId)(assetId)) {
306
+ continue;
307
+ }
308
+ detectedAssetIds.add(assetId.toLowerCase());
309
+ assetIdsNeedingMetadata.add(assetId);
310
+ }
311
+ }
312
+ }
313
+ // Also fetch metadata for balances that are missing it
314
+ if (response.assetsBalance) {
315
+ for (const accountBalances of Object.values(response.assetsBalance)) {
316
+ for (const assetId of Object.keys(accountBalances)) {
317
+ if (response.assetsInfo?.[assetId]?.image) {
318
+ continue;
319
+ }
320
+ if (stateMetadata[assetId]?.image) {
321
+ continue;
322
+ }
323
+ if ((0, index_js_2.isStakingContractAssetId)(assetId)) {
324
+ continue;
325
+ }
326
+ assetIdsNeedingMetadata.add(assetId);
327
+ // Only treat as a heal when DetectionMiddleware did not queue it
328
+ // as newly detected — those remain subject to spam filtering.
329
+ if (!detectedAssetIds.has(assetId.toLowerCase())) {
330
+ balanceHealAssetIds.add(assetId.toLowerCase());
331
+ }
332
+ }
333
+ }
334
+ }
335
+ if (assetIdsNeedingMetadata.size === 0) {
336
+ return next(ctx);
337
+ }
338
+ // Filter asset IDs to only include supported networks; load per-chain
339
+ // occurrence floors in parallel (Token API suggested floors).
340
+ const [supportedNetworks, suggestedOccurrenceFloors] = await Promise.all([
341
+ __classPrivateFieldGet(this, _TokenDataSource_instances, "m", _TokenDataSource_getSupportedNetworks).call(this),
342
+ __classPrivateFieldGet(this, _TokenDataSource_instances, "m", _TokenDataSource_getSuggestedOccurrenceFloors).call(this),
343
+ ]);
344
+ const supportedAssetIds = __classPrivateFieldGet(this, _TokenDataSource_instances, "m", _TokenDataSource_filterAssetsByNetwork).call(this, [...assetIdsNeedingMetadata], supportedNetworks);
345
+ if (supportedAssetIds.length === 0) {
346
+ return next(ctx);
347
+ }
348
+ try {
349
+ const fetchOptions = {
350
+ includeIconUrl: true,
351
+ includeMarketData: true,
352
+ includeMetadata: true,
353
+ includeLabels: true,
354
+ includeRwaData: true,
355
+ includeAggregators: true,
356
+ includeOccurrences: true,
357
+ };
358
+ const metadataResponse = await (0, index_js_2.reduceInBatchesSerially)({
359
+ values: supportedAssetIds,
360
+ batchSize: TOKENS_API_BATCH_SIZE,
361
+ eachBatch: async (workingResult, batch) => {
362
+ const batchResponse = await (0, index_js_1.fetchWithTimeout)(() => __classPrivateFieldGet(this, _TokenDataSource_apiClient, "f").tokens.fetchV3Assets(batch, fetchOptions), __classPrivateFieldGet(this, _TokenDataSource_fetchTimeoutMs, "f"));
363
+ return [...workingResult, ...batchResponse];
364
+ },
365
+ initialResult: [],
366
+ });
367
+ // Split assets by chain type: EVM uses occurrence-count filtering;
368
+ // non-EVM non-native uses Blockaid; native assets are always allowed.
369
+ const occurrencesByAssetId = new Map(metadataResponse.map((a) => [a.assetId, a.occurrences]));
370
+ const evmErc20Ids = [];
371
+ const nonEvmTokenIds = [];
372
+ for (const assetData of metadataResponse) {
373
+ const assetId = assetData.assetId;
374
+ const { assetNamespace, chain } = (0, utils_1.parseCaipAssetType)(assetId);
375
+ if (nativeAssetIds.has(assetId.toLowerCase())) {
376
+ // Native assets are always kept — no filtering.
377
+ }
378
+ else if (assetNamespace === CaipAssetNamespace.Erc20 &&
379
+ chain.namespace === utils_1.KnownCaipNamespace.Eip155) {
380
+ evmErc20Ids.push(assetId);
381
+ }
382
+ else if (assetNamespace === CaipAssetNamespace.Token) {
383
+ nonEvmTokenIds.push(assetId);
384
+ }
385
+ }
386
+ // EVM: require per-chain suggested occurrence floor (from Token API
387
+ // `/v1/suggestedOccurrenceFloors`, default {@link DEFAULT_OCCURRENCE_FLOOR})
388
+ // to suppress low-signal tokens. Tokens with no occurrence data
389
+ // (undefined) are treated the same as zero occurrences and filtered out.
390
+ // Custom assets (user-imported) bypass the occurrence filter — users
391
+ // can import whatever they want and we must keep their metadata even
392
+ // if the API has fewer aggregator hits than the floor.
393
+ // Balance-only heals also bypass — see `balanceHealAssetIds` below.
394
+ const allowedEvmIds = new Set(evmErc20Ids.filter((id) => customAssetIds.has(id.toLowerCase()) ||
395
+ balanceHealAssetIds.has(id.toLowerCase()) ||
396
+ (occurrencesByAssetId.get(id) ?? 0) >=
397
+ getOccurrenceFloorForAsset(id, suggestedOccurrenceFloors) ||
398
+ id.includes(`/erc20:${MUSD_ADDRESS_LOWERCASE}`)));
399
+ // Non-EVM: Blockaid bulk scan.
400
+ // Custom assets and balance-only heals bypass Blockaid filtering.
401
+ const nonEvmToScan = nonEvmTokenIds.filter((id) => !customAssetIds.has(id.toLowerCase()) &&
402
+ !balanceHealAssetIds.has(id.toLowerCase()));
403
+ const allowedNonEvmIds = new Set([
404
+ ...nonEvmTokenIds.filter((id) => customAssetIds.has(id.toLowerCase()) ||
405
+ balanceHealAssetIds.has(id.toLowerCase())),
406
+ ...(await __classPrivateFieldGet(this, _TokenDataSource_instances, "m", _TokenDataSource_filterBlockaidSpamTokens).call(this, nonEvmToScan)),
407
+ ]);
408
+ // Start with every asset the API returned; only remove those that
409
+ // fail their respective filter (EVM occurrences / non-EVM Blockaid).
410
+ // Native (slip44) and unrecognised namespaces are kept (fail open).
411
+ const allowedAssetIds = new Set(metadataResponse.map((a) => a.assetId));
412
+ for (const id of evmErc20Ids) {
413
+ if (!allowedEvmIds.has(id)) {
414
+ allowedAssetIds.delete(id);
415
+ }
416
+ }
417
+ for (const id of nonEvmTokenIds) {
418
+ if (!allowedNonEvmIds.has(id)) {
419
+ allowedAssetIds.delete(id);
420
+ }
421
+ }
422
+ response.assetsInfo ?? (response.assetsInfo = {});
423
+ const filteredOutAssets = new Set();
424
+ for (const assetData of metadataResponse) {
425
+ if (!allowedAssetIds.has(assetData.assetId)) {
426
+ filteredOutAssets.add(assetData.assetId);
427
+ continue;
428
+ }
429
+ const caipAssetId = assetData.assetId;
430
+ response.assetsInfo[caipAssetId] = transformV3AssetResponseToMetadata(caipAssetId, assetData, __classPrivateFieldGet(this, _TokenDataSource_getAssetType, "f"));
431
+ }
432
+ if (filteredOutAssets.size > 0) {
433
+ if (response.assetsBalance) {
434
+ for (const accountBalances of Object.values(response.assetsBalance)) {
435
+ for (const assetId of filteredOutAssets) {
436
+ delete accountBalances[assetId];
437
+ }
438
+ }
439
+ }
440
+ if (response.detectedAssets) {
441
+ for (const [accountId, assetIds] of Object.entries(response.detectedAssets)) {
442
+ response.detectedAssets[accountId] = assetIds.filter((id) => !filteredOutAssets.has(id));
443
+ }
444
+ }
445
+ // Drop stub metadata (e.g. websocket-seeded name/symbol) for
446
+ // filtered-out assets so it never persists to state — a persisted
447
+ // stub would make the asset look "known" on the next update and
448
+ // let its balance skip spam filtering as a heal. Case-insensitive
449
+ // because the API may return asset IDs in a different case.
450
+ const filteredOutLower = new Set([...filteredOutAssets].map((id) => id.toLowerCase()));
451
+ for (const assetId of Object.keys(response.assetsInfo)) {
452
+ if (filteredOutLower.has(assetId.toLowerCase())) {
453
+ delete response.assetsInfo[assetId];
454
+ }
455
+ }
456
+ }
457
+ }
458
+ catch (error) {
459
+ log('Failed to fetch metadata', { error });
460
+ }
461
+ // Call next() at the end to continue the middleware chain
462
+ return next(ctx);
463
+ });
464
+ }
465
+ }
466
+ exports.TokenDataSource = TokenDataSource;
467
+ _TokenDataSource_apiClient = new WeakMap(), _TokenDataSource_getNativeAssetIds = new WeakMap(), _TokenDataSource_getAssetType = new WeakMap(), _TokenDataSource_messenger = new WeakMap(), _TokenDataSource_fetchTimeoutMs = new WeakMap(), _TokenDataSource_instances = new WeakSet(), _TokenDataSource_getSupportedNetworks =
468
+ /**
469
+ * Gets the supported networks from the API.
470
+ * Caching is handled by ApiPlatformClient.
471
+ *
472
+ * @returns Set of supported chain IDs in CAIP format
473
+ */
474
+ async function _TokenDataSource_getSupportedNetworks() {
475
+ try {
476
+ // Use v2/supportedNetworks which returns CAIP chain IDs
477
+ // ApiPlatformClient handles caching
478
+ const response = await (0, index_js_1.fetchWithTimeout)(() => __classPrivateFieldGet(this, _TokenDataSource_apiClient, "f").tokens.fetchTokenV2SupportedNetworks(), __classPrivateFieldGet(this, _TokenDataSource_fetchTimeoutMs, "f"));
479
+ // Combine full and partial support networks
480
+ const allNetworks = [...response.fullSupport, ...response.partialSupport];
481
+ return new Set(allNetworks);
482
+ }
483
+ catch (error) {
484
+ log('Failed to fetch supported networks', { error });
485
+ return new Set();
486
+ }
487
+ }, _TokenDataSource_getSuggestedOccurrenceFloors =
488
+ /**
489
+ * Fetches per-chain suggested occurrence floors from Token API
490
+ * (`GET /v1/suggestedOccurrenceFloors`). Caching is handled by
491
+ * ApiPlatformClient. Fails open to an empty map so callers fall back to
492
+ * {@link DEFAULT_OCCURRENCE_FLOOR}.
493
+ *
494
+ * @returns Map of decimal chain ID → suggested occurrence floor.
495
+ */
496
+ async function _TokenDataSource_getSuggestedOccurrenceFloors() {
497
+ try {
498
+ return await (0, index_js_1.fetchWithTimeout)(() => __classPrivateFieldGet(this, _TokenDataSource_apiClient, "f").token.fetchV1SuggestedOccurrenceFloors(), __classPrivateFieldGet(this, _TokenDataSource_fetchTimeoutMs, "f"));
499
+ }
500
+ catch (error) {
501
+ log('Failed to fetch suggested occurrence floors', { error });
502
+ return {};
503
+ }
504
+ }, _TokenDataSource_filterAssetsByNetwork = function _TokenDataSource_filterAssetsByNetwork(assetIds, supportedNetworks) {
505
+ return assetIds.filter((assetId) => {
506
+ try {
507
+ const parsed = (0, utils_1.parseCaipAssetType)(assetId);
508
+ // chainId is in format "eip155:1" or "tron:728126428"
509
+ // parsed.chain has namespace and reference properties
510
+ const chainId = `${parsed.chain.namespace}:${parsed.chain.reference}`;
511
+ return supportedNetworks.has(chainId);
512
+ }
513
+ catch {
514
+ // If we can't parse the asset ID, filter it out
515
+ return false;
516
+ }
517
+ });
518
+ }, _TokenDataSource_filterBlockaidSpamTokens =
519
+ /**
520
+ * Filters non-EVM fungible `token` assets flagged as malicious by Blockaid
521
+ * via `PhishingController:bulkScanTokens`. Only the `token` namespace (e.g.
522
+ * Solana mints) is scanned; native (`slip44`) and EVM assets are not handled
523
+ * here (EVM uses occurrence-count filtering instead). Fails open on error.
524
+ *
525
+ * @param assets - CAIP-19 asset IDs to filter (non-EVM only).
526
+ * @returns Asset IDs with malicious tokens removed.
527
+ */
528
+ async function _TokenDataSource_filterBlockaidSpamTokens(assets) {
529
+ if (assets.length === 0) {
530
+ return assets;
531
+ }
532
+ const tokensByChain = {};
533
+ for (const asset of assets) {
534
+ try {
535
+ const { assetNamespace, assetReference, chain } = (0, utils_1.parseCaipAssetType)(asset);
536
+ if (assetNamespace === CaipAssetNamespace.Token) {
537
+ const chainName = chain.namespace;
538
+ if (!tokensByChain[chainName]) {
539
+ tokensByChain[chainName] = [];
540
+ }
541
+ tokensByChain[chainName].push({ asset, address: assetReference });
542
+ }
543
+ }
544
+ catch {
545
+ // Malformed or unsupported for bulk scan — keep asset (fail open)
546
+ }
547
+ }
548
+ if (Object.keys(tokensByChain).length === 0) {
549
+ return assets;
550
+ }
551
+ const rejectedAssets = new Set();
552
+ try {
553
+ for (const [chainId, tokenEntries] of Object.entries(tokensByChain)) {
554
+ const addresses = tokenEntries.map((entry) => entry.address);
555
+ const batches = [];
556
+ for (let i = 0; i < addresses.length; i += BULK_SCAN_BATCH_SIZE) {
557
+ batches.push(addresses.slice(i, i + BULK_SCAN_BATCH_SIZE));
558
+ }
559
+ const batchResults = await Promise.allSettled(batches.map((batch) => __classPrivateFieldGet(this, _TokenDataSource_messenger, "f").call('PhishingController:bulkScanTokens', {
560
+ chainId,
561
+ tokens: batch,
562
+ })));
563
+ const scanResponse = {};
564
+ for (const result of batchResults) {
565
+ if (result.status === 'fulfilled') {
566
+ Object.assign(scanResponse, result.value);
567
+ }
568
+ }
569
+ for (const entry of tokenEntries) {
570
+ const result = scanResponse[entry.address];
571
+ if (result?.result_type === phishing_controller_1.TokenScanResultType.Malicious) {
572
+ rejectedAssets.add(entry.asset);
573
+ }
574
+ }
575
+ }
576
+ }
577
+ catch (error) {
578
+ log('Blockaid bulk token scan failed; keeping all tokens', { error });
579
+ return assets;
580
+ }
581
+ return assets.filter((asset) => !rejectedAssets.has(asset));
582
+ };
583
+ //# sourceMappingURL=TokenDataSource.cjs.map