@0xsequence/marketplace-sdk 0.8.12 → 0.10.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 (487) hide show
  1. package/.storybook/main.ts +63 -0
  2. package/.storybook/preview.ts +24 -0
  3. package/.storybook/vitest.setup.ts +6 -0
  4. package/CHANGELOG.md +158 -21
  5. package/dist/{CartIcon-Bll1rbxv.js → CalendarIcon-CqsuAuCm.js} +30 -77
  6. package/dist/CalendarIcon-CqsuAuCm.js.map +1 -0
  7. package/dist/{types-BIJOaL4j.d.ts → CollectibleCard-Dd-CG6dE.d.ts} +11 -7
  8. package/dist/InfoIcon-v0w_Lu7t.js +53 -0
  9. package/dist/InfoIcon-v0w_Lu7t.js.map +1 -0
  10. package/dist/_internal-C75gOSNo.js +14 -0
  11. package/dist/_internal-C75gOSNo.js.map +1 -0
  12. package/dist/actionModal-CMUeVsFX.js +116 -0
  13. package/dist/actionModal-CMUeVsFX.js.map +1 -0
  14. package/dist/{alien_swap-B_76IMma.js → alien_swap-CYv6YlOF.js} +1 -1
  15. package/dist/{alien_swap-B_76IMma.js.map → alien_swap-CYv6YlOF.js.map} +1 -1
  16. package/dist/{api-1KFxYh7o.js → api-BiMGqWdz.js} +79 -87
  17. package/dist/api-BiMGqWdz.js.map +1 -0
  18. package/dist/{aqua-xyz-CMN_TFY5.js → aqua-xyz-Bzn5baeH.js} +1 -1
  19. package/dist/{aqua-xyz-CMN_TFY5.js.map → aqua-xyz-Bzn5baeH.js.map} +1 -1
  20. package/dist/{aura-Cye_TuHj.js → aura-DzIWh8WT.js} +1 -1
  21. package/dist/{aura-Cye_TuHj.js.map → aura-DzIWh8WT.js.map} +1 -1
  22. package/dist/base-DqaJPvfN.js +22 -0
  23. package/dist/base-DqaJPvfN.js.map +1 -0
  24. package/dist/{blur-DWDMyMpK.js → blur-DSH-Cbpj.js} +1 -1
  25. package/dist/{blur-DWDMyMpK.js.map → blur-DSH-Cbpj.js.map} +1 -1
  26. package/dist/{builder-api-BQvzykoU.js → builder-api-BFuZNOaN.js} +2 -2
  27. package/dist/{builder-api-BQvzykoU.js.map → builder-api-BFuZNOaN.js.map} +1 -1
  28. package/dist/{builder.gen-CxP9NT1p.js → builder.gen-B9wR2nvF.js} +1 -1
  29. package/dist/builder.gen-B9wR2nvF.js.map +1 -0
  30. package/dist/{coinbase-ByA_XRB0.js → coinbase-Df8URNxq.js} +1 -1
  31. package/dist/{coinbase-ByA_XRB0.js.map → coinbase-Df8URNxq.js.map} +1 -1
  32. package/dist/{sdk-config-DJzxVPld.d.ts → create-config-DKJ-F0jc.d.ts} +458 -86
  33. package/dist/{wagmi-DRctYEk6.js → create-config-fQ-jbJD1.js} +33 -16
  34. package/dist/create-config-fQ-jbJD1.js.map +1 -0
  35. package/dist/{element-b77CyXIZ.js → element-Cx6uJu5N.js} +1 -1
  36. package/dist/{element-b77CyXIZ.js.map → element-Cx6uJu5N.js.map} +1 -1
  37. package/dist/{foundation-DbOrKP9Y.js → foundation-D6U4aRLN.js} +1 -1
  38. package/dist/{foundation-DbOrKP9Y.js.map → foundation-D6U4aRLN.js.map} +1 -1
  39. package/dist/get-provider-CYYHfrlg.js +10 -0
  40. package/dist/get-provider-CYYHfrlg.js.map +1 -0
  41. package/dist/get-query-client-D19vvfJo.js +23 -0
  42. package/dist/get-query-client-D19vvfJo.js.map +1 -0
  43. package/dist/hooks-4pxIbLbM.js +4044 -0
  44. package/dist/hooks-4pxIbLbM.js.map +1 -0
  45. package/dist/{index-1bezgsFq.d.ts → index-136YrWDH.d.ts} +929 -255
  46. package/dist/{index-D5v5iluA.d.ts → index-BAhaEfqY.d.ts} +1 -1
  47. package/dist/index-BKBin-rq.d.ts +979 -0
  48. package/dist/index-BUWB_RXp.d.ts +3144 -0
  49. package/dist/{index-Cl7PQOGu.d.ts → index-BhVFc2rX.d.ts} +28 -25
  50. package/dist/{index-DXMfTZ1F.d.ts → index-C5aqo8xu.d.ts} +1 -1
  51. package/dist/{index-BIMIpDiI.d.ts → index-CKrYP7ot.d.ts} +74 -103
  52. package/dist/{index-BEYefG1G.d.ts → index-CUwMH7Ht.d.ts} +5 -5
  53. package/dist/{index-BjIwVzc4.d.ts → index-Cu70Lw-w.d.ts} +238 -238
  54. package/dist/index.css +427 -1
  55. package/dist/index.d.ts +8 -10
  56. package/dist/index.js +15 -11
  57. package/dist/{looks-rare-C1VqNcSM.js → looks-rare-ChBRBY-p.js} +1 -1
  58. package/dist/{looks-rare-C1VqNcSM.js.map → looks-rare-ChBRBY-p.js.map} +1 -1
  59. package/dist/{magic-eden-ea_AGCZr.js → magic-eden-D5U7N1xL.js} +1 -1
  60. package/dist/{magic-eden-ea_AGCZr.js.map → magic-eden-D5U7N1xL.js.map} +1 -1
  61. package/dist/{manifold-8y8J2sjT.js → manifold-CtLF52zU.js} +1 -1
  62. package/dist/{manifold-8y8J2sjT.js.map → manifold-CtLF52zU.js.map} +1 -1
  63. package/dist/{marketplace-nwnZv9Cb.js → marketplace-DmFiyBoS.js} +1 -1
  64. package/dist/{marketplace-nwnZv9Cb.js.map → marketplace-DmFiyBoS.js.map} +1 -1
  65. package/dist/{marketplace-logos-CSeGcPW4.js → marketplace-logos-Cd6W-qOq.js} +21 -21
  66. package/dist/{marketplace-logos-CSeGcPW4.js.map → marketplace-logos-Cd6W-qOq.js.map} +1 -1
  67. package/dist/{marketplace.gen-Dqk8vRmD.js → marketplace.gen-HpnpL5xU.js} +12 -3
  68. package/dist/marketplace.gen-HpnpL5xU.js.map +1 -0
  69. package/dist/{marketplaceConfig-D2MYFqll.js → marketplaceConfig-GQTTmihy.js} +3 -3
  70. package/dist/marketplaceConfig-GQTTmihy.js.map +1 -0
  71. package/dist/{mintify-LA68TzWg.js → mintify-Bi3Bce68.js} +1 -1
  72. package/dist/{mintify-LA68TzWg.js.map → mintify-Bi3Bce68.js.map} +1 -1
  73. package/dist/network-CGD0oKtS.js +15 -0
  74. package/dist/network-CGD0oKtS.js.map +1 -0
  75. package/dist/{nftx-D3Tc8nzd.js → nftx-BDQZjtkX.js} +1 -1
  76. package/dist/{nftx-D3Tc8nzd.js.map → nftx-BDQZjtkX.js.map} +1 -1
  77. package/dist/{okx-hbqg6oIJ.js → okx-D4meadLe.js} +1 -1
  78. package/dist/{okx-hbqg6oIJ.js.map → okx-D4meadLe.js.map} +1 -1
  79. package/dist/{open-sea-BccuK8-t.js → open-sea-DN0hgfVw.js} +1 -1
  80. package/dist/{open-sea-BccuK8-t.js.map → open-sea-DN0hgfVw.js.map} +1 -1
  81. package/dist/options-BBBR8u_4.js +0 -0
  82. package/dist/{primary-sale-Cw95phYC.js → primary-sale-CmWxSfFQ.js} +279 -279
  83. package/dist/primary-sale-CmWxSfFQ.js.map +1 -0
  84. package/dist/provider-DPGUA10G.js +125 -0
  85. package/dist/provider-DPGUA10G.js.map +1 -0
  86. package/dist/queries-Ce_2othB.js +757 -0
  87. package/dist/queries-Ce_2othB.js.map +1 -0
  88. package/dist/{rarible-BgTwwj9g.js → rarible-B0xlD88A.js} +1 -1
  89. package/dist/{rarible-BgTwwj9g.js.map → rarible-B0xlD88A.js.map} +1 -1
  90. package/dist/react/_internal/api/index.d.ts +2 -4
  91. package/dist/react/_internal/api/index.js +9 -6
  92. package/dist/react/_internal/databeat/index.d.ts +2 -73
  93. package/dist/react/_internal/databeat/index.js +4 -21
  94. package/dist/react/_internal/index.d.ts +2 -7
  95. package/dist/react/_internal/index.js +13 -8
  96. package/dist/react/_internal/wagmi/index.d.ts +2 -4
  97. package/dist/react/_internal/wagmi/index.js +6 -4
  98. package/dist/react/hooks/index.d.ts +13 -17
  99. package/dist/react/hooks/index.js +25 -21
  100. package/dist/react/hooks/options/index.d.ts +3 -5
  101. package/dist/react/hooks/options/index.js +15 -10
  102. package/dist/react/index.d.ts +13 -40
  103. package/dist/react/index.js +30 -21
  104. package/dist/react/queries/index.d.ts +9 -8
  105. package/dist/react/queries/index.js +22 -17
  106. package/dist/react/ssr/index.d.ts +7 -9
  107. package/dist/react/ssr/index.js +13 -8
  108. package/dist/react/ssr/index.js.map +1 -1
  109. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +3 -9
  110. package/dist/react/ui/components/marketplace-collectible-card/index.js +29 -20
  111. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -7
  112. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +13 -8
  113. package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
  114. package/dist/react/ui/components/marketplace-logos/index.js +1 -1
  115. package/dist/react/ui/icons/index.js +14 -10
  116. package/dist/react/ui/index.d.ts +3 -9
  117. package/dist/react/ui/index.js +29 -20
  118. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +5 -5
  119. package/dist/react/ui/modals/_internal/components/actionModal/index.js +25 -20
  120. package/dist/{react-BG7o4PId.js → react-DP0M2Wfm.js} +4919 -7839
  121. package/dist/react-DP0M2Wfm.js.map +1 -0
  122. package/dist/{react-BbHBl6gg.css → react-DeDyTgo7.css} +1 -1
  123. package/dist/{react-BbHBl6gg.css.map → react-DeDyTgo7.css.map} +1 -1
  124. package/dist/{sequence-Do3kzb4J.js → sequence-BIrOVRXO.js} +1 -1
  125. package/dist/{sequence-Do3kzb4J.js.map → sequence-BIrOVRXO.js.map} +1 -1
  126. package/dist/{sudo-swap-B6vPKxBz.js → sudo-swap-BPMon-M5.js} +1 -1
  127. package/dist/{sudo-swap-B6vPKxBz.js.map → sudo-swap-BPMon-M5.js.map} +1 -1
  128. package/dist/{super-rare-eCm1SE6O.js → super-rare-kPN6Ua8i.js} +1 -1
  129. package/dist/{super-rare-eCm1SE6O.js.map → super-rare-kPN6Ua8i.js.map} +1 -1
  130. package/dist/{token-CO5llIla.js → token-CHSBPYVG.js} +1540 -761
  131. package/dist/token-CHSBPYVG.js.map +1 -0
  132. package/dist/{transaction-CcVViHEL.js → transaction-CnctdNzS.js} +3 -21
  133. package/dist/transaction-CnctdNzS.js.map +1 -0
  134. package/dist/types/index.d.ts +2 -3
  135. package/dist/types/index.js +3 -3
  136. package/dist/{types-DwWE6xOF.js → types-Yw2ywj6j.js} +1 -1
  137. package/dist/types-Yw2ywj6j.js.map +1 -0
  138. package/dist/utils/abi/index.d.ts +5 -5
  139. package/dist/utils/abi/index.js +5 -5
  140. package/dist/utils/abi/marketplace/index.d.ts +1 -1
  141. package/dist/utils/abi/marketplace/index.js +1 -1
  142. package/dist/utils/abi/primary-sale/index.d.ts +1 -1
  143. package/dist/utils/abi/primary-sale/index.js +1 -1
  144. package/dist/utils/abi/token/index.d.ts +2 -2
  145. package/dist/utils/abi/token/index.js +2 -2
  146. package/dist/utils/index.d.ts +7 -8
  147. package/dist/utils/index.js +13 -10
  148. package/dist/{utils-BFdxaToy.js → utils-9RXDgcBl.js} +86 -93
  149. package/dist/utils-9RXDgcBl.js.map +1 -0
  150. package/dist/{utils-Cat9_pef.js → utils-DjVJ9tov.js} +5 -6
  151. package/dist/utils-DjVJ9tov.js.map +1 -0
  152. package/dist/wagmi-Do_KW5ke.js +0 -0
  153. package/dist/{x2y2-DD17tT91.js → x2y2-BLz-_Q2O.js} +1 -1
  154. package/dist/{x2y2-DD17tT91.js.map → x2y2-BLz-_Q2O.js.map} +1 -1
  155. package/dist/{zora-BpSG9UzS.js → zora-UGhKs-aL.js} +1 -1
  156. package/dist/{zora-BpSG9UzS.js.map → zora-UGhKs-aL.js.map} +1 -1
  157. package/eslint/use-client.js +0 -6
  158. package/eslint.config.mjs +4 -0
  159. package/package.json +47 -35
  160. package/postcss.config.mjs +6 -0
  161. package/src/index.css +5 -4
  162. package/src/index.ts +2 -1
  163. package/src/react/__tests__/provider.test.tsx +4 -3
  164. package/src/react/_internal/api/__mocks__/builder.msw.ts +5 -3
  165. package/src/react/_internal/api/__mocks__/indexer.msw.ts +24 -8
  166. package/src/react/_internal/api/__mocks__/laos.msw.ts +387 -0
  167. package/src/react/_internal/api/__mocks__/marketplace.msw.ts +6 -6
  168. package/src/react/_internal/api/__mocks__/metadata.msw.ts +1 -1
  169. package/src/react/_internal/api/__tests__/laos-api.test.ts +756 -0
  170. package/src/react/_internal/api/builder.gen.ts +6 -6
  171. package/src/react/_internal/api/get-query-client.ts +2 -2
  172. package/src/react/_internal/api/index.ts +2 -2
  173. package/src/react/_internal/api/laos-api.ts +3 -0
  174. package/src/react/_internal/api/marketplace.gen.ts +43 -3
  175. package/src/react/_internal/api/query-keys.ts +21 -6
  176. package/src/react/_internal/api/services.ts +30 -45
  177. package/src/react/_internal/databeat/index.ts +15 -14
  178. package/src/react/_internal/databeat/types.ts +22 -0
  179. package/src/react/_internal/databeat/utils.ts +26 -0
  180. package/src/react/_internal/index.ts +1 -1
  181. package/src/react/_internal/types.ts +10 -23
  182. package/src/react/_internal/utils.ts +4 -5
  183. package/src/react/_internal/wagmi/create-config.ts +43 -19
  184. package/src/react/_internal/wagmi/get-connectors.ts +9 -7
  185. package/src/react/_internal/wallet/__tests__/wallet.test.ts +1 -1
  186. package/src/react/_internal/wallet/wallet.ts +22 -22
  187. package/src/react/hooks/__tests__/__snapshots__/useListCollections.test.tsx.snap +20 -0
  188. package/src/react/hooks/__tests__/__snapshots__/useMarketplaceConfig.test.tsx.snap +12 -2
  189. package/src/react/hooks/__tests__/useAutoSelectFeeOption.test.tsx +1 -1
  190. package/src/react/hooks/__tests__/useBalanceOfCollectible.laos.test.tsx +367 -0
  191. package/src/react/hooks/__tests__/useBalanceOfCollectible.test.tsx +1 -1
  192. package/src/react/hooks/__tests__/useCancelOrder.test.tsx +4 -4
  193. package/src/react/hooks/__tests__/useCancelTransactionSteps.test.tsx +1 -1
  194. package/src/react/hooks/__tests__/useCheckoutOptions.test.tsx +158 -0
  195. package/src/react/hooks/__tests__/useCheckoutOptionsSalesContract.test.tsx +42 -65
  196. package/src/react/hooks/__tests__/useCollectible.test.tsx +14 -16
  197. package/src/react/hooks/__tests__/useCollection.test.tsx +4 -4
  198. package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +16 -25
  199. package/src/react/hooks/__tests__/useCollectionDetails.test.tsx +1 -1
  200. package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +12 -4
  201. package/src/react/hooks/__tests__/useComparePrices.test.tsx +7 -6
  202. package/src/react/hooks/__tests__/useConvertPriceToUSD.test.tsx +4 -4
  203. package/src/react/hooks/__tests__/useCountListingsForCollectible.test.tsx +2 -2
  204. package/src/react/hooks/__tests__/useCountOfCollectables.test.tsx +5 -5
  205. package/src/react/hooks/__tests__/useCountOffersForCollectible.test.tsx +2 -2
  206. package/src/react/hooks/__tests__/useCurrency.test.tsx +5 -3
  207. package/src/react/hooks/__tests__/useCurrencyBalance.test.tsx +7 -3
  208. package/src/react/hooks/__tests__/useFilters.test.tsx +3 -3
  209. package/src/react/hooks/__tests__/useFloorOrder.test.tsx +4 -4
  210. package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +3 -3
  211. package/src/react/hooks/__tests__/useGenerateListingTransaction.test.tsx +1 -1
  212. package/src/react/hooks/__tests__/useGenerateOfferTransaction.test.tsx +1 -1
  213. package/src/react/hooks/__tests__/useGenerateSellTransaction.test.tsx +1 -1
  214. package/src/react/hooks/__tests__/useGetTokenRanges.test.tsx +111 -0
  215. package/src/react/hooks/__tests__/useHighestOffer.test.tsx +4 -4
  216. package/src/react/hooks/__tests__/useInventory.test.tsx +1 -1
  217. package/src/react/hooks/__tests__/useListCollectibleActivities.test.tsx +11 -13
  218. package/src/react/hooks/__tests__/useListCollectibles.test.tsx +5 -5
  219. package/src/react/hooks/__tests__/useListCollectiblesPaginated.test.tsx +10 -15
  220. package/src/react/hooks/__tests__/useListCollectionActivities.test.tsx +13 -15
  221. package/src/react/hooks/__tests__/useListCollections.test.tsx +3 -3
  222. package/src/react/hooks/__tests__/useListListingsForCollectible.test.tsx +3 -2
  223. package/src/react/hooks/__tests__/useListMarketCardData.test.tsx +301 -0
  224. package/src/react/hooks/__tests__/useListOffersForCollectible.test.tsx +1 -1
  225. package/src/react/hooks/__tests__/useListTokenMetadata.test.tsx +137 -0
  226. package/src/react/hooks/__tests__/useLowestListing.test.tsx +1 -1
  227. package/src/react/hooks/__tests__/useMarketCurrencies.test.tsx +1 -1
  228. package/src/react/hooks/__tests__/useRoyalty.test.tsx +0 -23
  229. package/src/react/hooks/__tests__/useTransferTokens.test.tsx +469 -0
  230. package/src/react/hooks/index.ts +29 -24
  231. package/src/react/hooks/options/index.ts +0 -1
  232. package/src/react/hooks/useAutoSelectFeeOption.tsx +1 -1
  233. package/src/react/hooks/useBalanceOfCollectible.tsx +1 -1
  234. package/src/react/hooks/useCancelTransactionSteps.tsx +2 -2
  235. package/src/react/hooks/useCheckoutOptions.tsx +84 -54
  236. package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +98 -57
  237. package/src/react/hooks/useCollectible.tsx +64 -49
  238. package/src/react/hooks/useCollection.tsx +60 -11
  239. package/src/react/hooks/useCollectionBalanceDetails.tsx +93 -73
  240. package/src/react/hooks/useCollectionDetails.ts +69 -0
  241. package/src/react/hooks/useCollectionDetailsPolling.tsx +7 -3
  242. package/src/react/hooks/useComparePrices.tsx +91 -86
  243. package/src/react/hooks/useConvertPriceToUSD.tsx +83 -86
  244. package/src/react/hooks/useCountListingsForCollectible.tsx +64 -53
  245. package/src/react/hooks/useCountOfCollectables.tsx +60 -69
  246. package/src/react/hooks/useCountOfPrimarySaleItems.tsx +13 -0
  247. package/src/react/hooks/useCountOffersForCollectible.tsx +64 -53
  248. package/src/react/hooks/useCurrency.tsx +56 -64
  249. package/src/react/hooks/useCurrencyBalance.tsx +132 -46
  250. package/src/react/hooks/useERC721SaleMintedTokens.tsx +8 -5
  251. package/src/react/hooks/useFilterState.tsx +1 -2
  252. package/src/react/hooks/useFilters.tsx +154 -111
  253. package/src/react/hooks/useFloorOrder.tsx +65 -40
  254. package/src/react/hooks/useGenerateCancelTransaction.tsx +5 -10
  255. package/src/react/hooks/useGenerateListingTransaction.tsx +1 -1
  256. package/src/react/hooks/useGenerateOfferTransaction.tsx +1 -1
  257. package/src/react/hooks/useGenerateSellTransaction.tsx +5 -10
  258. package/src/react/hooks/useGetCountOfPrimarySaleItems.tsx +48 -0
  259. package/src/react/hooks/useGetReceiptFromHash.tsx +32 -3
  260. package/src/react/hooks/useGetTokenRanges.tsx +92 -0
  261. package/src/react/hooks/useHighestOffer.tsx +68 -4
  262. package/src/react/hooks/useInventory.tsx +1 -1
  263. package/src/react/hooks/useList1155ShopCardData.tsx +57 -82
  264. package/src/react/hooks/useList721ShopCardData.tsx +98 -63
  265. package/src/react/hooks/useListBalances.tsx +1 -1
  266. package/src/react/hooks/useListCollectibleActivities.tsx +89 -50
  267. package/src/react/hooks/useListCollectibles.tsx +81 -16
  268. package/src/react/hooks/useListCollectiblesPaginated.tsx +96 -66
  269. package/src/react/hooks/useListCollectionActivities.tsx +84 -50
  270. package/src/react/hooks/useListCollections.tsx +71 -17
  271. package/src/react/hooks/useListListingsForCollectible.tsx +90 -50
  272. package/src/react/hooks/useListMarketCardData.tsx +3 -2
  273. package/src/react/hooks/useListOffersForCollectible.tsx +9 -14
  274. package/src/react/hooks/useListPrimarySaleItems.tsx +66 -0
  275. package/src/react/hooks/useListShopCardData.tsx +70 -0
  276. package/src/react/hooks/useListTokenMetadata.ts +64 -12
  277. package/src/react/hooks/useListTokenMetadata.tsx +73 -0
  278. package/src/react/hooks/useLowestListing.tsx +68 -4
  279. package/src/react/hooks/useMarketCurrencies.tsx +62 -5
  280. package/src/react/hooks/useOpenConnectModal.tsx +9 -0
  281. package/src/react/hooks/useRoyalty.tsx +57 -13
  282. package/src/react/hooks/useShopCollectibleSaleData.tsx +349 -0
  283. package/src/react/hooks/useTokenSaleDetailsBatch.tsx +3 -7
  284. package/src/react/hooks/useTokenSupplies.ts +81 -0
  285. package/src/react/hooks/useTransferTokens.tsx +2 -2
  286. package/src/react/hooks/util/optimisticCancelUpdates.ts +5 -7
  287. package/src/react/index.ts +5 -3
  288. package/src/react/provider.tsx +73 -9
  289. package/src/react/queries/__tests__/balanceOfCollectible.laos.test.ts +123 -0
  290. package/src/react/queries/__tests__/inventory.laos.test.ts +496 -0
  291. package/src/react/queries/balanceOfCollectible.ts +8 -5
  292. package/src/react/queries/checkoutOptions.ts +85 -0
  293. package/src/react/queries/checkoutOptionsSalesContract.ts +89 -0
  294. package/src/react/queries/collectible.ts +66 -0
  295. package/src/react/queries/collection.ts +55 -0
  296. package/src/react/queries/collectionBalanceDetails.ts +92 -0
  297. package/src/react/queries/collectionDetails.ts +64 -0
  298. package/src/react/queries/comparePrices.ts +108 -0
  299. package/src/react/queries/convertPriceToUSD.ts +92 -0
  300. package/src/react/queries/countListingsForCollectible.ts +73 -0
  301. package/src/react/queries/countOfCollectables.ts +83 -0
  302. package/src/react/queries/countOfPrimarySaleItems.ts +48 -0
  303. package/src/react/queries/countOffersForCollectible.ts +73 -0
  304. package/src/react/queries/currency.ts +83 -0
  305. package/src/react/queries/filters.ts +138 -0
  306. package/src/react/queries/floorOrder.ts +63 -0
  307. package/src/react/queries/getTokenRanges.ts +62 -0
  308. package/src/react/queries/highestOffer.ts +46 -40
  309. package/src/react/queries/index.ts +10 -4
  310. package/src/react/queries/inventory.ts +10 -4
  311. package/src/react/queries/listBalances.ts +5 -4
  312. package/src/react/queries/listCollectibleActivities.ts +97 -0
  313. package/src/react/queries/listCollectibles.ts +67 -50
  314. package/src/react/queries/listCollectiblesPaginated.ts +87 -0
  315. package/src/react/queries/listCollectionActivities.ts +95 -0
  316. package/src/react/queries/listCollections.ts +53 -10
  317. package/src/react/queries/listListingsForCollectible.ts +82 -0
  318. package/src/react/queries/listTokenMetadata.ts +47 -23
  319. package/src/react/queries/lowestListing.ts +46 -31
  320. package/src/react/queries/marketCurrencies.ts +42 -29
  321. package/src/react/queries/marketplaceConfig.ts +4 -4
  322. package/src/react/queries/primarySaleItems.ts +85 -0
  323. package/src/react/queries/primarySaleItemsCount.ts +64 -0
  324. package/src/react/queries/tokenSupplies.ts +93 -0
  325. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +12 -2
  326. package/src/react/ssr/create-ssr-client.ts +1 -1
  327. package/src/react/types/query.ts +34 -0
  328. package/src/react/ui/components/ModelViewer.tsx +1 -1
  329. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +66 -66
  330. package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +22 -4
  331. package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +14 -8
  332. package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +5 -4
  333. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +3 -0
  334. package/src/react/ui/components/_internals/action-button/components/OwnerActions.tsx +4 -4
  335. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +20 -18
  336. package/src/react/ui/components/_internals/action-button/store.ts +72 -34
  337. package/src/react/ui/components/_internals/custom-select/CustomSelect.stories.tsx +582 -0
  338. package/src/react/ui/components/_internals/pill/Pill.stories.tsx +83 -0
  339. package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +1 -1
  340. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +12 -5
  341. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +7 -4
  342. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +3 -0
  343. package/src/react/ui/components/marketplace-collectible-card/index.ts +1 -1
  344. package/src/react/ui/components/marketplace-collectible-card/types.ts +11 -7
  345. package/src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts +4 -7
  346. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +3 -2
  347. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +7 -6
  348. package/src/react/ui/components/marketplace-logos/marketplace-logos.stories.tsx +199 -0
  349. package/src/react/ui/components/marketplace-logos/marketplace-logos.tsx +1 -1
  350. package/src/react/ui/components/media/Media.stories.tsx +642 -0
  351. package/src/react/ui/components/media/Media.tsx +29 -20
  352. package/src/react/ui/components/media/types.ts +6 -0
  353. package/src/react/ui/index.ts +8 -10
  354. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +15 -0
  355. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +100 -87
  356. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +11 -5
  357. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +10 -2
  358. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +17 -11
  359. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +4 -1
  360. package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +1 -1
  361. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +30 -27
  362. package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +3 -3
  363. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +11 -2
  364. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +2 -2
  365. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +10 -3
  366. package/src/react/ui/modals/BuyModal/index.tsx +9 -1
  367. package/src/react/ui/modals/BuyModal/store.ts +26 -0
  368. package/src/react/ui/modals/CreateListingModal/Modal.tsx +28 -11
  369. package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +2 -2
  370. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +0 -1
  371. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +2 -2
  372. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +7 -6
  373. package/src/react/ui/modals/CreateListingModal/index.tsx +1 -1
  374. package/src/react/ui/modals/CreateListingModal/store.ts +3 -3
  375. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +31 -14
  376. package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +1 -1
  377. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +1 -1
  378. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +0 -1
  379. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +7 -7
  380. package/src/react/ui/modals/MakeOfferModal/index.tsx +1 -1
  381. package/src/react/ui/modals/MakeOfferModal/store.ts +3 -3
  382. package/src/react/ui/modals/SellModal/Modal.tsx +14 -11
  383. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +6 -4
  384. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +1 -1
  385. package/src/react/ui/modals/SellModal/hooks/useSell.tsx +0 -1
  386. package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +6 -6
  387. package/src/react/ui/modals/SellModal/store.ts +3 -3
  388. package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +1 -1
  389. package/src/react/ui/modals/TransferModal/__tests__/__snapshots__/store.test.ts.snap +17 -0
  390. package/src/react/ui/modals/TransferModal/__tests__/store.test.ts +366 -0
  391. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/__tests__/useHandleTransfer.test.tsx +402 -0
  392. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +52 -50
  393. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TransferButton.tsx +39 -47
  394. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/WalletAddressInput.tsx +9 -8
  395. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +33 -37
  396. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/useHandleTransfer.tsx +19 -10
  397. package/src/react/ui/modals/TransferModal/index.tsx +28 -31
  398. package/src/react/ui/modals/TransferModal/messages.ts +1 -1
  399. package/src/react/ui/modals/TransferModal/store.ts +122 -0
  400. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +1 -1
  401. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +2 -4
  402. package/src/react/ui/modals/_internal/components/calendar/index.tsx +0 -1
  403. package/src/react/ui/modals/_internal/components/currencyImage/index.tsx +10 -14
  404. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +6 -3
  405. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +23 -18
  406. package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +10 -10
  407. package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +6 -6
  408. package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +4 -4
  409. package/src/react/ui/modals/_internal/components/priceInput/__tests__/PriceInput.test.tsx +13 -5
  410. package/src/react/ui/modals/_internal/components/priceInput/index.tsx +41 -26
  411. package/src/react/ui/modals/_internal/components/quantityInput/__tests__/index.test.tsx +68 -59
  412. package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +23 -17
  413. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +340 -41
  414. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/_components/BalanceIndicator.tsx +1 -2
  415. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/index.tsx +95 -101
  416. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/store.ts +72 -14
  417. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +29 -14
  418. package/src/react/ui/modals/_internal/components/tokenPreview/index.tsx +2 -2
  419. package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +2 -2
  420. package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +88 -89
  421. package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +37 -11
  422. package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +0 -1
  423. package/src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx +32 -20
  424. package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +92 -63
  425. package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +44 -45
  426. package/src/react/ui/modals/_internal/types.ts +2 -2
  427. package/src/react/ui/modals/modal-provider.tsx +2 -3
  428. package/src/types/api-types.ts +36 -36
  429. package/src/types/buyModalErrors.ts +1 -1
  430. package/src/types/index.ts +5 -5
  431. package/src/types/new-marketplace-types.ts +1 -1
  432. package/src/types/sdk-config.ts +8 -2
  433. package/src/types/types.ts +1 -0
  434. package/src/types/waas-types.ts +1 -1
  435. package/src/utils/abi/index.ts +1 -1
  436. package/src/utils/abi/primary-sale/index.ts +1 -1
  437. package/src/utils/abi/token/index.ts +2 -1
  438. package/src/utils/decode/erc20.ts +1 -1
  439. package/src/utils/index.ts +3 -3
  440. package/src/utils/network.ts +15 -0
  441. package/test/const.ts +3 -1
  442. package/test/mocks/wallet.ts +1 -1
  443. package/test/test-utils.tsx +5 -4
  444. package/vitest.shims.d.ts +2 -0
  445. package/vitest.storybook.config.js +33 -0
  446. package/.changeset/fluffy-jokes-lay.md +0 -5
  447. package/.changeset/wise-bugs-boil.md +0 -8
  448. package/dist/CartIcon-Bll1rbxv.js.map +0 -1
  449. package/dist/CollectibleCard-CLQTl0_6.d.ts +0 -8
  450. package/dist/_internal-69NEWNUE.js +0 -34
  451. package/dist/_internal-69NEWNUE.js.map +0 -1
  452. package/dist/api-1KFxYh7o.js.map +0 -1
  453. package/dist/builder-api-DoK3907S.d.ts +0 -12
  454. package/dist/builder.gen-CxP9NT1p.js.map +0 -1
  455. package/dist/index-4-kfOFdx.d.ts +0 -22
  456. package/dist/index-BHiSG-Yi.d.ts +0 -312
  457. package/dist/index-BQW0PUkQ.d.ts +0 -3973
  458. package/dist/index-BfH21xmk.d.ts +0 -117
  459. package/dist/index-CN8puQQJ.d.ts +0 -24
  460. package/dist/index-DafWjEb4.d.ts +0 -65
  461. package/dist/marketplace.gen-Dqk8vRmD.js.map +0 -1
  462. package/dist/marketplaceConfig-D2MYFqll.js.map +0 -1
  463. package/dist/options-DCi6_23w.js +0 -34
  464. package/dist/options-DCi6_23w.js.map +0 -1
  465. package/dist/primary-sale-Cw95phYC.js.map +0 -1
  466. package/dist/queries-DPvwtnO7.js +0 -486
  467. package/dist/queries-DPvwtnO7.js.map +0 -1
  468. package/dist/react-BG7o4PId.js.map +0 -1
  469. package/dist/token-CO5llIla.js.map +0 -1
  470. package/dist/transaction-CcVViHEL.js.map +0 -1
  471. package/dist/types-DwWE6xOF.js.map +0 -1
  472. package/dist/useCollection-C-mclKU0.d.ts +0 -66
  473. package/dist/utils-BFdxaToy.js.map +0 -1
  474. package/dist/utils-Cat9_pef.js.map +0 -1
  475. package/dist/wagmi-DRctYEk6.js.map +0 -1
  476. package/src/react/_internal/api/zod-schema.ts +0 -678
  477. package/src/react/hooks/options/collectionOptions.ts +0 -41
  478. package/src/react/hooks/useCollectionDetails.tsx +0 -50
  479. package/src/react/hooks/useGetTokenSuppliesMap.ts +0 -33
  480. package/src/react/hooks/useListPrimarySaleItems.ts +0 -42
  481. package/src/react/queries/getTokenSupplies.ts +0 -38
  482. package/src/react/ui/modals/TransferModal/_store.ts +0 -72
  483. package/src/react/ui/modals/_internal/stores/accountModal.ts +0 -3
  484. package/tsconfig.tsbuildinfo +0 -1
  485. /package/dist/{abi-BKyRjVcZ.js → abi-BMvgNbKQ.js} +0 -0
  486. /package/dist/{index-C39K_8SG.d.ts → index-CD2bj_xW.d.ts} +0 -0
  487. /package/dist/{index-ij9f8GAA.d.ts → index-DvpBZgor.d.ts} +0 -0
