@metamask/assets-controllers 38.0.0 → 38.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/CHANGELOG.md +37 -1
  2. package/dist/AccountTrackerController.cjs +245 -0
  3. package/dist/AccountTrackerController.cjs.map +1 -0
  4. package/dist/{types/AccountTrackerController.d.ts → AccountTrackerController.d.cts} +6 -6
  5. package/dist/AccountTrackerController.d.cts.map +1 -0
  6. package/dist/AccountTrackerController.d.mts +112 -0
  7. package/dist/AccountTrackerController.d.mts.map +1 -0
  8. package/dist/AccountTrackerController.mjs +244 -8
  9. package/dist/AccountTrackerController.mjs.map +1 -1
  10. package/dist/AssetsContractController.cjs +389 -0
  11. package/dist/AssetsContractController.cjs.map +1 -0
  12. package/dist/{types/AssetsContractController.d.ts → AssetsContractController.d.cts} +9 -9
  13. package/dist/AssetsContractController.d.cts.map +1 -0
  14. package/dist/AssetsContractController.d.mts +277 -0
  15. package/dist/AssetsContractController.d.mts.map +1 -0
  16. package/dist/AssetsContractController.mjs +387 -16
  17. package/dist/AssetsContractController.mjs.map +1 -1
  18. package/dist/CurrencyRateController.cjs +156 -0
  19. package/dist/CurrencyRateController.cjs.map +1 -0
  20. package/dist/{types/CurrencyRateController.d.ts → CurrencyRateController.d.cts} +5 -5
  21. package/dist/CurrencyRateController.d.cts.map +1 -0
  22. package/dist/CurrencyRateController.d.mts +80 -0
  23. package/dist/CurrencyRateController.d.mts.map +1 -0
  24. package/dist/CurrencyRateController.mjs +150 -10
  25. package/dist/CurrencyRateController.mjs.map +1 -1
  26. package/dist/NftController.cjs +1159 -0
  27. package/dist/NftController.cjs.map +1 -0
  28. package/dist/{types/NftController.d.ts → NftController.d.cts} +11 -11
  29. package/dist/NftController.d.cts.map +1 -0
  30. package/dist/NftController.d.mts +424 -0
  31. package/dist/NftController.d.mts.map +1 -0
  32. package/dist/NftController.mjs +1156 -12
  33. package/dist/NftController.mjs.map +1 -1
  34. package/dist/NftDetectionController.cjs +237 -0
  35. package/dist/NftDetectionController.cjs.map +1 -0
  36. package/dist/{types/NftDetectionController.d.ts → NftDetectionController.d.cts} +9 -9
  37. package/dist/NftDetectionController.d.cts.map +1 -0
  38. package/dist/NftDetectionController.d.mts +368 -0
  39. package/dist/NftDetectionController.d.mts.map +1 -0
  40. package/dist/NftDetectionController.mjs +231 -14
  41. package/dist/NftDetectionController.mjs.map +1 -1
  42. package/dist/RatesController/RatesController.cjs +189 -0
  43. package/dist/RatesController/RatesController.cjs.map +1 -0
  44. package/dist/{types/RatesController/RatesController.d.ts → RatesController/RatesController.d.cts} +3 -3
  45. package/dist/RatesController/RatesController.d.cts.map +1 -0
  46. package/dist/RatesController/RatesController.d.mts +44 -0
  47. package/dist/RatesController/RatesController.d.mts.map +1 -0
  48. package/dist/RatesController/RatesController.mjs +183 -12
  49. package/dist/RatesController/RatesController.mjs.map +1 -1
  50. package/dist/RatesController/index.cjs +7 -0
  51. package/dist/RatesController/index.cjs.map +1 -0
  52. package/dist/{types/RatesController/index.d.ts → RatesController/index.d.cts} +3 -3
  53. package/dist/RatesController/index.d.cts.map +1 -0
  54. package/dist/RatesController/index.d.mts +3 -0
  55. package/dist/RatesController/index.d.mts.map +1 -0
  56. package/dist/RatesController/index.mjs +1 -12
  57. package/dist/RatesController/index.mjs.map +1 -1
  58. package/dist/RatesController/types.cjs +3 -0
  59. package/dist/RatesController/types.cjs.map +1 -0
  60. package/dist/{types/RatesController/types.d.ts → RatesController/types.d.cts} +4 -4
  61. package/dist/RatesController/types.d.cts.map +1 -0
  62. package/dist/RatesController/types.d.mts +100 -0
  63. package/dist/RatesController/types.d.mts.map +1 -0
  64. package/dist/RatesController/types.mjs +1 -0
  65. package/dist/RatesController/types.mjs.map +1 -1
  66. package/dist/Standards/ERC20Standard.cjs +124 -0
  67. package/dist/Standards/ERC20Standard.cjs.map +1 -0
  68. package/dist/{types/Standards/ERC20Standard.d.ts → Standards/ERC20Standard.d.cts} +3 -3
  69. package/dist/Standards/ERC20Standard.d.cts.map +1 -0
  70. package/dist/Standards/ERC20Standard.d.mts +49 -0
  71. package/dist/Standards/ERC20Standard.d.mts.map +1 -0
  72. package/dist/Standards/ERC20Standard.mjs +121 -8
  73. package/dist/Standards/ERC20Standard.mjs.map +1 -1
  74. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.cjs +189 -0
  75. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.cjs.map +1 -0
  76. package/dist/{types/Standards/NftStandards/ERC1155/ERC1155Standard.d.ts → Standards/NftStandards/ERC1155/ERC1155Standard.d.cts} +3 -3
  77. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.d.cts.map +1 -0
  78. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.d.mts +95 -0
  79. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.d.mts.map +1 -0
  80. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.mjs +184 -8
  81. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.mjs.map +1 -1
  82. package/dist/Standards/NftStandards/ERC721/ERC721Standard.cjs +167 -0
  83. package/dist/Standards/NftStandards/ERC721/ERC721Standard.cjs.map +1 -0
  84. package/dist/{types/Standards/NftStandards/ERC721/ERC721Standard.d.ts → Standards/NftStandards/ERC721/ERC721Standard.d.cts} +2 -2
  85. package/dist/Standards/NftStandards/ERC721/ERC721Standard.d.cts.map +1 -0
  86. package/dist/Standards/NftStandards/ERC721/ERC721Standard.d.mts +89 -0
  87. package/dist/Standards/NftStandards/ERC721/ERC721Standard.d.mts.map +1 -0
  88. package/dist/Standards/NftStandards/ERC721/ERC721Standard.mjs +162 -8
  89. package/dist/Standards/NftStandards/ERC721/ERC721Standard.mjs.map +1 -1
  90. package/dist/TokenBalancesController.cjs +136 -0
  91. package/dist/TokenBalancesController.cjs.map +1 -0
  92. package/dist/{types/TokenBalancesController.d.ts → TokenBalancesController.d.cts} +7 -7
  93. package/dist/TokenBalancesController.d.cts.map +1 -0
  94. package/dist/TokenBalancesController.d.mts +82 -0
  95. package/dist/TokenBalancesController.d.mts.map +1 -0
  96. package/dist/TokenBalancesController.mjs +129 -10
  97. package/dist/TokenBalancesController.mjs.map +1 -1
  98. package/dist/TokenDetectionController.cjs +368 -0
  99. package/dist/TokenDetectionController.cjs.map +1 -0
  100. package/dist/{types/TokenDetectionController.d.ts → TokenDetectionController.d.cts} +10 -10
  101. package/dist/TokenDetectionController.d.cts.map +1 -0
  102. package/dist/TokenDetectionController.d.mts +109 -0
  103. package/dist/TokenDetectionController.d.mts.map +1 -0
  104. package/dist/TokenDetectionController.mjs +365 -15
  105. package/dist/TokenDetectionController.mjs.map +1 -1
  106. package/dist/TokenListController.cjs +274 -0
  107. package/dist/TokenListController.cjs.map +1 -0
  108. package/dist/{types/TokenListController.d.ts → TokenListController.d.cts} +5 -5
  109. package/dist/TokenListController.d.cts.map +1 -0
  110. package/dist/TokenListController.d.mts +117 -0
  111. package/dist/TokenListController.d.mts.map +1 -0
  112. package/dist/TokenListController.mjs +267 -12
  113. package/dist/TokenListController.mjs.map +1 -1
  114. package/dist/TokenRatesController.cjs +452 -0
  115. package/dist/TokenRatesController.cjs.map +1 -0
  116. package/dist/{types/TokenRatesController.d.ts → TokenRatesController.d.cts} +8 -8
  117. package/dist/TokenRatesController.d.cts.map +1 -0
  118. package/dist/TokenRatesController.d.mts +170 -0
  119. package/dist/TokenRatesController.d.mts.map +1 -0
  120. package/dist/TokenRatesController.mjs +446 -16
  121. package/dist/TokenRatesController.mjs.map +1 -1
  122. package/dist/TokensController.cjs +678 -0
  123. package/dist/TokensController.cjs.map +1 -0
  124. package/dist/{types/TokensController.d.ts → TokensController.d.cts} +9 -9
  125. package/dist/TokensController.d.cts.map +1 -0
  126. package/dist/TokensController.d.mts +165 -0
  127. package/dist/TokensController.d.mts.map +1 -0
  128. package/dist/TokensController.mjs +675 -14
  129. package/dist/TokensController.mjs.map +1 -1
  130. package/dist/assetsUtil.cjs +358 -0
  131. package/dist/assetsUtil.cjs.map +1 -0
  132. package/dist/{types/assetsUtil.d.ts → assetsUtil.d.cts} +7 -7
  133. package/dist/assetsUtil.d.cts.map +1 -0
  134. package/dist/assetsUtil.d.mts +177 -0
  135. package/dist/assetsUtil.d.mts.map +1 -0
  136. package/dist/assetsUtil.mjs +343 -36
  137. package/dist/assetsUtil.mjs.map +1 -1
  138. package/dist/constants.cjs +10 -0
  139. package/dist/constants.cjs.map +1 -0
  140. package/dist/{types/constants.d.ts → constants.d.cts} +1 -1
  141. package/dist/constants.d.cts.map +1 -0
  142. package/dist/constants.d.mts +6 -0
  143. package/dist/constants.d.mts.map +1 -0
  144. package/dist/constants.mjs +6 -7
  145. package/dist/constants.mjs.map +1 -1
  146. package/dist/crypto-compare-service/crypto-compare.cjs +119 -0
  147. package/dist/crypto-compare-service/crypto-compare.cjs.map +1 -0
  148. package/dist/{types/crypto-compare-service/crypto-compare.d.ts → crypto-compare-service/crypto-compare.d.cts} +1 -1
  149. package/dist/crypto-compare-service/crypto-compare.d.cts.map +1 -0
  150. package/dist/crypto-compare-service/crypto-compare.d.mts +22 -0
  151. package/dist/crypto-compare-service/crypto-compare.d.mts.map +1 -0
  152. package/dist/crypto-compare-service/crypto-compare.mjs +113 -9
  153. package/dist/crypto-compare-service/crypto-compare.mjs.map +1 -1
  154. package/dist/crypto-compare-service/index.cjs +7 -0
  155. package/dist/crypto-compare-service/index.cjs.map +1 -0
  156. package/dist/crypto-compare-service/index.d.cts +2 -0
  157. package/dist/crypto-compare-service/index.d.cts.map +1 -0
  158. package/dist/crypto-compare-service/index.d.mts +2 -0
  159. package/dist/crypto-compare-service/index.d.mts.map +1 -0
  160. package/dist/crypto-compare-service/index.mjs +1 -10
  161. package/dist/crypto-compare-service/index.mjs.map +1 -1
  162. package/dist/index.cjs +51 -0
  163. package/dist/index.cjs.map +1 -0
  164. package/dist/{types/index.d.ts → index.d.cts} +24 -24
  165. package/dist/index.d.cts.map +1 -0
  166. package/dist/index.d.mts +24 -0
  167. package/dist/index.d.mts.map +1 -0
  168. package/dist/index.mjs +13 -80
  169. package/dist/index.mjs.map +1 -1
  170. package/dist/token-prices-service/abstract-token-prices-service.cjs +3 -0
  171. package/dist/token-prices-service/abstract-token-prices-service.cjs.map +1 -0
  172. package/dist/{types/token-prices-service/abstract-token-prices-service.d.ts → token-prices-service/abstract-token-prices-service.d.cts} +2 -2
  173. package/dist/token-prices-service/abstract-token-prices-service.d.cts.map +1 -0
  174. package/dist/token-prices-service/abstract-token-prices-service.d.mts +79 -0
  175. package/dist/token-prices-service/abstract-token-prices-service.d.mts.map +1 -0
  176. package/dist/token-prices-service/abstract-token-prices-service.mjs +1 -0
  177. package/dist/token-prices-service/abstract-token-prices-service.mjs.map +1 -1
  178. package/dist/token-prices-service/codefi-v2.cjs +352 -0
  179. package/dist/token-prices-service/codefi-v2.cjs.map +1 -0
  180. package/dist/{types/token-prices-service/codefi-v2.d.ts → token-prices-service/codefi-v2.d.cts} +3 -3
  181. package/dist/token-prices-service/codefi-v2.d.cts.map +1 -0
  182. package/dist/token-prices-service/codefi-v2.d.mts +97 -0
  183. package/dist/token-prices-service/codefi-v2.d.mts.map +1 -0
  184. package/dist/token-prices-service/codefi-v2.mjs +347 -12
  185. package/dist/token-prices-service/codefi-v2.mjs.map +1 -1
  186. package/dist/token-prices-service/index.cjs +7 -0
  187. package/dist/token-prices-service/index.cjs.map +1 -0
  188. package/dist/token-prices-service/index.d.cts +3 -0
  189. package/dist/token-prices-service/index.d.cts.map +1 -0
  190. package/dist/token-prices-service/index.d.mts +3 -0
  191. package/dist/token-prices-service/index.d.mts.map +1 -0
  192. package/dist/token-prices-service/index.mjs +1 -10
  193. package/dist/token-prices-service/index.mjs.map +1 -1
  194. package/dist/token-service.cjs +130 -0
  195. package/dist/token-service.cjs.map +1 -0
  196. package/dist/{types/token-service.d.ts → token-service.d.cts} +2 -2
  197. package/dist/token-service.d.cts.map +1 -0
  198. package/dist/token-service.d.mts +31 -0
  199. package/dist/token-service.d.mts.map +1 -0
  200. package/dist/token-service.mjs +124 -14
  201. package/dist/token-service.mjs.map +1 -1
  202. package/package.json +21 -16
  203. package/dist/AccountTrackerController.js +0 -10
  204. package/dist/AccountTrackerController.js.map +0 -1
  205. package/dist/AssetsContractController.js +0 -18
  206. package/dist/AssetsContractController.js.map +0 -1
  207. package/dist/CurrencyRateController.js +0 -12
  208. package/dist/CurrencyRateController.js.map +0 -1
  209. package/dist/NftController.js +0 -14
  210. package/dist/NftController.js.map +0 -1
  211. package/dist/NftDetectionController.js +0 -16
  212. package/dist/NftDetectionController.js.map +0 -1
  213. package/dist/RatesController/RatesController.js +0 -14
  214. package/dist/RatesController/RatesController.js.map +0 -1
  215. package/dist/RatesController/index.js +0 -13
  216. package/dist/RatesController/index.js.map +0 -1
  217. package/dist/RatesController/types.js +0 -1
  218. package/dist/RatesController/types.js.map +0 -1
  219. package/dist/Standards/ERC20Standard.js +0 -9
  220. package/dist/Standards/ERC20Standard.js.map +0 -1
  221. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.js +0 -9
  222. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.js.map +0 -1
  223. package/dist/Standards/NftStandards/ERC721/ERC721Standard.js +0 -9
  224. package/dist/Standards/NftStandards/ERC721/ERC721Standard.js.map +0 -1
  225. package/dist/TokenBalancesController.js +0 -12
  226. package/dist/TokenBalancesController.js.map +0 -1
  227. package/dist/TokenDetectionController.js +0 -17
  228. package/dist/TokenDetectionController.js.map +0 -1
  229. package/dist/TokenListController.js +0 -14
  230. package/dist/TokenListController.js.map +0 -1
  231. package/dist/TokenRatesController.js +0 -18
  232. package/dist/TokenRatesController.js.map +0 -1
  233. package/dist/TokensController.js +0 -16
  234. package/dist/TokensController.js.map +0 -1
  235. package/dist/assetsUtil.js +0 -38
  236. package/dist/assetsUtil.js.map +0 -1
  237. package/dist/chunk-27KOXCQK.mjs +0 -1
  238. package/dist/chunk-27KOXCQK.mjs.map +0 -1
  239. package/dist/chunk-2TZK6YZA.js +0 -1405
  240. package/dist/chunk-2TZK6YZA.js.map +0 -1
  241. package/dist/chunk-3LPQTUGG.js +0 -434
  242. package/dist/chunk-3LPQTUGG.js.map +0 -1
  243. package/dist/chunk-3QDXAE2D.mjs +0 -178
  244. package/dist/chunk-3QDXAE2D.mjs.map +0 -1
  245. package/dist/chunk-46KUC5FH.mjs +0 -434
  246. package/dist/chunk-46KUC5FH.mjs.map +0 -1
  247. package/dist/chunk-4QZESU46.mjs +0 -530
  248. package/dist/chunk-4QZESU46.mjs.map +0 -1
  249. package/dist/chunk-5QLC2MHV.js +0 -215
  250. package/dist/chunk-5QLC2MHV.js.map +0 -1
  251. package/dist/chunk-7K6PSEAA.js +0 -1
  252. package/dist/chunk-7K6PSEAA.js.map +0 -1
  253. package/dist/chunk-AX522TDL.mjs +0 -85
  254. package/dist/chunk-AX522TDL.mjs.map +0 -1
  255. package/dist/chunk-AZSIKIMK.mjs +0 -429
  256. package/dist/chunk-AZSIKIMK.mjs.map +0 -1
  257. package/dist/chunk-BBCZM5P4.js +0 -300
  258. package/dist/chunk-BBCZM5P4.js.map +0 -1
  259. package/dist/chunk-BZEAPSD5.mjs +0 -215
  260. package/dist/chunk-BZEAPSD5.mjs.map +0 -1
  261. package/dist/chunk-C7LNCQXM.mjs +0 -300
  262. package/dist/chunk-C7LNCQXM.mjs.map +0 -1
  263. package/dist/chunk-CP3HC7AQ.mjs +0 -12
  264. package/dist/chunk-CP3HC7AQ.mjs.map +0 -1
  265. package/dist/chunk-FWKV5FGP.mjs +0 -71
  266. package/dist/chunk-FWKV5FGP.mjs.map +0 -1
  267. package/dist/chunk-GDFLKKDY.js +0 -71
  268. package/dist/chunk-GDFLKKDY.js.map +0 -1
  269. package/dist/chunk-GW6RE66P.mjs +0 -210
  270. package/dist/chunk-GW6RE66P.mjs.map +0 -1
  271. package/dist/chunk-HVOIBGYN.js +0 -282
  272. package/dist/chunk-HVOIBGYN.js.map +0 -1
  273. package/dist/chunk-ISK2VSBB.js +0 -178
  274. package/dist/chunk-ISK2VSBB.js.map +0 -1
  275. package/dist/chunk-JCR4H6YL.js +0 -115
  276. package/dist/chunk-JCR4H6YL.js.map +0 -1
  277. package/dist/chunk-JJX7TMH5.mjs +0 -135
  278. package/dist/chunk-JJX7TMH5.mjs.map +0 -1
  279. package/dist/chunk-JMZ7KWJS.js +0 -157
  280. package/dist/chunk-JMZ7KWJS.js.map +0 -1
  281. package/dist/chunk-JYHAAA6W.mjs +0 -1
  282. package/dist/chunk-JYHAAA6W.mjs.map +0 -1
  283. package/dist/chunk-K7A3EOIM.js +0 -85
  284. package/dist/chunk-K7A3EOIM.js.map +0 -1
  285. package/dist/chunk-KPBNX6GP.mjs +0 -215
  286. package/dist/chunk-KPBNX6GP.mjs.map +0 -1
  287. package/dist/chunk-LKVWPNXY.js +0 -429
  288. package/dist/chunk-LKVWPNXY.js.map +0 -1
  289. package/dist/chunk-MZI3SDQN.js +0 -215
  290. package/dist/chunk-MZI3SDQN.js.map +0 -1
  291. package/dist/chunk-NDUMUEE6.js +0 -812
  292. package/dist/chunk-NDUMUEE6.js.map +0 -1
  293. package/dist/chunk-OBUR4TXH.js +0 -1
  294. package/dist/chunk-OBUR4TXH.js.map +0 -1
  295. package/dist/chunk-RGHTNZQ6.js +0 -12
  296. package/dist/chunk-RGHTNZQ6.js.map +0 -1
  297. package/dist/chunk-S5CFNNOM.mjs +0 -115
  298. package/dist/chunk-S5CFNNOM.mjs.map +0 -1
  299. package/dist/chunk-SK2B36Q4.mjs +0 -1405
  300. package/dist/chunk-SK2B36Q4.mjs.map +0 -1
  301. package/dist/chunk-TFLYM4PY.mjs +0 -291
  302. package/dist/chunk-TFLYM4PY.mjs.map +0 -1
  303. package/dist/chunk-TIFLP53R.js +0 -210
  304. package/dist/chunk-TIFLP53R.js.map +0 -1
  305. package/dist/chunk-TTH3ES66.mjs +0 -1
  306. package/dist/chunk-TTH3ES66.mjs.map +0 -1
  307. package/dist/chunk-UKXD6WUT.mjs +0 -157
  308. package/dist/chunk-UKXD6WUT.mjs.map +0 -1
  309. package/dist/chunk-UUF4E7OG.js +0 -530
  310. package/dist/chunk-UUF4E7OG.js.map +0 -1
  311. package/dist/chunk-V6DNVROD.js +0 -348
  312. package/dist/chunk-V6DNVROD.js.map +0 -1
  313. package/dist/chunk-XC3SOOGC.js +0 -1
  314. package/dist/chunk-XC3SOOGC.js.map +0 -1
  315. package/dist/chunk-XMQA5NLX.mjs +0 -812
  316. package/dist/chunk-XMQA5NLX.mjs.map +0 -1
  317. package/dist/chunk-XQO3EG4J.mjs +0 -348
  318. package/dist/chunk-XQO3EG4J.mjs.map +0 -1
  319. package/dist/chunk-XUI43LEZ.mjs +0 -30
  320. package/dist/chunk-XUI43LEZ.mjs.map +0 -1
  321. package/dist/chunk-YGGUAMHV.js +0 -135
  322. package/dist/chunk-YGGUAMHV.js.map +0 -1
  323. package/dist/chunk-Z4BLTVTB.js +0 -30
  324. package/dist/chunk-Z4BLTVTB.js.map +0 -1
  325. package/dist/chunk-Z7RMCHD4.mjs +0 -282
  326. package/dist/chunk-Z7RMCHD4.mjs.map +0 -1
  327. package/dist/chunk-ZAR4BIOC.js +0 -291
  328. package/dist/chunk-ZAR4BIOC.js.map +0 -1
  329. package/dist/constants.js +0 -8
  330. package/dist/constants.js.map +0 -1
  331. package/dist/crypto-compare-service/crypto-compare.js +0 -10
  332. package/dist/crypto-compare-service/crypto-compare.js.map +0 -1
  333. package/dist/crypto-compare-service/index.js +0 -11
  334. package/dist/crypto-compare-service/index.js.map +0 -1
  335. package/dist/index.js +0 -81
  336. package/dist/index.js.map +0 -1
  337. package/dist/token-prices-service/abstract-token-prices-service.js +0 -1
  338. package/dist/token-prices-service/abstract-token-prices-service.js.map +0 -1
  339. package/dist/token-prices-service/codefi-v2.js +0 -14
  340. package/dist/token-prices-service/codefi-v2.js.map +0 -1
  341. package/dist/token-prices-service/index.js +0 -11
  342. package/dist/token-prices-service/index.js.map +0 -1
  343. package/dist/token-service.js +0 -15
  344. package/dist/token-service.js.map +0 -1
  345. package/dist/tsconfig.build.tsbuildinfo +0 -1
  346. package/dist/types/AccountTrackerController.d.ts.map +0 -1
  347. package/dist/types/AssetsContractController.d.ts.map +0 -1
  348. package/dist/types/CurrencyRateController.d.ts.map +0 -1
  349. package/dist/types/NftController.d.ts.map +0 -1
  350. package/dist/types/NftDetectionController.d.ts.map +0 -1
  351. package/dist/types/RatesController/RatesController.d.ts.map +0 -1
  352. package/dist/types/RatesController/index.d.ts.map +0 -1
  353. package/dist/types/RatesController/types.d.ts.map +0 -1
  354. package/dist/types/Standards/ERC20Standard.d.ts.map +0 -1
  355. package/dist/types/Standards/NftStandards/ERC1155/ERC1155Standard.d.ts.map +0 -1
  356. package/dist/types/Standards/NftStandards/ERC721/ERC721Standard.d.ts.map +0 -1
  357. package/dist/types/TokenBalancesController.d.ts.map +0 -1
  358. package/dist/types/TokenDetectionController.d.ts.map +0 -1
  359. package/dist/types/TokenListController.d.ts.map +0 -1
  360. package/dist/types/TokenRatesController.d.ts.map +0 -1
  361. package/dist/types/TokensController.d.ts.map +0 -1
  362. package/dist/types/assetsUtil.d.ts.map +0 -1
  363. package/dist/types/constants.d.ts.map +0 -1
  364. package/dist/types/crypto-compare-service/crypto-compare.d.ts.map +0 -1
  365. package/dist/types/crypto-compare-service/index.d.ts +0 -2
  366. package/dist/types/crypto-compare-service/index.d.ts.map +0 -1
  367. package/dist/types/index.d.ts.map +0 -1
  368. package/dist/types/token-prices-service/abstract-token-prices-service.d.ts.map +0 -1
  369. package/dist/types/token-prices-service/codefi-v2.d.ts.map +0 -1
  370. package/dist/types/token-prices-service/index.d.ts +0 -3
  371. package/dist/types/token-prices-service/index.d.ts.map +0 -1
  372. package/dist/types/token-service.d.ts.map +0 -1
