@0xsequence/marketplace-sdk 1.1.0 → 1.1.1

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 (397) hide show
  1. package/.changeset/honest-peas-arrive.md +5 -0
  2. package/.changeset/real-tips-stick.md +8 -0
  3. package/.changeset/tall-pandas-wear.md +8 -0
  4. package/CHANGELOG.md +24 -2
  5. package/dist/{BellIcon-IpHHEy8h.js → BellIcon-ByhygxBO.js} +2 -2
  6. package/dist/{BellIcon-IpHHEy8h.js.map → BellIcon-ByhygxBO.js.map} +1 -1
  7. package/dist/{CartIcon-C8zbor8H.js → CartIcon-Bt3rQYGk.js} +3 -3
  8. package/dist/{CartIcon-C8zbor8H.js.map → CartIcon-Bt3rQYGk.js.map} +1 -1
  9. package/dist/CollectibleCard-CVpdgXA8.d.ts +8 -0
  10. package/dist/_internal-DkS2VUn5.js.map +1 -1
  11. package/dist/abi-fa-o9gH3.js +134 -0
  12. package/dist/abi-fa-o9gH3.js.map +1 -0
  13. package/dist/{alien_swap-BTJ7mSR-.js → alien_swap-DoY6XfMA.js} +1 -1
  14. package/dist/{alien_swap-BTJ7mSR-.js.map → alien_swap-DoY6XfMA.js.map} +1 -1
  15. package/dist/{api-DuLKn__v.js → api-BoO0V5aJ.js} +8 -3
  16. package/dist/api-BoO0V5aJ.js.map +1 -0
  17. package/dist/{aqua-xyz-BYJ9WSP_.js → aqua-xyz-BBDxnG14.js} +1 -1
  18. package/dist/{aqua-xyz-BYJ9WSP_.js.map → aqua-xyz-BBDxnG14.js.map} +1 -1
  19. package/dist/{aura-D7SUjgro.js → aura-DGx2zwvF.js} +1 -1
  20. package/dist/{aura-D7SUjgro.js.map → aura-DGx2zwvF.js.map} +1 -1
  21. package/dist/{blur-BcnRFCaV.js → blur-D8GKrRrq.js} +1 -1
  22. package/dist/{blur-BcnRFCaV.js.map → blur-D8GKrRrq.js.map} +1 -1
  23. package/dist/{coinbase-ChoX9Hw2.js → coinbase-DOry4PXY.js} +1 -1
  24. package/dist/{coinbase-ChoX9Hw2.js.map → coinbase-DOry4PXY.js.map} +1 -1
  25. package/dist/collectibles-C_H8jMGH.js +358 -0
  26. package/dist/collectibles-C_H8jMGH.js.map +1 -0
  27. package/dist/collections-CKummc-R.js +249 -0
  28. package/dist/collections-CKummc-R.js.map +1 -0
  29. package/dist/{components-CUv-wQr8.js → components-CosnX7F9.js} +5 -5
  30. package/dist/{components-CUv-wQr8.js.map → components-CosnX7F9.js.map} +1 -1
  31. package/dist/{contracts-D72LBOX3.js → contracts-BP_0vX48.js} +3 -3
  32. package/dist/{contracts-D72LBOX3.js.map → contracts-BP_0vX48.js.map} +1 -1
  33. package/dist/{create-config-DV_dtaLt.d.ts → create-config-ZOB7i4ZJ.d.ts} +117 -12
  34. package/dist/{element-Dbcv5qya.js → element-ciybd_VF.js} +1 -1
  35. package/dist/{element-Dbcv5qya.js.map → element-ciybd_VF.js.map} +1 -1
  36. package/dist/filters-V-V8Dn8f.d.ts +60 -0
  37. package/dist/{foundation-QPhUEUy8.js → foundation-Bq4lRz4x.js} +1 -1
  38. package/dist/{foundation-QPhUEUy8.js.map → foundation-Bq4lRz4x.js.map} +1 -1
  39. package/dist/index-BOiHR01C.d.ts +106 -0
  40. package/dist/index-BZIJTQT0.d.ts +121 -0
  41. package/dist/index-BeRV-7AX.d.ts +55 -0
  42. package/dist/{index-BaytncQc.d.ts → index-Bsx6XsC2.d.ts} +58 -55
  43. package/dist/{index-jGgfEHfQ.d.ts → index-BtWMBHeP.d.ts} +13 -9
  44. package/dist/{index-CT8ZorFd.d.ts → index-Bxzjy0d1.d.ts} +1 -1
  45. package/dist/{index-B6aSbaw2.d.ts → index-C-745li7.d.ts} +1 -1
  46. package/dist/{index-BoNNplSx.d.ts → index-C4MUKshG.d.ts} +2 -2
  47. package/dist/{index-DMBMM16q.d.ts → index-CPzvNmq9.d.ts} +35 -35
  48. package/dist/{index-D-UXGo5d.d.ts → index-CS65jqOq.d.ts} +2 -2
  49. package/dist/index-CZUtOTjh.d.ts +1 -0
  50. package/dist/index-CnEbXm_t.d.ts +130 -0
  51. package/dist/{index-CQecU53t.d.ts → index-CxA34wP1.d.ts} +32 -23
  52. package/dist/{index-C768pAfu.d.ts → index-CxpFwGvR.d.ts} +3 -3
  53. package/dist/{index-Bv5XVLjH.d.ts → index-D9LPlmbC.d.ts} +1 -1
  54. package/dist/{index-DJG0kiII.d.ts → index-DFEnA6Wa.d.ts} +28 -17
  55. package/dist/{index-B8vaT3_s.d.ts → index-DNNUeZEq.d.ts} +4 -4
  56. package/dist/{index-CXscCUg7.d.ts → index-DUXfvhxs.d.ts} +12 -12
  57. package/dist/index-DW3njUfb.d.ts +1 -0
  58. package/dist/{index-CMPUveNz.d.ts → index-DWt6yrIG.d.ts} +7 -7
  59. package/dist/index-DewGsFz5.d.ts +1 -0
  60. package/dist/{index-DLUjc7Bx.d.ts → index-DmudgrsN.d.ts} +191 -12
  61. package/dist/{index-DpeWm_vF.d.ts → index-DqXd1EeB.d.ts} +5 -5
  62. package/dist/{index-CM0ZTePs.d.ts → index-DwKr18CI.d.ts} +1 -1
  63. package/dist/{index-D6YMj82n.d.ts → index-NlPMNcqh.d.ts} +100 -100
  64. package/dist/index-Stm5u0I0.d.ts +53 -0
  65. package/dist/index-U-zp70of.d.ts +74 -0
  66. package/dist/index.d.ts +8 -8
  67. package/dist/index.js +8 -8
  68. package/dist/inventory-Dd7TazvZ.js +72 -0
  69. package/dist/inventory-Dd7TazvZ.js.map +1 -0
  70. package/dist/listBalances-BxpxBCvn.js +57 -0
  71. package/dist/listBalances-BxpxBCvn.js.map +1 -0
  72. package/dist/listCollectiblesPaginated-Cy2_qEZA.d.ts +327 -0
  73. package/dist/{listCollections-dTCq00l5.d.ts → listCollections-BB9FxKj2.d.ts} +193 -111
  74. package/dist/{looks-rare-C7cQztTR.js → looks-rare-6H--x3AM.js} +1 -1
  75. package/dist/{looks-rare-C7cQztTR.js.map → looks-rare-6H--x3AM.js.map} +1 -1
  76. package/dist/lowestListing-Cbsi6M1K.d.ts +465 -0
  77. package/dist/{magic-eden-D3r7jiBG.js → magic-eden-BoxEQ1Li.js} +1 -1
  78. package/dist/{magic-eden-D3r7jiBG.js.map → magic-eden-BoxEQ1Li.js.map} +1 -1
  79. package/dist/{manifold-DsX0CBP-.js → manifold-DycKsljb.js} +1 -1
  80. package/dist/{manifold-DsX0CBP-.js.map → manifold-DycKsljb.js.map} +1 -1
  81. package/dist/market-C3HV-awQ.js +209 -0
  82. package/dist/market-C3HV-awQ.js.map +1 -0
  83. package/dist/{marketCurrencies-Bzj8X4TL.d.ts → marketCurrencies-Bpw1bIO0.d.ts} +46 -15
  84. package/dist/marketCurrencies-sKrTX0og.js +53 -0
  85. package/dist/marketCurrencies-sKrTX0og.js.map +1 -0
  86. package/dist/{marketplace-BYY8OloA.js → marketplace-NQB-sEQL.js} +1 -1
  87. package/dist/{marketplace-BYY8OloA.js.map → marketplace-NQB-sEQL.js.map} +1 -1
  88. package/dist/{marketplace-logos-Csv2MBwf.js → marketplace-logos-D4dS1Foy.js} +21 -21
  89. package/dist/{marketplace-logos-Csv2MBwf.js.map → marketplace-logos-D4dS1Foy.js.map} +1 -1
  90. package/dist/{marketplace.gen-w2YvbEEo.js → marketplace.gen-ksUafDqS.js} +56 -5
  91. package/dist/marketplace.gen-ksUafDqS.js.map +1 -0
  92. package/dist/{marketplaceConfig-BTy75Mbf.js → marketplaceConfig-UHQMM9fq.js} +3 -3
  93. package/dist/marketplaceConfig-UHQMM9fq.js.map +1 -0
  94. package/dist/{mintify-DiOoDmO1.js → mintify-Dyqyo8jQ.js} +1 -1
  95. package/dist/{mintify-DiOoDmO1.js.map → mintify-Dyqyo8jQ.js.map} +1 -1
  96. package/dist/{nftx-CP82jNra.js → nftx-2LbFjj9Q.js} +1 -1
  97. package/dist/{nftx-CP82jNra.js.map → nftx-2LbFjj9Q.js.map} +1 -1
  98. package/dist/{okx-p9-4xRjs.js → okx-CBEWJNsR.js} +1 -1
  99. package/dist/{okx-p9-4xRjs.js.map → okx-CBEWJNsR.js.map} +1 -1
  100. package/dist/{open-sea-D2GwAmKS.js → open-sea-Dxntz_PA.js} +1 -1
  101. package/dist/{open-sea-D2GwAmKS.js.map → open-sea-Dxntz_PA.js.map} +1 -1
  102. package/dist/orders-DnFfZAXV.js +462 -0
  103. package/dist/orders-DnFfZAXV.js.map +1 -0
  104. package/dist/{primary-sale-DOmNDq2P.js → primary-sale-1u4QlPdA.js} +1 -1
  105. package/dist/{primary-sale-DOmNDq2P.js.map → primary-sale-1u4QlPdA.js.map} +1 -1
  106. package/dist/primary-sales-Dmsi6bqj.js +114 -0
  107. package/dist/primary-sales-Dmsi6bqj.js.map +1 -0
  108. package/dist/{query-BG-MA1MB.d.ts → query-BWbCsXLY.d.ts} +1 -1
  109. package/dist/{rarible-DqiiW9ki.js → rarible-CS0SupHr.js} +1 -1
  110. package/dist/{rarible-DqiiW9ki.js.map → rarible-CS0SupHr.js.map} +1 -1
  111. package/dist/react/_internal/api/index.d.ts +2 -2
  112. package/dist/react/_internal/api/index.js +3 -3
  113. package/dist/react/_internal/databeat/index.d.ts +1 -1
  114. package/dist/react/_internal/databeat/index.js +28 -17
  115. package/dist/react/_internal/index.d.ts +2 -2
  116. package/dist/react/_internal/index.js +3 -3
  117. package/dist/react/_internal/wagmi/index.d.ts +1 -1
  118. package/dist/react/hooks/config/index.d.ts +8 -8
  119. package/dist/react/hooks/config/index.js +28 -17
  120. package/dist/react/hooks/contracts/index.d.ts +6 -6
  121. package/dist/react/hooks/contracts/index.js +7 -7
  122. package/dist/react/hooks/data/collectibles/index.d.ts +10 -4
  123. package/dist/react/hooks/data/collectibles/index.js +28 -17
  124. package/dist/react/hooks/data/collections/index.d.ts +10 -10
  125. package/dist/react/hooks/data/collections/index.js +28 -17
  126. package/dist/react/hooks/data/index.d.ts +37 -29
  127. package/dist/react/hooks/data/index.js +29 -18
  128. package/dist/react/hooks/data/inventory/index.d.ts +36 -28
  129. package/dist/react/hooks/data/inventory/index.js +28 -17
  130. package/dist/react/hooks/data/market/index.d.ts +11 -5
  131. package/dist/react/hooks/data/market/index.js +28 -17
  132. package/dist/react/hooks/data/orders/index.d.ts +11 -5
  133. package/dist/react/hooks/data/orders/index.js +29 -18
  134. package/dist/react/hooks/data/primary-sales/index.d.ts +36 -28
  135. package/dist/react/hooks/data/primary-sales/index.js +28 -17
  136. package/dist/react/hooks/data/tokens/index.d.ts +4 -4
  137. package/dist/react/hooks/data/tokens/index.js +28 -17
  138. package/dist/react/hooks/index.d.ts +37 -29
  139. package/dist/react/hooks/index.js +29 -18
  140. package/dist/react/hooks/transactions/index.d.ts +2 -2
  141. package/dist/react/hooks/transactions/index.js +28 -17
  142. package/dist/react/hooks/ui/index.d.ts +4 -4
  143. package/dist/react/hooks/ui/index.js +28 -17
  144. package/dist/react/hooks/utils/index.d.ts +36 -28
  145. package/dist/react/hooks/utils/index.js +28 -17
  146. package/dist/react/index.d.ts +37 -29
  147. package/dist/react/index.js +29 -18
  148. package/dist/react/queries/collectibles/index.d.ts +11 -0
  149. package/dist/react/queries/collectibles/index.js +23 -0
  150. package/dist/react/queries/collections/index.d.ts +11 -0
  151. package/dist/react/queries/collections/index.js +20 -0
  152. package/dist/react/queries/index.d.ts +24 -16
  153. package/dist/react/queries/index.js +22 -11
  154. package/dist/react/queries/inventory/index.d.ts +3 -0
  155. package/dist/react/queries/inventory/index.js +22 -0
  156. package/dist/react/queries/market/index.d.ts +6 -0
  157. package/dist/react/queries/market/index.js +22 -0
  158. package/dist/react/queries/orders/index.d.ts +11 -0
  159. package/dist/react/queries/orders/index.js +13 -0
  160. package/dist/react/queries/primary-sales/index.d.ts +4 -0
  161. package/dist/react/queries/primary-sales/index.js +13 -0
  162. package/dist/react/queries/tokens/index.d.ts +5 -0
  163. package/dist/react/queries/tokens/index.js +14 -0
  164. package/dist/react/queries/utils/index.d.ts +4 -0
  165. package/dist/react/queries/utils/index.js +22 -0
  166. package/dist/react/ssr/index.d.ts +7 -7
  167. package/dist/react/ssr/index.js +3 -3
  168. package/dist/react/ssr/index.js.map +1 -1
  169. package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.d.ts +2 -2
  170. package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.js +11 -11
  171. package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.d.ts +5 -5
  172. package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.js +28 -17
  173. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +4 -4
  174. package/dist/react/ui/components/marketplace-collectible-card/index.js +28 -17
  175. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -2
  176. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +3 -3
  177. package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
  178. package/dist/react/ui/components/marketplace-logos/index.js +1 -1
  179. package/dist/react/ui/icons/index.js +9 -9
  180. package/dist/react/ui/index.d.ts +4 -4
  181. package/dist/react/ui/index.js +28 -17
  182. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +2 -2
  183. package/dist/react/ui/modals/_internal/components/actionModal/index.js +28 -17
  184. package/dist/react/utils/index.d.ts +3 -3
  185. package/dist/react/utils/index.js +3 -3
  186. package/dist/{react-BLJ4DkPx.js → react-DE852KeT.js} +1365 -172
  187. package/dist/react-DE852KeT.js.map +1 -0
  188. package/dist/{sequence-Bbb-TFKg.js → sequence-paCCener.js} +1 -1
  189. package/dist/{sequence-Bbb-TFKg.js.map → sequence-paCCener.js.map} +1 -1
  190. package/dist/styles/index.css +154 -0
  191. package/dist/{sudo-swap-CEPIM3Js.js → sudo-swap-9rH2EgfT.js} +1 -1
  192. package/dist/{sudo-swap-CEPIM3Js.js.map → sudo-swap-9rH2EgfT.js.map} +1 -1
  193. package/dist/{super-rare-CMEn9PoO.js → super-rare-DHIuWtRw.js} +1 -1
  194. package/dist/{super-rare-CMEn9PoO.js.map → super-rare-DHIuWtRw.js.map} +1 -1
  195. package/dist/{token-CcyLz8Z8.js → token-Cv7l2ZaL.js} +1 -1
  196. package/dist/{token-CcyLz8Z8.js.map → token-Cv7l2ZaL.js.map} +1 -1
  197. package/dist/tokenBalances-ibDerNmM.js +63 -0
  198. package/dist/tokenBalances-ibDerNmM.js.map +1 -0
  199. package/dist/tokenSupplies-Bfe8RHzI.d.ts +272 -0
  200. package/dist/tokens-cGxMadd8.js +194 -0
  201. package/dist/tokens-cGxMadd8.js.map +1 -0
  202. package/dist/types/index.d.ts +1 -1
  203. package/dist/types/index.js +1 -1
  204. package/dist/{types-D6LkVrF0.d.ts → types-D2TJ1dwv.d.ts} +3 -2
  205. package/dist/utils/abi/index.d.ts +5 -5
  206. package/dist/utils/abi/index.js +5 -5
  207. package/dist/utils/abi/marketplace/index.d.ts +1 -1
  208. package/dist/utils/abi/marketplace/index.js +1 -1
  209. package/dist/utils/abi/primary-sale/index.d.ts +1 -1
  210. package/dist/utils/abi/primary-sale/index.js +1 -1
  211. package/dist/utils/abi/token/index.d.ts +1 -1
  212. package/dist/utils/abi/token/index.js +1 -1
  213. package/dist/utils/index.d.ts +7 -7
  214. package/dist/utils/index.js +8 -8
  215. package/dist/utils-BCgNhBFR.js +112 -0
  216. package/dist/utils-BCgNhBFR.js.map +1 -0
  217. package/dist/{utils-BZEkdqWK.js → utils-BfpDVibN.js} +3 -3
  218. package/dist/{utils-BZEkdqWK.js.map → utils-BfpDVibN.js.map} +1 -1
  219. package/dist/{utils-oVZxdK0o.js → utils-BqxcalL2.js} +2 -2
  220. package/dist/{utils-oVZxdK0o.js.map → utils-BqxcalL2.js.map} +1 -1
  221. package/dist/waitForTransactionReceipt-DieAnV52.js +25 -0
  222. package/dist/waitForTransactionReceipt-DieAnV52.js.map +1 -0
  223. package/dist/{x2y2-DNe6JgtG.js → x2y2-45WDooeh.js} +1 -1
  224. package/dist/{x2y2-DNe6JgtG.js.map → x2y2-45WDooeh.js.map} +1 -1
  225. package/dist/{zora-w0Zqxxs4.js → zora-CbeBoLvQ.js} +1 -1
  226. package/dist/{zora-w0Zqxxs4.js.map → zora-CbeBoLvQ.js.map} +1 -1
  227. package/package.json +10 -5
  228. package/src/react/_internal/api/__mocks__/marketplace.msw.ts +2 -0
  229. package/src/react/_internal/api/marketplace.gen.ts +1730 -2383
  230. package/src/react/_internal/api/query-keys.ts +14 -0
  231. package/src/react/_internal/api/services.ts +1 -1
  232. package/src/react/_internal/databeat/types.ts +1 -0
  233. package/src/react/_internal/types.ts +14 -0
  234. package/src/react/_internal/utils.ts +3 -0
  235. package/src/react/hooks/config/useMarketplaceConfig.tsx +1 -1
  236. package/src/react/hooks/data/collectibles/useBalanceOfCollectible.tsx +1 -1
  237. package/src/react/hooks/data/collectibles/useCollectible.tsx +1 -1
  238. package/src/react/hooks/data/collectibles/useCountOfCollectables.tsx +1 -1
  239. package/src/react/hooks/data/collectibles/useListCollectibleActivities.tsx +1 -1
  240. package/src/react/hooks/data/collectibles/useListCollectibles.tsx +1 -1
  241. package/src/react/hooks/data/collectibles/useListCollectiblesPaginated.tsx +1 -1
  242. package/src/react/hooks/data/collectibles/useTokenBalances.tsx +1 -1
  243. package/src/react/hooks/data/collections/useCollection.tsx +1 -1
  244. package/src/react/hooks/data/collections/useCollectionBalanceDetails.tsx +1 -1
  245. package/src/react/hooks/data/collections/useCollectionDetails.ts +1 -1
  246. package/src/react/hooks/data/collections/useListCollectionActivities.tsx +1 -1
  247. package/src/react/hooks/data/collections/useListCollections.tsx +1 -1
  248. package/src/react/hooks/data/inventory/useInventory.tsx +1 -1
  249. package/src/react/hooks/data/market/useCurrency.tsx +1 -1
  250. package/src/react/hooks/data/market/useListMarketCardData.tsx +7 -0
  251. package/src/react/hooks/data/market/useMarketCurrencies.tsx +1 -1
  252. package/src/react/hooks/data/orders/index.ts +4 -0
  253. package/src/react/hooks/data/orders/useCountItemsOrdersForCollection.tsx +90 -0
  254. package/src/react/hooks/data/orders/useCountListingsForCollectible.tsx +1 -1
  255. package/src/react/hooks/data/orders/useCountOffersForCollectible.tsx +1 -1
  256. package/src/react/hooks/data/orders/useFloorOrder.tsx +1 -1
  257. package/src/react/hooks/data/orders/useGetCountOfFilteredOrders.tsx +39 -0
  258. package/src/react/hooks/data/orders/useHighestOffer.tsx +1 -1
  259. package/src/react/hooks/data/orders/useListItemsOrdersForCollection.tsx +93 -0
  260. package/src/react/hooks/data/orders/useListItemsOrdersForCollectionPaginated.tsx +108 -0
  261. package/src/react/hooks/data/orders/useListListingsForCollectible.tsx +1 -1
  262. package/src/react/hooks/data/orders/useListOffersForCollectible.tsx +1 -1
  263. package/src/react/hooks/data/orders/useLowestListing.tsx +1 -1
  264. package/src/react/hooks/data/primary-sales/useGetCountOfPrimarySaleItems.tsx +2 -2
  265. package/src/react/hooks/data/primary-sales/useListPrimarySaleItems.tsx +1 -1
  266. package/src/react/hooks/data/tokens/useGetTokenRanges.tsx +2 -2
  267. package/src/react/hooks/data/tokens/useListBalances.tsx +2 -2
  268. package/src/react/hooks/data/tokens/useListTokenMetadata.tsx +1 -1
  269. package/src/react/hooks/data/tokens/useSearchTokenMetadata.tsx +1 -1
  270. package/src/react/hooks/data/tokens/useTokenSupplies.ts +1 -1
  271. package/src/react/hooks/transactions/useGenerateCancelTransaction.test.tsx +1 -0
  272. package/src/react/hooks/transactions/useGenerateListingTransaction.test.tsx +13 -0
  273. package/src/react/hooks/transactions/useGenerateOfferTransaction.test.tsx +1 -0
  274. package/src/react/hooks/transactions/useGenerateSellTransaction.test.tsx +6 -0
  275. package/src/react/hooks/ui/useFilterState.tsx +72 -2
  276. package/src/react/hooks/ui/useFilters.tsx +1 -1
  277. package/src/react/hooks/utils/useCheckoutOptions.tsx +2 -2
  278. package/src/react/hooks/utils/useCheckoutOptionsSalesContract.tsx +1 -1
  279. package/src/react/hooks/utils/useComparePrices.tsx +1 -1
  280. package/src/react/hooks/utils/useConvertPriceToUSD.tsx +1 -1
  281. package/src/react/providers/analytics-provider.tsx +45 -0
  282. package/src/react/providers/index.tsx +30 -41
  283. package/src/react/providers/modal-provider.tsx +13 -2
  284. package/src/react/queries/{__tests__ → collectibles/__tests__}/balanceOfCollectible.laos.test.ts +1 -1
  285. package/src/react/queries/{__tests__ → collectibles/__tests__}/tokenBalances.laos.test.ts +1 -1
  286. package/src/react/queries/{balanceOfCollectible.ts → collectibles/balanceOfCollectible.ts} +24 -3
  287. package/src/react/queries/{collectible.ts → collectibles/collectible.ts} +20 -5
  288. package/src/react/queries/{countOfCollectables.ts → collectibles/countOfCollectables.ts} +32 -6
  289. package/src/react/queries/collectibles/index.ts +7 -0
  290. package/src/react/queries/{listCollectibleActivities.ts → collectibles/listCollectibleActivities.ts} +29 -5
  291. package/src/react/queries/{listCollectibles.ts → collectibles/listCollectibles.ts} +28 -9
  292. package/src/react/queries/{listCollectiblesPaginated.ts → collectibles/listCollectiblesPaginated.ts} +22 -5
  293. package/src/react/queries/{tokenBalances.ts → collectibles/tokenBalances.ts} +21 -3
  294. package/src/react/queries/{collection.ts → collections/collection.ts} +19 -5
  295. package/src/react/queries/{collectionBalanceDetails.ts → collections/collectionBalanceDetails.ts} +19 -4
  296. package/src/react/queries/{collectionDetails.ts → collections/collectionDetails.ts} +21 -6
  297. package/src/react/queries/collections/index.ts +5 -0
  298. package/src/react/queries/{listCollectionActivities.ts → collections/listCollectionActivities.ts} +28 -6
  299. package/src/react/queries/{listCollections.ts → collections/listCollections.ts} +17 -6
  300. package/src/react/queries/index.ts +7 -34
  301. package/src/react/queries/{__tests__ → inventory/__tests__}/inventory.laos.test.ts +4 -4
  302. package/src/react/queries/inventory/index.ts +1 -0
  303. package/src/react/queries/{inventory.ts → inventory/inventory.ts} +11 -5
  304. package/src/react/queries/{checkoutOptions.ts → market/checkoutOptions.ts} +28 -6
  305. package/src/react/queries/{checkoutOptionsSalesContract.ts → market/checkoutOptionsSalesContract.ts} +24 -5
  306. package/src/react/queries/{currency.ts → market/currency.ts} +13 -4
  307. package/src/react/queries/{filters.ts → market/filters.ts} +25 -6
  308. package/src/react/queries/market/index.ts +6 -0
  309. package/src/react/queries/{marketCurrencies.ts → market/marketCurrencies.ts} +24 -5
  310. package/src/react/queries/{marketplaceConfig.ts → market/marketplaceConfig.ts} +5 -5
  311. package/src/react/queries/orders/countItemsOrdersForCollection.ts +86 -0
  312. package/src/react/queries/{countListingsForCollectible.ts → orders/countListingsForCollectible.ts} +23 -6
  313. package/src/react/queries/{countOffersForCollectible.ts → orders/countOffersForCollectible.ts} +23 -6
  314. package/src/react/queries/{floorOrder.ts → orders/floorOrder.ts} +15 -4
  315. package/src/react/queries/orders/getCountOfFilteredOrders.ts +88 -0
  316. package/src/react/queries/{highestOffer.ts → orders/highestOffer.ts} +16 -4
  317. package/src/react/queries/orders/index.ts +11 -0
  318. package/src/react/queries/orders/listItemsOrdersForCollection.ts +90 -0
  319. package/src/react/queries/orders/listItemsOrdersForCollectionPaginated.ts +90 -0
  320. package/src/react/queries/{listListingsForCollectible.ts → orders/listListingsForCollectible.ts} +20 -5
  321. package/src/react/queries/{listOffersForCollectible.ts → orders/listOffersForCollectible.ts} +20 -5
  322. package/src/react/queries/{lowestListing.ts → orders/lowestListing.ts} +16 -4
  323. package/src/react/queries/{countOfPrimarySaleItems.ts → primary-sales/countOfPrimarySaleItems.ts} +17 -3
  324. package/src/react/queries/primary-sales/index.ts +3 -0
  325. package/src/react/queries/{primarySaleItems.ts → primary-sales/primarySaleItems.ts} +18 -4
  326. package/src/react/queries/{primarySaleItemsCount.ts → primary-sales/primarySaleItemsCount.ts} +19 -4
  327. package/src/react/queries/{getTokenRanges.ts → tokens/getTokenRanges.ts} +17 -4
  328. package/src/react/queries/tokens/index.ts +5 -0
  329. package/src/react/queries/{listBalances.ts → tokens/listBalances.ts} +18 -3
  330. package/src/react/queries/{listTokenMetadata.ts → tokens/listTokenMetadata.ts} +18 -4
  331. package/src/react/queries/{searchTokenMetadata.ts → tokens/searchTokenMetadata.ts} +18 -4
  332. package/src/react/queries/{tokenSupplies.ts → tokens/tokenSupplies.ts} +16 -4
  333. package/src/react/queries/{comparePrices.ts → utils/comparePrices.ts} +16 -4
  334. package/src/react/queries/{convertPriceToUSD.ts → utils/convertPriceToUSD.ts} +18 -5
  335. package/src/react/queries/utils/index.ts +2 -0
  336. package/src/react/ssr/create-ssr-client.ts +1 -1
  337. package/src/react/ui/components/_internals/ErrorLogBox.tsx +85 -0
  338. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +4 -0
  339. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +4 -0
  340. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +3 -0
  341. package/src/react/ui/components/marketplace-collectible-card/types.ts +1 -0
  342. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +3 -0
  343. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +2 -0
  344. package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +65 -3
  345. package/src/react/ui/modals/BuyModal/components/ERC721BuyModal.tsx +31 -0
  346. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC721SalePaymentParams.test.tsx +20 -1
  347. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +7 -2
  348. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +12 -3
  349. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +11 -2
  350. package/src/react/ui/modals/BuyModal/store.ts +3 -0
  351. package/src/react/ui/modals/CreateListingModal/Modal.tsx +63 -24
  352. package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +4 -0
  353. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +18 -12
  354. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +4 -1
  355. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +1 -0
  356. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +55 -8
  357. package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +10 -0
  358. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +4 -1
  359. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +15 -26
  360. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +1 -0
  361. package/src/react/ui/modals/SellModal/Modal.tsx +21 -3
  362. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +2 -0
  363. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +3 -1
  364. package/src/react/ui/modals/SellModal/hooks/useSell.tsx +13 -7
  365. package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +9 -0
  366. package/src/react/ui/modals/_internal/components/calendarDropdown/TimeSelector.tsx +105 -0
  367. package/src/react/ui/modals/_internal/components/calendarDropdown/index.tsx +45 -12
  368. package/src/react/ui/modals/_internal/components/calendarDropdown/overrides.css +39 -0
  369. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +31 -10
  370. package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +18 -9
  371. package/src/react/ui/modals/_internal/components/priceInput/index.tsx +51 -1
  372. package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +58 -10
  373. package/src/react/ui/modals/_internal/constants/opensea-currencies.ts +481 -0
  374. package/src/react/utils/waitForTransactionReceipt.ts +26 -32
  375. package/src/styles/index.css +1 -0
  376. package/src/styles/styles.ts +155 -1
  377. package/src/types/index.ts +1 -1
  378. package/src/utils/abi/index.ts +1 -0
  379. package/src/utils/abi/mainModule.ts +158 -0
  380. package/dist/CollectibleCard-C2EWF0zo.d.ts +0 -8
  381. package/dist/api-DuLKn__v.js.map +0 -1
  382. package/dist/filters-zkMJaPey.d.ts +0 -31
  383. package/dist/index-Yobo6icm.d.ts +0 -234
  384. package/dist/listCollectiblesPaginated-Bq0QSOjJ.d.ts +0 -168
  385. package/dist/lowestListing-CB5Te-Q9.d.ts +0 -168
  386. package/dist/marketplace.gen-w2YvbEEo.js.map +0 -1
  387. package/dist/marketplaceConfig-BTy75Mbf.js.map +0 -1
  388. package/dist/queries-EMA5CcwY.js +0 -1399
  389. package/dist/queries-EMA5CcwY.js.map +0 -1
  390. package/dist/react-BLJ4DkPx.js.map +0 -1
  391. package/dist/react-F03jPjPk.css +0 -80
  392. package/dist/react-F03jPjPk.css.map +0 -1
  393. package/dist/tokenSupplies-C470zTT0.d.ts +0 -147
  394. package/dist/waitForTransactionReceipt-B08YZiDY.js +0 -26
  395. package/dist/waitForTransactionReceipt-B08YZiDY.js.map +0 -1
  396. /package/dist/{index-Cg5cFzs-.d.ts → index-6wsMChsg.d.ts} +0 -0
  397. /package/dist/{abi-DYsUABe6.js → queries-KOcILNJO.js} +0 -0
