@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
@@ -1 +0,0 @@
1
- {"version":3,"file":"queries-EMA5CcwY.js","names":["apiArgs: GetTokenMetadataArgs","apiArgs: GetCountOfFilteredCollectiblesArgs","apiArgs","apiArgs: GetCountOfAllCollectiblesArgs","pageParams: Page | undefined","apiArgs: ListCollectibleActivitiesArgs","apiArgs: ListCollectiblesArgs","pageParams: Page","apiArgs: ListCollectiblesArgs","apiArgs: GetCollectionDetailArgs","pageParams: Page | undefined","apiArgs: ListCollectionActivitiesArgs","currency","apiArgs: GetCountOfListingsForCollectibleArgs","apiArgs: GetCountOfOffersForCollectibleArgs","apiArgs: GetFloorOrderArgs","apiArgs: GetCollectibleHighestOfferArgs","apiArgs: ListCollectibleListingsArgs","finalPage: Page | undefined","apiArgs: ListOffersForCollectibleArgs","apiArgs: GetCollectibleLowestListingArgs","apiArgs: CheckoutOptionsMarketplaceArgs","apiArgs: CheckoutOptionsSalesContractArgs","initialPage: PageParam","apiArgs: GetTokenSuppliesArgs"],"sources":["../src/react/queries/balanceOfCollectible.ts","../src/react/queries/collectible.ts","../src/react/queries/countOfCollectables.ts","../src/react/queries/listCollectibleActivities.ts","../src/react/queries/listBalances.ts","../src/react/queries/listCollectibles.ts","../src/react/queries/listCollectiblesPaginated.ts","../src/react/queries/collection.ts","../src/react/queries/collectionBalanceDetails.ts","../src/react/queries/collectionDetails.ts","../src/react/queries/listCollectionActivities.ts","../src/react/queries/listCollections.ts","../src/react/queries/currency.ts","../src/react/queries/marketCurrencies.ts","../src/react/queries/countListingsForCollectible.ts","../src/react/queries/countOffersForCollectible.ts","../src/react/queries/floorOrder.ts","../src/react/queries/highestOffer.ts","../src/react/queries/listListingsForCollectible.ts","../src/react/queries/listOffersForCollectible.ts","../src/react/queries/lowestListing.ts","../src/react/queries/checkoutOptions.ts","../src/react/queries/checkoutOptionsSalesContract.ts","../src/react/queries/convertPriceToUSD.ts","../src/react/queries/comparePrices.ts","../src/react/queries/countOfPrimarySaleItems.ts","../src/react/queries/filters.ts","../src/react/queries/getTokenRanges.ts","../src/react/queries/tokenBalances.ts","../src/react/queries/inventory.ts","../src/react/queries/listTokenMetadata.ts","../src/react/queries/primarySaleItems.ts","../src/react/queries/primarySaleItemsCount.ts","../src/react/queries/searchTokenMetadata.ts","../src/react/queries/tokenSupplies.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\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: [...collectableKeys.userBalances, 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 { getMetadataClient, type ValuesOptional } 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 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: [...collectableKeys.details, 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 { getMarketplaceClient, type ValuesOptional } 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 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: [...collectableKeys.counts, 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\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 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: [...collectableKeys.collectibleActivities, 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 type { GetTokenBalancesReturn, Page } from '@0xsequence/indexer';\nimport { infiniteQueryOptions } from '@tanstack/react-query';\nimport type { Address, Hex } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport { balanceQueries, getIndexerClient, LaosAPI } from '../_internal';\n\nexport type UseListBalancesArgs = {\n\tchainId: number;\n\taccountAddress?: Address;\n\tcontractAddress?: Address;\n\ttokenId?: string;\n\tincludeMetadata?: boolean;\n\tmetadataOptions?: {\n\t\tverifiedOnly?: boolean;\n\t\tunverifiedOnly?: boolean;\n\t\tincludeContracts?: Hex[];\n\t};\n\tincludeCollectionTokens?: boolean;\n\tpage?: Page;\n\tisLaos721?: boolean;\n\t//TODO: More options\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n};\n\nexport async function fetchBalances(\n\targs: UseListBalancesArgs,\n\tconfig: SdkConfig,\n\tpage: Page,\n): Promise<GetTokenBalancesReturn> {\n\tif (args.isLaos721 && args.accountAddress) {\n\t\tconst laosClient = new LaosAPI();\n\t\treturn laosClient.getTokenBalances({\n\t\t\tchainId: args.chainId.toString(),\n\t\t\taccountAddress: args.accountAddress,\n\t\t\tcontractAddress: args.contractAddress as Address,\n\t\t\tincludeMetadata: args.includeMetadata,\n\t\t\tpage: {\n\t\t\t\tsort: [\n\t\t\t\t\t{\n\t\t\t\t\t\tcolumn: 'CREATED_AT',\n\t\t\t\t\t\torder: 'DESC',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t});\n\t}\n\n\tconst indexerClient = getIndexerClient(args.chainId, config);\n\treturn indexerClient.getTokenBalances({\n\t\t...args,\n\t\ttokenID: args.tokenId,\n\t\tpage: page,\n\t});\n}\n\n/**\n * Creates a tanstack infinite query options object for the balances query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function listBalancesOptions(\n\targs: UseListBalancesArgs,\n\tconfig: SdkConfig,\n) {\n\treturn infiniteQueryOptions({\n\t\t...args.query,\n\t\tqueryKey: [...balanceQueries.lists, args, config],\n\t\tqueryFn: ({ pageParam }) => fetchBalances(args, config, pageParam),\n\t\tinitialPageParam: { page: 1, pageSize: 30 } as Page,\n\t\tgetNextPageParam: (lastPage) => lastPage.page.after,\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\tValuesOptional,\n} from '../_internal';\nimport {\n\ttype CollectibleOrder,\n\tcollectableKeys,\n\tgetMarketplaceClient,\n\tOrderSide,\n} from '../_internal';\nimport type { StandardInfiniteQueryOptions } from '../types/query';\nimport { fetchBalances, type UseListBalancesArgs } from './listBalances';\nimport { fetchMarketplaceConfig } from './marketplaceConfig';\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},\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 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: [...collectableKeys.lists, 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\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 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: [...collectableKeys.lists, 'paginated', 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","import { queryOptions } from '@tanstack/react-query';\nimport type { SdkConfig } from '../../types';\nimport { getMetadataClient, type ValuesOptional } from '../_internal';\nimport { collectionKeys } from '../_internal/api/query-keys';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchCollectionParams {\n\tchainId: number;\n\tcollectionAddress: string;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches collection information from the metadata API\n */\nexport async function fetchCollection(params: FetchCollectionParams) {\n\tconst { collectionAddress, chainId, config } = params;\n\n\tconst metadataClient = getMetadataClient(config);\n\n\tconst result = await metadataClient.getContractInfo({\n\t\tchainID: chainId.toString(),\n\t\tcontractAddress: collectionAddress,\n\t});\n\n\treturn result.contractInfo;\n}\n\nexport type CollectionQueryOptions = ValuesOptional<FetchCollectionParams> & {\n\tquery?: StandardQueryOptions;\n};\n\nexport function collectionQueryOptions(params: CollectionQueryOptions) {\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: [...collectionKeys.detail, params],\n\t\tqueryFn: () =>\n\t\t\tfetchCollection({\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}),\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import type { GetTokenBalancesDetailsReturn } from '@0xsequence/indexer';\nimport { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport { getIndexerClient, type ValuesOptional } from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface CollectionBalanceFilter {\n\taccountAddresses: Array<Address>;\n\tcontractWhitelist?: Array<Address>;\n\tomitNativeBalances: boolean;\n}\n\nexport interface FetchCollectionBalanceDetailsParams {\n\tchainId: number;\n\tfilter: CollectionBalanceFilter;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches detailed balance information for multiple accounts from the Indexer API\n */\nexport async function fetchCollectionBalanceDetails(\n\tparams: FetchCollectionBalanceDetailsParams,\n): Promise<GetTokenBalancesDetailsReturn> {\n\tconst { chainId, filter, config } = params;\n\n\tconst indexerClient = getIndexerClient(chainId, config);\n\n\tconst promises = filter.accountAddresses.map((accountAddress) =>\n\t\tindexerClient.getTokenBalancesDetails({\n\t\t\tfilter: {\n\t\t\t\taccountAddresses: [accountAddress],\n\t\t\t\tcontractWhitelist: filter.contractWhitelist,\n\t\t\t\tomitNativeBalances: filter.omitNativeBalances,\n\t\t\t},\n\t\t}),\n\t);\n\n\tconst responses = await Promise.all(promises);\n\tconst mergedResponse = responses.reduce<GetTokenBalancesDetailsReturn>(\n\t\t(acc, curr) => {\n\t\t\tif (!curr) return acc;\n\t\t\treturn {\n\t\t\t\tpage: curr.page,\n\t\t\t\tnativeBalances: [\n\t\t\t\t\t...(acc.nativeBalances || []),\n\t\t\t\t\t...(curr.nativeBalances || []),\n\t\t\t\t],\n\t\t\t\tbalances: [...(acc.balances || []), ...(curr.balances || [])],\n\t\t\t};\n\t\t},\n\t\t{ page: {}, nativeBalances: [], balances: [] },\n\t);\n\n\tif (!mergedResponse) {\n\t\tthrow new Error('Failed to fetch collection balance details');\n\t}\n\n\treturn mergedResponse;\n}\n\nexport type CollectionBalanceDetailsQueryOptions =\n\tValuesOptional<FetchCollectionBalanceDetailsParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function collectionBalanceDetailsQueryOptions(\n\tparams: CollectionBalanceDetailsQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.chainId &&\n\t\t\tparams.filter?.accountAddresses?.length &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: ['balances', 'collectionBalanceDetails', params],\n\t\tqueryFn: () =>\n\t\t\tfetchCollectionBalanceDetails({\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\tfilter: params.filter!,\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 { getMarketplaceClient, type ValuesOptional } from '../_internal';\nimport type { GetCollectionDetailArgs } from '../_internal/api/marketplace.gen';\nimport { collectionKeys } from '../_internal/api/query-keys';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchCollectionDetailsParams\n\textends Omit<GetCollectionDetailArgs, 'chainId' | 'contractAddress'> {\n\tchainId: number;\n\tcollectionAddress: string;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches collection details from the marketplace API\n */\nexport async function fetchCollectionDetails(\n\tparams: FetchCollectionDetailsParams,\n) {\n\tconst { collectionAddress, chainId, config, ...additionalApiParams } = params;\n\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst apiArgs: GetCollectionDetailArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\t...additionalApiParams,\n\t};\n\n\tconst result = await marketplaceClient.getCollectionDetail(apiArgs);\n\treturn result.collection;\n}\n\nexport type CollectionDetailsQueryOptions =\n\tValuesOptional<FetchCollectionDetailsParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function collectionDetailsQueryOptions(\n\tparams: CollectionDetailsQueryOptions,\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: [...collectionKeys.detail, params],\n\t\tqueryFn: () =>\n\t\t\tfetchCollectionDetails({\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}),\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\tListCollectionActivitiesArgs,\n\tListCollectionActivitiesReturn,\n\tSortBy,\n\tValuesOptional,\n} from '../_internal';\nimport { getMarketplaceClient } from '../_internal';\nimport { collectionKeys } from '../_internal/api';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchListCollectionActivitiesParams\n\textends Omit<\n\t\tListCollectionActivitiesArgs,\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 collection activities from the Marketplace API\n */\nexport async function fetchListCollectionActivities(\n\tparams: FetchListCollectionActivitiesParams,\n): Promise<ListCollectionActivitiesReturn> {\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: ListCollectionActivitiesArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\tpage: pageParams,\n\t\t...additionalApiParams,\n\t};\n\n\treturn await marketplaceClient.listCollectionActivities(apiArgs);\n}\n\nexport type ListCollectionActivitiesQueryOptions =\n\tValuesOptional<FetchListCollectionActivitiesParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function listCollectionActivitiesQueryOptions(\n\tparams: ListCollectionActivitiesQueryOptions,\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: [...collectionKeys.collectionActivities, params],\n\t\tqueryFn: () =>\n\t\t\tfetchListCollectionActivities({\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\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 type { ContractInfo } from '@0xsequence/metadata';\nimport { queryOptions, skipToken } from '@tanstack/react-query';\nimport type { CardType, SdkConfig } from '../../types';\nimport type {\n\tMarketCollection,\n\tMarketplaceConfig,\n\tShopCollection,\n} from '../../types/new-marketplace-types';\nimport { compareAddress } from '../../utils';\nimport {\n\tcollectionKeys,\n\tgetMetadataClient,\n\ttype ValuesOptional,\n} from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\n\nconst allCollections = (marketplaceConfig: MarketplaceConfig) => {\n\treturn [\n\t\t...marketplaceConfig.market.collections,\n\t\t...marketplaceConfig.shop.collections,\n\t];\n};\n\nexport interface FetchListCollectionsParams {\n\tcardType?: CardType;\n\tmarketplaceConfig: MarketplaceConfig;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches collections from the metadata API with marketplace config filtering\n */\nexport async function fetchListCollections(params: FetchListCollectionsParams) {\n\tconst { cardType, marketplaceConfig, config } = params;\n\tconst metadataClient = getMetadataClient(config);\n\n\tlet collections = allCollections(marketplaceConfig);\n\n\tif (!collections?.length) {\n\t\treturn [];\n\t}\n\n\tif (cardType) {\n\t\tcollections = collections.filter(\n\t\t\t(collection) => collection.cardType === cardType,\n\t\t);\n\t}\n\n\t// Group collections by chainId\n\tconst collectionsByChain = collections.reduce<Record<string, string[]>>(\n\t\t(acc, curr) => {\n\t\t\tconst { chainId, itemsAddress } = curr;\n\t\t\tif (!acc[chainId]) {\n\t\t\t\tacc[chainId] = [];\n\t\t\t}\n\t\t\tacc[chainId].push(itemsAddress);\n\t\t\treturn acc;\n\t\t},\n\t\t{},\n\t);\n\n\t// Fetch collections for each chain\n\tconst promises = Object.entries(collectionsByChain).map(\n\t\t([chainId, addresses]) =>\n\t\t\tmetadataClient\n\t\t\t\t.getContractInfoBatch({\n\t\t\t\t\tchainID: chainId,\n\t\t\t\t\tcontractAddresses: addresses,\n\t\t\t\t})\n\t\t\t\t.then((resp) => Object.values(resp.contractInfoMap)),\n\t);\n\n\tconst settled = await Promise.allSettled(promises);\n\n\t// If all promises failed, throw the first error\n\tif (settled.every((result) => result.status === 'rejected')) {\n\t\tconst firstError = settled[0] as PromiseRejectedResult;\n\t\tthrow firstError.reason;\n\t}\n\n\tconst results = settled\n\t\t.filter(\n\t\t\t(r): r is PromiseFulfilledResult<ContractInfo[]> =>\n\t\t\t\tr.status === 'fulfilled',\n\t\t)\n\t\t.flatMap((r) => r.value);\n\n\tconst collectionsWithMetadata = collections\n\t\t.map((collection) => {\n\t\t\tconst metadata = results.find((result) =>\n\t\t\t\tcompareAddress(result.address, collection.itemsAddress),\n\t\t\t);\n\t\t\treturn { collection, metadata };\n\t\t})\n\t\t.filter(\n\t\t\t(\n\t\t\t\titem,\n\t\t\t): item is {\n\t\t\t\tcollection: MarketCollection | ShopCollection;\n\t\t\t\tmetadata: ContractInfo;\n\t\t\t} => item.metadata !== undefined,\n\t\t)\n\t\t.map(({ collection, metadata }) => ({\n\t\t\t...collection,\n\t\t\t...metadata,\n\t\t}));\n\n\treturn collectionsWithMetadata;\n}\n\nexport type ListCollectionsQueryOptions =\n\tValuesOptional<FetchListCollectionsParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function listCollectionsQueryOptions(\n\tparams: ListCollectionsQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.marketplaceConfig &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: [...collectionKeys.list, params],\n\t\tqueryFn: enabled\n\t\t\t? () =>\n\t\t\t\t\tfetchListCollections({\n\t\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\t\tmarketplaceConfig: params.marketplaceConfig!,\n\t\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\t\tconfig: params.config!,\n\t\t\t\t\t\tcardType: params.cardType,\n\t\t\t\t\t})\n\t\t\t: skipToken,\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n\n// Keep old function for backward compatibility during migration\nexport const listCollectionsOptions = ({\n\tcardType,\n\tmarketplaceConfig,\n\tconfig,\n}: {\n\tcardType?: CardType;\n\tmarketplaceConfig: MarketplaceConfig | undefined;\n\tconfig: SdkConfig;\n}) => {\n\treturn queryOptions({\n\t\tqueryKey: [...collectionKeys.list, { cardType, marketplaceConfig, config }],\n\t\tqueryFn: marketplaceConfig\n\t\t\t? () =>\n\t\t\t\t\tfetchListCollections({\n\t\t\t\t\t\tmarketplaceConfig,\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tcardType,\n\t\t\t\t\t})\n\t\t\t: skipToken,\n\t\tenabled: Boolean(marketplaceConfig),\n\t});\n};\n","import { queryOptions, skipToken } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport {\n\ttype Currency,\n\tcurrencyKeys,\n\tgetMarketplaceClient,\n\tgetQueryClient,\n\ttype ValuesOptional,\n} from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchCurrencyParams {\n\tchainId: number;\n\tcurrencyAddress: Address;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches currency details from the marketplace API\n */\nexport async function fetchCurrency(\n\tparams: FetchCurrencyParams,\n): Promise<Currency | undefined> {\n\tconst { chainId, currencyAddress, config } = params;\n\tconst queryClient = getQueryClient();\n\n\tlet currencies = queryClient.getQueryData([...currencyKeys.lists, chainId]) as\n\t\t| Currency[]\n\t\t| undefined;\n\n\tif (!currencies) {\n\t\tconst marketplaceClient = getMarketplaceClient(config);\n\t\tcurrencies = await marketplaceClient\n\t\t\t.listCurrencies({ chainId: String(chainId) })\n\t\t\t.then((resp) => resp.currencies);\n\t}\n\n\tif (!currencies?.length) {\n\t\tthrow new Error('No currencies returned');\n\t}\n\tconst currency = currencies.find(\n\t\t(currency) =>\n\t\t\tcurrency.contractAddress.toLowerCase() === currencyAddress.toLowerCase(),\n\t);\n\n\tif (!currency) {\n\t\tthrow new Error('Currency not found');\n\t}\n\n\treturn currency;\n}\n\nexport type CurrencyQueryOptions = ValuesOptional<FetchCurrencyParams> & {\n\tquery?: StandardQueryOptions;\n};\n\nexport function currencyQueryOptions(params: CurrencyQueryOptions) {\n\tconst enabled = Boolean(\n\t\tparams.chainId &&\n\t\t\tparams.currencyAddress &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: [...currencyKeys.details, params],\n\t\tqueryFn:\n\t\t\tparams.chainId && params.currencyAddress\n\t\t\t\t? () =>\n\t\t\t\t\t\tfetchCurrency({\n\t\t\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\t\t\tchainId: params.chainId!,\n\t\t\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\t\t\tcurrencyAddress: params.currencyAddress!,\n\t\t\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\t\t\tconfig: params.config!,\n\t\t\t\t\t\t})\n\t\t\t\t: skipToken,\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport { type Address, zeroAddress } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport { compareAddress } from '../../utils';\nimport {\n\tcurrencyKeys,\n\tgetMarketplaceClient,\n\tgetQueryClient,\n\ttype ValuesOptional,\n} from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\nimport { marketplaceConfigOptions } from './marketplaceConfig';\n\nexport interface FetchMarketCurrenciesParams {\n\tchainId: number;\n\tincludeNativeCurrency?: boolean;\n\tcollectionAddress?: Address;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches supported currencies for a marketplace\n */\nexport async function fetchMarketCurrencies(\n\tparams: FetchMarketCurrenciesParams,\n) {\n\tconst { chainId, includeNativeCurrency, collectionAddress, config } = params;\n\tconst includeNativeCurrencyOption = includeNativeCurrency ?? true;\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tlet currencies = await marketplaceClient\n\t\t.listCurrencies({\n\t\t\tchainId: String(chainId),\n\t\t})\n\t\t.then((resp) =>\n\t\t\tresp.currencies.map((currency) => ({\n\t\t\t\t...currency,\n\t\t\t\tcontractAddress: currency.contractAddress || zeroAddress,\n\t\t\t})),\n\t\t);\n\n\tif (collectionAddress) {\n\t\tconst queryClient = getQueryClient();\n\t\tconst marketplaceConfig = await queryClient.fetchQuery(\n\t\t\tmarketplaceConfigOptions(config),\n\t\t);\n\n\t\tconst currenciesOptions = marketplaceConfig.market.collections.find(\n\t\t\t(collection) =>\n\t\t\t\tcompareAddress(collection.itemsAddress, collectionAddress),\n\t\t)?.currencyOptions;\n\n\t\t// Filter currencies based on collection currency options\n\t\tif (currenciesOptions) {\n\t\t\tcurrencies = currencies.filter((currency) =>\n\t\t\t\tcurrenciesOptions.includes(currency.contractAddress),\n\t\t\t);\n\t\t}\n\t}\n\n\tif (!includeNativeCurrencyOption) {\n\t\tcurrencies = currencies.filter((currency) => !currency.nativeCurrency);\n\t}\n\n\treturn currencies;\n}\n\nexport type MarketCurrenciesQueryOptions =\n\tValuesOptional<FetchMarketCurrenciesParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function marketCurrenciesQueryOptions(\n\tparams: MarketCurrenciesQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.chainId && params.config && (params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: [...currencyKeys.lists, params],\n\t\tqueryFn: () =>\n\t\t\tfetchMarketCurrencies({\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\tconfig: params.config!,\n\t\t\t\tincludeNativeCurrency: params.includeNativeCurrency,\n\t\t\t\tcollectionAddress: params.collectionAddress,\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 { getMarketplaceClient, type ValuesOptional } from '../_internal';\nimport type {\n\tGetCountOfListingsForCollectibleArgs,\n\tOrderFilter,\n} from '../_internal/api/marketplace.gen';\nimport { collectableKeys } from '../_internal/api/query-keys';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchCountListingsForCollectibleParams {\n\tchainId: number;\n\tcollectionAddress: string;\n\tcollectibleId: string;\n\tconfig: SdkConfig;\n\tfilter?: OrderFilter;\n}\n\n/**\n * Fetches count of listings for a collectible from the marketplace API\n */\nexport async function fetchCountListingsForCollectible(\n\tparams: FetchCountListingsForCollectibleParams,\n) {\n\tconst { collectionAddress, chainId, collectibleId, config, filter } = params;\n\n\tconst client = getMarketplaceClient(config);\n\n\tconst apiArgs: GetCountOfListingsForCollectibleArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\ttokenId: collectibleId,\n\t\tfilter,\n\t};\n\n\tconst result = await client.getCountOfListingsForCollectible(apiArgs);\n\treturn result.count;\n}\n\nexport type CountListingsForCollectibleQueryOptions =\n\tValuesOptional<FetchCountListingsForCollectibleParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function countListingsForCollectibleQueryOptions(\n\tparams: CountListingsForCollectibleQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.collectibleId &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: [...collectableKeys.listingsCount, params],\n\t\tqueryFn: () =>\n\t\t\tfetchCountListingsForCollectible({\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\tfilter: params.filter,\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 { getMarketplaceClient, type ValuesOptional } from '../_internal';\nimport type {\n\tGetCountOfOffersForCollectibleArgs,\n\tOrderFilter,\n} from '../_internal/api/marketplace.gen';\nimport { collectableKeys } from '../_internal/api/query-keys';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchCountOffersForCollectibleParams {\n\tchainId: number;\n\tcollectionAddress: string;\n\tcollectibleId: string;\n\tconfig: SdkConfig;\n\tfilter?: OrderFilter;\n}\n\n/**\n * Fetches count of offers for a collectible from the marketplace API\n */\nexport async function fetchCountOffersForCollectible(\n\tparams: FetchCountOffersForCollectibleParams,\n) {\n\tconst { collectionAddress, chainId, collectibleId, config, filter } = params;\n\n\tconst client = getMarketplaceClient(config);\n\n\tconst apiArgs: GetCountOfOffersForCollectibleArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\ttokenId: collectibleId,\n\t\tfilter,\n\t};\n\n\tconst result = await client.getCountOfOffersForCollectible(apiArgs);\n\treturn result.count;\n}\n\nexport type CountOffersForCollectibleQueryOptions =\n\tValuesOptional<FetchCountOffersForCollectibleParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function countOffersForCollectibleQueryOptions(\n\tparams: CountOffersForCollectibleQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.collectibleId &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: [...collectableKeys.offersCount, params],\n\t\tqueryFn: () =>\n\t\t\tfetchCountOffersForCollectible({\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\tfilter: params.filter,\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\tcollectableKeys,\n\ttype GetFloorOrderArgs,\n\tgetMarketplaceClient,\n\ttype ValuesOptional,\n} from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchFloorOrderParams\n\textends Omit<GetFloorOrderArgs, 'contractAddress' | 'chainId'> {\n\tcollectionAddress: string;\n\tchainId: number;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches the floor order for a collection from the marketplace API\n */\nexport async function fetchFloorOrder(params: FetchFloorOrderParams) {\n\tconst { collectionAddress, chainId, config, ...additionalApiParams } = params;\n\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst apiArgs: GetFloorOrderArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\t...additionalApiParams,\n\t};\n\n\tconst result = await marketplaceClient.getFloorOrder(apiArgs);\n\treturn result.collectible;\n}\n\nexport type FloorOrderQueryOptions = ValuesOptional<FetchFloorOrderParams> & {\n\tquery?: StandardQueryOptions;\n};\n\nexport function floorOrderQueryOptions(params: FloorOrderQueryOptions) {\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: [...collectableKeys.floorOrders, params],\n\t\tqueryFn: () =>\n\t\t\tfetchFloorOrder({\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...((params.filter && { filter: params.filter }) || {}),\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\tcollectableKeys,\n\ttype GetCollectibleHighestOfferArgs,\n\tgetMarketplaceClient,\n\ttype ValuesOptional,\n} from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchHighestOfferParams\n\textends Omit<GetCollectibleHighestOfferArgs, 'contractAddress' | 'chainId'> {\n\tcollectionAddress: string;\n\tchainId: number;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches the highest offer for a collectible from the marketplace API\n */\nexport async function fetchHighestOffer(params: FetchHighestOfferParams) {\n\tconst { collectionAddress, chainId, config, ...additionalApiParams } = params;\n\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst apiArgs: GetCollectibleHighestOfferArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\t...additionalApiParams,\n\t};\n\n\tconst result = await marketplaceClient.getCollectibleHighestOffer(apiArgs);\n\treturn result.order ?? null;\n}\n\nexport type HighestOfferQueryOptions =\n\tValuesOptional<FetchHighestOfferParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function highestOfferQueryOptions(params: HighestOfferQueryOptions) {\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: [...collectableKeys.highestOffers, params],\n\t\tqueryFn: () =>\n\t\t\tfetchHighestOffer({\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\ttokenId: params.tokenId!,\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 { Address } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport type {\n\tListCollectibleListingsArgs,\n\tListCollectibleListingsReturn,\n\tValuesOptional,\n} from '../_internal';\nimport { collectableKeys, getMarketplaceClient } from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchListListingsForCollectibleParams\n\textends Omit<\n\t\tListCollectibleListingsArgs,\n\t\t'chainId' | 'contractAddress' | 'tokenId'\n\t> {\n\tchainId: number;\n\tcollectionAddress: Address;\n\tcollectibleId: string;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches listings for a specific collectible from the Marketplace API\n */\nexport async function fetchListListingsForCollectible(\n\tparams: FetchListListingsForCollectibleParams,\n): Promise<ListCollectibleListingsReturn> {\n\tconst {\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tcollectibleId,\n\t\tconfig,\n\t\t...additionalApiParams\n\t} = params;\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst apiArgs: ListCollectibleListingsArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\ttokenId: collectibleId,\n\t\t...additionalApiParams,\n\t};\n\n\treturn await marketplaceClient.listCollectibleListings(apiArgs);\n}\n\nexport type ListListingsForCollectibleQueryOptions =\n\tValuesOptional<FetchListListingsForCollectibleParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function listListingsForCollectibleQueryOptions(\n\tparams: ListListingsForCollectibleQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.collectibleId &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: [...collectableKeys.listings, params],\n\t\tqueryFn: () =>\n\t\t\tfetchListListingsForCollectible({\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\tfilter: params.filter,\n\t\t\t\tpage: params.page,\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 { SdkConfig } from '../../types';\nimport type {\n\tListCollectibleOffersReturn,\n\tListOffersForCollectibleArgs,\n\tPage,\n\tSortBy,\n\tValuesOptional,\n} from '../_internal';\nimport { collectableKeys, getMarketplaceClient } from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchListOffersForCollectibleParams\n\textends Omit<\n\t\tListOffersForCollectibleArgs,\n\t\t'chainId' | 'contractAddress' | 'tokenId'\n\t> {\n\tchainId: number;\n\tcollectionAddress: Address;\n\tcollectibleId: string;\n\tconfig: SdkConfig;\n\tsort?: Array<SortBy>;\n}\n\n/**\n * Fetches offers for a specific collectible from the Marketplace API\n */\nexport async function fetchListOffersForCollectible(\n\tparams: FetchListOffersForCollectibleParams,\n): Promise<ListCollectibleOffersReturn> {\n\tconst {\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tcollectibleId,\n\t\tconfig,\n\t\tsort,\n\t\tpage,\n\t\t...additionalApiParams\n\t} = params;\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst finalSort = sort || (page && 'sort' in page ? page.sort : undefined);\n\n\tlet finalPage: Page | undefined;\n\tif (page || finalSort) {\n\t\tfinalPage = {\n\t\t\tpage: page?.page ?? 1,\n\t\t\tpageSize: page?.pageSize ?? 20,\n\t\t\t...(page?.more && { more: page.more }),\n\t\t\t...(finalSort && { sort: finalSort }),\n\t\t} as Page;\n\t}\n\n\tconst apiArgs: ListOffersForCollectibleArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\ttokenId: collectibleId,\n\t\tpage: finalPage,\n\t\t...additionalApiParams,\n\t};\n\n\treturn await marketplaceClient.listCollectibleOffers(apiArgs);\n}\n\nexport type ListOffersForCollectibleQueryOptions =\n\tValuesOptional<FetchListOffersForCollectibleParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function listOffersForCollectibleQueryOptions(\n\tparams: ListOffersForCollectibleQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.collectibleId &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: [...collectableKeys.offers, params],\n\t\tqueryFn: () =>\n\t\t\tfetchListOffersForCollectible({\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\tfilter: params.filter,\n\t\t\t\tpage: params.page,\n\t\t\t\tsort: params.sort,\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\tcollectableKeys,\n\ttype GetCollectibleLowestListingArgs,\n\ttype GetCollectibleLowestListingReturn,\n\tgetMarketplaceClient,\n\ttype ValuesOptional,\n} from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchLowestListingParams\n\textends Omit<GetCollectibleLowestListingArgs, 'contractAddress' | 'chainId'> {\n\tcollectionAddress: string;\n\tchainId: number;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches the lowest listing for a collectible from the marketplace API\n */\nexport async function fetchLowestListing(\n\tparams: FetchLowestListingParams,\n): Promise<GetCollectibleLowestListingReturn['order'] | null> {\n\tconst { collectionAddress, chainId, config, ...additionalApiParams } = params;\n\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst apiArgs: GetCollectibleLowestListingArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\t...additionalApiParams,\n\t};\n\n\tconst result = await marketplaceClient.getCollectibleLowestListing(apiArgs);\n\treturn result.order || null;\n}\n\nexport type LowestListingQueryOptions =\n\tValuesOptional<FetchLowestListingParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function lowestListingQueryOptions(params: LowestListingQueryOptions) {\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: [...collectableKeys.lowestListings, params],\n\t\tqueryFn: () =>\n\t\t\tfetchLowestListing({\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\ttokenId: params.tokenId!,\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 { Address } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport type { MarketplaceKind } from '../_internal';\nimport { getMarketplaceClient, type ValuesOptional } from '../_internal';\nimport type {\n\tCheckoutOptionsMarketplaceArgs,\n\tCheckoutOptionsMarketplaceReturn,\n} from '../_internal/api/marketplace.gen';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchCheckoutOptionsParams\n\textends Omit<\n\t\tCheckoutOptionsMarketplaceArgs,\n\t\t'chainId' | 'wallet' | 'orders'\n\t> {\n\tchainId: number;\n\twalletAddress: Address;\n\torders: Array<{\n\t\tcollectionAddress: string;\n\t\torderId: string;\n\t\tmarketplace: MarketplaceKind;\n\t}>;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches checkout options from the Marketplace API\n */\nexport async function fetchCheckoutOptions(\n\tparams: FetchCheckoutOptionsParams,\n): Promise<CheckoutOptionsMarketplaceReturn> {\n\tconst { chainId, walletAddress, orders, config, additionalFee } = params;\n\n\tconst client = getMarketplaceClient(config);\n\n\tconst apiArgs: CheckoutOptionsMarketplaceArgs = {\n\t\tchainId: String(chainId),\n\t\twallet: walletAddress,\n\t\torders: orders.map((order) => ({\n\t\t\tcontractAddress: order.collectionAddress,\n\t\t\torderId: order.orderId,\n\t\t\tmarketplace: order.marketplace,\n\t\t})),\n\t\tadditionalFee: additionalFee ?? 0,\n\t};\n\n\tconst result = await client.checkoutOptionsMarketplace(apiArgs);\n\treturn result;\n}\n\nexport type CheckoutOptionsQueryOptions =\n\tValuesOptional<FetchCheckoutOptionsParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function checkoutOptionsQueryOptions(\n\tparams: CheckoutOptionsQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.chainId &&\n\t\t\tparams.walletAddress &&\n\t\t\tparams.orders?.length &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: ['checkout', 'options', params],\n\t\tqueryFn: () =>\n\t\t\tfetchCheckoutOptions({\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\twalletAddress: params.walletAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\torders: params.orders!,\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\tadditionalFee: params.additionalFee ?? 0,\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 { SdkConfig } from '../../types';\nimport { getMarketplaceClient, type ValuesOptional } from '../_internal';\nimport type {\n\tCheckoutOptionsItem,\n\tCheckoutOptionsSalesContractArgs,\n\tCheckoutOptionsSalesContractReturn,\n} from '../_internal/api/marketplace.gen';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchCheckoutOptionsSalesContractParams\n\textends Omit<CheckoutOptionsSalesContractArgs, 'chainId' | 'wallet'> {\n\tchainId: number;\n\twalletAddress: Address;\n\tcontractAddress: string;\n\tcollectionAddress: string;\n\titems: Array<CheckoutOptionsItem>;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches checkout options for sales contract from the Marketplace API\n */\nexport async function fetchCheckoutOptionsSalesContract(\n\tparams: FetchCheckoutOptionsSalesContractParams,\n): Promise<CheckoutOptionsSalesContractReturn> {\n\tconst {\n\t\tchainId,\n\t\twalletAddress,\n\t\tcontractAddress,\n\t\tcollectionAddress,\n\t\titems,\n\t\tconfig,\n\t} = params;\n\n\tconst client = getMarketplaceClient(config);\n\n\tconst apiArgs: CheckoutOptionsSalesContractArgs = {\n\t\tchainId: String(chainId),\n\t\twallet: walletAddress,\n\t\tcontractAddress,\n\t\tcollectionAddress,\n\t\titems,\n\t};\n\n\tconst result = await client.checkoutOptionsSalesContract(apiArgs);\n\treturn result;\n}\n\nexport type CheckoutOptionsSalesContractQueryOptions =\n\tValuesOptional<FetchCheckoutOptionsSalesContractParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function checkoutOptionsSalesContractQueryOptions(\n\tparams: CheckoutOptionsSalesContractQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.chainId &&\n\t\t\tparams.walletAddress &&\n\t\t\tparams.contractAddress &&\n\t\t\tparams.collectionAddress &&\n\t\t\tparams.items?.length &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: ['checkout', 'options', 'salesContract', params],\n\t\tqueryFn: () =>\n\t\t\tfetchCheckoutOptionsSalesContract({\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\twalletAddress: params.walletAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcontractAddress: params.contractAddress!,\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\titems: params.items!,\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 Address, formatUnits } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport {\n\ttype Currency,\n\tgetQueryClient,\n\ttype ValuesOptional,\n} from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\nimport { marketCurrenciesQueryOptions } from './marketCurrencies';\n\nexport interface FetchConvertPriceToUSDParams {\n\tchainId: number;\n\tcurrencyAddress: Address;\n\tamountRaw: string;\n\tconfig: SdkConfig;\n}\n\nexport interface ConvertPriceToUSDReturn {\n\tusdAmount: number;\n\tusdAmountFormatted: string;\n}\n\n/**\n * Converts a price amount from a specific currency to USD using exchange rates\n */\nexport async function fetchConvertPriceToUSD(\n\tparams: FetchConvertPriceToUSDParams,\n): Promise<ConvertPriceToUSDReturn> {\n\tconst { chainId, currencyAddress, amountRaw, config } = params;\n\n\tconst queryClient = getQueryClient();\n\tconst currencies = (await queryClient.fetchQuery(\n\t\tmarketCurrenciesQueryOptions({\n\t\t\tchainId,\n\t\t\tconfig,\n\t\t}),\n\t)) as Currency[];\n\n\tconst currencyDetails = currencies.find(\n\t\t(c: Currency) =>\n\t\t\tc.contractAddress.toLowerCase() === currencyAddress.toLowerCase(),\n\t);\n\n\tif (!currencyDetails) {\n\t\tthrow new Error('Currency not found');\n\t}\n\n\tconst amountDecimal = Number(\n\t\tformatUnits(BigInt(amountRaw), currencyDetails.decimals),\n\t);\n\tconst usdAmount = amountDecimal * currencyDetails.exchangeRate;\n\n\treturn {\n\t\tusdAmount,\n\t\tusdAmountFormatted: usdAmount.toFixed(2),\n\t};\n}\n\nexport type ConvertPriceToUSDQueryOptions =\n\tValuesOptional<FetchConvertPriceToUSDParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function convertPriceToUSDQueryOptions(\n\tparams: ConvertPriceToUSDQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.chainId &&\n\t\t\tparams.currencyAddress &&\n\t\t\tparams.amountRaw &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: ['currency', 'convertPriceToUSD', params],\n\t\tqueryFn: () =>\n\t\t\tfetchConvertPriceToUSD({\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\tcurrencyAddress: params.currencyAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tamountRaw: params.amountRaw!,\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 { Address } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport type { ValuesOptional } from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\nimport { fetchConvertPriceToUSD } from './convertPriceToUSD';\n\nexport interface FetchComparePricesParams {\n\tchainId: number;\n\t// First price details\n\tpriceAmountRaw: string;\n\tpriceCurrencyAddress: Address;\n\t// Second price details (to compare against)\n\tcompareToPriceAmountRaw: string;\n\tcompareToPriceCurrencyAddress: Address;\n\tconfig: SdkConfig;\n}\n\nexport type ComparePricesReturn = {\n\tpercentageDifference: number;\n\tpercentageDifferenceFormatted: string;\n\tstatus: 'above' | 'same' | 'below';\n};\n\n/**\n * Compares prices between different currencies by converting both to USD\n */\nexport async function fetchComparePrices(\n\tparams: FetchComparePricesParams,\n): Promise<ComparePricesReturn> {\n\tconst {\n\t\tchainId,\n\t\tpriceAmountRaw,\n\t\tpriceCurrencyAddress,\n\t\tcompareToPriceAmountRaw,\n\t\tcompareToPriceCurrencyAddress,\n\t\tconfig,\n\t} = params;\n\n\tconst [priceUSD, compareToPriceUSD] = await Promise.all([\n\t\tfetchConvertPriceToUSD({\n\t\t\tchainId,\n\t\t\tcurrencyAddress: priceCurrencyAddress,\n\t\t\tamountRaw: priceAmountRaw,\n\t\t\tconfig,\n\t\t}),\n\t\tfetchConvertPriceToUSD({\n\t\t\tchainId,\n\t\t\tcurrencyAddress: compareToPriceCurrencyAddress,\n\t\t\tamountRaw: compareToPriceAmountRaw,\n\t\t\tconfig,\n\t\t}),\n\t]);\n\n\tconst difference = priceUSD.usdAmount - compareToPriceUSD.usdAmount;\n\n\tif (compareToPriceUSD.usdAmount === 0) {\n\t\tthrow new Error('Cannot compare to zero price');\n\t}\n\n\tconst percentageDifference = (difference / compareToPriceUSD.usdAmount) * 100;\n\tconst isAbove = percentageDifference > 0;\n\tconst isSame = percentageDifference === 0;\n\n\treturn {\n\t\tpercentageDifference,\n\t\tpercentageDifferenceFormatted: Math.abs(percentageDifference).toFixed(2),\n\t\tstatus: isAbove ? 'above' : isSame ? 'same' : 'below',\n\t};\n}\n\nexport type ComparePricesQueryOptions =\n\tValuesOptional<FetchComparePricesParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function comparePricesQueryOptions(params: ComparePricesQueryOptions) {\n\tconst enabled = Boolean(\n\t\tparams.chainId &&\n\t\t\tparams.priceAmountRaw &&\n\t\t\tparams.priceCurrencyAddress &&\n\t\t\tparams.compareToPriceAmountRaw &&\n\t\t\tparams.compareToPriceCurrencyAddress &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: ['currency', 'conversion', 'compare', params],\n\t\tqueryFn: () =>\n\t\t\tfetchComparePrices({\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\tpriceAmountRaw: params.priceAmountRaw!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tpriceCurrencyAddress: params.priceCurrencyAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcompareToPriceAmountRaw: params.compareToPriceAmountRaw!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcompareToPriceCurrencyAddress: params.compareToPriceCurrencyAddress!,\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 { Address } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport {\n\ttype GetCountOfPrimarySaleItemsArgs,\n\tgetMarketplaceClient,\n\ttype PrimarySaleItemsFilter,\n} from '../_internal';\n\nexport interface UseCountOfPrimarySaleItemsArgs\n\textends Omit<\n\t\tGetCountOfPrimarySaleItemsArgs,\n\t\t'chainId' | 'primarySaleContractAddress'\n\t> {\n\tchainId: number;\n\tprimarySaleContractAddress: Address;\n\tfilter?: PrimarySaleItemsFilter;\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n}\n\nexport async function fetchCountOfPrimarySaleItems(\n\targs: UseCountOfPrimarySaleItemsArgs,\n\tconfig: SdkConfig,\n) {\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst { chainId, primarySaleContractAddress, filter } = args;\n\tconst data = await marketplaceClient.getCountOfPrimarySaleItems({\n\t\tchainId: String(chainId),\n\t\tprimarySaleContractAddress,\n\t\tfilter,\n\t});\n\n\treturn data.count;\n}\n\nexport function countOfPrimarySaleItemsOptions(\n\targs: UseCountOfPrimarySaleItemsArgs,\n\tconfig: SdkConfig,\n) {\n\treturn queryOptions({\n\t\tenabled: args.query?.enabled ?? true,\n\t\tqueryKey: ['countOfPrimarySaleItems', args],\n\t\tqueryFn: () => fetchCountOfPrimarySaleItems(args, config),\n\t});\n}\n","import type { PropertyFilter } from '@0xsequence/metadata';\nimport { queryOptions } from '@tanstack/react-query';\nimport { FilterCondition, type SdkConfig } from '../../types';\nimport { compareAddress } from '../../utils';\nimport {\n\tgetMetadataClient,\n\tgetQueryClient,\n\ttype ValuesOptional,\n} from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\nimport { marketplaceConfigOptions } from './marketplaceConfig';\n\nexport interface FetchFiltersParams {\n\tchainId: number;\n\tcollectionAddress: string;\n\tshowAllFilters?: boolean;\n\texcludePropertyValues?: boolean;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches collection filters from the Metadata API with optional marketplace filtering\n */\nexport async function fetchFilters(\n\tparams: FetchFiltersParams,\n): Promise<PropertyFilter[]> {\n\tconst {\n\t\tchainId,\n\t\tcollectionAddress,\n\t\tshowAllFilters,\n\t\texcludePropertyValues,\n\t\tconfig,\n\t} = params;\n\n\tconst metadataClient = getMetadataClient(config);\n\n\tconst filters = await metadataClient\n\t\t.getTokenMetadataPropertyFilters({\n\t\t\tchainID: chainId.toString(),\n\t\t\tcontractAddress: collectionAddress,\n\t\t\texcludeProperties: [],\n\t\t\texcludePropertyValues,\n\t\t})\n\t\t.then((resp) => resp.filters);\n\n\tif (showAllFilters) return filters;\n\n\tconst queryClient = getQueryClient();\n\tconst marketplaceConfig = await queryClient.fetchQuery(\n\t\tmarketplaceConfigOptions(config),\n\t);\n\tconst collectionFilters = marketplaceConfig.market.collections.find((c) =>\n\t\tcompareAddress(c.itemsAddress, collectionAddress),\n\t)?.filterSettings;\n\n\tconst filterOrder = collectionFilters?.filterOrder;\n\tconst exclusions = collectionFilters?.exclusions;\n\tlet sortedFilters = filters;\n\n\tif (filterOrder) {\n\t\tsortedFilters = filters.toSorted((a, b) => {\n\t\t\tconst aIndex =\n\t\t\t\tfilterOrder.indexOf(a.name) > -1\n\t\t\t\t\t? filterOrder.indexOf(a.name)\n\t\t\t\t\t: filterOrder.length;\n\t\t\tconst bIndex =\n\t\t\t\tfilterOrder.indexOf(b.name) > -1\n\t\t\t\t\t? filterOrder.indexOf(b.name)\n\t\t\t\t\t: filterOrder.length;\n\t\t\treturn aIndex - bIndex;\n\t\t});\n\t}\n\n\tif (exclusions) {\n\t\tsortedFilters = sortedFilters.reduce<PropertyFilter[]>((acc, filter) => {\n\t\t\tconst exclusionRule = exclusions.find((rule) => rule.key === filter.name);\n\n\t\t\tif (!exclusionRule) {\n\t\t\t\tacc.push(filter);\n\t\t\t\treturn acc;\n\t\t\t}\n\n\t\t\tif (exclusionRule.condition === FilterCondition.ENTIRE_KEY) {\n\t\t\t\treturn acc;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\texclusionRule.condition === FilterCondition.SPECIFIC_VALUE &&\n\t\t\t\texclusionRule.value\n\t\t\t) {\n\t\t\t\tconst filteredValues =\n\t\t\t\t\tfilter.values?.filter((value) => value !== exclusionRule.value) || [];\n\t\t\t\tif (filteredValues.length > 0) {\n\t\t\t\t\tacc.push({ ...filter, values: filteredValues });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn acc;\n\t\t}, []);\n\t}\n\n\treturn sortedFilters;\n}\n\nexport type FiltersQueryOptions = ValuesOptional<FetchFiltersParams> & {\n\tquery?: StandardQueryOptions;\n};\n\nexport function filtersQueryOptions(params: FiltersQueryOptions) {\n\tconst enabled = Boolean(\n\t\tparams.chainId &&\n\t\t\tparams.collectionAddress &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: ['filters', params],\n\t\tqueryFn: () =>\n\t\t\tfetchFilters({\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\tshowAllFilters: params.showAllFilters,\n\t\t\t\texcludePropertyValues: params.excludePropertyValues,\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 type { GetTokenIDRangesReturn } from '@0xsequence/indexer';\nimport { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport { getIndexerClient, type ValuesOptional } from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchGetTokenRangesParams {\n\tchainId: number;\n\tcollectionAddress: Address;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches token ID ranges for a collection from the Indexer API\n */\nexport async function fetchGetTokenRanges(\n\tparams: FetchGetTokenRangesParams,\n): Promise<GetTokenIDRangesReturn> {\n\tconst { chainId, collectionAddress, config } = params;\n\n\tconst indexerClient = getIndexerClient(chainId, config);\n\n\tconst response = await indexerClient.getTokenIDRanges({\n\t\tcontractAddress: collectionAddress,\n\t});\n\n\tif (!response) {\n\t\tthrow new Error('Failed to fetch token ranges');\n\t}\n\n\treturn response;\n}\n\nexport type GetTokenRangesQueryOptions =\n\tValuesOptional<FetchGetTokenRangesParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function getTokenRangesQueryOptions(params: GetTokenRangesQueryOptions) {\n\tconst enabled = Boolean(\n\t\tparams.chainId &&\n\t\t\tparams.collectionAddress &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: ['indexer', 'tokenRanges', params],\n\t\tqueryFn: () =>\n\t\t\tfetchGetTokenRanges({\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}),\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","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 UseTokenBalancesArgs = {\n\tcollectionAddress: Address;\n\tuserAddress: Address | undefined;\n\tchainId: number;\n\tisLaos721?: boolean;\n\tincludeMetadata?: boolean;\n\tquery?: UseQueryParameters;\n};\n\n/**\n * Fetches the token balances 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 fetchTokenBalances(\n\targs: Omit<UseTokenBalancesArgs, '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 || [];\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\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 || []);\n}\n\n/**\n * Creates a tanstack query options object for the token balances query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function tokenBalancesOptions(\n\targs: UseTokenBalancesArgs,\n\tconfig: SdkConfig,\n) {\n\tconst enabled =\n\t\t!!args.userAddress &&\n\t\t!!args.collectionAddress &&\n\t\t(args.query?.enabled ?? true);\n\n\treturn queryOptions({\n\t\tqueryKey: [...collectableKeys.userBalances, args],\n\t\tqueryFn: enabled\n\t\t\t? () =>\n\t\t\t\t\tfetchTokenBalances(\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 { ContractInfo, TokenBalance } from '@0xsequence/indexer';\nimport { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { Page, SdkConfig } from '../../types';\nimport { compareAddress } from '../../utils';\nimport { type ContractType, getQueryClient } from '../_internal';\nimport { fetchMarketplaceConfig } from './marketplaceConfig';\nimport { tokenBalancesOptions } from './tokenBalances';\n\nexport interface UseInventoryArgs {\n\taccountAddress: Address;\n\tcollectionAddress: Address;\n\tchainId: number;\n\tisLaos721?: boolean;\n\tincludeNonTradable?: boolean;\n\tquery?: {\n\t\tenabled?: boolean;\n\t\tpage?: number;\n\t\tpageSize?: number;\n\t};\n}\n\ninterface GetInventoryArgs extends Omit<UseInventoryArgs, 'query'> {\n\tisLaos721: boolean;\n}\n\ninterface CollectibleWithBalance {\n\tmetadata: {\n\t\ttokenId: string;\n\t\tattributes: Array<any>;\n\t\timage?: string;\n\t\tname: string;\n\t\tdescription?: string;\n\t\tvideo?: string;\n\t\taudio?: string;\n\t};\n\tbalance: string;\n\tcontractInfo?: ContractInfo;\n\tcontractType: ContractType.ERC1155 | ContractType.ERC721;\n}\n\nexport interface CollectiblesResponse {\n\tcollectibles: CollectibleWithBalance[];\n\tpage: Page;\n\tisTradable: boolean;\n}\n\nfunction collectibleFromTokenBalance(\n\ttoken: TokenBalance,\n): CollectibleWithBalance {\n\treturn {\n\t\tmetadata: {\n\t\t\ttokenId: token.tokenID ?? '',\n\t\t\tattributes: token.tokenMetadata?.attributes ?? [],\n\t\t\timage: token.tokenMetadata?.image,\n\t\t\tname: token.tokenMetadata?.name ?? '',\n\t\t\tdescription: token.tokenMetadata?.description,\n\t\t\tvideo: token.tokenMetadata?.video,\n\t\t\taudio: token.tokenMetadata?.audio,\n\t\t},\n\t\tcontractInfo: token.contractInfo,\n\t\tcontractType: token.contractType as unknown as\n\t\t\t| ContractType.ERC1155\n\t\t\t| ContractType.ERC721,\n\t\tbalance: token.balance,\n\t};\n}\n\nasync function fetchIndexerTokens(\n\tchainId: number,\n\taccountAddress: Address,\n\tcollectionAddress: Address,\n\tconfig: SdkConfig,\n\tisLaos721: boolean,\n): Promise<{ collectibles: CollectibleWithBalance[] }> {\n\tconst queryClient = getQueryClient();\n\tconst balances = await queryClient.fetchQuery(\n\t\ttokenBalancesOptions(\n\t\t\t{\n\t\t\t\tcollectionAddress,\n\t\t\t\tuserAddress: accountAddress,\n\t\t\t\tchainId,\n\t\t\t\tisLaos721,\n\t\t\t\tincludeMetadata: true,\n\t\t\t},\n\t\t\tconfig,\n\t\t),\n\t);\n\n\tconst collectibles = balances.map((balance) =>\n\t\tcollectibleFromTokenBalance(balance),\n\t);\n\n\treturn {\n\t\tcollectibles,\n\t};\n}\n\nexport async function fetchInventory(\n\targs: GetInventoryArgs,\n\tconfig: SdkConfig,\n\tpage: Page,\n): Promise<CollectiblesResponse> {\n\tconst { accountAddress, collectionAddress, chainId, isLaos721 } = args;\n\tconst marketplaceConfig = await fetchMarketplaceConfig({ config });\n\n\tconst marketCollections = marketplaceConfig?.market.collections || [];\n\n\tconst isMarketCollection = marketCollections.some((collection) =>\n\t\tcompareAddress(collection.itemsAddress, collectionAddress),\n\t);\n\n\t// Determine if this collection is tradable (market collection vs shop collection)\n\tconst isTradable = isMarketCollection;\n\n\t// Fetch collectibles from indexer\n\tconst { collectibles } = await fetchIndexerTokens(\n\t\tchainId,\n\t\taccountAddress,\n\t\tcollectionAddress,\n\t\tconfig,\n\t\tisLaos721,\n\t);\n\n\treturn {\n\t\tcollectibles,\n\t\tpage: {\n\t\t\tpage: page.page,\n\t\t\tpageSize: page.pageSize,\n\t\t},\n\t\tisTradable,\n\t};\n}\n\nexport function inventoryOptions(args: UseInventoryArgs, config: SdkConfig) {\n\tconst enabledQuery = args.query?.enabled ?? true;\n\tconst enabled =\n\t\tenabledQuery && !!args.accountAddress && !!args.collectionAddress;\n\n\treturn queryOptions({\n\t\tqueryKey: [\n\t\t\t'inventory',\n\t\t\targs.accountAddress,\n\t\t\targs.collectionAddress,\n\t\t\targs.chainId,\n\t\t\targs.query?.page ?? 1,\n\t\t\targs.query?.pageSize ?? 30,\n\t\t],\n\t\tqueryFn: () =>\n\t\t\tfetchInventory(\n\t\t\t\t{\n\t\t\t\t\t...args,\n\t\t\t\t\tisLaos721: args.isLaos721 ?? false,\n\t\t\t\t},\n\t\t\t\tconfig,\n\t\t\t\t{\n\t\t\t\t\tpage: args.query?.page ?? 1,\n\t\t\t\t\tpageSize: args.query?.pageSize ?? 30,\n\t\t\t\t},\n\t\t\t),\n\t\tenabled,\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { SdkConfig } from '../../types';\nimport {\n\tgetMetadataClient,\n\ttokenKeys,\n\ttype ValuesOptional,\n} from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchListTokenMetadataParams {\n\tchainId: number;\n\tcontractAddress: string;\n\ttokenIds: string[];\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches token metadata from the metadata API\n */\nexport async function fetchListTokenMetadata(\n\tparams: FetchListTokenMetadataParams,\n) {\n\tconst { chainId, contractAddress, tokenIds, config } = params;\n\tconst metadataClient = getMetadataClient(config);\n\n\tconst response = await metadataClient.getTokenMetadata({\n\t\tchainID: chainId.toString(),\n\t\tcontractAddress: contractAddress,\n\t\ttokenIDs: tokenIds,\n\t});\n\n\treturn response.tokenMetadata;\n}\n\nexport type ListTokenMetadataQueryOptions =\n\tValuesOptional<FetchListTokenMetadataParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function listTokenMetadataQueryOptions(\n\tparams: ListTokenMetadataQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.chainId &&\n\t\t\tparams.contractAddress &&\n\t\t\tparams.tokenIds?.length &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: [...tokenKeys.metadata, params],\n\t\tqueryFn: () =>\n\t\t\tfetchListTokenMetadata({\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\tcontractAddress: params.contractAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\ttokenIds: params.tokenIds!,\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 { infiniteQueryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport {\n\tgetMarketplaceClient,\n\ttype ListPrimarySaleItemsArgs,\n\ttype ListPrimarySaleItemsReturn,\n\ttype Page,\n\ttype PrimarySaleItemsFilter,\n\ttype ValuesOptional,\n} from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchPrimarySaleItemsParams {\n\tchainId: number;\n\tprimarySaleContractAddress: Address;\n\tfilter?: PrimarySaleItemsFilter;\n\tpage?: Page;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches primary sale items from the marketplace API\n */\nexport async function fetchPrimarySaleItems(\n\tparams: FetchPrimarySaleItemsParams,\n): Promise<ListPrimarySaleItemsReturn> {\n\tconst { chainId, primarySaleContractAddress, filter, page, config } = params;\n\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\treturn marketplaceClient.listPrimarySaleItems({\n\t\tchainId: String(chainId),\n\t\tprimarySaleContractAddress,\n\t\tfilter,\n\t\tpage,\n\t});\n}\n\nexport type ListPrimarySaleItemsQueryOptions =\n\tValuesOptional<FetchPrimarySaleItemsParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport const listPrimarySaleItemsQueryOptions = (\n\tparams: ListPrimarySaleItemsQueryOptions,\n) => {\n\tconst enabled = Boolean(\n\t\tparams.primarySaleContractAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\ttype PageParam = { page: number; pageSize: number };\n\tconst initialPage: PageParam = params.page || { page: 1, pageSize: 30 };\n\n\treturn infiniteQueryOptions({\n\t\tqueryKey: ['listPrimarySaleItems', params],\n\t\tqueryFn: async ({ pageParam }) => {\n\t\t\treturn fetchPrimarySaleItems({\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\tprimarySaleContractAddress: params.primarySaleContractAddress!,\n\t\t\t\tfilter: params.filter,\n\t\t\t\tpage: pageParam,\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},\n\t\tinitialPageParam: initialPage,\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\nexport type { ListPrimarySaleItemsArgs, ListPrimarySaleItemsReturn };\n","import { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport {\n\ttype GetCountOfPrimarySaleItemsReturn,\n\tgetMarketplaceClient,\n\ttype PrimarySaleItemsFilter,\n} from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchPrimarySaleItemsCountParams {\n\tchainId: number;\n\tprimarySaleContractAddress: Address;\n\tfilter?: PrimarySaleItemsFilter;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches the count of primary sale items from the marketplace API\n */\nexport async function fetchPrimarySaleItemsCount(\n\tparams: FetchPrimarySaleItemsCountParams,\n): Promise<GetCountOfPrimarySaleItemsReturn> {\n\tconst { chainId, primarySaleContractAddress, filter, config } = params;\n\n\tconst marketplaceClient = getMarketplaceClient(config);\n\treturn marketplaceClient.getCountOfPrimarySaleItems({\n\t\tchainId: String(chainId),\n\t\tprimarySaleContractAddress,\n\t\tfilter,\n\t});\n}\n\nexport type PrimarySaleItemsCountQueryOptions =\n\tPartial<FetchPrimarySaleItemsCountParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport const primarySaleItemsCountQueryOptions = (\n\targs: PrimarySaleItemsCountQueryOptions,\n) => {\n\tconst enabled = Boolean(\n\t\targs.primarySaleContractAddress &&\n\t\t\targs.chainId &&\n\t\t\targs.config &&\n\t\t\t(args.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: ['primarySaleItemsCount', args],\n\t\tqueryFn: () =>\n\t\t\tfetchPrimarySaleItemsCount({\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tchainId: args.chainId!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tprimarySaleContractAddress: args.primarySaleContractAddress!,\n\t\t\t\tfilter: args.filter,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tconfig: args.config!,\n\t\t\t}),\n\t\t...args.query,\n\t\tenabled,\n\t});\n};\n","import type {\n\tFilter,\n\tPage,\n\tSearchTokenMetadataReturn,\n} from '@0xsequence/metadata';\nimport { infiniteQueryOptions } from '@tanstack/react-query';\nimport type { SdkConfig } from '../../types';\nimport {\n\tgetMetadataClient,\n\ttokenKeys,\n\ttype ValuesOptional,\n} from '../_internal';\nimport type { StandardQueryOptions } from '../types/query';\n\nexport interface FetchSearchTokenMetadataParams {\n\tchainId: number;\n\tcollectionAddress: string;\n\tfilter?: Filter;\n\tpage?: Page;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches token metadata from the metadata API using search filters\n */\nexport async function fetchSearchTokenMetadata(\n\tparams: FetchSearchTokenMetadataParams,\n): Promise<SearchTokenMetadataReturn> {\n\tconst { chainId, collectionAddress, filter, page, config } = params;\n\tconst metadataClient = getMetadataClient(config);\n\n\tconst response = await metadataClient.searchTokenMetadata({\n\t\tchainID: chainId.toString(),\n\t\tcontractAddress: collectionAddress,\n\t\tfilter: filter ?? {},\n\t\tpage,\n\t});\n\n\treturn {\n\t\ttokenMetadata: response.tokenMetadata,\n\t\tpage: response.page,\n\t};\n}\n\nexport type SearchTokenMetadataQueryOptions =\n\tValuesOptional<FetchSearchTokenMetadataParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function searchTokenMetadataQueryOptions(\n\tparams: SearchTokenMetadataQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.chainId &&\n\t\t\tparams.collectionAddress &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\tconst initialPageParam = { page: 1, pageSize: 30 };\n\n\treturn infiniteQueryOptions({\n\t\tqueryKey: [...tokenKeys.metadata, 'search', params],\n\t\tqueryFn: ({ pageParam = initialPageParam }) =>\n\t\t\tfetchSearchTokenMetadata({\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\tfilter: params.filter!,\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\tpage: pageParam,\n\t\t\t}),\n\t\tinitialPageParam,\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (!lastPage.page?.more) return undefined;\n\t\t\treturn {\n\t\t\t\tpage: (lastPage.page.page || 1) + 1,\n\t\t\t\tpageSize: lastPage.page.pageSize || 20,\n\t\t\t};\n\t\t},\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import type { GetTokenSuppliesArgs, Page } from '@0xsequence/indexer';\nimport { infiniteQueryOptions } from '@tanstack/react-query';\nimport type { SdkConfig } from '../../types';\nimport {\n\tgetIndexerClient,\n\tLaosAPI,\n\ttokenKeys,\n\ttype ValuesOptional,\n} from '../_internal';\nimport type { StandardInfiniteQueryOptions } from '../types/query';\n\nexport interface FetchTokenSuppliesParams\n\textends Omit<GetTokenSuppliesArgs, 'contractAddress'> {\n\tchainId: number;\n\tcollectionAddress: string;\n\tconfig: SdkConfig;\n\tisLaos721?: boolean;\n\tpage?: Page;\n}\n\n/**\n * Fetches token supplies with support for both indexer and LAOS APIs\n * Uses the more efficient single-contract APIs from both services\n */\nexport async function fetchTokenSupplies(params: FetchTokenSuppliesParams) {\n\tconst { chainId, collectionAddress, config, isLaos721, ...rest } = params;\n\n\tif (isLaos721) {\n\t\tconst laosApi = new LaosAPI();\n\n\t\t// Convert indexer Page format to LAOS PaginationOptions format\n\t\tconst laosPage = rest.page\n\t\t\t? {\n\t\t\t\t\tsort:\n\t\t\t\t\t\trest.page.sort?.map((sortBy) => ({\n\t\t\t\t\t\t\tcolumn: sortBy.column,\n\t\t\t\t\t\t\torder: sortBy.order,\n\t\t\t\t\t\t})) || [],\n\t\t\t\t}\n\t\t\t: undefined;\n\n\t\tconst result = await laosApi.getTokenSupplies({\n\t\t\tchainId: chainId.toString(),\n\t\t\tcontractAddress: collectionAddress,\n\t\t\tincludeMetadata: rest.includeMetadata,\n\t\t\tpage: laosPage,\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tconst indexerClient = getIndexerClient(chainId, config);\n\n\tconst apiArgs: GetTokenSuppliesArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\t...rest,\n\t};\n\n\tconst result = await indexerClient.getTokenSupplies(apiArgs);\n\treturn result;\n}\n\nexport type TokenSuppliesQueryOptions =\n\tValuesOptional<FetchTokenSuppliesParams> & {\n\t\tquery?: StandardInfiniteQueryOptions;\n\t};\n\nexport function tokenSuppliesQueryOptions(params: TokenSuppliesQueryOptions) {\n\tconst enabled = Boolean(\n\t\tparams.chainId &&\n\t\t\tparams.collectionAddress &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\tconst initialPageParam = { page: 1, pageSize: 30 } as Page;\n\n\tconst queryFn = async ({ pageParam = initialPageParam }) =>\n\t\tfetchTokenSupplies({\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\tchainId: params.chainId!,\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\tcollectionAddress: params.collectionAddress!,\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\tconfig: params.config!,\n\t\t\tisLaos721: params.isLaos721,\n\t\t\tincludeMetadata: params.includeMetadata,\n\t\t\tmetadataOptions: params.metadataOptions,\n\t\t\tpage: pageParam,\n\t\t});\n\n\treturn infiniteQueryOptions({\n\t\tqueryKey: [...tokenKeys.supplies, params],\n\t\tqueryFn,\n\t\tinitialPageParam,\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"],"mappings":"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"}