@0xsequence/marketplace-sdk 0.8.12 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/CHANGELOG.md +91 -23
  2. package/dist/{CartIcon-Bll1rbxv.js → CalendarIcon-DbQ7Vxcw.js} +38 -38
  3. package/dist/CalendarIcon-DbQ7Vxcw.js.map +1 -0
  4. package/dist/{types-BIJOaL4j.d.ts → CollectibleCard-C8Ae64Ab.d.ts} +7 -4
  5. package/dist/{_internal-69NEWNUE.js → _internal-BgWcRIak.js} +2 -14
  6. package/dist/_internal-BgWcRIak.js.map +1 -0
  7. package/dist/{api-1KFxYh7o.js → api-DTIan01C.js} +73 -64
  8. package/dist/api-DTIan01C.js.map +1 -0
  9. package/dist/{builder-api-BQvzykoU.js → builder-api-BFuZNOaN.js} +2 -2
  10. package/dist/{builder-api-BQvzykoU.js.map → builder-api-BFuZNOaN.js.map} +1 -1
  11. package/dist/{builder-api-DoK3907S.d.ts → builder-api-C_zj5mr3.d.ts} +2 -2
  12. package/dist/{builder.gen-CxP9NT1p.js → builder.gen-B9wR2nvF.js} +1 -1
  13. package/dist/builder.gen-B9wR2nvF.js.map +1 -0
  14. package/dist/{index-Cl7PQOGu.d.ts → index-21LE7OhL.d.ts} +24 -24
  15. package/dist/{index-1bezgsFq.d.ts → index-BL9RUSEK.d.ts} +929 -255
  16. package/dist/index-BQsgAvtX.d.ts +2938 -0
  17. package/dist/{index-DafWjEb4.d.ts → index-BUVWziLP.d.ts} +9 -14
  18. package/dist/{index-BIMIpDiI.d.ts → index-ByznONYE.d.ts} +98 -99
  19. package/dist/{index-BjIwVzc4.d.ts → index-CLy8y5hm.d.ts} +238 -238
  20. package/dist/{index-CN8puQQJ.d.ts → index-COt10OgI.d.ts} +4 -4
  21. package/dist/index-DPNWNa7t.d.ts +414 -0
  22. package/dist/{index-BEYefG1G.d.ts → index-DaE5ZNHb.d.ts} +2 -2
  23. package/dist/{index-BfH21xmk.d.ts → index-DsfCs3-x.d.ts} +46 -41
  24. package/dist/{index-4-kfOFdx.d.ts → index-dUb6wb4Y.d.ts} +5 -5
  25. package/dist/index.css +14 -1
  26. package/dist/index.d.ts +7 -7
  27. package/dist/index.js +7 -7
  28. package/dist/marketplace-logos-CSeGcPW4.js.map +1 -1
  29. package/dist/{marketplace.gen-Dqk8vRmD.js → marketplace.gen-BSDIX7NZ.js} +12 -3
  30. package/dist/marketplace.gen-BSDIX7NZ.js.map +1 -0
  31. package/dist/{marketplaceConfig-D2MYFqll.js → marketplaceConfig-C6X1SUik.js} +2 -2
  32. package/dist/marketplaceConfig-C6X1SUik.js.map +1 -0
  33. package/dist/{sdk-config-DJzxVPld.d.ts → new-marketplace-types-Bfis0U4J.d.ts} +65 -54
  34. package/dist/options-B4QN7Xou.js +0 -0
  35. package/dist/{primary-sale-Cw95phYC.js → primary-sale-C55ALnfQ.js} +279 -279
  36. package/dist/primary-sale-C55ALnfQ.js.map +1 -0
  37. package/dist/{queries-DPvwtnO7.js → queries-CUU65uYZ.js} +247 -134
  38. package/dist/queries-CUU65uYZ.js.map +1 -0
  39. package/dist/react/_internal/api/index.d.ts +4 -4
  40. package/dist/react/_internal/api/index.js +5 -5
  41. package/dist/react/_internal/databeat/index.d.ts +3 -3
  42. package/dist/react/_internal/databeat/index.js +15 -15
  43. package/dist/react/_internal/index.d.ts +7 -7
  44. package/dist/react/_internal/index.js +7 -7
  45. package/dist/react/_internal/wagmi/index.d.ts +3 -3
  46. package/dist/react/_internal/wagmi/index.js +2 -2
  47. package/dist/react/hooks/index.d.ts +15 -14
  48. package/dist/react/hooks/index.js +16 -16
  49. package/dist/react/hooks/options/index.d.ts +4 -5
  50. package/dist/react/hooks/options/index.js +9 -9
  51. package/dist/react/index.d.ts +15 -37
  52. package/dist/react/index.js +16 -16
  53. package/dist/react/queries/index.d.ts +8 -8
  54. package/dist/react/queries/index.js +12 -12
  55. package/dist/react/ssr/index.d.ts +6 -6
  56. package/dist/react/ssr/index.js +7 -7
  57. package/dist/react/ssr/index.js.map +1 -1
  58. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +8 -9
  59. package/dist/react/ui/components/marketplace-collectible-card/index.js +15 -15
  60. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +7 -7
  61. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +7 -7
  62. package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
  63. package/dist/react/ui/icons/index.js +6 -6
  64. package/dist/react/ui/index.d.ts +8 -9
  65. package/dist/react/ui/index.js +15 -15
  66. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +5 -5
  67. package/dist/react/ui/modals/_internal/components/actionModal/index.js +15 -15
  68. package/dist/{react-BG7o4PId.js → react-DAIicQPT.js} +7422 -6835
  69. package/dist/react-DAIicQPT.js.map +1 -0
  70. package/dist/{token-CO5llIla.js → token-Da4TdyUk.js} +1540 -761
  71. package/dist/token-Da4TdyUk.js.map +1 -0
  72. package/dist/types/index.d.ts +2 -2
  73. package/dist/types/index.js +2 -2
  74. package/dist/types-DwWE6xOF.js.map +1 -1
  75. package/dist/utils/abi/index.d.ts +3 -3
  76. package/dist/utils/abi/index.js +3 -3
  77. package/dist/utils/abi/primary-sale/index.d.ts +1 -1
  78. package/dist/utils/abi/primary-sale/index.js +1 -1
  79. package/dist/utils/abi/token/index.d.ts +2 -2
  80. package/dist/utils/abi/token/index.js +2 -2
  81. package/dist/utils/index.d.ts +6 -6
  82. package/dist/utils/index.js +6 -6
  83. package/dist/{utils-Cat9_pef.js → utils-BPYfgDSL.js} +2 -2
  84. package/dist/{utils-Cat9_pef.js.map → utils-BPYfgDSL.js.map} +1 -1
  85. package/dist/{utils-BFdxaToy.js → utils-CW2NA5KG.js} +87 -87
  86. package/dist/utils-CW2NA5KG.js.map +1 -0
  87. package/dist/{wagmi-DRctYEk6.js → wagmi-CDzEQbfk.js} +19 -12
  88. package/dist/wagmi-CDzEQbfk.js.map +1 -0
  89. package/eslint/use-client.js +0 -6
  90. package/package.json +30 -31
  91. package/src/index.ts +1 -1
  92. package/src/react/_internal/api/__mocks__/builder.msw.ts +5 -3
  93. package/src/react/_internal/api/__mocks__/indexer.msw.ts +8 -8
  94. package/src/react/_internal/api/__mocks__/marketplace.msw.ts +4 -6
  95. package/src/react/_internal/api/__mocks__/metadata.msw.ts +1 -1
  96. package/src/react/_internal/api/builder.gen.ts +6 -6
  97. package/src/react/_internal/api/get-query-client.ts +2 -2
  98. package/src/react/_internal/api/index.ts +2 -2
  99. package/src/react/_internal/api/marketplace.gen.ts +42 -4
  100. package/src/react/_internal/api/query-keys.ts +13 -6
  101. package/src/react/_internal/api/services.ts +28 -31
  102. package/src/react/_internal/index.ts +1 -1
  103. package/src/react/_internal/types.ts +10 -23
  104. package/src/react/_internal/utils.ts +1 -2
  105. package/src/react/_internal/wagmi/create-config.ts +20 -11
  106. package/src/react/_internal/wagmi/get-connectors.ts +9 -7
  107. package/src/react/_internal/wallet/__tests__/wallet.test.ts +1 -1
  108. package/src/react/_internal/wallet/wallet.ts +18 -18
  109. package/src/react/hooks/__tests__/__snapshots__/useListCollections.test.tsx.snap +20 -0
  110. package/src/react/hooks/__tests__/__snapshots__/useMarketplaceConfig.test.tsx.snap +12 -2
  111. package/src/react/hooks/__tests__/useAutoSelectFeeOption.test.tsx +1 -1
  112. package/src/react/hooks/__tests__/useBalanceOfCollectible.test.tsx +1 -1
  113. package/src/react/hooks/__tests__/useCancelOrder.test.tsx +4 -4
  114. package/src/react/hooks/__tests__/useCancelTransactionSteps.test.tsx +1 -1
  115. package/src/react/hooks/__tests__/useCollectible.test.tsx +14 -16
  116. package/src/react/hooks/__tests__/useCollection.test.tsx +4 -4
  117. package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +1 -27
  118. package/src/react/hooks/__tests__/useCollectionDetails.test.tsx +1 -1
  119. package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +1 -1
  120. package/src/react/hooks/__tests__/useComparePrices.test.tsx +7 -6
  121. package/src/react/hooks/__tests__/useConvertPriceToUSD.test.tsx +1 -1
  122. package/src/react/hooks/__tests__/useCountListingsForCollectible.test.tsx +2 -2
  123. package/src/react/hooks/__tests__/useCountOfCollectables.test.tsx +5 -5
  124. package/src/react/hooks/__tests__/useCountOffersForCollectible.test.tsx +2 -2
  125. package/src/react/hooks/__tests__/useCurrency.test.tsx +5 -3
  126. package/src/react/hooks/__tests__/useFilters.test.tsx +1 -1
  127. package/src/react/hooks/__tests__/useFloorOrder.test.tsx +4 -4
  128. package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +3 -3
  129. package/src/react/hooks/__tests__/useGenerateListingTransaction.test.tsx +1 -1
  130. package/src/react/hooks/__tests__/useGenerateOfferTransaction.test.tsx +1 -1
  131. package/src/react/hooks/__tests__/useGenerateSellTransaction.test.tsx +1 -1
  132. package/src/react/hooks/__tests__/useGetTokenSuppliesMap.test.tsx +104 -0
  133. package/src/react/hooks/__tests__/useHighestOffer.test.tsx +4 -4
  134. package/src/react/hooks/__tests__/useInventory.test.tsx +1 -1
  135. package/src/react/hooks/__tests__/useListCollectibleActivities.test.tsx +11 -13
  136. package/src/react/hooks/__tests__/useListCollectibles.test.tsx +5 -5
  137. package/src/react/hooks/__tests__/useListCollectiblesPaginated.test.tsx +10 -15
  138. package/src/react/hooks/__tests__/useListCollectionActivities.test.tsx +13 -15
  139. package/src/react/hooks/__tests__/useListCollections.test.tsx +3 -3
  140. package/src/react/hooks/__tests__/useListListingsForCollectible.test.tsx +3 -2
  141. package/src/react/hooks/__tests__/useListMarketCardData.test.tsx +301 -0
  142. package/src/react/hooks/__tests__/useListOffersForCollectible.test.tsx +1 -1
  143. package/src/react/hooks/__tests__/useListTokenMetadata.test.tsx +111 -0
  144. package/src/react/hooks/__tests__/useLowestListing.test.tsx +1 -1
  145. package/src/react/hooks/__tests__/useMarketCurrencies.test.tsx +1 -1
  146. package/src/react/hooks/__tests__/useRoyalty.test.tsx +0 -23
  147. package/src/react/hooks/index.ts +27 -24
  148. package/src/react/hooks/options/index.ts +0 -1
  149. package/src/react/hooks/useAutoSelectFeeOption.tsx +1 -1
  150. package/src/react/hooks/useBalanceOfCollectible.tsx +1 -1
  151. package/src/react/hooks/useCancelTransactionSteps.tsx +2 -2
  152. package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +1 -1
  153. package/src/react/hooks/useCollectible.tsx +64 -49
  154. package/src/react/hooks/useCollection.tsx +60 -11
  155. package/src/react/hooks/useCollectionBalanceDetails.tsx +20 -27
  156. package/src/react/hooks/useCollectionDetails.ts +69 -0
  157. package/src/react/hooks/useCollectionDetailsPolling.tsx +10 -2
  158. package/src/react/hooks/useComparePrices.tsx +18 -21
  159. package/src/react/hooks/useConvertPriceToUSD.tsx +20 -37
  160. package/src/react/hooks/useCountListingsForCollectible.tsx +64 -53
  161. package/src/react/hooks/useCountOfCollectables.tsx +60 -69
  162. package/src/react/hooks/useCountOfPrimarySaleItems.tsx +13 -0
  163. package/src/react/hooks/useCountOffersForCollectible.tsx +64 -53
  164. package/src/react/hooks/useCurrency.tsx +56 -64
  165. package/src/react/hooks/useFilterState.tsx +1 -2
  166. package/src/react/hooks/useFloorOrder.tsx +65 -40
  167. package/src/react/hooks/useGenerateCancelTransaction.tsx +5 -10
  168. package/src/react/hooks/useGenerateListingTransaction.tsx +1 -1
  169. package/src/react/hooks/useGenerateOfferTransaction.tsx +1 -1
  170. package/src/react/hooks/useGenerateSellTransaction.tsx +5 -10
  171. package/src/react/hooks/useGetReceiptFromHash.tsx +32 -3
  172. package/src/react/hooks/{useGetTokenSuppliesMap.ts → useGetTokenRanges.tsx} +15 -17
  173. package/src/react/hooks/useGetTokenSuppliesMap.tsx +73 -0
  174. package/src/react/hooks/useHighestOffer.tsx +68 -4
  175. package/src/react/hooks/useInventory.tsx +1 -1
  176. package/src/react/hooks/useList1155ShopCardData.tsx +55 -82
  177. package/src/react/hooks/useList721ShopCardData.tsx +93 -63
  178. package/src/react/hooks/useListBalances.tsx +1 -1
  179. package/src/react/hooks/useListCollectibleActivities.tsx +89 -50
  180. package/src/react/hooks/useListCollectibles.tsx +81 -16
  181. package/src/react/hooks/useListCollectiblesPaginated.tsx +96 -66
  182. package/src/react/hooks/useListCollectionActivities.tsx +84 -50
  183. package/src/react/hooks/useListCollections.tsx +72 -18
  184. package/src/react/hooks/useListListingsForCollectible.tsx +90 -50
  185. package/src/react/hooks/useListMarketCardData.tsx +1 -1
  186. package/src/react/hooks/useListOffersForCollectible.tsx +9 -14
  187. package/src/react/hooks/useListPrimarySaleItems.ts +72 -12
  188. package/src/react/hooks/useListShopCardData.tsx +70 -0
  189. package/src/react/hooks/useListTokenMetadata.tsx +73 -0
  190. package/src/react/hooks/useLowestListing.tsx +68 -4
  191. package/src/react/hooks/useMarketCurrencies.tsx +62 -5
  192. package/src/react/hooks/useRoyalty.tsx +57 -13
  193. package/src/react/hooks/useShopCollectibleSaleData.tsx +349 -0
  194. package/src/react/hooks/useTransferTokens.tsx +1 -1
  195. package/src/react/hooks/util/optimisticCancelUpdates.ts +5 -7
  196. package/src/react/index.ts +5 -3
  197. package/src/react/queries/balanceOfCollectible.ts +1 -1
  198. package/src/react/queries/collectible.ts +66 -0
  199. package/src/react/queries/collection.ts +55 -0
  200. package/src/react/queries/collectionDetails.ts +64 -0
  201. package/src/react/queries/countListingsForCollectible.ts +73 -0
  202. package/src/react/queries/countOfCollectables.ts +83 -0
  203. package/src/react/queries/countOfPrimarySaleItems.ts +48 -0
  204. package/src/react/queries/countOffersForCollectible.ts +73 -0
  205. package/src/react/queries/currency.ts +83 -0
  206. package/src/react/queries/floorOrder.ts +63 -0
  207. package/src/react/queries/getTokenSuppliesMap.ts +77 -0
  208. package/src/react/queries/highestOffer.ts +46 -40
  209. package/src/react/queries/index.ts +7 -4
  210. package/src/react/queries/inventory.ts +4 -4
  211. package/src/react/queries/listBalances.ts +1 -1
  212. package/src/react/queries/listCollectibleActivities.ts +97 -0
  213. package/src/react/queries/listCollectibles.ts +67 -50
  214. package/src/react/queries/listCollectiblesPaginated.ts +87 -0
  215. package/src/react/queries/listCollectionActivities.ts +95 -0
  216. package/src/react/queries/listCollections.ts +47 -8
  217. package/src/react/queries/listListingsForCollectible.ts +82 -0
  218. package/src/react/queries/listTokenMetadata.ts +47 -23
  219. package/src/react/queries/lowestListing.ts +46 -31
  220. package/src/react/queries/marketCurrencies.ts +42 -29
  221. package/src/react/queries/marketplaceConfig.ts +3 -3
  222. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +12 -2
  223. package/src/react/ssr/create-ssr-client.ts +1 -1
  224. package/src/react/types/query.ts +34 -0
  225. package/src/react/ui/components/ModelViewer.tsx +1 -1
  226. package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +14 -8
  227. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +12 -15
  228. package/src/react/ui/components/_internals/action-button/store.ts +46 -18
  229. package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +1 -1
  230. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +1 -1
  231. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +3 -0
  232. package/src/react/ui/components/marketplace-collectible-card/index.ts +1 -1
  233. package/src/react/ui/components/marketplace-collectible-card/types.ts +7 -4
  234. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +3 -2
  235. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +2 -5
  236. package/src/react/ui/components/marketplace-logos/marketplace-logos.tsx +1 -1
  237. package/src/react/ui/components/media/Media.tsx +5 -1
  238. package/src/react/ui/index.ts +8 -10
  239. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +94 -87
  240. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +4 -4
  241. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +1 -1
  242. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +3 -4
  243. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +1 -1
  244. package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +1 -1
  245. package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +1 -1
  246. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +1 -1
  247. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +3 -3
  248. package/src/react/ui/modals/CreateListingModal/Modal.tsx +1 -1
  249. package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +2 -2
  250. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +0 -1
  251. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +2 -2
  252. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +7 -6
  253. package/src/react/ui/modals/CreateListingModal/index.tsx +1 -1
  254. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +2 -2
  255. package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +1 -1
  256. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +1 -1
  257. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +0 -1
  258. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +7 -7
  259. package/src/react/ui/modals/MakeOfferModal/index.tsx +1 -1
  260. package/src/react/ui/modals/SellModal/Modal.tsx +3 -3
  261. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +6 -4
  262. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +1 -1
  263. package/src/react/ui/modals/SellModal/hooks/useSell.tsx +0 -1
  264. package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +6 -6
  265. package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +1 -1
  266. package/src/react/ui/modals/TransferModal/_store.ts +1 -7
  267. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +2 -3
  268. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +2 -2
  269. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +1 -1
  270. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +2 -4
  271. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +1 -1
  272. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +0 -1
  273. package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +4 -4
  274. package/src/react/ui/modals/_internal/components/quantityInput/QuantityInputBase.tsx +166 -0
  275. package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +12 -141
  276. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +1 -1
  277. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/_components/BalanceIndicator.tsx +1 -2
  278. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +0 -1
  279. package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +1 -1
  280. package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +1 -1
  281. package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +0 -1
  282. package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +1 -1
  283. package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +1 -1
  284. package/src/react/ui/modals/modal-provider.tsx +2 -3
  285. package/src/types/api-types.ts +36 -36
  286. package/src/types/buyModalErrors.ts +1 -1
  287. package/src/types/index.ts +5 -5
  288. package/src/types/new-marketplace-types.ts +1 -1
  289. package/src/types/sdk-config.ts +2 -1
  290. package/src/types/types.ts +1 -0
  291. package/src/types/waas-types.ts +1 -1
  292. package/src/utils/abi/index.ts +1 -1
  293. package/src/utils/abi/primary-sale/index.ts +1 -1
  294. package/src/utils/abi/token/index.ts +2 -1
  295. package/src/utils/decode/erc20.ts +1 -1
  296. package/src/utils/index.ts +3 -3
  297. package/test/const.ts +3 -1
  298. package/test/mocks/wallet.ts +1 -1
  299. package/test/test-utils.tsx +3 -4
  300. package/.changeset/fluffy-jokes-lay.md +0 -5
  301. package/.changeset/wise-bugs-boil.md +0 -8
  302. package/dist/CartIcon-Bll1rbxv.js.map +0 -1
  303. package/dist/CollectibleCard-CLQTl0_6.d.ts +0 -8
  304. package/dist/_internal-69NEWNUE.js.map +0 -1
  305. package/dist/api-1KFxYh7o.js.map +0 -1
  306. package/dist/builder.gen-CxP9NT1p.js.map +0 -1
  307. package/dist/index-BHiSG-Yi.d.ts +0 -312
  308. package/dist/index-BQW0PUkQ.d.ts +0 -3973
  309. package/dist/marketplace.gen-Dqk8vRmD.js.map +0 -1
  310. package/dist/marketplaceConfig-D2MYFqll.js.map +0 -1
  311. package/dist/options-DCi6_23w.js +0 -34
  312. package/dist/options-DCi6_23w.js.map +0 -1
  313. package/dist/primary-sale-Cw95phYC.js.map +0 -1
  314. package/dist/queries-DPvwtnO7.js.map +0 -1
  315. package/dist/react-BG7o4PId.js.map +0 -1
  316. package/dist/token-CO5llIla.js.map +0 -1
  317. package/dist/useCollection-C-mclKU0.d.ts +0 -66
  318. package/dist/utils-BFdxaToy.js.map +0 -1
  319. package/dist/wagmi-DRctYEk6.js.map +0 -1
  320. package/src/react/_internal/api/zod-schema.ts +0 -678
  321. package/src/react/hooks/options/collectionOptions.ts +0 -41
  322. package/src/react/hooks/useCheckoutOptions.tsx +0 -66
  323. package/src/react/hooks/useCollectionDetails.tsx +0 -50
  324. package/src/react/hooks/useListTokenMetadata.ts +0 -19
  325. package/src/react/queries/getTokenSupplies.ts +0 -38
  326. package/tsconfig.tsbuildinfo +0 -1
  327. /package/dist/{index-ij9f8GAA.d.ts → index-DvpBZgor.d.ts} +0 -0