@@ -0,0 +1,358 @@
1
+ import { LaosAPI, collectableKeys, getIndexerClient, getMarketplaceClient, getMetadataClient } from "./api-BoO0V5aJ.js";
2
+ import { MetadataStatus, OrderSide } from "./marketplace.gen-ksUafDqS.js";
3
+ import { compareAddress } from "./utils-BfpDVibN.js";
4
+ import { fetchMarketplaceConfig } from "./marketplaceConfig-UHQMM9fq.js";
5
+ import { fetchBalances } from "./listBalances-BxpxBCvn.js";
6
+ import { infiniteQueryOptions, queryOptions, skipToken } from "@tanstack/react-query";
7
+
8
+ //#region src/react/queries/collectibles/balanceOfCollectible.ts
9
+ /**
10
+ * Fetches the balance of a specific collectible for a user
11
+ *
12
+ * @param args - Arguments for the API call
13
+ * @param config - SDK configuration
14
+ * @returns The balance data
15
+ */
16
+ async function fetchBalanceOfCollectible(args, config) {
17
+ if (args.isLaos721) return (await new LaosAPI().getTokenBalances({
18
+ chainId: args.chainId.toString(),
19
+ contractAddress: args.collectionAddress,
20
+ accountAddress: args.userAddress,
21
+ includeMetadata: true
22
+ })).balances[0] || null;
23
+ return getIndexerClient(args.chainId, config).getTokenBalances({
24
+ accountAddress: args.userAddress,
25
+ contractAddress: args.collectionAddress,
26
+ tokenID: args.collectableId,
27
+ includeMetadata: args.includeMetadata ?? false,
28
+ metadataOptions: {
29
+ verifiedOnly: true,
30
+ includeContracts: [args.collectionAddress]
31
+ }
32
+ }).then((res) => res.balances[0] || null);
33
+ }
34
+ function getBalanceOfCollectibleQueryKey(args) {
35
+ const apiArgs = {
36
+ chainId: args.chainId,
37
+ accountAddress: args.userAddress,
38
+ contractAddress: args.collectionAddress,
39
+ tokenID: args.collectableId,
40
+ includeMetadata: args.includeMetadata,
41
+ metadataOptions: args.userAddress ? {
42
+ verifiedOnly: true,
43
+ includeContracts: [args.collectionAddress]
44
+ } : void 0,
45
+ isLaos721: args.isLaos721
46
+ };
47
+ return [...collectableKeys.userBalances, apiArgs];
48
+ }
49
+ /**
50
+ * Creates a tanstack query options object for the balance query
51
+ *
52
+ * @param args - The query arguments
53
+ * @param config - SDK configuration
54
+ * @returns Query options configuration
55
+ */
56
+ function balanceOfCollectibleOptions(args, config) {
57
+ const enabled = !!args.userAddress && (args.query?.enabled ?? true);
58
+ return queryOptions({
59
+ queryKey: getBalanceOfCollectibleQueryKey(args),
60
+ queryFn: enabled ? () => fetchBalanceOfCollectible({
61
+ ...args,
62
+ userAddress: args.userAddress
63
+ }, config) : skipToken
64
+ });
65
+ }
66
+
67
+ //#endregion
68
+ //#region src/react/queries/collectibles/collectible.ts
69
+ /**
70
+ * Fetches collectible metadata from the metadata API
71
+ */
72
+ async function fetchCollectible(params) {
73
+ const { collectionAddress, collectibleId, chainId, config } = params;
74
+ const metadataClient = getMetadataClient(config);
75
+ const apiArgs = {
76
+ contractAddress: collectionAddress,
77
+ chainID: String(chainId),
78
+ tokenIDs: [collectibleId]
79
+ };
80
+ return (await metadataClient.getTokenMetadata(apiArgs)).tokenMetadata[0];
81
+ }
82
+ function getCollectibleQueryKey(params) {
83
+ const apiArgs = {
84
+ chainID: String(params.chainId),
85
+ contractAddress: params.collectionAddress,
86
+ tokenIDs: [params.collectibleId]
87
+ };
88
+ return [...collectableKeys.details, apiArgs];
89
+ }
90
+ function collectibleQueryOptions(params) {
91
+ const enabled = Boolean(params.collectionAddress && params.collectibleId && params.chainId && params.config && (params.query?.enabled ?? true));
92
+ return queryOptions({
93
+ queryKey: getCollectibleQueryKey(params),
94
+ queryFn: () => fetchCollectible({
95
+ chainId: params.chainId,
96
+ collectionAddress: params.collectionAddress,
97
+ collectibleId: params.collectibleId,
98
+ config: params.config
99
+ }),
100
+ ...params.query,
101
+ enabled
102
+ });
103
+ }
104
+
105
+ //#endregion
106
+ //#region src/react/queries/collectibles/countOfCollectables.ts
107
+ /**
108
+ * Fetches count of collectibles from the marketplace API
109
+ */
110
+ async function fetchCountOfCollectables(params) {
111
+ const { collectionAddress, chainId, config, filter, side } = params;
112
+ const client = getMarketplaceClient(config);
113
+ if (filter && side) {
114
+ const apiArgs$1 = {
115
+ contractAddress: collectionAddress,
116
+ chainId: String(chainId),
117
+ filter,
118
+ side
119
+ };
120
+ return (await client.getCountOfFilteredCollectibles(apiArgs$1)).count;
121
+ }
122
+ const apiArgs = {
123
+ contractAddress: collectionAddress,
124
+ chainId: String(chainId)
125
+ };
126
+ return (await client.getCountOfAllCollectibles(apiArgs)).count;
127
+ }
128
+ function getCountOfCollectablesQueryKey(params) {
129
+ if (params.filter && params.side) {
130
+ const apiArgs$1 = {
131
+ chainId: String(params.chainId),
132
+ contractAddress: params.collectionAddress,
133
+ filter: params.filter,
134
+ side: params.side
135
+ };
136
+ return [...collectableKeys.counts, apiArgs$1];
137
+ }
138
+ const apiArgs = {
139
+ chainId: String(params.chainId),
140
+ contractAddress: params.collectionAddress
141
+ };
142
+ return [...collectableKeys.counts, apiArgs];
143
+ }
144
+ function countOfCollectablesQueryOptions(params) {
145
+ const enabled = Boolean(params.collectionAddress && params.chainId && params.config && (params.query?.enabled ?? true));
146
+ return queryOptions({
147
+ queryKey: getCountOfCollectablesQueryKey(params),
148
+ queryFn: () => fetchCountOfCollectables({
149
+ chainId: params.chainId,
150
+ collectionAddress: params.collectionAddress,
151
+ config: params.config,
152
+ filter: params.filter,
153
+ side: params.side
154
+ }),
155
+ ...params.query,
156
+ enabled
157
+ });
158
+ }
159
+
160
+ //#endregion
161
+ //#region src/react/queries/collectibles/listCollectibleActivities.ts
162
+ /**
163
+ * Fetches collectible activities from the Marketplace API
164
+ */
165
+ async function fetchListCollectibleActivities(params) {
166
+ const { collectionAddress, chainId, config, page, pageSize, sort,...additionalApiParams } = params;
167
+ const marketplaceClient = getMarketplaceClient(config);
168
+ const pageParams = page || pageSize || sort ? {
169
+ page: page ?? 1,
170
+ pageSize: pageSize ?? 10,
171
+ sort
172
+ } : void 0;
173
+ const apiArgs = {
174
+ contractAddress: collectionAddress,
175
+ chainId: String(chainId),
176
+ page: pageParams,
177
+ ...additionalApiParams
178
+ };
179
+ return await marketplaceClient.listCollectibleActivities(apiArgs);
180
+ }
181
+ function getListCollectibleActivitiesQueryKey(params) {
182
+ const page = params.page || params.pageSize || params.sort ? {
183
+ page: params.page ?? 1,
184
+ pageSize: params.pageSize ?? 10,
185
+ sort: params.sort
186
+ } : void 0;
187
+ const apiArgs = {
188
+ chainId: String(params.chainId),
189
+ contractAddress: params.collectionAddress,
190
+ tokenId: params.tokenId,
191
+ page
192
+ };
193
+ return [...collectableKeys.collectibleActivities, apiArgs];
194
+ }
195
+ function listCollectibleActivitiesQueryOptions(params) {
196
+ const enabled = Boolean(params.collectionAddress && params.chainId && params.tokenId && params.config && (params.query?.enabled ?? true));
197
+ return queryOptions({
198
+ queryKey: getListCollectibleActivitiesQueryKey(params),
199
+ queryFn: () => fetchListCollectibleActivities({
200
+ chainId: params.chainId,
201
+ collectionAddress: params.collectionAddress,
202
+ config: params.config,
203
+ tokenId: params.tokenId,
204
+ page: params.page,
205
+ pageSize: params.pageSize,
206
+ sort: params.sort
207
+ }),
208
+ ...params.query,
209
+ enabled
210
+ });
211
+ }
212
+
213
+ //#endregion
214
+ //#region src/react/queries/collectibles/listCollectibles.ts
215
+ /**
216
+ * Fetches a list of collectibles with pagination support from the Marketplace API
217
+ */
218
+ async function fetchListCollectibles(params, page) {
219
+ const { collectionAddress, chainId, config,...additionalApiParams } = params;
220
+ const marketplaceClient = getMarketplaceClient(config);
221
+ const isMarketCollection = (await fetchMarketplaceConfig({ config }))?.market.collections.some((collection) => compareAddress(collection.itemsAddress, collectionAddress));
222
+ if (params.enabled === false || !isMarketCollection) return {
223
+ collectibles: [],
224
+ page: {
225
+ page: 1,
226
+ pageSize: 30,
227
+ more: false
228
+ }
229
+ };
230
+ const apiArgs = {
231
+ contractAddress: collectionAddress,
232
+ chainId: String(chainId),
233
+ page,
234
+ ...additionalApiParams
235
+ };
236
+ if (params.isLaos721 && params.side === OrderSide.listing) try {
237
+ const fetchBalancesArgs = {
238
+ chainId: params.chainId,
239
+ accountAddress: params.filter?.inAccounts?.[0],
240
+ contractAddress: params.collectionAddress,
241
+ page,
242
+ includeMetadata: true,
243
+ isLaos721: true
244
+ };
245
+ const balances = await fetchBalances(fetchBalancesArgs, config, page);
246
+ return {
247
+ collectibles: balances.balances.map((balance) => {
248
+ if (!balance.tokenMetadata) throw new Error("Token metadata not found");
249
+ return { metadata: {
250
+ tokenId: balance.tokenID ?? "",
251
+ attributes: balance.tokenMetadata.attributes,
252
+ image: balance.tokenMetadata.image,
253
+ name: balance.tokenMetadata.name,
254
+ description: balance.tokenMetadata.description,
255
+ video: balance.tokenMetadata.video,
256
+ audio: balance.tokenMetadata.audio,
257
+ status: MetadataStatus.AVAILABLE
258
+ } };
259
+ }),
260
+ page: balances.page
261
+ };
262
+ } catch (error) {
263
+ console.error(error);
264
+ }
265
+ return await marketplaceClient.listCollectibles(apiArgs);
266
+ }
267
+ function getListCollectiblesQueryKey(params) {
268
+ const apiArgs = {
269
+ chainId: String(params.chainId),
270
+ contractAddress: params.collectionAddress,
271
+ side: params.side,
272
+ filter: params.filter
273
+ };
274
+ return [...collectableKeys.lists, apiArgs];
275
+ }
276
+ function listCollectiblesQueryOptions(params) {
277
+ const enabled = Boolean(params.collectionAddress && params.chainId && params.side && params.config && (params.query?.enabled ?? true));
278
+ return infiniteQueryOptions({
279
+ queryKey: getListCollectiblesQueryKey(params),
280
+ queryFn: async ({ pageParam }) => {
281
+ return fetchListCollectibles({
282
+ chainId: params.chainId,
283
+ collectionAddress: params.collectionAddress,
284
+ config: params.config,
285
+ side: params.side,
286
+ filter: params.filter,
287
+ isLaos721: params.isLaos721,
288
+ cardType: params.cardType
289
+ }, pageParam);
290
+ },
291
+ initialPageParam: {
292
+ page: 1,
293
+ pageSize: 30
294
+ },
295
+ getNextPageParam: (lastPage) => lastPage.page?.more ? lastPage.page : void 0,
296
+ ...params.query,
297
+ enabled
298
+ });
299
+ }
300
+
301
+ //#endregion
302
+ //#region src/react/queries/collectibles/listCollectiblesPaginated.ts
303
+ /**
304
+ * Fetches a list of collectibles with pagination support from the Marketplace API
305
+ */
306
+ async function fetchListCollectiblesPaginated(params) {
307
+ const { collectionAddress, chainId, config, page = 1, pageSize = 30,...additionalApiParams } = params;
308
+ const marketplaceClient = getMarketplaceClient(config);
309
+ const pageParams = {
310
+ page,
311
+ pageSize
312
+ };
313
+ const apiArgs = {
314
+ contractAddress: collectionAddress,
315
+ chainId: String(chainId),
316
+ page: pageParams,
317
+ ...additionalApiParams
318
+ };
319
+ return await marketplaceClient.listCollectibles(apiArgs);
320
+ }
321
+ function getListCollectiblesPaginatedQueryKey(params) {
322
+ const apiArgs = {
323
+ chainId: String(params.chainId),
324
+ contractAddress: params.collectionAddress,
325
+ side: params.side,
326
+ filter: params.filter,
327
+ page: params.page ? {
328
+ page: params.page,
329
+ pageSize: params.pageSize ?? 30
330
+ } : void 0
331
+ };
332
+ return [
333
+ ...collectableKeys.lists,
334
+ "paginated",
335
+ apiArgs
336
+ ];
337
+ }
338
+ function listCollectiblesPaginatedQueryOptions(params) {
339
+ const enabled = Boolean(params.collectionAddress && params.chainId && params.side && params.config && (params.query?.enabled ?? true));
340
+ return queryOptions({
341
+ queryKey: getListCollectiblesPaginatedQueryKey(params),
342
+ queryFn: () => fetchListCollectiblesPaginated({
343
+ chainId: params.chainId,
344
+ collectionAddress: params.collectionAddress,
345
+ config: params.config,
346
+ side: params.side,
347
+ filter: params.filter,
348
+ page: params.page,
349
+ pageSize: params.pageSize
350
+ }),
351
+ ...params.query,
352
+ enabled
353
+ });
354
+ }
355
+
356
+ //#endregion
357
+ export { balanceOfCollectibleOptions, collectibleQueryOptions, countOfCollectablesQueryOptions, fetchBalanceOfCollectible, fetchCollectible, fetchCountOfCollectables, fetchListCollectibleActivities, fetchListCollectibles, fetchListCollectiblesPaginated, getBalanceOfCollectibleQueryKey, getCollectibleQueryKey, getCountOfCollectablesQueryKey, getListCollectibleActivitiesQueryKey, getListCollectiblesPaginatedQueryKey, getListCollectiblesQueryKey, listCollectibleActivitiesQueryOptions, listCollectiblesPaginatedQueryOptions, listCollectiblesQueryOptions };
358
+ //# sourceMappingURL=collectibles-C_H8jMGH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectibles-C_H8jMGH.js","names":["apiArgs: GetTokenMetadataArgs","apiArgs: GetCountOfFilteredCollectiblesArgs","apiArgs","apiArgs: GetCountOfAllCollectiblesArgs","pageParams: Page | undefined","apiArgs: ListCollectibleActivitiesArgs","apiArgs: ListCollectiblesArgs","pageParams: Page","apiArgs: ListCollectiblesArgs"],"sources":["../src/react/queries/collectibles/balanceOfCollectible.ts","../src/react/queries/collectibles/collectible.ts","../src/react/queries/collectibles/countOfCollectables.ts","../src/react/queries/collectibles/listCollectibleActivities.ts","../src/react/queries/collectibles/listCollectibles.ts","../src/react/queries/collectibles/listCollectiblesPaginated.ts"],"sourcesContent":["import { queryOptions, skipToken } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { UseQueryParameters } from 'wagmi/query';\nimport type { SdkConfig } from '../../../types';\nimport { collectableKeys, getIndexerClient, LaosAPI } from '../../_internal';\n\nexport type UseBalanceOfCollectibleArgs = {\n\tcollectionAddress: Address;\n\tcollectableId: string;\n\tuserAddress: Address | undefined;\n\tchainId: number;\n\tisLaos721?: boolean;\n\tincludeMetadata?: boolean;\n\tquery?: UseQueryParameters;\n};\n\n/**\n * Fetches the balance of a specific collectible for a user\n *\n * @param args - Arguments for the API call\n * @param config - SDK configuration\n * @returns The balance data\n */\nexport async function fetchBalanceOfCollectible(\n\targs: Omit<UseBalanceOfCollectibleArgs, 'userAddress'> & {\n\t\tuserAddress: Address;\n\t},\n\tconfig: SdkConfig,\n) {\n\tif (args.isLaos721) {\n\t\tconst laosApi = new LaosAPI();\n\t\tconst response = await laosApi.getTokenBalances({\n\t\t\tchainId: args.chainId.toString(),\n\t\t\tcontractAddress: args.collectionAddress,\n\t\t\taccountAddress: args.userAddress,\n\t\t\tincludeMetadata: true,\n\t\t});\n\n\t\treturn response.balances[0] || null;\n\t}\n\n\tconst indexerClient = getIndexerClient(args.chainId, config);\n\treturn indexerClient\n\t\t.getTokenBalances({\n\t\t\taccountAddress: args.userAddress,\n\t\t\tcontractAddress: args.collectionAddress,\n\t\t\ttokenID: args.collectableId,\n\t\t\tincludeMetadata: args.includeMetadata ?? false,\n\t\t\tmetadataOptions: {\n\t\t\t\tverifiedOnly: true,\n\t\t\t\tincludeContracts: [args.collectionAddress],\n\t\t\t},\n\t\t})\n\t\t.then((res) => res.balances[0] || null);\n}\n\nexport function getBalanceOfCollectibleQueryKey(\n\targs: UseBalanceOfCollectibleArgs,\n) {\n\tconst apiArgs = {\n\t\tchainId: args.chainId,\n\t\taccountAddress: args.userAddress,\n\t\tcontractAddress: args.collectionAddress,\n\t\ttokenID: args.collectableId,\n\t\tincludeMetadata: args.includeMetadata,\n\t\tmetadataOptions: args.userAddress\n\t\t\t? {\n\t\t\t\t\tverifiedOnly: true,\n\t\t\t\t\tincludeContracts: [args.collectionAddress],\n\t\t\t\t}\n\t\t\t: undefined,\n\t\tisLaos721: args.isLaos721,\n\t};\n\n\treturn [...collectableKeys.userBalances, apiArgs] as const;\n}\n\n/**\n * Creates a tanstack query options object for the balance query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function balanceOfCollectibleOptions(\n\targs: UseBalanceOfCollectibleArgs,\n\tconfig: SdkConfig,\n) {\n\tconst enabled = !!args.userAddress && (args.query?.enabled ?? true);\n\treturn queryOptions({\n\t\tqueryKey: getBalanceOfCollectibleQueryKey(args),\n\t\tqueryFn: enabled\n\t\t\t? () =>\n\t\t\t\t\tfetchBalanceOfCollectible(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: this is guaranteed by the userAddress check above\n\t\t\t\t\t\t\tuserAddress: args.userAddress!,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t)\n\t\t\t: skipToken,\n\t});\n}\n","import type { GetTokenMetadataArgs } from '@0xsequence/metadata';\nimport { queryOptions } from '@tanstack/react-query';\nimport type { SdkConfig } from '../../../types';\nimport {\n\tgetMetadataClient,\n\ttype QueryKeyArgs,\n\ttype ValuesOptional,\n} from '../../_internal';\nimport { collectableKeys } from '../../_internal/api/query-keys';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface FetchCollectibleParams\n\textends Omit<\n\t\tGetTokenMetadataArgs,\n\t\t'chainID' | 'contractAddress' | 'tokenIDs'\n\t> {\n\tchainId: number;\n\tcollectionAddress: string;\n\tcollectibleId: string;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches collectible metadata from the metadata API\n */\nexport async function fetchCollectible(params: FetchCollectibleParams) {\n\tconst { collectionAddress, collectibleId, chainId, config } = params;\n\n\tconst metadataClient = getMetadataClient(config);\n\n\tconst apiArgs: GetTokenMetadataArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainID: String(chainId),\n\t\ttokenIDs: [collectibleId],\n\t};\n\n\tconst result = await metadataClient.getTokenMetadata(apiArgs);\n\treturn result.tokenMetadata[0];\n}\n\nexport type CollectibleQueryOptions = ValuesOptional<FetchCollectibleParams> & {\n\tquery?: StandardQueryOptions;\n};\n\nexport function getCollectibleQueryKey(params: CollectibleQueryOptions) {\n\tconst apiArgs = {\n\t\tchainID: String(params.chainId),\n\t\tcontractAddress: params.collectionAddress,\n\t\t// biome-ignore lint/style/noNonNullAssertion: Dont need to validate here\n\t\ttokenIDs: [params.collectibleId!],\n\t} satisfies QueryKeyArgs<GetTokenMetadataArgs>;\n\n\treturn [...collectableKeys.details, apiArgs] as const;\n}\n\nexport function collectibleQueryOptions(params: CollectibleQueryOptions) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.collectibleId &&\n\t\t\tparams.chainId &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: getCollectibleQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchCollectible({\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tchainId: params.chainId!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcollectionAddress: params.collectionAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcollectibleId: params.collectibleId!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tconfig: params.config!,\n\t\t\t}),\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { SdkConfig } from '../../../types';\nimport {\n\tgetMarketplaceClient,\n\ttype QueryKeyArgs,\n\ttype ValuesOptional,\n} from '../../_internal';\nimport type {\n\tCollectiblesFilter,\n\tGetCountOfAllCollectiblesArgs,\n\tGetCountOfFilteredCollectiblesArgs,\n\tOrderSide,\n} from '../../_internal/api/marketplace.gen';\nimport { collectableKeys } from '../../_internal/api/query-keys';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface FetchCountOfCollectablesParams {\n\tchainId: number;\n\tcollectionAddress: string;\n\tconfig: SdkConfig;\n\tfilter?: CollectiblesFilter;\n\tside?: OrderSide;\n}\n\n/**\n * Fetches count of collectibles from the marketplace API\n */\nexport async function fetchCountOfCollectables(\n\tparams: FetchCountOfCollectablesParams,\n) {\n\tconst { collectionAddress, chainId, config, filter, side } = params;\n\n\tconst client = getMarketplaceClient(config);\n\n\tif (filter && side) {\n\t\tconst apiArgs: GetCountOfFilteredCollectiblesArgs = {\n\t\t\tcontractAddress: collectionAddress,\n\t\t\tchainId: String(chainId),\n\t\t\tfilter,\n\t\t\tside,\n\t\t};\n\n\t\tconst result = await client.getCountOfFilteredCollectibles(apiArgs);\n\t\treturn result.count;\n\t}\n\n\tconst apiArgs: GetCountOfAllCollectiblesArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t};\n\n\tconst result = await client.getCountOfAllCollectibles(apiArgs);\n\treturn result.count;\n}\n\nexport type CountOfCollectablesQueryOptions =\n\tValuesOptional<FetchCountOfCollectablesParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function getCountOfCollectablesQueryKey(\n\tparams: CountOfCollectablesQueryOptions,\n) {\n\tif (params.filter && params.side) {\n\t\tconst apiArgs = {\n\t\t\tchainId: String(params.chainId),\n\t\t\tcontractAddress: params.collectionAddress,\n\t\t\tfilter: params.filter,\n\t\t\tside: params.side,\n\t\t} satisfies QueryKeyArgs<GetCountOfFilteredCollectiblesArgs>;\n\n\t\treturn [...collectableKeys.counts, apiArgs] as const;\n\t}\n\n\tconst apiArgs = {\n\t\tchainId: String(params.chainId),\n\t\tcontractAddress: params.collectionAddress,\n\t} satisfies QueryKeyArgs<GetCountOfAllCollectiblesArgs>;\n\n\treturn [...collectableKeys.counts, apiArgs] as const;\n}\n\nexport function countOfCollectablesQueryOptions(\n\tparams: CountOfCollectablesQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: getCountOfCollectablesQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchCountOfCollectables({\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tchainId: params.chainId!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcollectionAddress: params.collectionAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tconfig: params.config!,\n\t\t\t\tfilter: params.filter,\n\t\t\t\tside: params.side,\n\t\t\t}),\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { Page, SdkConfig } from '../../../types';\nimport type {\n\tListCollectibleActivitiesArgs,\n\tListCollectibleActivitiesReturn,\n\tQueryKeyArgs,\n\tSortBy,\n\tValuesOptional,\n} from '../../_internal';\nimport { collectableKeys, getMarketplaceClient } from '../../_internal';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface FetchListCollectibleActivitiesParams\n\textends Omit<\n\t\tListCollectibleActivitiesArgs,\n\t\t'chainId' | 'contractAddress' | 'page'\n\t> {\n\tchainId: number;\n\tcollectionAddress: Address;\n\tpage?: number;\n\tpageSize?: number;\n\tsort?: SortBy[];\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches collectible activities from the Marketplace API\n */\nexport async function fetchListCollectibleActivities(\n\tparams: FetchListCollectibleActivitiesParams,\n): Promise<ListCollectibleActivitiesReturn> {\n\tconst {\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tconfig,\n\t\tpage,\n\t\tpageSize,\n\t\tsort,\n\t\t...additionalApiParams\n\t} = params;\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst pageParams: Page | undefined =\n\t\tpage || pageSize || sort\n\t\t\t? {\n\t\t\t\t\tpage: page ?? 1,\n\t\t\t\t\tpageSize: pageSize ?? 10,\n\t\t\t\t\tsort,\n\t\t\t\t}\n\t\t\t: undefined;\n\n\tconst apiArgs: ListCollectibleActivitiesArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\tpage: pageParams,\n\t\t...additionalApiParams,\n\t};\n\n\treturn await marketplaceClient.listCollectibleActivities(apiArgs);\n}\n\nexport type ListCollectibleActivitiesQueryOptions =\n\tValuesOptional<FetchListCollectibleActivitiesParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function getListCollectibleActivitiesQueryKey(\n\tparams: ListCollectibleActivitiesQueryOptions,\n) {\n\t// TODO: Do we actually want to do the page like this?\n\tconst page =\n\t\tparams.page || params.pageSize || params.sort\n\t\t\t? {\n\t\t\t\t\tpage: params.page ?? 1,\n\t\t\t\t\tpageSize: params.pageSize ?? 10,\n\t\t\t\t\tsort: params.sort,\n\t\t\t\t}\n\t\t\t: undefined;\n\n\tconst apiArgs = {\n\t\tchainId: String(params.chainId),\n\t\tcontractAddress: params.collectionAddress,\n\t\ttokenId: params.tokenId,\n\t\tpage: page,\n\t} satisfies QueryKeyArgs<ListCollectibleActivitiesArgs>;\n\n\treturn [...collectableKeys.collectibleActivities, apiArgs] as const;\n}\n\nexport function listCollectibleActivitiesQueryOptions(\n\tparams: ListCollectibleActivitiesQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.tokenId &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: getListCollectibleActivitiesQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchListCollectibleActivities({\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tchainId: params.chainId!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcollectionAddress: params.collectionAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tconfig: params.config!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\ttokenId: params.tokenId!,\n\t\t\t\tpage: params.page,\n\t\t\t\tpageSize: params.pageSize,\n\t\t\t\tsort: params.sort,\n\t\t\t}),\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import { infiniteQueryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { Page, SdkConfig } from '../../../types';\nimport type { CardType } from '../../../types/types';\nimport { compareAddress } from '../../../utils';\nimport type {\n\tListCollectiblesArgs,\n\tListCollectiblesReturn,\n\tQueryKeyArgs,\n\tValuesOptional,\n} from '../../_internal';\nimport {\n\ttype CollectibleOrder,\n\tcollectableKeys,\n\tgetMarketplaceClient,\n\tMetadataStatus,\n\tOrderSide,\n} from '../../_internal';\nimport type { StandardInfiniteQueryOptions } from '../../types/query';\nimport { fetchMarketplaceConfig } from '../market/marketplaceConfig';\nimport {\n\tfetchBalances,\n\ttype UseListBalancesArgs,\n} from '../tokens/listBalances';\n\nexport interface FetchListCollectiblesParams\n\textends Omit<ListCollectiblesArgs, 'chainId' | 'contractAddress'> {\n\tchainId: number;\n\tcollectionAddress: Address;\n\tisLaos721?: boolean;\n\tcardType?: CardType;\n\tconfig: SdkConfig;\n\tenabled?: boolean;\n}\n\n/**\n * Fetches a list of collectibles with pagination support from the Marketplace API\n */\nexport async function fetchListCollectibles(\n\tparams: FetchListCollectiblesParams,\n\tpage: Page,\n): Promise<ListCollectiblesReturn> {\n\tconst { collectionAddress, chainId, config, ...additionalApiParams } = params;\n\tconst marketplaceClient = getMarketplaceClient(config);\n\tconst marketplaceConfig = await fetchMarketplaceConfig({ config });\n\tconst isMarketCollection = marketplaceConfig?.market.collections.some(\n\t\t(collection) => compareAddress(collection.itemsAddress, collectionAddress),\n\t);\n\n\t// If it's not a market collection, return an empty list. those collections are not compatible with the ListCollectibles endpoint.\n\tif (params.enabled === false || !isMarketCollection) {\n\t\treturn {\n\t\t\tcollectibles: [],\n\t\t\tpage: {\n\t\t\t\tpage: 1,\n\t\t\t\tpageSize: 30,\n\t\t\t\tmore: false,\n\t\t\t},\n\t\t};\n\t}\n\n\tconst apiArgs: ListCollectiblesArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\tpage: page,\n\t\t...additionalApiParams,\n\t};\n\n\tif (params.isLaos721 && params.side === OrderSide.listing) {\n\t\ttry {\n\t\t\tconst fetchBalancesArgs = {\n\t\t\t\tchainId: params.chainId,\n\t\t\t\taccountAddress: params.filter?.inAccounts?.[0] as Address,\n\t\t\t\tcontractAddress: params.collectionAddress,\n\t\t\t\tpage: page,\n\t\t\t\tincludeMetadata: true,\n\t\t\t\tisLaos721: true,\n\t\t\t} satisfies UseListBalancesArgs;\n\n\t\t\tconst balances = await fetchBalances(fetchBalancesArgs, config, page);\n\t\t\tconst collectibles: CollectibleOrder[] = balances.balances.map(\n\t\t\t\t(balance) => {\n\t\t\t\t\tif (!balance.tokenMetadata)\n\t\t\t\t\t\tthrow new Error('Token metadata not found');\n\t\t\t\t\treturn {\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\ttokenId: balance.tokenID ?? '',\n\t\t\t\t\t\t\tattributes: balance.tokenMetadata.attributes,\n\t\t\t\t\t\t\timage: balance.tokenMetadata.image,\n\t\t\t\t\t\t\tname: balance.tokenMetadata.name,\n\t\t\t\t\t\t\tdescription: balance.tokenMetadata.description,\n\t\t\t\t\t\t\tvideo: balance.tokenMetadata.video,\n\t\t\t\t\t\t\taudio: balance.tokenMetadata.audio,\n\t\t\t\t\t\t\tstatus: MetadataStatus.AVAILABLE,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcollectibles: collectibles,\n\t\t\t\t//@ts-expect-error\n\t\t\t\tpage: balances.page,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\t// If the request fails, ignore the error and return the collectibles from our indexer\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n\n\treturn await marketplaceClient.listCollectibles(apiArgs);\n}\n\nexport type ListCollectiblesQueryOptions =\n\tValuesOptional<FetchListCollectiblesParams> & {\n\t\tquery?: StandardInfiniteQueryOptions;\n\t};\n\nexport function getListCollectiblesQueryKey(\n\tparams: ListCollectiblesQueryOptions,\n) {\n\tconst apiArgs = {\n\t\tchainId: String(params.chainId),\n\t\tcontractAddress: params.collectionAddress,\n\t\tside: params.side,\n\t\tfilter: params.filter,\n\t} satisfies QueryKeyArgs<Omit<ListCollectiblesArgs, 'page'>>;\n\n\treturn [...collectableKeys.lists, apiArgs] as const;\n}\n\nexport function listCollectiblesQueryOptions(\n\tparams: ListCollectiblesQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.side &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn infiniteQueryOptions({\n\t\tqueryKey: getListCollectiblesQueryKey(params),\n\t\tqueryFn: async ({ pageParam }) => {\n\t\t\treturn fetchListCollectibles(\n\t\t\t\t{\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\tchainId: params.chainId!,\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\tcollectionAddress: params.collectionAddress!,\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\tconfig: params.config!,\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\tside: params.side!,\n\t\t\t\t\tfilter: params.filter,\n\t\t\t\t\tisLaos721: params.isLaos721,\n\t\t\t\t\tcardType: params.cardType,\n\t\t\t\t},\n\t\t\t\tpageParam,\n\t\t\t);\n\t\t},\n\t\tinitialPageParam: { page: 1, pageSize: 30 } as Page,\n\t\tgetNextPageParam: (lastPage) =>\n\t\t\tlastPage.page?.more ? lastPage.page : undefined,\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { Page, SdkConfig } from '../../../types';\nimport type {\n\tListCollectiblesArgs,\n\tListCollectiblesReturn,\n\tQueryKeyArgs,\n\tValuesOptional,\n} from '../../_internal';\nimport { collectableKeys, getMarketplaceClient } from '../../_internal';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface FetchListCollectiblesPaginatedParams\n\textends Omit<ListCollectiblesArgs, 'chainId' | 'contractAddress' | 'page'> {\n\tchainId: number;\n\tcollectionAddress: Address;\n\tpage?: number;\n\tpageSize?: number;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches a list of collectibles with pagination support from the Marketplace API\n */\nexport async function fetchListCollectiblesPaginated(\n\tparams: FetchListCollectiblesPaginatedParams,\n): Promise<ListCollectiblesReturn> {\n\tconst {\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tconfig,\n\t\tpage = 1,\n\t\tpageSize = 30,\n\t\t...additionalApiParams\n\t} = params;\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst pageParams: Page = {\n\t\tpage,\n\t\tpageSize,\n\t};\n\n\tconst apiArgs: ListCollectiblesArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\tpage: pageParams,\n\t\t...additionalApiParams,\n\t};\n\n\treturn await marketplaceClient.listCollectibles(apiArgs);\n}\n\nexport type ListCollectiblesPaginatedQueryOptions =\n\tValuesOptional<FetchListCollectiblesPaginatedParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function getListCollectiblesPaginatedQueryKey(\n\tparams: ListCollectiblesPaginatedQueryOptions,\n) {\n\tconst apiArgs = {\n\t\tchainId: String(params.chainId),\n\t\tcontractAddress: params.collectionAddress,\n\t\tside: params.side,\n\t\tfilter: params.filter,\n\t\tpage: params.page\n\t\t\t? { page: params.page, pageSize: params.pageSize ?? 30 }\n\t\t\t: undefined,\n\t} satisfies QueryKeyArgs<ListCollectiblesArgs>;\n\n\treturn [...collectableKeys.lists, 'paginated', apiArgs] as const;\n}\n\nexport function listCollectiblesPaginatedQueryOptions(\n\tparams: ListCollectiblesPaginatedQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.side &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: getListCollectiblesPaginatedQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchListCollectiblesPaginated({\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tchainId: params.chainId!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcollectionAddress: params.collectionAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tconfig: params.config!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tside: params.side!,\n\t\t\t\tfilter: params.filter,\n\t\t\t\tpage: params.page,\n\t\t\t\tpageSize: params.pageSize,\n\t\t\t}),\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n"],"mappings":"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"}
@@ -0,0 +1,249 @@
1
+ import { balanceQueries, collectionKeys, getIndexerClient, getMarketplaceClient, getMetadataClient } from "./api-BoO0V5aJ.js";
2
+ import { compareAddress } from "./utils-BfpDVibN.js";
3
+ import { queryOptions, skipToken } from "@tanstack/react-query";
4
+
5
+ //#region src/react/queries/collections/collection.ts
6
+ /**
7
+ * Fetches collection information from the metadata API
8
+ */
9
+ async function fetchCollection(params) {
10
+ const { collectionAddress, chainId, config } = params;
11
+ return (await getMetadataClient(config).getContractInfo({
12
+ chainID: chainId.toString(),
13
+ contractAddress: collectionAddress
14
+ })).contractInfo;
15
+ }
16
+ function getCollectionQueryKey(params) {
17
+ const apiArgs = {
18
+ chainID: String(params.chainId),
19
+ contractAddress: params.collectionAddress
20
+ };
21
+ return [...collectionKeys.detail, apiArgs];
22
+ }
23
+ function collectionQueryOptions(params) {
24
+ const enabled = Boolean(params.collectionAddress && params.chainId && params.config && (params.query?.enabled ?? true));
25
+ return queryOptions({
26
+ queryKey: getCollectionQueryKey(params),
27
+ queryFn: () => fetchCollection({
28
+ chainId: params.chainId,
29
+ collectionAddress: params.collectionAddress,
30
+ config: params.config
31
+ }),
32
+ ...params.query,
33
+ enabled
34
+ });
35
+ }
36
+
37
+ //#endregion
38
+ //#region src/react/queries/collections/collectionBalanceDetails.ts
39
+ /**
40
+ * Fetches detailed balance information for multiple accounts from the Indexer API
41
+ */
42
+ async function fetchCollectionBalanceDetails(params) {
43
+ const { chainId, filter, config } = params;
44
+ const indexerClient = getIndexerClient(chainId, config);
45
+ const promises = filter.accountAddresses.map((accountAddress) => indexerClient.getTokenBalancesDetails({ filter: {
46
+ accountAddresses: [accountAddress],
47
+ contractWhitelist: filter.contractWhitelist,
48
+ omitNativeBalances: filter.omitNativeBalances
49
+ } }));
50
+ const mergedResponse = (await Promise.all(promises)).reduce((acc, curr) => {
51
+ if (!curr) return acc;
52
+ return {
53
+ page: curr.page,
54
+ nativeBalances: [...acc.nativeBalances || [], ...curr.nativeBalances || []],
55
+ balances: [...acc.balances || [], ...curr.balances || []]
56
+ };
57
+ }, {
58
+ page: {},
59
+ nativeBalances: [],
60
+ balances: []
61
+ });
62
+ if (!mergedResponse) throw new Error("Failed to fetch collection balance details");
63
+ return mergedResponse;
64
+ }
65
+ function getCollectionBalanceDetailsQueryKey(params) {
66
+ const apiArgs = {
67
+ chainId: params.chainId,
68
+ filter: params.filter
69
+ };
70
+ return [...balanceQueries.collectionBalanceDetails, apiArgs];
71
+ }
72
+ function collectionBalanceDetailsQueryOptions(params) {
73
+ const enabled = Boolean(params.chainId && params.filter?.accountAddresses?.length && params.config && (params.query?.enabled ?? true));
74
+ return queryOptions({
75
+ queryKey: getCollectionBalanceDetailsQueryKey(params),
76
+ queryFn: () => fetchCollectionBalanceDetails({
77
+ chainId: params.chainId,
78
+ filter: params.filter,
79
+ config: params.config
80
+ }),
81
+ ...params.query,
82
+ enabled
83
+ });
84
+ }
85
+
86
+ //#endregion
87
+ //#region src/react/queries/collections/collectionDetails.ts
88
+ /**
89
+ * Fetches collection details from the marketplace API
90
+ */
91
+ async function fetchCollectionDetails(params) {
92
+ const { collectionAddress, chainId, config,...additionalApiParams } = params;
93
+ const marketplaceClient = getMarketplaceClient(config);
94
+ const apiArgs = {
95
+ contractAddress: collectionAddress,
96
+ chainId: String(chainId),
97
+ ...additionalApiParams
98
+ };
99
+ return (await marketplaceClient.getCollectionDetail(apiArgs)).collection;
100
+ }
101
+ function getCollectionDetailsQueryKey(params) {
102
+ const apiArgs = {
103
+ chainId: String(params.chainId),
104
+ contractAddress: params.collectionAddress
105
+ };
106
+ return [...collectionKeys.detail, apiArgs];
107
+ }
108
+ function collectionDetailsQueryOptions(params) {
109
+ const enabled = Boolean(params.collectionAddress && params.chainId && params.config && (params.query?.enabled ?? true));
110
+ return queryOptions({
111
+ queryKey: getCollectionDetailsQueryKey(params),
112
+ queryFn: () => fetchCollectionDetails({
113
+ chainId: params.chainId,
114
+ collectionAddress: params.collectionAddress,
115
+ config: params.config
116
+ }),
117
+ ...params.query,
118
+ enabled
119
+ });
120
+ }
121
+
122
+ //#endregion
123
+ //#region src/react/queries/collections/listCollectionActivities.ts
124
+ /**
125
+ * Fetches collection activities from the Marketplace API
126
+ */
127
+ async function fetchListCollectionActivities(params) {
128
+ const { collectionAddress, chainId, config, page, pageSize, sort,...additionalApiParams } = params;
129
+ const marketplaceClient = getMarketplaceClient(config);
130
+ const pageParams = page || pageSize || sort ? {
131
+ page: page ?? 1,
132
+ pageSize: pageSize ?? 10,
133
+ sort
134
+ } : void 0;
135
+ const apiArgs = {
136
+ contractAddress: collectionAddress,
137
+ chainId: String(chainId),
138
+ page: pageParams,
139
+ ...additionalApiParams
140
+ };
141
+ return await marketplaceClient.listCollectionActivities(apiArgs);
142
+ }
143
+ function getListCollectionActivitiesQueryKey(params) {
144
+ const page = params.page || params.pageSize || params.sort ? {
145
+ page: params.page ?? 1,
146
+ pageSize: params.pageSize ?? 10,
147
+ sort: params.sort
148
+ } : void 0;
149
+ const apiArgs = {
150
+ chainId: String(params.chainId),
151
+ contractAddress: params.collectionAddress,
152
+ page
153
+ };
154
+ return [...collectionKeys.collectionActivities, apiArgs];
155
+ }
156
+ function listCollectionActivitiesQueryOptions(params) {
157
+ const enabled = Boolean(params.collectionAddress && params.chainId && params.config && (params.query?.enabled ?? true));
158
+ return queryOptions({
159
+ queryKey: getListCollectionActivitiesQueryKey(params),
160
+ queryFn: () => fetchListCollectionActivities({
161
+ chainId: params.chainId,
162
+ collectionAddress: params.collectionAddress,
163
+ config: params.config,
164
+ page: params.page,
165
+ pageSize: params.pageSize,
166
+ sort: params.sort
167
+ }),
168
+ ...params.query,
169
+ enabled
170
+ });
171
+ }
172
+
173
+ //#endregion
174
+ //#region src/react/queries/collections/listCollections.ts
175
+ const allCollections = (marketplaceConfig) => {
176
+ return [...marketplaceConfig.market.collections, ...marketplaceConfig.shop.collections];
177
+ };
178
+ /**
179
+ * Fetches collections from the metadata API with marketplace config filtering
180
+ */
181
+ async function fetchListCollections(params) {
182
+ const { cardType, marketplaceConfig, config } = params;
183
+ const metadataClient = getMetadataClient(config);
184
+ let collections = allCollections(marketplaceConfig);
185
+ if (!collections?.length) return [];
186
+ if (cardType) collections = collections.filter((collection) => collection.cardType === cardType);
187
+ const collectionsByChain = collections.reduce((acc, curr) => {
188
+ const { chainId, itemsAddress } = curr;
189
+ if (!acc[chainId]) acc[chainId] = [];
190
+ acc[chainId].push(itemsAddress);
191
+ return acc;
192
+ }, {});
193
+ const promises = Object.entries(collectionsByChain).map(([chainId, addresses]) => metadataClient.getContractInfoBatch({
194
+ chainID: chainId,
195
+ contractAddresses: addresses
196
+ }).then((resp) => Object.values(resp.contractInfoMap)));
197
+ const settled = await Promise.allSettled(promises);
198
+ if (settled.every((result) => result.status === "rejected")) throw settled[0].reason;
199
+ const results = settled.filter((r) => r.status === "fulfilled").flatMap((r) => r.value);
200
+ return collections.map((collection) => {
201
+ const metadata = results.find((result) => compareAddress(result.address, collection.itemsAddress));
202
+ return {
203
+ collection,
204
+ metadata
205
+ };
206
+ }).filter((item) => item.metadata !== void 0).map(({ collection, metadata }) => ({
207
+ ...collection,
208
+ ...metadata
209
+ }));
210
+ }
211
+ function getListCollectionsQueryKey(params) {
212
+ const queryKeyParams = {
213
+ cardType: params.cardType,
214
+ marketplaceConfig: params.marketplaceConfig
215
+ };
216
+ return [...collectionKeys.list, queryKeyParams];
217
+ }
218
+ function listCollectionsQueryOptions(params) {
219
+ const enabled = Boolean(params.marketplaceConfig && params.config && (params.query?.enabled ?? true));
220
+ return queryOptions({
221
+ queryKey: getListCollectionsQueryKey(params),
222
+ queryFn: enabled ? () => fetchListCollections({
223
+ marketplaceConfig: params.marketplaceConfig,
224
+ config: params.config,
225
+ cardType: params.cardType
226
+ }) : skipToken,
227
+ ...params.query,
228
+ enabled
229
+ });
230
+ }
231
+ const listCollectionsOptions = ({ cardType, marketplaceConfig, config }) => {
232
+ return queryOptions({
233
+ queryKey: [...collectionKeys.list, {
234
+ cardType,
235
+ marketplaceConfig,
236
+ config
237
+ }],
238
+ queryFn: marketplaceConfig ? () => fetchListCollections({
239
+ marketplaceConfig,
240
+ config,
241
+ cardType
242
+ }) : skipToken,
243
+ enabled: Boolean(marketplaceConfig)
244
+ });
245
+ };
246
+
247
+ //#endregion
248
+ export { collectionBalanceDetailsQueryOptions, collectionDetailsQueryOptions, collectionQueryOptions, fetchCollection, fetchCollectionBalanceDetails, fetchCollectionDetails, fetchListCollectionActivities, fetchListCollections, getCollectionBalanceDetailsQueryKey, getCollectionDetailsQueryKey, getCollectionQueryKey, getListCollectionActivitiesQueryKey, getListCollectionsQueryKey, listCollectionActivitiesQueryOptions, listCollectionsOptions, listCollectionsQueryOptions };
249
+ //# sourceMappingURL=collections-CKummc-R.js.map