@@ -0,0 +1,368 @@
1
+ import type { AccountsControllerGetSelectedAccountAction } from "@metamask/accounts-controller";
2
+ import type { AddApprovalRequest } from "@metamask/approval-controller";
3
+ import type { RestrictedControllerMessenger } from "@metamask/base-controller";
4
+ import { BaseController } from "@metamask/base-controller";
5
+ import type { NetworkClientId, NetworkClient, NetworkControllerGetNetworkClientByIdAction, NetworkControllerStateChangeEvent, NetworkControllerGetStateAction } from "@metamask/network-controller";
6
+ import type { PreferencesControllerGetStateAction, PreferencesControllerStateChangeEvent } from "@metamask/preferences-controller";
7
+ import { Source } from "./constants.mjs";
8
+ import { type NftController, type NftControllerState } from "./NftController.mjs";
9
+ declare const controllerName = "NftDetectionController";
10
+ export type NFTDetectionControllerState = Record<never, never>;
11
+ export type AllowedActions = AddApprovalRequest | NetworkControllerGetStateAction | NetworkControllerGetNetworkClientByIdAction | PreferencesControllerGetStateAction | AccountsControllerGetSelectedAccountAction;
12
+ export type AllowedEvents = PreferencesControllerStateChangeEvent | NetworkControllerStateChangeEvent;
13
+ export type NftDetectionControllerMessenger = RestrictedControllerMessenger<typeof controllerName, AllowedActions, AllowedEvents, AllowedActions['type'], AllowedEvents['type']>;
14
+ /**
15
+ * @type ApiNft
16
+ *
17
+ * NFT object coming from OpenSea api
18
+ * @property token_id - The NFT identifier
19
+ * @property num_sales - Number of sales
20
+ * @property background_color - The background color to be displayed with the item
21
+ * @property image_url - URI of an image associated with this NFT
22
+ * @property image_preview_url - URI of a smaller image associated with this NFT
23
+ * @property image_thumbnail_url - URI of a thumbnail image associated with this NFT
24
+ * @property image_original_url - URI of the original image associated with this NFT
25
+ * @property animation_url - URI of a animation associated with this NFT
26
+ * @property animation_original_url - URI of the original animation associated with this NFT
27
+ * @property name - The NFT name
28
+ * @property description - The NFT description
29
+ * @property external_link - External link containing additional information
30
+ * @property assetContract - The NFT contract information object
31
+ * @property creator - The NFT owner information object
32
+ * @property lastSale - When this item was last sold
33
+ */
34
+ export type ApiNft = {
35
+ token_id: string;
36
+ num_sales: number | null;
37
+ background_color: string | null;
38
+ image_url: string | null;
39
+ image_preview_url: string | null;
40
+ image_thumbnail_url: string | null;
41
+ image_original_url: string | null;
42
+ animation_url: string | null;
43
+ animation_original_url: string | null;
44
+ name: string | null;
45
+ description: string | null;
46
+ external_link: string | null;
47
+ asset_contract: ApiNftContract;
48
+ creator: ApiNftCreator;
49
+ last_sale: ApiNftLastSale | null;
50
+ };
51
+ /**
52
+ * @type ApiNftContract
53
+ *
54
+ * NFT contract object coming from OpenSea api
55
+ * @property address - Address of the NFT contract
56
+ * @property asset_contract_type - The NFT type, it could be `semi-fungible` or `non-fungible`
57
+ * @property created_date - Creation date
58
+ * @property collection - Object containing the contract name and URI of an image associated
59
+ * @property schema_name - The schema followed by the contract, it could be `ERC721` or `ERC1155`
60
+ * @property symbol - The NFT contract symbol
61
+ * @property total_supply - Total supply of NFTs
62
+ * @property description - The NFT contract description
63
+ * @property external_link - External link containing additional information
64
+ */
65
+ export type ApiNftContract = {
66
+ address: string;
67
+ asset_contract_type: string | null;
68
+ created_date: string | null;
69
+ schema_name: string | null;
70
+ symbol: string | null;
71
+ total_supply: string | null;
72
+ description: string | null;
73
+ external_link: string | null;
74
+ collection: {
75
+ name: string | null;
76
+ image_url?: string | null;
77
+ tokenCount?: string | null;
78
+ };
79
+ };
80
+ /**
81
+ * @type ApiNftLastSale
82
+ *
83
+ * NFT sale object coming from OpenSea api
84
+ * @property event_timestamp - Object containing a `username`
85
+ * @property total_price - URI of NFT image associated with this owner
86
+ * @property transaction - Object containing transaction_hash and block_hash
87
+ */
88
+ export type ApiNftLastSale = {
89
+ event_timestamp: string;
90
+ total_price: string;
91
+ transaction: {
92
+ transaction_hash: string;
93
+ block_hash: string;
94
+ };
95
+ };
96
+ /**
97
+ * @type ApiNftCreator
98
+ *
99
+ * NFT creator object coming from OpenSea api
100
+ * @property user - Object containing a `username`
101
+ * @property profile_img_url - URI of NFT image associated with this owner
102
+ * @property address - The owner address
103
+ */
104
+ export type ApiNftCreator = {
105
+ user: {
106
+ username: string;
107
+ };
108
+ profile_img_url: string;
109
+ address: string;
110
+ };
111
+ export type ReservoirResponse = {
112
+ tokens: TokensResponse[];
113
+ continuation?: string;
114
+ };
115
+ export type TokensResponse = {
116
+ token: TokenResponse;
117
+ ownership: Ownership;
118
+ market?: Market;
119
+ blockaidResult?: Blockaid;
120
+ };
121
+ export declare enum BlockaidResultType {
122
+ Benign = "Benign",
123
+ Spam = "Spam",
124
+ Warning = "Warning",
125
+ Malicious = "Malicious"
126
+ }
127
+ export type Blockaid = {
128
+ contract: string;
129
+ chainId: number;
130
+ result_type: BlockaidResultType;
131
+ malicious_score: string;
132
+ attack_types: object;
133
+ };
134
+ export type Market = {
135
+ floorAsk?: FloorAsk;
136
+ topBid?: TopBid;
137
+ };
138
+ export type TokenResponse = {
139
+ chainId: number;
140
+ contract: string;
141
+ tokenId: string;
142
+ kind?: string;
143
+ name?: string;
144
+ image?: string;
145
+ imageSmall?: string;
146
+ imageLarge?: string;
147
+ metadata?: Metadata;
148
+ description?: string;
149
+ supply?: number;
150
+ remainingSupply?: number;
151
+ rarityScore?: number;
152
+ rarity?: number;
153
+ rarityRank?: number;
154
+ media?: string;
155
+ isFlagged?: boolean;
156
+ isSpam?: boolean;
157
+ isNsfw?: boolean;
158
+ metadataDisabled?: boolean;
159
+ lastFlagUpdate?: string;
160
+ lastFlagChange?: string;
161
+ collection?: Collection;
162
+ lastSale?: LastSale;
163
+ topBid?: TopBid;
164
+ lastAppraisalValue?: number;
165
+ attributes?: Attributes[];
166
+ };
167
+ export type TopBid = {
168
+ id?: string;
169
+ price?: Price;
170
+ source?: {
171
+ id?: string;
172
+ domain?: string;
173
+ name?: string;
174
+ icon?: string;
175
+ url?: string;
176
+ };
177
+ };
178
+ export type LastSale = {
179
+ saleId?: string;
180
+ token?: {
181
+ contract?: string;
182
+ tokenId?: string;
183
+ name?: string;
184
+ image?: string;
185
+ collection?: {
186
+ id?: string;
187
+ name?: string;
188
+ };
189
+ };
190
+ orderSource?: string;
191
+ orderSide?: 'ask' | 'bid';
192
+ orderKind?: string;
193
+ orderId?: string;
194
+ from?: string;
195
+ to?: string;
196
+ amount?: string;
197
+ fillSource?: string;
198
+ block?: number;
199
+ txHash?: string;
200
+ logIndex?: number;
201
+ batchIndex?: number;
202
+ timestamp?: number;
203
+ price?: Price;
204
+ washTradingScore?: number;
205
+ royaltyFeeBps?: number;
206
+ marketplaceFeeBps?: number;
207
+ paidFullRoyalty?: boolean;
208
+ feeBreakdown?: FeeBreakdown[];
209
+ isDeleted?: boolean;
210
+ createdAt?: string;
211
+ updatedAt?: string;
212
+ };
213
+ export type FeeBreakdown = {
214
+ kind?: string;
215
+ bps?: number;
216
+ recipient?: string;
217
+ source?: string;
218
+ rawAmount?: string;
219
+ };
220
+ export type Attributes = {
221
+ key?: string;
222
+ kind?: string;
223
+ value: string;
224
+ tokenCount?: number;
225
+ onSaleCount?: number;
226
+ floorAskPrice?: Price | null;
227
+ topBidValue?: number | null;
228
+ createdAt?: string;
229
+ };
230
+ export type GetCollectionsResponse = {
231
+ collections: CollectionResponse[];
232
+ };
233
+ export type CollectionResponse = {
234
+ id?: string;
235
+ openseaVerificationStatus?: string;
236
+ contractDeployedAt?: string;
237
+ creator?: string;
238
+ ownerCount?: string;
239
+ topBid?: TopBid & {
240
+ sourceDomain?: string;
241
+ };
242
+ };
243
+ export type FloorAskCollection = {
244
+ id?: string;
245
+ price?: Price;
246
+ maker?: string;
247
+ kind?: string;
248
+ validFrom?: number;
249
+ validUntil?: number;
250
+ source?: SourceCollection;
251
+ rawData?: Metadata;
252
+ isNativeOffChainCancellable?: boolean;
253
+ };
254
+ export type SourceCollection = {
255
+ id: string;
256
+ domain: string;
257
+ name: string;
258
+ icon: string;
259
+ url: string;
260
+ };
261
+ export type TokenCollection = {
262
+ id?: string;
263
+ name?: string;
264
+ slug?: string;
265
+ symbol?: string;
266
+ imageUrl?: string;
267
+ image?: string;
268
+ isSpam?: boolean;
269
+ isNsfw?: boolean;
270
+ creator?: string;
271
+ tokenCount?: string;
272
+ metadataDisabled?: boolean;
273
+ openseaVerificationStatus?: string;
274
+ floorAskPrice?: Price;
275
+ royaltiesBps?: number;
276
+ royalties?: Royalties[];
277
+ floorAsk?: FloorAskCollection;
278
+ };
279
+ export type Collection = TokenCollection & CollectionResponse;
280
+ export type Royalties = {
281
+ bps?: number;
282
+ recipient?: string;
283
+ };
284
+ export type Ownership = {
285
+ tokenCount?: string;
286
+ onSaleCount?: string;
287
+ floorAsk?: FloorAsk;
288
+ acquiredAt?: string;
289
+ };
290
+ export type FloorAsk = {
291
+ id?: string;
292
+ price?: Price;
293
+ maker?: string;
294
+ kind?: string;
295
+ validFrom?: number;
296
+ validUntil?: number;
297
+ source?: Source;
298
+ rawData?: Metadata;
299
+ isNativeOffChainCancellable?: boolean;
300
+ };
301
+ export type Price = {
302
+ currency?: {
303
+ contract?: string;
304
+ name?: string;
305
+ symbol?: string;
306
+ decimals?: number;
307
+ chainId?: number;
308
+ };
309
+ amount?: {
310
+ raw?: string;
311
+ decimal?: number;
312
+ usd?: number;
313
+ native?: number;
314
+ };
315
+ netAmount?: {
316
+ raw?: string;
317
+ decimal?: number;
318
+ usd?: number;
319
+ native?: number;
320
+ };
321
+ };
322
+ export type Metadata = {
323
+ imageOriginal?: string;
324
+ tokenURI?: string;
325
+ };
326
+ export declare const MAX_GET_COLLECTION_BATCH_SIZE = 20;
327
+ /**
328
+ * Controller that passively detects nfts for a user address
329
+ */
330
+ export declare class NftDetectionController extends BaseController<typeof controllerName, NFTDetectionControllerState, NftDetectionControllerMessenger> {
331
+ #private;
332
+ /**
333
+ * The controller options
334
+ *
335
+ * @param options - The controller options.
336
+ * @param options.messenger - A reference to the messaging system.
337
+ * @param options.disabled - Represents previous value of useNftDetection. Used to detect changes of useNftDetection. Default value is true.
338
+ * @param options.addNft - Add an NFT.
339
+ * @param options.getNftState - Gets the current state of the Assets controller.
340
+ */
341
+ constructor({ messenger, disabled, addNft, getNftState, }: {
342
+ messenger: NftDetectionControllerMessenger;
343
+ disabled: boolean;
344
+ addNft: NftController['addNft'];
345
+ getNftState: () => NftControllerState;
346
+ });
347
+ /**
348
+ * Checks whether network is mainnet or not.
349
+ *
350
+ * @returns Whether current network is mainnet.
351
+ */
352
+ isMainnet(): boolean;
353
+ isMainnetByNetworkClientId(networkClient: NetworkClient): boolean;
354
+ /**
355
+ * Triggers asset ERC721 token auto detection on mainnet. Any newly detected NFTs are
356
+ * added.
357
+ *
358
+ * @param options - Options bag.
359
+ * @param options.networkClientId - The network client ID to detect NFTs on.
360
+ * @param options.userAddress - The address to detect NFTs for.
361
+ */
362
+ detectNfts(options?: {
363
+ networkClientId?: NetworkClientId;
364
+ userAddress?: string;
365
+ }): Promise<void>;
366
+ }
367
+ export default NftDetectionController;
368
+ //# sourceMappingURL=NftDetectionController.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NftDetectionController.d.mts","sourceRoot":"","sources":["../src/NftDetectionController.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,233 @@
1
- import {
2
- BlockaidResultType,
3
- MAX_GET_COLLECTION_BATCH_SIZE,
4
- NftDetectionController,
5
- NftDetectionController_default
6
- } from "./chunk-C7LNCQXM.mjs";
7
- import "./chunk-CP3HC7AQ.mjs";
8
- import "./chunk-BZEAPSD5.mjs";
9
- import "./chunk-XUI43LEZ.mjs";
10
- export {
11
- BlockaidResultType,
12
- MAX_GET_COLLECTION_BATCH_SIZE,
13
- NftDetectionController,
14
- NftDetectionController_default as default
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ 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
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
15
6
  };
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
+ var _NftDetectionController_instances, _NftDetectionController_disabled, _NftDetectionController_addNft, _NftDetectionController_getNftState, _NftDetectionController_inProcessNftFetchingUpdates, _NftDetectionController_onPreferencesControllerStateChange, _NftDetectionController_getOwnerNftApi, _NftDetectionController_getOwnerNfts;
13
+ import { BaseController } from "@metamask/base-controller";
14
+ import { toChecksumHexAddress, ChainId, NFT_API_BASE_URL, NFT_API_VERSION, convertHexToDecimal, handleFetch, fetchWithErrorHandling, NFT_API_TIMEOUT } from "@metamask/controller-utils";
15
+ import { createDeferredPromise } from "@metamask/utils";
16
+ import { reduceInBatchesSerially } from "./assetsUtil.mjs";
17
+ import { Source } from "./constants.mjs";
18
+ const controllerName = 'NftDetectionController';
19
+ const supportedNftDetectionNetworks = [
20
+ ChainId.mainnet,
21
+ ChainId['linea-mainnet'],
22
+ ];
23
+ export var BlockaidResultType;
24
+ (function (BlockaidResultType) {
25
+ BlockaidResultType["Benign"] = "Benign";
26
+ BlockaidResultType["Spam"] = "Spam";
27
+ BlockaidResultType["Warning"] = "Warning";
28
+ BlockaidResultType["Malicious"] = "Malicious";
29
+ })(BlockaidResultType || (BlockaidResultType = {}));
30
+ export const MAX_GET_COLLECTION_BATCH_SIZE = 20;
31
+ /**
32
+ * Controller that passively detects nfts for a user address
33
+ */
34
+ export class NftDetectionController extends BaseController {
35
+ /**
36
+ * The controller options
37
+ *
38
+ * @param options - The controller options.
39
+ * @param options.messenger - A reference to the messaging system.
40
+ * @param options.disabled - Represents previous value of useNftDetection. Used to detect changes of useNftDetection. Default value is true.
41
+ * @param options.addNft - Add an NFT.
42
+ * @param options.getNftState - Gets the current state of the Assets controller.
43
+ */
44
+ constructor({ messenger, disabled = false, addNft, getNftState, }) {
45
+ super({
46
+ name: controllerName,
47
+ messenger,
48
+ metadata: {},
49
+ state: {},
50
+ });
51
+ _NftDetectionController_instances.add(this);
52
+ _NftDetectionController_disabled.set(this, void 0);
53
+ _NftDetectionController_addNft.set(this, void 0);
54
+ _NftDetectionController_getNftState.set(this, void 0);
55
+ _NftDetectionController_inProcessNftFetchingUpdates.set(this, void 0);
56
+ __classPrivateFieldSet(this, _NftDetectionController_disabled, disabled, "f");
57
+ __classPrivateFieldSet(this, _NftDetectionController_inProcessNftFetchingUpdates, {}, "f");
58
+ __classPrivateFieldSet(this, _NftDetectionController_getNftState, getNftState, "f");
59
+ __classPrivateFieldSet(this, _NftDetectionController_addNft, addNft, "f");
60
+ this.messagingSystem.subscribe('PreferencesController:stateChange', __classPrivateFieldGet(this, _NftDetectionController_instances, "m", _NftDetectionController_onPreferencesControllerStateChange).bind(this));
61
+ }
62
+ /**
63
+ * Checks whether network is mainnet or not.
64
+ *
65
+ * @returns Whether current network is mainnet.
66
+ */
67
+ isMainnet() {
68
+ const { selectedNetworkClientId } = this.messagingSystem.call('NetworkController:getState');
69
+ const { configuration: { chainId }, } = this.messagingSystem.call('NetworkController:getNetworkClientById', selectedNetworkClientId);
70
+ return chainId === ChainId.mainnet;
71
+ }
72
+ isMainnetByNetworkClientId(networkClient) {
73
+ return networkClient.configuration.chainId === ChainId.mainnet;
74
+ }
75
+ /**
76
+ * Triggers asset ERC721 token auto detection on mainnet. Any newly detected NFTs are
77
+ * added.
78
+ *
79
+ * @param options - Options bag.
80
+ * @param options.networkClientId - The network client ID to detect NFTs on.
81
+ * @param options.userAddress - The address to detect NFTs for.
82
+ */
83
+ async detectNfts(options) {
84
+ const userAddress = options?.userAddress ??
85
+ this.messagingSystem.call('AccountsController:getSelectedAccount')
86
+ .address;
87
+ const { selectedNetworkClientId } = this.messagingSystem.call('NetworkController:getState');
88
+ const { configuration: { chainId }, } = this.messagingSystem.call('NetworkController:getNetworkClientById', selectedNetworkClientId);
89
+ /* istanbul ignore if */
90
+ if (!supportedNftDetectionNetworks.includes(chainId) || __classPrivateFieldGet(this, _NftDetectionController_disabled, "f")) {
91
+ return;
92
+ }
93
+ /* istanbul ignore else */
94
+ if (!userAddress) {
95
+ return;
96
+ }
97
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
98
+ const updateKey = `${chainId}:${userAddress}`;
99
+ if (updateKey in __classPrivateFieldGet(this, _NftDetectionController_inProcessNftFetchingUpdates, "f")) {
100
+ // This prevents redundant updates
101
+ // This promise is resolved after the in-progress update has finished,
102
+ // and state has been updated.
103
+ await __classPrivateFieldGet(this, _NftDetectionController_inProcessNftFetchingUpdates, "f")[updateKey];
104
+ return;
105
+ }
106
+ const { promise: inProgressUpdate, resolve: updateSucceeded, reject: updateFailed, } = createDeferredPromise({ suppressUnhandledRejection: true });
107
+ __classPrivateFieldGet(this, _NftDetectionController_inProcessNftFetchingUpdates, "f")[updateKey] = inProgressUpdate;
108
+ let next;
109
+ let apiNfts = [];
110
+ let resultNftApi;
111
+ try {
112
+ do {
113
+ resultNftApi = await __classPrivateFieldGet(this, _NftDetectionController_instances, "m", _NftDetectionController_getOwnerNfts).call(this, userAddress, chainId, next);
114
+ apiNfts = resultNftApi.tokens.filter((elm) => elm.token.isSpam === false &&
115
+ (elm.blockaidResult?.result_type
116
+ ? elm.blockaidResult?.result_type === BlockaidResultType.Benign
117
+ : true));
118
+ // Retrieve collections from apiNfts
119
+ // contract and collection.id are equal for simple contract addresses; this is to exclude cases for shared contracts
120
+ const collections = apiNfts.reduce((acc, currValue) => {
121
+ if (!acc.includes(currValue.token.contract) &&
122
+ currValue.token.contract === currValue?.token?.collection?.id) {
123
+ acc.push(currValue.token.contract);
124
+ }
125
+ return acc;
126
+ }, []);
127
+ if (collections.length !== 0) {
128
+ // Call API to retrive collections infos
129
+ // The api accept a max of 20 contracts
130
+ const collectionResponse = await reduceInBatchesSerially({
131
+ values: collections,
132
+ batchSize: MAX_GET_COLLECTION_BATCH_SIZE,
133
+ eachBatch: async (allResponses, batch) => {
134
+ const params = new URLSearchParams(batch.map((s) => ['contract', s]));
135
+ params.append('chainId', '1'); // Adding chainId 1 because we are only detecting for mainnet
136
+ const collectionResponseForBatch = await fetchWithErrorHandling({
137
+ url: `${NFT_API_BASE_URL}/collections?${params.toString()}`,
138
+ options: {
139
+ headers: {
140
+ Version: NFT_API_VERSION,
141
+ },
142
+ },
143
+ timeout: NFT_API_TIMEOUT,
144
+ });
145
+ return {
146
+ ...allResponses,
147
+ ...collectionResponseForBatch,
148
+ };
149
+ },
150
+ initialResult: {},
151
+ });
152
+ // Add collections response fields to newnfts
153
+ if (collectionResponse.collections?.length) {
154
+ apiNfts.forEach((singleNFT) => {
155
+ const found = collectionResponse.collections.find((elm) => elm.id?.toLowerCase() ===
156
+ singleNFT.token.contract.toLowerCase());
157
+ if (found) {
158
+ singleNFT.token = {
159
+ ...singleNFT.token,
160
+ collection: {
161
+ ...(singleNFT.token.collection ?? {}),
162
+ creator: found?.creator,
163
+ openseaVerificationStatus: found?.openseaVerificationStatus,
164
+ contractDeployedAt: found.contractDeployedAt,
165
+ ownerCount: found.ownerCount,
166
+ topBid: found.topBid,
167
+ },
168
+ };
169
+ }
170
+ });
171
+ }
172
+ }
173
+ // Proceed to add NFTs
174
+ const addNftPromises = apiNfts.map(async (nft) => {
175
+ const { tokenId, contract, kind, image: imageUrl, imageSmall: imageThumbnailUrl, metadata: { imageOriginal: imageOriginalUrl } = {}, name, description, attributes, topBid, lastSale, rarityRank, rarityScore, collection, } = nft.token;
176
+ let ignored;
177
+ /* istanbul ignore else */
178
+ const { ignoredNfts } = __classPrivateFieldGet(this, _NftDetectionController_getNftState, "f").call(this);
179
+ if (ignoredNfts.length) {
180
+ ignored = ignoredNfts.find((c) => {
181
+ /* istanbul ignore next */
182
+ return (c.address === toChecksumHexAddress(contract) &&
183
+ c.tokenId === tokenId);
184
+ });
185
+ }
186
+ /* istanbul ignore else */
187
+ if (!ignored) {
188
+ /* istanbul ignore next */
189
+ const nftMetadata = Object.assign({}, { name }, description && { description }, imageUrl && { image: imageUrl }, imageThumbnailUrl && { imageThumbnail: imageThumbnailUrl }, imageOriginalUrl && { imageOriginal: imageOriginalUrl }, kind && { standard: kind.toUpperCase() }, lastSale && { lastSale }, attributes && { attributes }, topBid && { topBid }, rarityRank && { rarityRank }, rarityScore && { rarityScore }, collection && { collection });
190
+ await __classPrivateFieldGet(this, _NftDetectionController_addNft, "f").call(this, contract, tokenId, {
191
+ nftMetadata,
192
+ userAddress,
193
+ source: Source.Detected,
194
+ networkClientId: options?.networkClientId,
195
+ });
196
+ }
197
+ });
198
+ await Promise.all(addNftPromises);
199
+ } while ((next = resultNftApi.continuation));
200
+ updateSucceeded();
201
+ }
202
+ catch (error) {
203
+ updateFailed(error);
204
+ throw error;
205
+ }
206
+ finally {
207
+ delete __classPrivateFieldGet(this, _NftDetectionController_inProcessNftFetchingUpdates, "f")[updateKey];
208
+ }
209
+ }
210
+ }
211
+ _NftDetectionController_disabled = new WeakMap(), _NftDetectionController_addNft = new WeakMap(), _NftDetectionController_getNftState = new WeakMap(), _NftDetectionController_inProcessNftFetchingUpdates = new WeakMap(), _NftDetectionController_instances = new WeakSet(), _NftDetectionController_onPreferencesControllerStateChange = function _NftDetectionController_onPreferencesControllerStateChange({ useNftDetection }) {
212
+ if (!useNftDetection !== __classPrivateFieldGet(this, _NftDetectionController_disabled, "f")) {
213
+ __classPrivateFieldSet(this, _NftDetectionController_disabled, !useNftDetection, "f");
214
+ }
215
+ }, _NftDetectionController_getOwnerNftApi = function _NftDetectionController_getOwnerNftApi({ chainId, address, next, }) {
216
+ return `${NFT_API_BASE_URL}/users/${address}/tokens?chainIds=${chainId}&limit=50&includeTopBid=true&continuation=${next ?? ''}`;
217
+ }, _NftDetectionController_getOwnerNfts = async function _NftDetectionController_getOwnerNfts(address, chainId, cursor) {
218
+ // Convert hex chainId to number
219
+ const convertedChainId = convertHexToDecimal(chainId).toString();
220
+ const url = __classPrivateFieldGet(this, _NftDetectionController_instances, "m", _NftDetectionController_getOwnerNftApi).call(this, {
221
+ chainId: convertedChainId,
222
+ address,
223
+ next: cursor,
224
+ });
225
+ const nftApiResponse = await handleFetch(url, {
226
+ headers: {
227
+ Version: NFT_API_VERSION,
228
+ },
229
+ });
230
+ return nftApiResponse;
231
+ };
232
+ export default NftDetectionController;
16
233
  //# sourceMappingURL=NftDetectionController.mjs.map