@@ -1,59 +1,98 @@
1
- import { queryOptions, useQuery } from '@tanstack/react-query';
2
- import type { z } from 'zod';
3
- import type { SdkConfig } from '../../types';
4
- import { collectableKeys, getMarketplaceClient } from '../_internal';
5
- import type {
6
- getListCollectibleActivitiesArgsSchema,
7
- getListCollectibleActivitiesReturnSchema,
8
- } from '../_internal/api/zod-schema';
1
+ 'use client';
2
+
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import type { Optional } from '../_internal';
5
+ import {
6
+ type FetchListCollectibleActivitiesParams,
7
+ type fetchListCollectibleActivities,
8
+ type ListCollectibleActivitiesQueryOptions,
9
+ listCollectibleActivitiesQueryOptions,
10
+ } from '../queries/listCollectibleActivities';
9
11
  import { useConfig } from './useConfig';
10
12
 
11
- export type UseListCollectibleActivitiesArgs = z.infer<
12
- typeof getListCollectibleActivitiesArgsSchema
13
+ export type UseListCollectibleActivitiesParams = Optional<
14
+ ListCollectibleActivitiesQueryOptions,
15
+ 'config'
13
16
  >;
14
17
 
15
- export type UseListCollectibleActivitiesReturn = z.infer<
16
- typeof getListCollectibleActivitiesReturnSchema
17
- >;
18
+ /**
19
+ * Hook to fetch a list of activities for a specific collectible
20
+ *
21
+ * Fetches activities (transfers, sales, offers, etc.) for a specific token
22
+ * from the marketplace with support for pagination and sorting.
23
+ *
24
+ * @param params - Configuration parameters
25
+ * @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
26
+ * @param params.collectionAddress - The collection contract address
27
+ * @param params.tokenId - The specific token ID to fetch activities for
28
+ * @param params.page - Page number to fetch (default: 1)
29
+ * @param params.pageSize - Number of activities per page (default: 10)
30
+ * @param params.sort - Sort order for activities
31
+ * @param params.query - Optional React Query configuration
32
+ *
33
+ * @returns Query result containing activities data
34
+ *
35
+ * @example
36
+ * Basic usage:
37
+ * ```typescript
38
+ * const { data, isLoading } = useListCollectibleActivities({
39
+ * chainId: 137,
40
+ * collectionAddress: '0x...',
41
+ * tokenId: '123'
42
+ * })
43
+ * ```
44
+ *
45
+ * @example
46
+ * With pagination:
47
+ * ```typescript
48
+ * const { data } = useListCollectibleActivities({
49
+ * chainId: 1,
50
+ * collectionAddress: '0x...',
51
+ * tokenId: '456',
52
+ * page: 2,
53
+ * pageSize: 20
54
+ * })
55
+ * ```
56
+ *
57
+ * @example
58
+ * With sorting:
59
+ * ```typescript
60
+ * const { data } = useListCollectibleActivities({
61
+ * chainId: 137,
62
+ * collectionAddress: '0x...',
63
+ * tokenId: '789',
64
+ * sort: 'timestamp_desc',
65
+ * pageSize: 50
66
+ * })
67
+ * ```
68
+ */
69
+ export function useListCollectibleActivities(
70
+ params: UseListCollectibleActivitiesParams,
71
+ ) {
72
+ const defaultConfig = useConfig();
18
73
 
19
- const fetchCollectibleActivities = async (
20
- args: UseListCollectibleActivitiesArgs,
21
- config: SdkConfig,
22
- ) => {
23
- const marketplaceClient = getMarketplaceClient(config);
24
- return marketplaceClient
25
- .listCollectibleActivities({
26
- chainId: String(args.chainId),
27
- contractAddress: args.collectionAddress,
28
- tokenId: args.tokenId,
29
- page: args.query?.enabled
30
- ? {
31
- page: args.query.page ?? 1,
32
- pageSize: args.query.pageSize ?? 10,
33
- sort: args.query.sort,
34
- }
35
- : undefined,
36
- })
37
- .then((data) => ({
38
- activities: data.activities,
39
- page: data.page,
40
- }));
41
- };
74
+ const { config = defaultConfig, ...rest } = params;
42
75
 
43
- export const listCollectibleActivitiesOptions = (
44
- args: UseListCollectibleActivitiesArgs,
45
- config: SdkConfig,
46
- ) => {
47
- return queryOptions({
48
- queryKey: [...collectableKeys.collectibleActivities, args, config],
49
- queryFn: () => fetchCollectibleActivities(args, config),
50
- enabled: args.query?.enabled ?? true,
76
+ const queryOptions = listCollectibleActivitiesQueryOptions({
77
+ config,
78
+ ...rest,
51
79
  });
52
- };
53
80
 
54
- export const useListCollectibleActivities = (
55
- args: UseListCollectibleActivitiesArgs,
56
- ) => {
57
- const config = useConfig();
58
- return useQuery(listCollectibleActivitiesOptions(args, config));
81
+ return useQuery({
82
+ ...queryOptions,
83
+ });
84
+ }
85
+
86
+ export { listCollectibleActivitiesQueryOptions };
87
+
88
+ export type {
89
+ FetchListCollectibleActivitiesParams,
90
+ ListCollectibleActivitiesQueryOptions,
59
91
  };
92
+
93
+ // Legacy exports for backward compatibility during migration
94
+ export type UseListCollectibleActivitiesArgs =
95
+ UseListCollectibleActivitiesParams;
96
+ export type UseListCollectibleActivitiesReturn = Awaited<
97
+ ReturnType<typeof fetchListCollectibleActivities>
98
+ >;
@@ -1,28 +1,93 @@
1
+ 'use client';
2
+
1
3
  import { useInfiniteQuery } from '@tanstack/react-query';
2
- import { listCollectiblesOptions } from '../queries/listCollectibles';
3
- import type { UseListCollectiblesArgs } from '../queries/listCollectibles';
4
+ import type { Optional } from '../_internal';
5
+ import {
6
+ type FetchListCollectiblesParams,
7
+ type ListCollectiblesQueryOptions,
8
+ listCollectiblesQueryOptions,
9
+ } from '../queries/listCollectibles';
4
10
  import { useConfig } from './useConfig';
5
11
 
12
+ export type UseListCollectiblesParams = Optional<
13
+ ListCollectiblesQueryOptions,
14
+ 'config'
15
+ >;
16
+
6
17
  /**
7
- * Hook to fetch a list of collectibles with pagination support
18
+ * Hook to fetch a list of collectibles with infinite pagination support
19
+ *
20
+ * Fetches collectibles from the marketplace with support for filtering, pagination,
21
+ * and special handling for shop marketplace types and LAOS721 contracts.
8
22
  *
9
- * @param args - The arguments for fetching the collectibles
10
- * @returns Infinite query result containing the collectibles data including orders
23
+ * @param params - Configuration parameters
24
+ * @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
25
+ * @param params.collectionAddress - The collection contract address
26
+ * @param params.side - Order side (listing or bid)
27
+ * @param params.filter - Optional filtering parameters
28
+ * @param params.isLaos721 - Whether the collection is a LAOS721 contract
29
+ * @param params.marketplaceType - Type of marketplace (shop, etc.)
30
+ * @param params.query - Optional React Query configuration
31
+ *
32
+ * @returns Infinite query result containing collectibles data with pagination
11
33
  *
12
34
  * @example
13
- * ```tsx
14
- * const { data, isLoading, error, fetchNextPage } = useListCollectibles({
35
+ * Basic usage:
36
+ * ```typescript
37
+ * const { data, isLoading, fetchNextPage, hasNextPage } = useListCollectibles({
38
+ * chainId: 137,
39
+ * collectionAddress: '0x...',
40
+ * side: OrderSide.listing
41
+ * })
42
+ * ```
43
+ *
44
+ * @example
45
+ * With filtering:
46
+ * ```typescript
47
+ * const { data, fetchNextPage } = useListCollectibles({
15
48
  * chainId: 1,
16
- * collectionAddress: '0x123...',
17
- * includeMetadata: true,
18
- * query: {
19
- * enabled: true,
20
- * refetchInterval: 10000,
49
+ * collectionAddress: '0x...',
50
+ * side: OrderSide.listing,
51
+ * filter: {
52
+ * searchText: 'dragon',
53
+ * includeEmpty: false,
54
+ * marketplaces: [MarketplaceKind.sequence_marketplace_v2]
21
55
  * }
22
- * });
56
+ * })
57
+ * ```
58
+ *
59
+ * @example
60
+ * For LAOS721 collections:
61
+ * ```typescript
62
+ * const { data } = useListCollectibles({
63
+ * chainId: 137,
64
+ * collectionAddress: '0x...',
65
+ * side: OrderSide.listing,
66
+ * isLaos721: true,
67
+ * filter: {
68
+ * inAccounts: ['0x...']
69
+ * }
70
+ * })
23
71
  * ```
24
72
  */
25
- export function useListCollectibles(args: UseListCollectiblesArgs) {
26
- const config = useConfig();
27
- return useInfiniteQuery(listCollectiblesOptions({ ...args }, config));
73
+ export function useListCollectibles(params: UseListCollectiblesParams) {
74
+ const defaultConfig = useConfig();
75
+
76
+ const { config = defaultConfig, ...rest } = params;
77
+
78
+ const queryOptions = listCollectiblesQueryOptions({
79
+ config,
80
+ ...rest,
81
+ });
82
+
83
+ return useInfiniteQuery({
84
+ ...queryOptions,
85
+ });
28
86
  }
87
+
88
+ export { listCollectiblesQueryOptions };
89
+
90
+ export type { FetchListCollectiblesParams, ListCollectiblesQueryOptions };
91
+
92
+ // Legacy export for backward compatibility during migration
93
+ export type UseListCollectiblesArgs = UseListCollectiblesParams;
@@ -1,77 +1,107 @@
1
- import { queryOptions, useQuery } from '@tanstack/react-query';
2
- import { z } from 'zod';
3
- import type { Page, SdkConfig } from '../../types';
1
+ 'use client';
2
+
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import type { Optional } from '../_internal';
4
5
  import {
5
- AddressSchema,
6
- type ListCollectiblesArgs,
7
- collectableKeys,
8
- getMarketplaceClient,
9
- } from '../_internal';
10
- import { listCollectiblesArgsSchema } from '../_internal/api/zod-schema';
6
+ type FetchListCollectiblesPaginatedParams,
7
+ type fetchListCollectiblesPaginated,
8
+ type ListCollectiblesPaginatedQueryOptions,
9
+ listCollectiblesPaginatedQueryOptions,
10
+ } from '../queries/listCollectiblesPaginated';
11
11
  import { useConfig } from './useConfig';
12
12
 
13
- const UseListCollectiblesPaginatedArgsSchema = listCollectiblesArgsSchema
14
- .omit({
15
- contractAddress: true,
16
- })
17
- .extend({
18
- collectionAddress: AddressSchema,
19
- chainId: z.number(),
20
- query: z
21
- .object({
22
- enabled: z.boolean().optional(),
23
- page: z.number().optional().default(1),
24
- pageSize: z.number().optional().default(30),
25
- })
26
- .optional()
27
- .default({}),
28
- });
29
-
30
- export type UseListCollectiblesPaginatedArgs = z.infer<
31
- typeof UseListCollectiblesPaginatedArgsSchema
13
+ export type UseListCollectiblesPaginatedParams = Optional<
14
+ ListCollectiblesPaginatedQueryOptions,
15
+ 'config'
32
16
  >;
33
17
 
34
- export type UseListCollectiblesPaginatedReturn = Awaited<
35
- ReturnType<typeof fetchCollectiblesPaginated>
36
- >;
37
-
38
- const fetchCollectiblesPaginated = async (
39
- args: UseListCollectiblesPaginatedArgs,
40
- marketplaceClient: Awaited<ReturnType<typeof getMarketplaceClient>>,
41
- ) => {
42
- const parsedArgs = UseListCollectiblesPaginatedArgsSchema.parse(args);
43
- const page: Page = {
44
- page: parsedArgs.query?.page ?? 1,
45
- pageSize: parsedArgs.query?.pageSize ?? 30,
46
- };
18
+ /**
19
+ * Hook to fetch a list of collectibles with pagination support
20
+ *
21
+ * Fetches collectibles from the marketplace with support for filtering and pagination.
22
+ * Unlike the infinite query version, this hook fetches a specific page of results.
23
+ *
24
+ * @param params - Configuration parameters
25
+ * @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
26
+ * @param params.collectionAddress - The collection contract address
27
+ * @param params.side - Order side (listing or bid)
28
+ * @param params.filter - Optional filtering parameters
29
+ * @param params.page - Page number to fetch (default: 1)
30
+ * @param params.pageSize - Number of items per page (default: 30)
31
+ * @param params.query - Optional React Query configuration
32
+ *
33
+ * @returns Query result containing collectibles data for the specific page
34
+ *
35
+ * @example
36
+ * Basic usage:
37
+ * ```typescript
38
+ * const { data, isLoading } = useListCollectiblesPaginated({
39
+ * chainId: 137,
40
+ * collectionAddress: '0x...',
41
+ * side: OrderSide.listing,
42
+ * page: 1,
43
+ * pageSize: 20
44
+ * })
45
+ * ```
46
+ *
47
+ * @example
48
+ * With filtering:
49
+ * ```typescript
50
+ * const { data } = useListCollectiblesPaginated({
51
+ * chainId: 1,
52
+ * collectionAddress: '0x...',
53
+ * side: OrderSide.listing,
54
+ * page: 2,
55
+ * pageSize: 50,
56
+ * filter: {
57
+ * searchText: 'rare',
58
+ * includeEmpty: false
59
+ * }
60
+ * })
61
+ * ```
62
+ *
63
+ * @example
64
+ * Controlled pagination:
65
+ * ```typescript
66
+ * const [currentPage, setCurrentPage] = useState(1);
67
+ * const { data, isLoading } = useListCollectiblesPaginated({
68
+ * chainId: 137,
69
+ * collectionAddress: '0x...',
70
+ * side: OrderSide.listing,
71
+ * page: currentPage,
72
+ * pageSize: 25
73
+ * });
74
+ *
75
+ * const hasMorePages = data?.page?.more;
76
+ * ```
77
+ */
78
+ export function useListCollectiblesPaginated(
79
+ params: UseListCollectiblesPaginatedParams,
80
+ ) {
81
+ const defaultConfig = useConfig();
47
82
 
48
- const { chainId, collectionAddress, ...restArgs } = parsedArgs;
49
- const arg: ListCollectiblesArgs = {
50
- chainId: String(chainId),
51
- contractAddress: collectionAddress,
52
- page,
53
- side: restArgs.side,
54
- filter: restArgs.filter,
55
- };
83
+ const { config = defaultConfig, ...rest } = params;
56
84
 
57
- return marketplaceClient.listCollectibles(arg);
58
- };
85
+ const queryOptions = listCollectiblesPaginatedQueryOptions({
86
+ config,
87
+ ...rest,
88
+ });
59
89
 
60
- export const listCollectiblesPaginatedOptions = (
61
- args: UseListCollectiblesPaginatedArgs,
62
- config: SdkConfig,
63
- ) => {
64
- const marketplaceClient = getMarketplaceClient(config);
65
- return queryOptions({
66
- queryKey: [...collectableKeys.lists, 'paginated', args],
67
- queryFn: () => fetchCollectiblesPaginated(args, marketplaceClient),
68
- enabled: args.query?.enabled ?? true,
90
+ return useQuery({
91
+ ...queryOptions,
69
92
  });
70
- };
93
+ }
94
+
95
+ export { listCollectiblesPaginatedQueryOptions };
71
96
 
72
- export const useListCollectiblesPaginated = (
73
- args: UseListCollectiblesPaginatedArgs,
74
- ) => {
75
- const config = useConfig();
76
- return useQuery(listCollectiblesPaginatedOptions(args, config));
97
+ export type {
98
+ FetchListCollectiblesPaginatedParams,
99
+ ListCollectiblesPaginatedQueryOptions,
77
100
  };
101
+
102
+ // Legacy exports for backward compatibility during migration
103
+ export type UseListCollectiblesPaginatedArgs =
104
+ UseListCollectiblesPaginatedParams;
105
+ export type UseListCollectiblesPaginatedReturn = Awaited<
106
+ ReturnType<typeof fetchListCollectiblesPaginated>
107
+ >;
@@ -1,59 +1,93 @@
1
- import { queryOptions, useQuery } from '@tanstack/react-query';
2
- import type { z } from 'zod';
3
- import type { SdkConfig } from '../../types';
4
- import { getMarketplaceClient } from '../_internal';
5
- import { collectionKeys } from '../_internal/api';
6
- import type {
7
- getListCollectionActivitiesArgsSchema,
8
- getListCollectionActivitiesReturnSchema,
9
- } from '../_internal/api/zod-schema';
1
+ 'use client';
2
+
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import type { Optional } from '../_internal';
5
+ import {
6
+ type FetchListCollectionActivitiesParams,
7
+ type fetchListCollectionActivities,
8
+ type ListCollectionActivitiesQueryOptions,
9
+ listCollectionActivitiesQueryOptions,
10
+ } from '../queries/listCollectionActivities';
10
11
  import { useConfig } from './useConfig';
11
12
 
12
- export type UseListCollectionActivitiesArgs = z.infer<
13
- typeof getListCollectionActivitiesArgsSchema
13
+ export type UseListCollectionActivitiesParams = Optional<
14
+ ListCollectionActivitiesQueryOptions,
15
+ 'config'
14
16
  >;
15
17
 
16
- export type UseListCollectionActivitiesReturn = z.infer<
17
- typeof getListCollectionActivitiesReturnSchema
18
- >;
18
+ /**
19
+ * Hook to fetch a list of activities for an entire collection
20
+ *
21
+ * Fetches activities (transfers, sales, offers, etc.) for all tokens
22
+ * in a collection from the marketplace with support for pagination and sorting.
23
+ *
24
+ * @param params - Configuration parameters
25
+ * @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
26
+ * @param params.collectionAddress - The collection contract address
27
+ * @param params.page - Page number to fetch (default: 1)
28
+ * @param params.pageSize - Number of activities per page (default: 10)
29
+ * @param params.sort - Sort order for activities
30
+ * @param params.query - Optional React Query configuration
31
+ *
32
+ * @returns Query result containing activities data for the collection
33
+ *
34
+ * @example
35
+ * Basic usage:
36
+ * ```typescript
37
+ * const { data, isLoading } = useListCollectionActivities({
38
+ * chainId: 137,
39
+ * collectionAddress: '0x...'
40
+ * })
41
+ * ```
42
+ *
43
+ * @example
44
+ * With pagination:
45
+ * ```typescript
46
+ * const { data } = useListCollectionActivities({
47
+ * chainId: 1,
48
+ * collectionAddress: '0x...',
49
+ * page: 2,
50
+ * pageSize: 20
51
+ * })
52
+ * ```
53
+ *
54
+ * @example
55
+ * With sorting:
56
+ * ```typescript
57
+ * const { data } = useListCollectionActivities({
58
+ * chainId: 137,
59
+ * collectionAddress: '0x...',
60
+ * sort: [{ column: 'createdAt', order: SortOrder.DESC }],
61
+ * pageSize: 50
62
+ * })
63
+ * ```
64
+ */
65
+ export function useListCollectionActivities(
66
+ params: UseListCollectionActivitiesParams,
67
+ ) {
68
+ const defaultConfig = useConfig();
19
69
 
20
- const fetchListCollectionActivities = async (
21
- args: UseListCollectionActivitiesArgs,
22
- config: SdkConfig,
23
- ) => {
24
- const marketplaceClient = getMarketplaceClient(config);
25
- return marketplaceClient
26
- .listCollectionActivities({
27
- chainId: String(args.chainId),
28
- contractAddress: args.collectionAddress,
29
- page: args.query?.enabled
30
- ? {
31
- page: args.query.page ?? 1,
32
- pageSize: args.query.pageSize ?? 10,
33
- sort: args.query.sort,
34
- }
35
- : undefined,
36
- })
37
- .then((data) => ({
38
- activities: data.activities,
39
- page: data.page,
40
- }));
41
- };
70
+ const { config = defaultConfig, ...rest } = params;
42
71
 
43
- export const listCollectionActivitiesOptions = (
44
- args: UseListCollectionActivitiesArgs,
45
- config: SdkConfig,
46
- ) => {
47
- return queryOptions({
48
- queryKey: [...collectionKeys.collectionActivities, args, config],
49
- queryFn: () => fetchListCollectionActivities(args, config),
50
- enabled: args.query?.enabled ?? true,
72
+ const queryOptions = listCollectionActivitiesQueryOptions({
73
+ config,
74
+ ...rest,
51
75
  });
52
- };
53
76
 
54
- export const useListCollectionActivities = (
55
- args: UseListCollectionActivitiesArgs,
56
- ) => {
57
- const config = useConfig();
58
- return useQuery(listCollectionActivitiesOptions(args, config));
77
+ return useQuery({
78
+ ...queryOptions,
79
+ });
80
+ }
81
+
82
+ export { listCollectionActivitiesQueryOptions };
83
+
84
+ export type {
85
+ FetchListCollectionActivitiesParams,
86
+ ListCollectionActivitiesQueryOptions,
59
87
  };
88
+
89
+ // Legacy exports for backward compatibility during migration
90
+ export type UseListCollectionActivitiesArgs = UseListCollectionActivitiesParams;
91
+ export type UseListCollectionActivitiesReturn = Awaited<
92
+ ReturnType<typeof fetchListCollectionActivities>
93
+ >;
@@ -1,26 +1,80 @@
1
+ 'use client';
2
+
1
3
  import { useQuery } from '@tanstack/react-query';
2
- import type { MarketplaceType } from '../../types/types';
3
- import { listCollectionsOptions } from '../queries/listCollections';
4
+ import type { Optional } from '../_internal';
5
+ import {
6
+ type FetchListCollectionsParams,
7
+ type ListCollectionsQueryOptions,
8
+ listCollectionsQueryOptions,
9
+ } from '../queries/listCollections';
4
10
  import { useConfig } from './useConfig';
5
11
  import { useMarketplaceConfig } from './useMarketplaceConfig';
6
12
 
7
- type UseListCollectionsArgs = {
8
- marketplaceType?: MarketplaceType;
9
- query?: {
10
- enabled?: boolean;
11
- };
12
- };
13
+ export type UseListCollectionsParams = Optional<
14
+ ListCollectionsQueryOptions,
15
+ 'config' | 'marketplaceConfig'
16
+ >;
17
+
18
+ /**
19
+ * Hook to fetch a list of collections from the marketplace
20
+ *
21
+ * This hook fetches collections from the marketplace configuration and enriches them with
22
+ * metadata from the metadata API. Collections can be filtered by marketplace type (market/shop).
23
+ *
24
+ * @param params - Configuration parameters
25
+ * @param params.marketplaceType - Optional filter for marketplace type ('market' or 'shop')
26
+ * @param params.marketplaceConfig - Optional marketplace configuration (defaults from context)
27
+ * @param params.config - Optional SDK configuration (defaults from context)
28
+ * @param params.query - Optional React Query configuration
29
+ *
30
+ * @returns Query result containing an array of collections with metadata
31
+ *
32
+ * @example
33
+ * Basic usage - fetch all collections:
34
+ * ```typescript
35
+ * const { data: collections, isLoading } = useListCollections()
36
+ * ```
37
+ *
38
+ * @example
39
+ * Filter by marketplace type:
40
+ * ```typescript
41
+ * const { data: marketCollections } = useListCollections({
42
+ * marketplaceType: 'market'
43
+ * })
44
+ * ```
45
+ *
46
+ * @example
47
+ * With custom query options:
48
+ * ```typescript
49
+ * const { data: collections } = useListCollections({
50
+ * query: {
51
+ * enabled: isReady,
52
+ * staleTime: 5 * 60 * 1000 // 5 minutes
53
+ * }
54
+ * })
55
+ * ```
56
+ */
57
+ export function useListCollections(params: UseListCollectionsParams = {}) {
58
+ const defaultConfig = useConfig();
59
+ const { data: defaultMarketplaceConfig } = useMarketplaceConfig();
60
+
61
+ const {
62
+ config = defaultConfig,
63
+ marketplaceConfig = defaultMarketplaceConfig,
64
+ ...rest
65
+ } = params;
13
66
 
14
- export const useListCollections = (args: UseListCollectionsArgs = {}) => {
15
- const config = useConfig();
16
- const { data: marketplaceConfig } = useMarketplaceConfig();
67
+ const queryOptions = listCollectionsQueryOptions({
68
+ config,
69
+ marketplaceConfig,
70
+ ...rest,
71
+ });
17
72
 
18
73
  return useQuery({
19
- ...args.query,
20
- ...listCollectionsOptions({
21
- marketplaceType: args.marketplaceType,
22
- marketplaceConfig,
23
- config,
24
- }),
74
+ ...queryOptions,
25
75
  });
26
- };
76
+ }
77
+
78
+ export { listCollectionsQueryOptions };
79
+
80
+ export type { FetchListCollectionsParams, ListCollectionsQueryOptions };