@@ -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
+ >;
13
17
 
14
- export const useListCollections = (args: UseListCollectionsArgs = {}) => {
15
- const config = useConfig();
18
+ /**
19
+ * Hook to fetch collections from marketplace configuration
20
+ *
21
+ * Retrieves all collections configured in the marketplace, with optional filtering
22
+ * by marketplace type. Combines metadata from the metadata API with marketplace
23
+ * configuration to provide complete collection information.
24
+ *
25
+ * @param params - Configuration parameters
26
+ * @param params.marketplaceType - Optional filter by marketplace type
27
+ * @param params.query - Optional React Query configuration
28
+ *
29
+ * @returns Query result containing array of collections with metadata
30
+ *
31
+ * @example
32
+ * Basic usage:
33
+ * ```typescript
34
+ * const { data: collections, isLoading } = useListCollections();
35
+ *
36
+ * if (isLoading) return <div>Loading collections...</div>;
37
+ *
38
+ * return (
39
+ * <div>
40
+ * {collections?.map(collection => (
41
+ * <div key={collection.itemsAddress}>
42
+ * {collection.name}
43
+ * </div>
44
+ * ))}
45
+ * </div>
46
+ * );
47
+ * ```
48
+ *
49
+ * @example
50
+ * Filtering by marketplace type:
51
+ * ```typescript
52
+ * const { data: marketCollections } = useListCollections({
53
+ * marketplaceType: 'market'
54
+ * });
55
+ * ```
56
+ */
57
+ export function useListCollections(params: UseListCollectionsParams = {}) {
58
+ const defaultConfig = useConfig();
16
59
  const { data: marketplaceConfig } = useMarketplaceConfig();
17
60
 
61
+ const {
62
+ config = defaultConfig,
63
+ marketplaceConfig: paramMarketplaceConfig,
64
+ ...rest
65
+ } = params;
66
+
67
+ const queryOptions = listCollectionsQueryOptions({
68
+ config,
69
+ marketplaceConfig: paramMarketplaceConfig || marketplaceConfig,
70
+ ...rest,
71
+ });
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 };
@@ -1,61 +1,101 @@
1
- import { queryOptions, useQuery } from '@tanstack/react-query';
2
- import { z } from 'zod';
3
- import type { SdkConfig } from '../../types';
1
+ 'use client';
2
+
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import type { Optional } from '../_internal';
4
5
  import {
5
- type ListListingsForCollectibleArgs,
6
- collectableKeys,
7
- getMarketplaceClient,
8
- } from '../_internal';
9
- import { listListingsForCollectibleArgsSchema } from '../_internal/api/zod-schema';
6
+ type FetchListListingsForCollectibleParams,
7
+ type fetchListListingsForCollectible,
8
+ type ListListingsForCollectibleQueryOptions,
9
+ listListingsForCollectibleQueryOptions,
10
+ } from '../queries/listListingsForCollectible';
10
11
  import { useConfig } from './useConfig';
11
12
 
12
- const UseListListingsForCollectibleArgsSchema =
13
- listListingsForCollectibleArgsSchema
14
- .extend({
15
- chainId: z.number(),
16
- collectionAddress: z.string(),
17
- collectibleId: z.string(),
18
- })
19
- .omit({ contractAddress: true, tokenId: true });
20
-
21
- type UseListListingsForCollectibleArgs = z.infer<
22
- typeof UseListListingsForCollectibleArgsSchema
13
+ export type UseListListingsForCollectibleParams = Optional<
14
+ ListListingsForCollectibleQueryOptions,
15
+ 'config'
23
16
  >;
24
17
 
25
- export type UseListListingsForCollectibleReturn = Awaited<
26
- ReturnType<typeof fetchListListingsForCollectible>
27
- >;
18
+ /**
19
+ * Hook to fetch listings for a specific collectible
20
+ *
21
+ * Fetches active listings (sales) for a specific token from the marketplace
22
+ * with support for filtering and pagination.
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.collectibleId - The specific token ID to fetch listings for
28
+ * @param params.filter - Optional filtering parameters (marketplace, currencies, etc.)
29
+ * @param params.page - Optional pagination parameters
30
+ * @param params.query - Optional React Query configuration
31
+ *
32
+ * @returns Query result containing listings data for the collectible
33
+ *
34
+ * @example
35
+ * Basic usage:
36
+ * ```typescript
37
+ * const { data, isLoading } = useListListingsForCollectible({
38
+ * chainId: 137,
39
+ * collectionAddress: '0x...',
40
+ * collectibleId: '123'
41
+ * })
42
+ * ```
43
+ *
44
+ * @example
45
+ * With pagination:
46
+ * ```typescript
47
+ * const { data } = useListListingsForCollectible({
48
+ * chainId: 1,
49
+ * collectionAddress: '0x...',
50
+ * collectibleId: '456',
51
+ * page: {
52
+ * page: 2,
53
+ * pageSize: 20
54
+ * }
55
+ * })
56
+ * ```
57
+ *
58
+ * @example
59
+ * With filtering:
60
+ * ```typescript
61
+ * const { data } = useListListingsForCollectible({
62
+ * chainId: 137,
63
+ * collectionAddress: '0x...',
64
+ * collectibleId: '789',
65
+ * filter: {
66
+ * marketplace: [MarketplaceKind.sequence_marketplace_v2],
67
+ * currencies: ['0x...'] // Specific currency addresses
68
+ * }
69
+ * })
70
+ * ```
71
+ */
72
+ export function useListListingsForCollectible(
73
+ params: UseListListingsForCollectibleParams,
74
+ ) {
75
+ const defaultConfig = useConfig();
28
76
 
29
- const fetchListListingsForCollectible = async (
30
- config: SdkConfig,
31
- args: UseListListingsForCollectibleArgs,
32
- ) => {
33
- const arg = {
34
- chainId: String(args.chainId),
35
- contractAddress: args.collectionAddress,
36
- tokenId: args.collectibleId,
37
- filter: args.filter,
38
- page: args.page,
39
- } satisfies ListListingsForCollectibleArgs;
40
-
41
- const marketplaceClient = getMarketplaceClient(config);
42
- return marketplaceClient.listCollectibleListings(arg);
43
- };
77
+ const { config = defaultConfig, ...rest } = params;
44
78
 
45
- export const listListingsForCollectibleOptions = (
46
- args: UseListListingsForCollectibleArgs,
47
- config: SdkConfig,
48
- ) => {
49
- return queryOptions({
50
- queryKey: [...collectableKeys.listings, args, config],
51
- queryFn: () => fetchListListingsForCollectible(config, args),
79
+ const queryOptions = listListingsForCollectibleQueryOptions({
80
+ config,
81
+ ...rest,
52
82
  });
53
- };
54
83
 
55
- export const useListListingsForCollectible = (
56
- args: UseListListingsForCollectibleArgs,
57
- ) => {
58
- const config = useConfig();
84
+ return useQuery({
85
+ ...queryOptions,
86
+ });
87
+ }
88
+
89
+ export { listListingsForCollectibleQueryOptions };
59
90
 
60
- return useQuery(listListingsForCollectibleOptions(args, config));
91
+ export type {
92
+ FetchListListingsForCollectibleParams,
93
+ ListListingsForCollectibleQueryOptions,
61
94
  };
95
+
96
+ // Legacy exports for backward compatibility during migration
97
+ export type UseListListingsForCollectibleArgs =
98
+ UseListListingsForCollectibleParams;
99
+ export type UseListListingsForCollectibleReturn = Awaited<
100
+ ReturnType<typeof fetchListListingsForCollectible>
101
+ >;
@@ -2,7 +2,6 @@ import { useMemo } from 'react';
2
2
 
3
3
  import type { Address } from 'viem';
4
4
  import { useAccount } from 'wagmi';
5
- import { OrderSide } from '../../types';
6
5
  import type {
7
6
  CollectibleCardAction,
8
7
  CollectibleOrder,
@@ -11,6 +10,7 @@ import type {
11
10
  OrderbookKind,
12
11
  PropertyFilter,
13
12
  } from '../../types';
13
+ import { OrderSide } from '../../types';
14
14
  import type { MarketCollectibleCardProps } from '../ui/components/marketplace-collectible-card/types';
15
15
  import { useSellModal } from '../ui/modals/SellModal';
16
16
  import { useCollectionBalanceDetails } from './useCollectionBalanceDetails';
@@ -19,7 +19,8 @@ import { useListCollectibles } from './useListCollectibles';
19
19
  interface UseListMarketCardDataProps {
20
20
  collectionAddress: Address;
21
21
  chainId: number;
22
- orderbookKind: OrderbookKind;
22
+ // orderbookKind is optional — used to override marketplace config for internal tests
23
+ orderbookKind?: OrderbookKind;
23
24
  collectionType: ContractType;
24
25
  filterOptions?: PropertyFilter[];
25
26
  searchText?: string;
@@ -1,25 +1,20 @@
1
1
  import { queryOptions, useQuery } from '@tanstack/react-query';
2
- import { z } from 'zod';
3
2
  import type { SdkConfig } from '../../types';
4
3
  import {
5
- type ListOffersForCollectibleArgs,
6
4
  collectableKeys,
7
5
  getMarketplaceClient,
6
+ type ListOffersForCollectibleArgs,
8
7
  } from '../_internal';
9
- import { listOffersForCollectibleArgsSchema } from '../_internal/api/zod-schema';
8
+ import type { OrderFilter, Page } from '../_internal/api/marketplace.gen';
10
9
  import { useConfig } from './useConfig';
11
10
 
12
- const UseListOffersForCollectibleArgsSchema = listOffersForCollectibleArgsSchema
13
- .extend({
14
- chainId: z.number(),
15
- collectionAddress: z.string(),
16
- collectibleId: z.string(),
17
- })
18
- .omit({ contractAddress: true, tokenId: true });
19
-
20
- type UseListOffersForCollectibleArgs = z.infer<
21
- typeof UseListOffersForCollectibleArgsSchema
22
- >;
11
+ interface UseListOffersForCollectibleArgs {
12
+ chainId: number;
13
+ collectionAddress: string;
14
+ collectibleId: string;
15
+ filter?: OrderFilter;
16
+ page?: Page;
17
+ }
23
18
 
24
19
  export type UseListOffersForCollectibleReturn = Awaited<
25
20
  ReturnType<typeof fetchListOffersForCollectible>
@@ -0,0 +1,66 @@
1
+ 'use client';
2
+
3
+ import { useInfiniteQuery } from '@tanstack/react-query';
4
+ import type { Optional } from '../_internal';
5
+ import {
6
+ type ListPrimarySaleItemsQueryOptions,
7
+ listPrimarySaleItemsQueryOptions,
8
+ } from '../queries/primarySaleItems';
9
+ import { useConfig } from './useConfig';
10
+
11
+ export type UseListPrimarySaleItemsParams = Optional<
12
+ ListPrimarySaleItemsQueryOptions,
13
+ 'config'
14
+ >;
15
+
16
+ /**
17
+ * Hook to fetch primary sale items with pagination support
18
+ *
19
+ * Retrieves a paginated list of primary sale items for a specific contract address
20
+ * from the marketplace.
21
+ *
22
+ * @param params - Configuration parameters
23
+ * @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
24
+ * @param params.primarySaleContractAddress - The primary sale contract address
25
+ * @param params.filter - Optional filter parameters for the query
26
+ * @param params.page - Optional pagination parameters
27
+ * @param params.query - Optional React Query configuration
28
+ *
29
+ * @returns Infinite query result containing the primary sale items data
30
+ *
31
+ * @example
32
+ * Basic usage:
33
+ * ```typescript
34
+ * const { data, isLoading } = useListPrimarySaleItems({
35
+ * chainId: 137,
36
+ * primarySaleContractAddress: '0x...',
37
+ * })
38
+ * ```
39
+ *
40
+ * @example
41
+ * With filters and pagination:
42
+ * ```typescript
43
+ * const { data, isLoading } = useListPrimarySaleItems({
44
+ * chainId: 1,
45
+ * primarySaleContractAddress: '0x...',
46
+ * filter: { status: 'active' },
47
+ * page: { page: 1, pageSize: 20 },
48
+ * query: {
49
+ * enabled: isReady
50
+ * }
51
+ * })
52
+ * ```
53
+ */
54
+ export function useListPrimarySaleItems(params: UseListPrimarySaleItemsParams) {
55
+ const defaultConfig = useConfig();
56
+ const { config = defaultConfig, ...rest } = params;
57
+
58
+ const queryOptions = listPrimarySaleItemsQueryOptions({
59
+ config,
60
+ ...rest,
61
+ });
62
+
63
+ return useInfiniteQuery(queryOptions);
64
+ }
65
+
66
+ export type { ListPrimarySaleItemsQueryOptions };
@@ -0,0 +1,70 @@
1
+ import type { Address } from 'viem';
2
+ import { ContractType } from '../_internal';
3
+ import { useList721ShopCardData } from './useList721ShopCardData';
4
+ import { useList1155ShopCardData } from './useList1155ShopCardData';
5
+
6
+ interface UseListShopCardDataProps {
7
+ tokenIds: string[];
8
+ chainId: number;
9
+ contractAddress: Address;
10
+ salesContractAddress: Address;
11
+ contractType: ContractType | undefined;
12
+ enabled?: boolean;
13
+ }
14
+
15
+ export function useListShopCardData({
16
+ tokenIds,
17
+ chainId,
18
+ contractAddress,
19
+ salesContractAddress,
20
+ contractType,
21
+ enabled = true,
22
+ }: UseListShopCardDataProps) {
23
+ const shouldUse721 = contractType === ContractType.ERC721;
24
+ const shouldUse1155 = contractType === ContractType.ERC1155;
25
+
26
+ const erc721Data = useList721ShopCardData({
27
+ tokenIds,
28
+ chainId,
29
+ contractAddress,
30
+ salesContractAddress,
31
+ enabled: enabled && shouldUse721,
32
+ });
33
+
34
+ const erc1155Data = useList1155ShopCardData({
35
+ tokenIds,
36
+ chainId,
37
+ contractAddress,
38
+ salesContractAddress,
39
+ enabled: enabled && shouldUse1155,
40
+ });
41
+
42
+ if (shouldUse721) {
43
+ return erc721Data;
44
+ }
45
+
46
+ if (shouldUse1155) {
47
+ // Map ERC1155 data to match ERC721 structure
48
+ return {
49
+ collectibleCards: erc1155Data.collectibleCards,
50
+ isLoading: erc1155Data.isLoading,
51
+ saleDetailsError: erc1155Data.tokenSaleDetailsError,
52
+ primarySaleItemsError: erc1155Data.tokenMetadataError,
53
+ saleDetails: undefined,
54
+ primarySaleItems: undefined,
55
+ salePrice: erc1155Data.collectibleCards[0]?.salePrice,
56
+ };
57
+ }
58
+
59
+ // Return a default state when contract type is not determined yet
60
+ return {
61
+ collectibleCards: [],
62
+ isLoading: !contractType,
63
+ collectionDetailsError: null,
64
+ saleDetailsError: null,
65
+ primarySaleItemsError: null,
66
+ saleDetails: undefined,
67
+ primarySaleItems: undefined,
68
+ salePrice: undefined,
69
+ };
70
+ }
@@ -1,19 +1,71 @@
1
- import { useQuery } from '@tanstack/react-query';
2
- import { useConfig } from './useConfig';
1
+ 'use client';
3
2
 
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import type { Optional } from '../_internal';
4
5
  import {
5
- type FetchTokenMetadataArgs,
6
- tokenMetadataOptions,
6
+ type FetchListTokenMetadataParams,
7
+ type ListTokenMetadataQueryOptions,
8
+ listTokenMetadataQueryOptions,
7
9
  } from '../queries/listTokenMetadata';
10
+ import { useConfig } from './useConfig';
11
+
12
+ export type UseListTokenMetadataParams = Optional<
13
+ ListTokenMetadataQueryOptions,
14
+ 'config'
15
+ >;
8
16
 
9
- export const useListTokenMetadata = (args: FetchTokenMetadataArgs) => {
10
- const config = useConfig();
11
- const { chainId, contractAddress, tokenIds, query } = args;
17
+ /**
18
+ * Hook to fetch token metadata from the metadata API
19
+ *
20
+ * Retrieves metadata for a batch of tokens from a specific contract.
21
+ * Useful for getting token names, descriptions, images, and other attributes.
22
+ *
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.contractAddress - The contract address containing the tokens
26
+ * @param params.tokenIds - Array of token IDs to fetch metadata for
27
+ * @param params.query - Optional React Query configuration
28
+ *
29
+ * @returns Query result containing token metadata array
30
+ *
31
+ * @example
32
+ * Basic usage:
33
+ * ```typescript
34
+ * const { data, isLoading } = useListTokenMetadata({
35
+ * chainId: 137,
36
+ * contractAddress: '0x...',
37
+ * tokenIds: ['1', '2', '3']
38
+ * })
39
+ * ```
40
+ *
41
+ * @example
42
+ * With conditional fetching:
43
+ * ```typescript
44
+ * const { data, isLoading } = useListTokenMetadata({
45
+ * chainId: 1,
46
+ * contractAddress: '0x...',
47
+ * tokenIds: selectedTokenIds,
48
+ * query: {
49
+ * enabled: selectedTokenIds.length > 0
50
+ * }
51
+ * })
52
+ * ```
53
+ */
54
+ export function useListTokenMetadata(params: UseListTokenMetadataParams) {
55
+ const defaultConfig = useConfig();
56
+
57
+ const { config = defaultConfig, ...rest } = params;
58
+
59
+ const queryOptions = listTokenMetadataQueryOptions({
60
+ config,
61
+ ...rest,
62
+ });
12
63
 
13
64
  return useQuery({
14
- ...tokenMetadataOptions(
15
- { chainId, contractAddress, tokenIds, query },
16
- config,
17
- ),
65
+ ...queryOptions,
18
66
  });
19
- };
67
+ }
68
+
69
+ export { listTokenMetadataQueryOptions };
70
+
71
+ export type { FetchListTokenMetadataParams, ListTokenMetadataQueryOptions };