@0xsequence/marketplace-sdk 0.8.11 → 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 (530) hide show
  1. package/CHANGELOG.md +236 -2
  2. package/dist/CalendarIcon-DbQ7Vxcw.js +141 -0
  3. package/dist/CalendarIcon-DbQ7Vxcw.js.map +1 -0
  4. package/dist/CollectibleCard-C8Ae64Ab.d.ts +71 -0
  5. package/dist/_internal-BgWcRIak.js +22 -0
  6. package/dist/_internal-BgWcRIak.js.map +1 -0
  7. package/dist/abi-BKyRjVcZ.js +0 -0
  8. package/dist/{alien_swap-2B65TDGT.js → alien_swap-B_76IMma.js} +5 -5
  9. package/dist/alien_swap-B_76IMma.js.map +1 -0
  10. package/dist/api-DTIan01C.js +241 -0
  11. package/dist/api-DTIan01C.js.map +1 -0
  12. package/dist/{aqua-xyz-WMYQLAIS.js → aqua-xyz-CMN_TFY5.js} +5 -5
  13. package/dist/aqua-xyz-CMN_TFY5.js.map +1 -0
  14. package/dist/{aura-V22RV5OG.js → aura-Cye_TuHj.js} +5 -5
  15. package/dist/aura-Cye_TuHj.js.map +1 -0
  16. package/dist/{blur-GE5QOMCM.js → blur-DWDMyMpK.js} +5 -5
  17. package/dist/blur-DWDMyMpK.js.map +1 -0
  18. package/dist/builder-api-BFuZNOaN.js +28 -0
  19. package/dist/builder-api-BFuZNOaN.js.map +1 -0
  20. package/dist/builder-api-C_zj5mr3.d.ts +12 -0
  21. package/dist/builder.gen-B9wR2nvF.js +303 -0
  22. package/dist/builder.gen-B9wR2nvF.js.map +1 -0
  23. package/dist/{coinbase-NLHJMGAP.js → coinbase-ByA_XRB0.js} +5 -5
  24. package/dist/coinbase-ByA_XRB0.js.map +1 -0
  25. package/dist/{element-2LGTYYSP.js → element-b77CyXIZ.js} +5 -5
  26. package/dist/element-b77CyXIZ.js.map +1 -0
  27. package/dist/{foundation-BPN66ZTN.js → foundation-DbOrKP9Y.js} +5 -5
  28. package/dist/foundation-DbOrKP9Y.js.map +1 -0
  29. package/dist/index-21LE7OhL.d.ts +102 -0
  30. package/dist/index-BL9RUSEK.d.ts +1803 -0
  31. package/dist/index-BQsgAvtX.d.ts +2938 -0
  32. package/dist/index-BUVWziLP.d.ts +60 -0
  33. package/dist/index-ByznONYE.d.ts +187 -0
  34. package/dist/index-C39K_8SG.d.ts +1 -0
  35. package/dist/index-CLy8y5hm.d.ts +1057 -0
  36. package/dist/index-COt10OgI.d.ts +24 -0
  37. package/dist/index-D5v5iluA.d.ts +809 -0
  38. package/dist/index-DPNWNa7t.d.ts +414 -0
  39. package/dist/index-DXMfTZ1F.d.ts +7 -0
  40. package/dist/index-DaE5ZNHb.d.ts +24 -0
  41. package/dist/index-DsfCs3-x.d.ts +122 -0
  42. package/dist/index-DvpBZgor.d.ts +1 -0
  43. package/dist/index-dUb6wb4Y.d.ts +22 -0
  44. package/dist/index.css +397 -371
  45. package/dist/index.d.ts +10 -29
  46. package/dist/index.js +13 -104
  47. package/dist/{looks-rare-MZRSOPT4.js → looks-rare-C1VqNcSM.js} +5 -5
  48. package/dist/looks-rare-C1VqNcSM.js.map +1 -0
  49. package/dist/{magic-eden-PUBL6KWW.js → magic-eden-ea_AGCZr.js} +5 -5
  50. package/dist/magic-eden-ea_AGCZr.js.map +1 -0
  51. package/dist/{manifold-GA445YJ6.js → manifold-8y8J2sjT.js} +5 -5
  52. package/dist/manifold-8y8J2sjT.js.map +1 -0
  53. package/dist/marketplace-logos-CSeGcPW4.js +50 -0
  54. package/dist/marketplace-logos-CSeGcPW4.js.map +1 -0
  55. package/dist/marketplace-nwnZv9Cb.js +1913 -0
  56. package/dist/marketplace-nwnZv9Cb.js.map +1 -0
  57. package/dist/marketplace.gen-BSDIX7NZ.js +1077 -0
  58. package/dist/marketplace.gen-BSDIX7NZ.js.map +1 -0
  59. package/dist/marketplaceConfig-C6X1SUik.js +71 -0
  60. package/dist/marketplaceConfig-C6X1SUik.js.map +1 -0
  61. package/dist/{mintify-UMC5PTKC.js → mintify-LA68TzWg.js} +5 -5
  62. package/dist/mintify-LA68TzWg.js.map +1 -0
  63. package/dist/new-marketplace-types-Bfis0U4J.d.ts +1546 -0
  64. package/dist/{nftx-AX3CY3IE.js → nftx-D3Tc8nzd.js} +5 -5
  65. package/dist/nftx-D3Tc8nzd.js.map +1 -0
  66. package/dist/{okx-GNVLAE2R.js → okx-hbqg6oIJ.js} +5 -5
  67. package/dist/okx-hbqg6oIJ.js.map +1 -0
  68. package/dist/{open-sea-KI43GVEB.js → open-sea-BccuK8-t.js} +5 -5
  69. package/dist/open-sea-BccuK8-t.js.map +1 -0
  70. package/dist/options-B4QN7Xou.js +0 -0
  71. package/dist/primary-sale-C55ALnfQ.js +1264 -0
  72. package/dist/primary-sale-C55ALnfQ.js.map +1 -0
  73. package/dist/queries-CUU65uYZ.js +599 -0
  74. package/dist/queries-CUU65uYZ.js.map +1 -0
  75. package/dist/{rarible-2J3MMZJ7.js → rarible-BgTwwj9g.js} +5 -5
  76. package/dist/rarible-BgTwwj9g.js.map +1 -0
  77. package/dist/react/_internal/api/index.d.ts +4 -86
  78. package/dist/react/_internal/api/index.js +7 -150
  79. package/dist/react/_internal/databeat/index.d.ts +45 -41
  80. package/dist/react/_internal/databeat/index.js +23 -27
  81. package/dist/react/_internal/index.d.ts +7 -76
  82. package/dist/react/_internal/index.js +9 -176
  83. package/dist/react/_internal/wagmi/index.d.ts +4 -17
  84. package/dist/react/_internal/wagmi/index.js +5 -14
  85. package/dist/react/hooks/index.d.ts +18 -3652
  86. package/dist/react/hooks/index.js +23 -153
  87. package/dist/react/hooks/options/index.d.ts +4 -8
  88. package/dist/react/hooks/options/index.js +11 -21
  89. package/dist/react/index.d.ts +18 -36
  90. package/dist/react/index.js +23 -193
  91. package/dist/react/queries/index.d.ts +8 -26
  92. package/dist/react/queries/index.js +18 -51
  93. package/dist/react/ssr/index.d.ts +19 -13
  94. package/dist/react/ssr/index.js +29 -28
  95. package/dist/react/ssr/index.js.map +1 -1
  96. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +9 -0
  97. package/dist/react/ui/components/marketplace-collectible-card/index.js +23 -0
  98. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +8 -0
  99. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +10 -0
  100. package/dist/react/ui/components/marketplace-logos/index.d.ts +26 -24
  101. package/dist/react/ui/components/marketplace-logos/index.js +3 -45
  102. package/dist/react/ui/icons/index.d.ts +1 -2
  103. package/dist/react/ui/icons/index.js +10 -14
  104. package/dist/react/ui/index.d.ts +9 -116
  105. package/dist/react/ui/index.js +23 -41
  106. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +59 -33
  107. package/dist/react/ui/modals/_internal/components/actionModal/index.js +23 -31
  108. package/dist/react-BbHBl6gg.css +80 -0
  109. package/dist/react-BbHBl6gg.css.map +1 -0
  110. package/dist/react-DAIicQPT.js +8938 -0
  111. package/dist/react-DAIicQPT.js.map +1 -0
  112. package/dist/{sequence-TGLUFEPQ.js → sequence-Do3kzb4J.js} +5 -5
  113. package/dist/sequence-Do3kzb4J.js.map +1 -0
  114. package/dist/src-Dz2CfBL0.js +8 -0
  115. package/dist/src-Dz2CfBL0.js.map +1 -0
  116. package/dist/{sudo-swap-M2O6E3TE.js → sudo-swap-B6vPKxBz.js} +5 -5
  117. package/dist/sudo-swap-B6vPKxBz.js.map +1 -0
  118. package/dist/{super-rare-UU2U4LIN.js → super-rare-eCm1SE6O.js} +5 -5
  119. package/dist/super-rare-eCm1SE6O.js.map +1 -0
  120. package/dist/token-Da4TdyUk.js +2091 -0
  121. package/dist/token-Da4TdyUk.js.map +1 -0
  122. package/dist/transaction-CcVViHEL.js +97 -0
  123. package/dist/transaction-CcVViHEL.js.map +1 -0
  124. package/dist/types/index.d.ts +3 -13
  125. package/dist/types/index.js +5 -44
  126. package/dist/types-DwWE6xOF.js +13 -0
  127. package/dist/types-DwWE6xOF.js.map +1 -0
  128. package/dist/utils/abi/index.d.ts +5 -3
  129. package/dist/utils/abi/index.js +6 -26
  130. package/dist/utils/abi/marketplace/index.d.ts +2 -805
  131. package/dist/utils/abi/marketplace/index.js +3 -11
  132. package/dist/utils/abi/primary-sale/index.d.ts +2 -1054
  133. package/dist/utils/abi/primary-sale/index.js +3 -9
  134. package/dist/utils/abi/token/index.d.ts +2 -1125
  135. package/dist/utils/abi/token/index.js +3 -11
  136. package/dist/utils/index.d.ts +8 -91
  137. package/dist/utils/index.js +11 -57
  138. package/dist/utils-BPYfgDSL.js +44 -0
  139. package/dist/utils-BPYfgDSL.js.map +1 -0
  140. package/dist/utils-CW2NA5KG.js +216 -0
  141. package/dist/utils-CW2NA5KG.js.map +1 -0
  142. package/dist/wagmi-CDzEQbfk.js +166 -0
  143. package/dist/wagmi-CDzEQbfk.js.map +1 -0
  144. package/dist/{x2y2-3W5BBMZC.js → x2y2-DD17tT91.js} +5 -5
  145. package/dist/x2y2-DD17tT91.js.map +1 -0
  146. package/dist/{zora-6EY6FUH6.js → zora-BpSG9UzS.js} +5 -5
  147. package/dist/zora-BpSG9UzS.js.map +1 -0
  148. package/eslint/use-client.js +0 -6
  149. package/package.json +36 -35
  150. package/src/index.ts +1 -2
  151. package/src/react/_internal/api/__mocks__/builder.msw.ts +5 -3
  152. package/src/react/_internal/api/__mocks__/indexer.msw.ts +9 -8
  153. package/src/react/_internal/api/__mocks__/marketplace.msw.ts +4 -6
  154. package/src/react/_internal/api/__mocks__/metadata.msw.ts +1 -1
  155. package/src/react/_internal/api/builder.gen.ts +6 -7
  156. package/src/react/_internal/api/get-query-client.ts +2 -2
  157. package/src/react/_internal/api/index.ts +2 -2
  158. package/src/react/_internal/api/marketplace.gen.ts +505 -26
  159. package/src/react/_internal/api/query-keys.ts +13 -6
  160. package/src/react/_internal/api/services.ts +42 -52
  161. package/src/react/_internal/index.ts +1 -1
  162. package/src/react/_internal/types.ts +10 -23
  163. package/src/react/_internal/utils.ts +1 -2
  164. package/src/react/_internal/wagmi/__tests__/create-config.test.ts +5 -5
  165. package/src/react/_internal/wagmi/create-config.ts +23 -9
  166. package/src/react/_internal/wagmi/get-connectors.ts +10 -5
  167. package/src/react/_internal/wallet/__tests__/wallet.test.ts +1 -1
  168. package/src/react/_internal/wallet/wallet.ts +18 -18
  169. package/src/react/hooks/__tests__/__snapshots__/useListCollections.test.tsx.snap +181 -2
  170. package/src/react/hooks/__tests__/__snapshots__/useMarketplaceConfig.test.tsx.snap +54 -6
  171. package/src/react/hooks/__tests__/useAutoSelectFeeOption.test.tsx +8 -5
  172. package/src/react/hooks/__tests__/useBalanceOfCollectible.test.tsx +1 -1
  173. package/src/react/hooks/__tests__/useCancelOrder.test.tsx +4 -4
  174. package/src/react/hooks/__tests__/useCancelTransactionSteps.test.tsx +1 -1
  175. package/src/react/hooks/__tests__/useCheckoutOptionsSalesContract.test.tsx +225 -0
  176. package/src/react/hooks/__tests__/useCollectible.test.tsx +14 -16
  177. package/src/react/hooks/__tests__/useCollection.test.tsx +4 -4
  178. package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +1 -27
  179. package/src/react/hooks/__tests__/useCollectionDetails.test.tsx +1 -1
  180. package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +4 -4
  181. package/src/react/hooks/__tests__/useComparePrices.test.tsx +7 -6
  182. package/src/react/hooks/__tests__/useConvertPriceToUSD.test.tsx +1 -1
  183. package/src/react/hooks/__tests__/useCountListingsForCollectible.test.tsx +2 -2
  184. package/src/react/hooks/__tests__/useCountOfCollectables.test.tsx +5 -5
  185. package/src/react/hooks/__tests__/useCountOffersForCollectible.test.tsx +2 -2
  186. package/src/react/hooks/__tests__/useCurrency.test.tsx +5 -3
  187. package/src/react/hooks/__tests__/useFilters.test.tsx +1 -1
  188. package/src/react/hooks/__tests__/useFloorOrder.test.tsx +4 -4
  189. package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +5 -6
  190. package/src/react/hooks/__tests__/useGenerateListingTransaction.test.tsx +1 -1
  191. package/src/react/hooks/__tests__/useGenerateOfferTransaction.test.tsx +1 -1
  192. package/src/react/hooks/__tests__/useGenerateSellTransaction.test.tsx +1 -1
  193. package/src/react/hooks/__tests__/useGetTokenSuppliesMap.test.tsx +104 -0
  194. package/src/react/hooks/__tests__/useHighestOffer.test.tsx +4 -20
  195. package/src/react/hooks/__tests__/useInventory.test.tsx +1 -37
  196. package/src/react/hooks/__tests__/useListCollectibleActivities.test.tsx +11 -13
  197. package/src/react/hooks/__tests__/useListCollectibles.test.tsx +5 -5
  198. package/src/react/hooks/__tests__/useListCollectiblesPaginated.test.tsx +10 -15
  199. package/src/react/hooks/__tests__/useListCollectionActivities.test.tsx +13 -15
  200. package/src/react/hooks/__tests__/useListCollections.test.tsx +4 -4
  201. package/src/react/hooks/__tests__/useListListingsForCollectible.test.tsx +3 -2
  202. package/src/react/hooks/__tests__/useListMarketCardData.test.tsx +301 -0
  203. package/src/react/hooks/__tests__/useListOffersForCollectible.test.tsx +1 -1
  204. package/src/react/hooks/__tests__/useListTokenMetadata.test.tsx +111 -0
  205. package/src/react/hooks/__tests__/useLowestListing.test.tsx +1 -1
  206. package/src/react/hooks/__tests__/useMarketCurrencies.test.tsx +1 -1
  207. package/src/react/hooks/__tests__/useRoyalty.test.tsx +0 -23
  208. package/src/react/hooks/index.ts +27 -17
  209. package/src/react/hooks/options/index.ts +0 -1
  210. package/src/react/hooks/useAutoSelectFeeOption.tsx +1 -1
  211. package/src/react/hooks/useBalanceOfCollectible.tsx +14 -10
  212. package/src/react/hooks/useCancelTransactionSteps.tsx +7 -3
  213. package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +67 -0
  214. package/src/react/hooks/useCollectible.tsx +64 -49
  215. package/src/react/hooks/useCollection.tsx +60 -11
  216. package/src/react/hooks/useCollectionBalanceDetails.tsx +20 -27
  217. package/src/react/hooks/useCollectionDetails.ts +69 -0
  218. package/src/react/hooks/useCollectionDetailsPolling.tsx +10 -2
  219. package/src/react/hooks/useComparePrices.tsx +18 -21
  220. package/src/react/hooks/useConvertPriceToUSD.tsx +20 -37
  221. package/src/react/hooks/useCountListingsForCollectible.tsx +64 -52
  222. package/src/react/hooks/useCountOfCollectables.tsx +61 -67
  223. package/src/react/hooks/useCountOfPrimarySaleItems.tsx +13 -0
  224. package/src/react/hooks/useCountOffersForCollectible.tsx +64 -52
  225. package/src/react/hooks/useCurrency.tsx +56 -64
  226. package/src/react/hooks/useERC721SaleMintedTokens.tsx +67 -0
  227. package/src/react/hooks/useFilterState.tsx +1 -2
  228. package/src/react/hooks/useFloorOrder.tsx +65 -37
  229. package/src/react/hooks/useGenerateCancelTransaction.tsx +17 -15
  230. package/src/react/hooks/useGenerateListingTransaction.tsx +16 -6
  231. package/src/react/hooks/useGenerateOfferTransaction.tsx +16 -7
  232. package/src/react/hooks/useGenerateSellTransaction.tsx +19 -15
  233. package/src/react/hooks/useGetReceiptFromHash.tsx +32 -3
  234. package/src/react/hooks/useGetTokenRanges.tsx +31 -0
  235. package/src/react/hooks/useGetTokenSuppliesMap.tsx +73 -0
  236. package/src/react/hooks/useHighestOffer.tsx +68 -4
  237. package/src/react/hooks/useInventory.tsx +8 -6
  238. package/src/react/hooks/useList1155ShopCardData.tsx +103 -0
  239. package/src/react/hooks/useList721ShopCardData.tsx +160 -0
  240. package/src/react/hooks/useListBalances.tsx +7 -10
  241. package/src/react/hooks/useListCollectibleActivities.tsx +89 -49
  242. package/src/react/hooks/useListCollectibles.tsx +78 -26
  243. package/src/react/hooks/useListCollectiblesPaginated.tsx +96 -63
  244. package/src/react/hooks/useListCollectionActivities.tsx +84 -49
  245. package/src/react/hooks/useListCollections.tsx +72 -18
  246. package/src/react/hooks/useListListingsForCollectible.tsx +90 -49
  247. package/src/react/hooks/useListMarketCardData.tsx +157 -0
  248. package/src/react/hooks/useListOffersForCollectible.tsx +11 -15
  249. package/src/react/hooks/useListPrimarySaleItems.ts +102 -0
  250. package/src/react/hooks/useListShopCardData.tsx +70 -0
  251. package/src/react/hooks/useListTokenMetadata.tsx +73 -0
  252. package/src/react/hooks/useLowestListing.tsx +68 -4
  253. package/src/react/hooks/useMarketCurrencies.tsx +62 -5
  254. package/src/react/hooks/useRoyalty.tsx +57 -13
  255. package/src/react/hooks/useShopCollectibleSaleData.tsx +349 -0
  256. package/src/react/hooks/useTokenSaleDetailsBatch.tsx +134 -0
  257. package/src/react/hooks/useTransferTokens.tsx +1 -1
  258. package/src/react/hooks/util/optimisticCancelUpdates.ts +5 -7
  259. package/src/react/index.ts +5 -3
  260. package/src/react/queries/balanceOfCollectible.ts +1 -1
  261. package/src/react/queries/collectible.ts +66 -0
  262. package/src/react/queries/collection.ts +55 -0
  263. package/src/react/queries/collectionDetails.ts +64 -0
  264. package/src/react/queries/countListingsForCollectible.ts +73 -0
  265. package/src/react/queries/countOfCollectables.ts +83 -0
  266. package/src/react/queries/countOfPrimarySaleItems.ts +48 -0
  267. package/src/react/queries/countOffersForCollectible.ts +73 -0
  268. package/src/react/queries/currency.ts +83 -0
  269. package/src/react/queries/floorOrder.ts +63 -0
  270. package/src/react/queries/getTokenSuppliesMap.ts +77 -0
  271. package/src/react/queries/highestOffer.ts +48 -40
  272. package/src/react/queries/index.ts +7 -4
  273. package/src/react/queries/inventory.ts +38 -4
  274. package/src/react/queries/listBalances.ts +14 -30
  275. package/src/react/queries/listCollectibleActivities.ts +97 -0
  276. package/src/react/queries/listCollectibles.ts +117 -47
  277. package/src/react/queries/listCollectiblesPaginated.ts +87 -0
  278. package/src/react/queries/listCollectionActivities.ts +95 -0
  279. package/src/react/queries/listCollections.ts +55 -10
  280. package/src/react/queries/listListingsForCollectible.ts +82 -0
  281. package/src/react/queries/listTokenMetadata.ts +47 -18
  282. package/src/react/queries/lowestListing.ts +48 -31
  283. package/src/react/queries/marketCurrencies.ts +52 -35
  284. package/src/react/queries/marketplaceConfig.ts +56 -81
  285. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +54 -6
  286. package/src/react/ssr/__tests__/create-ssr-client.test.ts +0 -3
  287. package/src/react/ssr/create-ssr-client.ts +6 -11
  288. package/src/react/types/query.ts +34 -0
  289. package/src/react/ui/components/ModelViewer.tsx +1 -1
  290. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +47 -13
  291. package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +1 -1
  292. package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +28 -15
  293. package/src/react/ui/components/_internals/action-button/__tests__/OwnerActions.test.tsx +1 -1
  294. package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +15 -9
  295. package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +1 -1
  296. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +78 -15
  297. package/src/react/ui/components/_internals/action-button/components/OwnerActions.tsx +1 -1
  298. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +13 -16
  299. package/src/react/ui/components/_internals/action-button/store.ts +46 -18
  300. package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +17 -0
  301. package/src/react/ui/components/marketplace-collectible-card/CollectibleCardSkeleton.tsx +24 -0
  302. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +231 -0
  303. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +76 -0
  304. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +58 -0
  305. package/src/react/ui/components/marketplace-collectible-card/index.ts +3 -0
  306. package/src/react/ui/components/marketplace-collectible-card/types.ts +98 -0
  307. package/src/react/ui/components/marketplace-collectible-card/utils/formatPrice.ts +45 -0
  308. package/src/react/ui/components/marketplace-collectible-card/utils/index.ts +2 -0
  309. package/src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts +39 -0
  310. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +125 -0
  311. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +102 -0
  312. package/src/react/ui/components/marketplace-logos/marketplace-logos.tsx +1 -1
  313. package/src/react/ui/components/{collectible-card/media → media}/Media.tsx +47 -26
  314. package/src/react/ui/components/{collectible-card/media → media}/types.ts +3 -1
  315. package/src/react/ui/index.ts +8 -7
  316. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +554 -0
  317. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +392 -0
  318. package/src/react/ui/modals/BuyModal/__tests__/ERC721ShopModal.test.tsx +272 -0
  319. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx.bak +112 -0
  320. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +117 -13
  321. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +10 -7
  322. package/src/react/ui/modals/BuyModal/components/BuyModalRouter.tsx +157 -0
  323. package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +136 -0
  324. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +183 -0
  325. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +121 -0
  326. package/src/react/ui/modals/BuyModal/components/ERC721BuyModal.tsx +85 -0
  327. package/src/react/ui/modals/BuyModal/components/ERC721ShopModal.tsx +86 -0
  328. package/src/react/ui/modals/BuyModal/components/Modal.tsx +14 -0
  329. package/src/react/ui/modals/BuyModal/components/types.ts +8 -0
  330. package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +5 -5
  331. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +379 -0
  332. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC721SalePaymentParams.test.tsx +253 -0
  333. package/src/react/ui/modals/BuyModal/hooks/__tests__/{useFees.test.tsx → useMarketPlatformFee.test.tsx} +10 -11
  334. package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +63 -45
  335. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +73 -0
  336. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +196 -0
  337. package/src/react/ui/modals/BuyModal/hooks/useLoadData.ts +74 -18
  338. package/src/react/ui/modals/BuyModal/hooks/useMarketPlatformFee.ts +53 -0
  339. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +30 -15
  340. package/src/react/ui/modals/BuyModal/store.ts +147 -13
  341. package/src/react/ui/modals/CreateListingModal/Modal.tsx +1 -1
  342. package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +2 -2
  343. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +0 -1
  344. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +4 -3
  345. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +12 -9
  346. package/src/react/ui/modals/CreateListingModal/index.tsx +1 -1
  347. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +2 -2
  348. package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +1 -1
  349. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +3 -2
  350. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +0 -1
  351. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +12 -10
  352. package/src/react/ui/modals/MakeOfferModal/index.tsx +1 -1
  353. package/src/react/ui/modals/SellModal/Modal.tsx +3 -3
  354. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +6 -4
  355. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +5 -4
  356. package/src/react/ui/modals/SellModal/hooks/useSell.tsx +0 -1
  357. package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +11 -8
  358. package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +12 -8
  359. package/src/react/ui/modals/SuccessfulPurchaseModal/index.tsx +34 -28
  360. package/src/react/ui/modals/SuccessfulPurchaseModal/store.ts +71 -0
  361. package/src/react/ui/modals/TransferModal/_store.ts +1 -7
  362. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +2 -3
  363. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +2 -2
  364. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +1 -2
  365. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +107 -112
  366. package/src/react/ui/modals/_internal/components/actionModal/store.ts +45 -12
  367. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +1 -1
  368. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +0 -1
  369. package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +4 -4
  370. package/src/react/ui/modals/_internal/components/quantityInput/QuantityInputBase.tsx +166 -0
  371. package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +12 -141
  372. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +1 -1
  373. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/_components/BalanceIndicator.tsx +1 -2
  374. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +0 -1
  375. package/src/react/ui/modals/_internal/components/switchChainModal/__tests__/SwitchChainModal.test.tsx +12 -8
  376. package/src/react/ui/modals/_internal/components/switchChainModal/index.tsx +35 -33
  377. package/src/react/ui/modals/_internal/components/switchChainModal/store.ts +61 -32
  378. package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +1 -1
  379. package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +1 -1
  380. package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +0 -1
  381. package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +1 -1
  382. package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +1 -1
  383. package/src/react/ui/modals/modal-provider.tsx +3 -4
  384. package/src/types/api-types.ts +36 -36
  385. package/src/types/buyModalErrors.ts +438 -0
  386. package/src/types/index.ts +5 -2
  387. package/src/types/new-marketplace-types.ts +6 -21
  388. package/src/types/sdk-config.ts +19 -24
  389. package/src/types/types.ts +17 -0
  390. package/src/types/waas-types.ts +1 -1
  391. package/src/utils/_internal/error/transaction.ts +36 -1
  392. package/src/utils/abi/index.ts +1 -1
  393. package/src/utils/abi/primary-sale/index.ts +1 -1
  394. package/src/utils/abi/token/index.ts +2 -1
  395. package/src/utils/decode/erc20.ts +1 -1
  396. package/src/utils/index.ts +3 -3
  397. package/test/const.ts +3 -1
  398. package/test/mocks/wallet.ts +1 -1
  399. package/test/test-utils.tsx +3 -4
  400. package/tsconfig.json +1 -1
  401. package/tsdown.config.ts +25 -0
  402. package/.changeset/fluffy-jokes-lay.md +0 -5
  403. package/.changeset/wise-bugs-boil.md +0 -8
  404. package/.ctirc +0 -32
  405. package/dist/alien_swap-2B65TDGT.js.map +0 -1
  406. package/dist/aqua-xyz-WMYQLAIS.js.map +0 -1
  407. package/dist/aura-V22RV5OG.js.map +0 -1
  408. package/dist/blur-GE5QOMCM.js.map +0 -1
  409. package/dist/chunk-2PSNAIAT.js +0 -1
  410. package/dist/chunk-2PSNAIAT.js.map +0 -1
  411. package/dist/chunk-5C6ZZ6WX.js +0 -130
  412. package/dist/chunk-5C6ZZ6WX.js.map +0 -1
  413. package/dist/chunk-5O44EPXZ.js +0 -207
  414. package/dist/chunk-5O44EPXZ.js.map +0 -1
  415. package/dist/chunk-6CTFVBKU.js +0 -1
  416. package/dist/chunk-6CTFVBKU.js.map +0 -1
  417. package/dist/chunk-6OPMUCGX.js +0 -42
  418. package/dist/chunk-6OPMUCGX.js.map +0 -1
  419. package/dist/chunk-FUM4OGOQ.js +0 -1027
  420. package/dist/chunk-FUM4OGOQ.js.map +0 -1
  421. package/dist/chunk-L6KWLCER.js +0 -32
  422. package/dist/chunk-L6KWLCER.js.map +0 -1
  423. package/dist/chunk-LAP2CKLN.js +0 -485
  424. package/dist/chunk-LAP2CKLN.js.map +0 -1
  425. package/dist/chunk-LECCEZAO.js +0 -11
  426. package/dist/chunk-LECCEZAO.js.map +0 -1
  427. package/dist/chunk-N7SQWS2R.js +0 -38
  428. package/dist/chunk-N7SQWS2R.js.map +0 -1
  429. package/dist/chunk-NX52D7NX.js +0 -135
  430. package/dist/chunk-NX52D7NX.js.map +0 -1
  431. package/dist/chunk-OAOONM4S.js +0 -1787
  432. package/dist/chunk-OAOONM4S.js.map +0 -1
  433. package/dist/chunk-Q3ECVC4F.js +0 -811
  434. package/dist/chunk-Q3ECVC4F.js.map +0 -1
  435. package/dist/chunk-QY52UADF.js +0 -107
  436. package/dist/chunk-QY52UADF.js.map +0 -1
  437. package/dist/chunk-TNAR3XEF.js +0 -8729
  438. package/dist/chunk-TNAR3XEF.js.map +0 -1
  439. package/dist/chunk-XABYNWXO.js +0 -549
  440. package/dist/chunk-XABYNWXO.js.map +0 -1
  441. package/dist/chunk-XX4EVWBF.js +0 -1292
  442. package/dist/chunk-XX4EVWBF.js.map +0 -1
  443. package/dist/chunk-YB5UUF2G.js +0 -11
  444. package/dist/chunk-YB5UUF2G.js.map +0 -1
  445. package/dist/chunk-YWGFI4PN.js +0 -217
  446. package/dist/chunk-YWGFI4PN.js.map +0 -1
  447. package/dist/coinbase-NLHJMGAP.js.map +0 -1
  448. package/dist/create-config-DLMvMTkZ.d.ts +0 -8
  449. package/dist/element-2LGTYYSP.js.map +0 -1
  450. package/dist/foundation-BPN66ZTN.js.map +0 -1
  451. package/dist/get-query-client-D46hbjk6.d.ts +0 -5
  452. package/dist/index.css.map +0 -1
  453. package/dist/index.js.map +0 -1
  454. package/dist/looks-rare-MZRSOPT4.js.map +0 -1
  455. package/dist/magic-eden-PUBL6KWW.js.map +0 -1
  456. package/dist/manifold-GA445YJ6.js.map +0 -1
  457. package/dist/marketCurrencies-enNVYwBk.d.ts +0 -277
  458. package/dist/marketplace.gen-D24veUQs.d.ts +0 -1073
  459. package/dist/marketplaceConfig-BwNAbLPw.d.ts +0 -21
  460. package/dist/mintify-UMC5PTKC.js.map +0 -1
  461. package/dist/new-marketplace-types-BCw19X9S.d.ts +0 -102
  462. package/dist/nftx-AX3CY3IE.js.map +0 -1
  463. package/dist/okx-GNVLAE2R.js.map +0 -1
  464. package/dist/open-sea-KI43GVEB.js.map +0 -1
  465. package/dist/rarible-2J3MMZJ7.js.map +0 -1
  466. package/dist/react/_internal/api/index.js.map +0 -1
  467. package/dist/react/_internal/databeat/index.css +0 -2764
  468. package/dist/react/_internal/databeat/index.css.map +0 -1
  469. package/dist/react/_internal/databeat/index.js.map +0 -1
  470. package/dist/react/_internal/index.js.map +0 -1
  471. package/dist/react/_internal/wagmi/index.js.map +0 -1
  472. package/dist/react/hooks/index.css +0 -2764
  473. package/dist/react/hooks/index.css.map +0 -1
  474. package/dist/react/hooks/index.js.map +0 -1
  475. package/dist/react/hooks/options/index.js.map +0 -1
  476. package/dist/react/index.css +0 -2764
  477. package/dist/react/index.css.map +0 -1
  478. package/dist/react/index.js.map +0 -1
  479. package/dist/react/queries/index.js.map +0 -1
  480. package/dist/react/ui/components/collectible-card/index.css +0 -2764
  481. package/dist/react/ui/components/collectible-card/index.css.map +0 -1
  482. package/dist/react/ui/components/collectible-card/index.d.ts +0 -71
  483. package/dist/react/ui/components/collectible-card/index.js +0 -27
  484. package/dist/react/ui/components/collectible-card/index.js.map +0 -1
  485. package/dist/react/ui/components/marketplace-logos/index.js.map +0 -1
  486. package/dist/react/ui/icons/index.js.map +0 -1
  487. package/dist/react/ui/index.css +0 -2764
  488. package/dist/react/ui/index.css.map +0 -1
  489. package/dist/react/ui/index.js.map +0 -1
  490. package/dist/react/ui/modals/_internal/components/actionModal/index.css +0 -2764
  491. package/dist/react/ui/modals/_internal/components/actionModal/index.css.map +0 -1
  492. package/dist/react/ui/modals/_internal/components/actionModal/index.js.map +0 -1
  493. package/dist/sdk-config-qorA0TgF.d.ts +0 -165
  494. package/dist/sequence-TGLUFEPQ.js.map +0 -1
  495. package/dist/services-WrshxCqc.d.ts +0 -23
  496. package/dist/sudo-swap-M2O6E3TE.js.map +0 -1
  497. package/dist/super-rare-UU2U4LIN.js.map +0 -1
  498. package/dist/types/index.js.map +0 -1
  499. package/dist/useCollection-YAdXfVO7.d.ts +0 -61
  500. package/dist/utils/abi/index.js.map +0 -1
  501. package/dist/utils/abi/marketplace/index.js.map +0 -1
  502. package/dist/utils/abi/primary-sale/index.js.map +0 -1
  503. package/dist/utils/abi/token/index.js.map +0 -1
  504. package/dist/utils/index.js.map +0 -1
  505. package/dist/x2y2-3W5BBMZC.js.map +0 -1
  506. package/dist/zora-6EY6FUH6.js.map +0 -1
  507. package/postcss.config.mjs +0 -5
  508. package/src/react/_internal/api/zod-schema.ts +0 -678
  509. package/src/react/hooks/__tests__/__snapshots__/useRoyaltyPercentage.test.tsx.snap +0 -8
  510. package/src/react/hooks/options/collectionOptions.ts +0 -41
  511. package/src/react/hooks/useCheckoutOptions.tsx +0 -65
  512. package/src/react/hooks/useCollectionDetails.tsx +0 -35
  513. package/src/react/hooks/useGetTokenSuppliesMap.ts +0 -28
  514. package/src/react/hooks/useListTokenMetadata.ts +0 -19
  515. package/src/react/queries/getTokenSupplies.ts +0 -38
  516. package/src/react/ui/components/collectible-card/CollectibleCard.tsx +0 -170
  517. package/src/react/ui/components/collectible-card/Footer.tsx +0 -157
  518. package/src/react/ui/components/collectible-card/__tests__/CollectibleCard.test.tsx +0 -94
  519. package/src/react/ui/components/collectible-card/__tests__/Footer.test.tsx +0 -136
  520. package/src/react/ui/components/collectible-card/__tests__/Media.test.tsx +0 -264
  521. package/src/react/ui/components/collectible-card/index.ts +0 -2
  522. package/src/react/ui/modals/BuyModal/ERC1155QuantityModal.tsx +0 -130
  523. package/src/react/ui/modals/BuyModal/Modal.tsx +0 -124
  524. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx +0 -104
  525. package/src/react/ui/modals/BuyModal/hooks/useFees.ts +0 -39
  526. package/src/react/ui/modals/SuccessfulPurchaseModal/_store.ts +0 -72
  527. package/tsconfig.tsbuildinfo +0 -1
  528. package/tsup.config.ts +0 -23
  529. /package/src/react/ui/components/{collectible-card/media → media}/MediaSkeleton.tsx +0 -0
  530. /package/src/react/ui/components/{collectible-card/media → media}/utils.ts +0 -0
@@ -1,73 +1,65 @@
1
- import { queryOptions, skipToken, 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
- AddressSchema,
6
- type Currency,
7
- QueryArgSchema,
8
- currencyKeys,
9
- getMarketplaceClient,
10
- getQueryClient,
11
- } from '../_internal';
6
+ type CurrencyQueryOptions,
7
+ currencyQueryOptions,
8
+ type FetchCurrencyParams,
9
+ } from '../queries/currency';
12
10
  import { useConfig } from './useConfig';
13
11
 
14
- const UseCurrencyArgsSchema = z.object({
15
- chainId: z.number(),
16
- currencyAddress: AddressSchema.optional(),
17
- query: QueryArgSchema,
18
- });
19
-
20
- type UseCurrencyArgs = z.input<typeof UseCurrencyArgsSchema>;
21
-
22
- export type UseCurrencyReturn = Currency | undefined;
23
-
24
- const fetchCurrency = async (
25
- chainId: number,
26
- currencyAddress: string,
27
- config: SdkConfig,
28
- ): Promise<Currency | undefined> => {
29
- const queryClient = getQueryClient();
30
-
31
- let currencies = queryClient.getQueryData([...currencyKeys.lists, chainId]) as
32
- | Currency[]
33
- | undefined;
12
+ export type UseCurrencyParams = Optional<CurrencyQueryOptions, 'config'>;
34
13
 
35
- if (!currencies) {
36
- const marketplaceClient = getMarketplaceClient(chainId, config);
37
- currencies = await marketplaceClient
38
- .listCurrencies()
39
- .then((resp) => resp.currencies);
40
- }
14
+ /**
15
+ * Hook to fetch currency details from the marketplace
16
+ *
17
+ * Retrieves detailed information about a specific currency by its contract address.
18
+ * The currency data is cached from previous currency list calls when possible.
19
+ *
20
+ * @param params - Configuration parameters
21
+ * @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
22
+ * @param params.currencyAddress - The currency contract address
23
+ * @param params.query - Optional React Query configuration
24
+ *
25
+ * @returns Query result containing currency details
26
+ *
27
+ * @example
28
+ * Basic usage:
29
+ * ```typescript
30
+ * const { data, isLoading } = useCurrency({
31
+ * chainId: 137,
32
+ * currencyAddress: '0x...'
33
+ * })
34
+ * ```
35
+ *
36
+ * @example
37
+ * With custom query options:
38
+ * ```typescript
39
+ * const { data, isLoading } = useCurrency({
40
+ * chainId: 1,
41
+ * currencyAddress: '0x...',
42
+ * query: {
43
+ * enabled: Boolean(selectedCurrency)
44
+ * }
45
+ * })
46
+ * ```
47
+ */
48
+ export function useCurrency(params: UseCurrencyParams) {
49
+ const defaultConfig = useConfig();
41
50
 
42
- if (!currencies?.length) {
43
- throw new Error('No currencies returned');
44
- }
45
- const currency = currencies.find(
46
- (currency) =>
47
- currency.contractAddress.toLowerCase() === currencyAddress.toLowerCase(),
48
- );
51
+ const { config = defaultConfig, ...rest } = params;
49
52
 
50
- if (!currency) {
51
- throw new Error('Currency not found');
52
- }
53
-
54
- return currency;
55
- };
56
-
57
- export const currencyOptions = (args: UseCurrencyArgs, config: SdkConfig) => {
58
- const { chainId, currencyAddress } = args;
53
+ const queryOptions = currencyQueryOptions({
54
+ config,
55
+ ...rest,
56
+ });
59
57
 
60
- return queryOptions({
61
- ...args.query,
62
- queryKey: [...currencyKeys.details, args.chainId, args.currencyAddress],
63
- queryFn:
64
- chainId && currencyAddress
65
- ? () => fetchCurrency(chainId, currencyAddress, config)
66
- : skipToken,
58
+ return useQuery({
59
+ ...queryOptions,
67
60
  });
68
- };
61
+ }
62
+
63
+ export { currencyQueryOptions };
69
64
 
70
- export const useCurrency = (args: UseCurrencyArgs) => {
71
- const config = useConfig();
72
- return useQuery(currencyOptions(args, config));
73
- };
65
+ export type { FetchCurrencyParams, CurrencyQueryOptions };
@@ -0,0 +1,67 @@
1
+ import type { Address } from 'viem';
2
+ import { useReadContract } from 'wagmi';
3
+ import { ERC721_SALE_ABI } from '../../../../sdk/src';
4
+ import { useGetTokenSuppliesMap } from './useGetTokenSuppliesMap';
5
+
6
+ interface UseERC721SaleMintedTokensProps {
7
+ chainId: number;
8
+ contractAddress: Address;
9
+ salesContractAddress: Address;
10
+ enabled?: boolean;
11
+ tokenIds: string[];
12
+ }
13
+
14
+ export function useERC721SaleMintedTokens({
15
+ chainId,
16
+ contractAddress,
17
+ salesContractAddress,
18
+ tokenIds,
19
+ enabled = true,
20
+ }: UseERC721SaleMintedTokensProps) {
21
+ const {
22
+ data: saleDetails,
23
+ isLoading: saleDetailsLoading,
24
+ error: saleDetailsError,
25
+ } = useReadContract({
26
+ chainId,
27
+ address: salesContractAddress,
28
+ abi: ERC721_SALE_ABI,
29
+ functionName: 'saleDetails',
30
+ query: {
31
+ enabled,
32
+ },
33
+ });
34
+
35
+ // Get token supplies for all potential tokens in the sale
36
+ const { data: tokenSupplies, isLoading: tokenSuppliesLoading } =
37
+ useGetTokenSuppliesMap({
38
+ chainId,
39
+ tokenIds,
40
+ collectionAddress: contractAddress as Address,
41
+ });
42
+
43
+ const isLoading = saleDetailsLoading || tokenSuppliesLoading;
44
+
45
+ // Count how many tokens have been minted/owned
46
+ const ownedCount = tokenIds.reduce((count, tokenId) => {
47
+ const supplies = tokenSupplies?.supplies[contractAddress];
48
+ const supply = supplies?.find((s) => s.tokenID === tokenId);
49
+ // If supply exists and is greater than 0, token exists and is owned
50
+ const hasOwner = supply ? BigInt(supply.supply) > 0n : false;
51
+ return count + (hasOwner ? 1 : 0);
52
+ }, 0);
53
+
54
+ const totalSupplyCap = saleDetails?.supplyCap
55
+ ? Number(saleDetails.supplyCap)
56
+ : 0;
57
+ const remainingCount = Math.max(0, totalSupplyCap - ownedCount);
58
+
59
+ return {
60
+ ownedCount,
61
+ totalSupplyCap,
62
+ remainingCount,
63
+ isLoading,
64
+ error: saleDetailsError,
65
+ saleDetails,
66
+ };
67
+ }
@@ -1,5 +1,3 @@
1
- import { useMemo } from 'react';
2
-
3
1
  import {
4
2
  createSerializer,
5
3
  parseAsBoolean,
@@ -7,6 +5,7 @@ import {
7
5
  parseAsString,
8
6
  useQueryState,
9
7
  } from 'nuqs';
8
+ import { useMemo } from 'react';
10
9
  import { type PropertyFilter, PropertyType } from '../_internal';
11
10
 
12
11
  interface StringFilterValues {
@@ -1,42 +1,70 @@
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
- AddressSchema,
6
- QueryArgSchema,
7
- collectableKeys,
8
- getMarketplaceClient,
9
- } from '../_internal';
6
+ type FetchFloorOrderParams,
7
+ type FloorOrderQueryOptions,
8
+ floorOrderQueryOptions,
9
+ } from '../queries/floorOrder';
10
10
  import { useConfig } from './useConfig';
11
11
 
12
- const UseFloorOrderSchema = z.object({
13
- chainId: z.number(),
14
- collectionAddress: AddressSchema,
15
- query: QueryArgSchema,
16
- });
17
-
18
- export type UseFloorOrderArgs = z.infer<typeof UseFloorOrderSchema>;
19
-
20
- export type UseFloorOrderReturn = Awaited<ReturnType<typeof fetchFloorOrder>>;
21
-
22
- const fetchFloorOrder = async (args: UseFloorOrderArgs, config: SdkConfig) => {
23
- const marketplaceClient = getMarketplaceClient(args.chainId, config);
24
- return marketplaceClient
25
- .getFloorOrder({ contractAddress: args.collectionAddress })
26
- .then((data) => data.collectible);
27
- };
28
-
29
- export const floorOrderOptions = (
30
- args: UseFloorOrderArgs,
31
- config: SdkConfig,
32
- ) => {
33
- return queryOptions({
34
- queryKey: [...collectableKeys.floorOrders, args, config],
35
- queryFn: () => fetchFloorOrder(args, config),
12
+ export type UseFloorOrderParams = Optional<FloorOrderQueryOptions, 'config'>;
13
+
14
+ /**
15
+ * Hook to fetch the floor order for a collection
16
+ *
17
+ * Retrieves the lowest priced order (listing) currently available for any token
18
+ * in the specified collection from the marketplace.
19
+ *
20
+ * @param params - Configuration parameters
21
+ * @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
22
+ * @param params.collectionAddress - The collection contract address
23
+ * @param params.filter - Optional filter criteria for collectibles
24
+ * @param params.query - Optional React Query configuration
25
+ *
26
+ * @returns Query result containing the floor order data for the collection
27
+ *
28
+ * @example
29
+ * Basic usage:
30
+ * ```typescript
31
+ * const { data, isLoading } = useFloorOrder({
32
+ * chainId: 137,
33
+ * collectionAddress: '0x...'
34
+ * })
35
+ * ```
36
+ *
37
+ * @example
38
+ * With filters and custom query options:
39
+ * ```typescript
40
+ * const { data, isLoading } = useFloorOrder({
41
+ * chainId: 1,
42
+ * collectionAddress: '0x...',
43
+ * filter: {
44
+ * minPrice: '1000000000000000000' // 1 ETH in wei
45
+ * },
46
+ * query: {
47
+ * refetchInterval: 30000,
48
+ * enabled: hasCollectionAddress
49
+ * }
50
+ * })
51
+ * ```
52
+ */
53
+ export function useFloorOrder(params: UseFloorOrderParams) {
54
+ const defaultConfig = useConfig();
55
+
56
+ const { config = defaultConfig, ...rest } = params;
57
+
58
+ const queryOptions = floorOrderQueryOptions({
59
+ config,
60
+ ...rest,
36
61
  });
37
- };
38
62
 
39
- export const useFloorOrder = (args: UseFloorOrderArgs) => {
40
- const config = useConfig();
41
- return useQuery(floorOrderOptions(args, config));
42
- };
63
+ return useQuery({
64
+ ...queryOptions,
65
+ });
66
+ }
67
+
68
+ export { floorOrderQueryOptions };
69
+
70
+ export type { FetchFloorOrderParams, FloorOrderQueryOptions };
@@ -1,30 +1,32 @@
1
1
  import { useMutation } from '@tanstack/react-query';
2
- import { z } from 'zod';
3
2
  import type { SdkConfig } from '../../types';
4
3
  import {
5
4
  type GenerateCancelTransactionArgs,
6
5
  getMarketplaceClient,
7
6
  } from '../_internal';
8
- import { stepSchema } from '../_internal/api/zod-schema';
7
+ import type { Step } from '../_internal/api/marketplace.gen';
9
8
  import { useConfig } from './useConfig';
10
9
 
11
- const UserGenerateCancelTransactionArgsSchema = z.object({
12
- chainId: z.number(),
13
- onSuccess: z.function().args(stepSchema.array().optional()).optional(),
14
- });
10
+ // Create a type that uses number for chainId
11
+ type GenerateCancelTransactionArgsWithNumberChainId = Omit<
12
+ GenerateCancelTransactionArgs,
13
+ 'chainId'
14
+ > & {
15
+ chainId: number;
16
+ };
15
17
 
16
- type UseGenerateCancelTransactionArgs = z.infer<
17
- typeof UserGenerateCancelTransactionArgsSchema
18
- >;
18
+ interface UseGenerateCancelTransactionArgs {
19
+ chainId: number;
20
+ onSuccess?: (steps?: Step[]) => void;
21
+ }
19
22
 
20
23
  export const generateCancelTransaction = async (
21
- args: GenerateCancelTransactionArgs,
24
+ args: GenerateCancelTransactionArgsWithNumberChainId,
22
25
  config: SdkConfig,
23
- chainId: number,
24
26
  ) => {
25
- const marketplaceClient = getMarketplaceClient(chainId, config);
27
+ const marketplaceClient = getMarketplaceClient(config);
26
28
  return marketplaceClient
27
- .generateCancelTransaction(args)
29
+ .generateCancelTransaction({ ...args, chainId: String(args.chainId) })
28
30
  .then((data) => data.steps);
29
31
  };
30
32
 
@@ -35,8 +37,8 @@ export const useGenerateCancelTransaction = (
35
37
 
36
38
  const { mutate, mutateAsync, ...result } = useMutation({
37
39
  onSuccess: params.onSuccess,
38
- mutationFn: (args: GenerateCancelTransactionArgs) =>
39
- generateCancelTransaction(args, config, params.chainId),
40
+ mutationFn: (args: GenerateCancelTransactionArgsWithNumberChainId) =>
41
+ generateCancelTransaction(args, config),
40
42
  });
41
43
 
42
44
  return {
@@ -11,8 +11,8 @@ import { dateToUnixTime } from '../../utils/date';
11
11
  import {
12
12
  type CreateReq,
13
13
  type GenerateListingTransactionArgs,
14
- type Step,
15
14
  getMarketplaceClient,
15
+ type Step,
16
16
  } from '../_internal';
17
17
 
18
18
  export type CreateReqWithDateExpiry = Omit<CreateReq, 'expiry'> & {
@@ -26,19 +26,27 @@ export type GenerateListingTransactionProps = Omit<
26
26
  listing: CreateReqWithDateExpiry;
27
27
  };
28
28
 
29
+ type GenerateListingTransactionArgsWithNumberChainId = Omit<
30
+ GenerateListingTransactionArgs,
31
+ 'chainId' | 'listing'
32
+ > & {
33
+ chainId: number;
34
+ listing: CreateReqWithDateExpiry;
35
+ };
36
+
29
37
  export const generateListingTransaction = async (
30
- params: GenerateListingTransactionProps,
38
+ params: GenerateListingTransactionArgsWithNumberChainId,
31
39
  config: SdkConfig,
32
- chainId: number,
33
40
  ) => {
34
41
  const args = {
35
42
  ...params,
43
+ chainId: String(params.chainId),
36
44
  listing: {
37
45
  ...params.listing,
38
46
  expiry: dateToUnixTime(params.listing.expiry),
39
47
  },
40
48
  } satisfies GenerateListingTransactionArgs;
41
- const marketplaceClient = getMarketplaceClient(chainId, config);
49
+ const marketplaceClient = getMarketplaceClient(config);
42
50
  return (await marketplaceClient.generateListingTransaction(args)).steps;
43
51
  };
44
52
 
@@ -49,8 +57,10 @@ export const useGenerateListingTransaction = (
49
57
 
50
58
  const { mutate, mutateAsync, ...result } = useMutation({
51
59
  onSuccess: params.onSuccess,
52
- mutationFn: (args: GenerateListingTransactionProps) =>
53
- generateListingTransaction(args, config, params.chainId),
60
+ mutationFn: (
61
+ args: Omit<GenerateListingTransactionArgsWithNumberChainId, 'chainId'>,
62
+ ) =>
63
+ generateListingTransaction({ ...args, chainId: params.chainId }, config),
54
64
  });
55
65
 
56
66
  return {
@@ -4,9 +4,9 @@ import { dateToUnixTime } from '../../utils/date';
4
4
  import {
5
5
  type CreateReq,
6
6
  type GenerateOfferTransactionArgs,
7
+ getMarketplaceClient,
7
8
  type Step,
8
9
  type WalletKind,
9
- getMarketplaceClient,
10
10
  } from '../_internal';
11
11
  import { useWallet } from '../_internal/wallet/useWallet';
12
12
  import { useConfig } from './useConfig';
@@ -27,18 +27,26 @@ export type GenerateOfferTransactionProps = Omit<
27
27
  offer: CreateReqWithDateExpiry;
28
28
  };
29
29
 
30
+ type GenerateOfferTransactionArgsWithNumberChainId = Omit<
31
+ GenerateOfferTransactionArgs,
32
+ 'chainId' | 'offer'
33
+ > & {
34
+ chainId: number;
35
+ offer: CreateReqWithDateExpiry;
36
+ };
37
+
30
38
  export const generateOfferTransaction = async (
31
- params: GenerateOfferTransactionProps,
39
+ params: GenerateOfferTransactionArgsWithNumberChainId,
32
40
  config: SdkConfig,
33
- chainId: number,
34
41
  walletKind?: WalletKind,
35
42
  ) => {
36
43
  const args = {
37
44
  ...params,
45
+ chainId: String(params.chainId),
38
46
  offer: { ...params.offer, expiry: dateToUnixTime(params.offer.expiry) },
39
47
  walletType: walletKind,
40
48
  } satisfies GenerateOfferTransactionArgs;
41
- const marketplaceClient = getMarketplaceClient(chainId, config);
49
+ const marketplaceClient = getMarketplaceClient(config);
42
50
  return (await marketplaceClient.generateOfferTransaction(args)).steps;
43
51
  };
44
52
 
@@ -50,11 +58,12 @@ export const useGenerateOfferTransaction = (
50
58
 
51
59
  const { mutate, mutateAsync, ...result } = useMutation({
52
60
  onSuccess: params.onSuccess,
53
- mutationFn: (args: GenerateOfferTransactionProps) =>
61
+ mutationFn: (
62
+ args: Omit<GenerateOfferTransactionArgsWithNumberChainId, 'chainId'>,
63
+ ) =>
54
64
  generateOfferTransaction(
55
- args,
65
+ { ...args, chainId: params.chainId },
56
66
  config,
57
- params.chainId,
58
67
  wallet?.walletKind,
59
68
  ),
60
69
  });
@@ -1,30 +1,33 @@
1
1
  import { useMutation } from '@tanstack/react-query';
2
- import { z } from 'zod';
3
2
  import type { SdkConfig } from '../../types';
4
3
  import {
5
4
  type GenerateSellTransactionArgs,
6
5
  getMarketplaceClient,
7
6
  } from '../_internal';
8
- import { stepSchema } from '../_internal/api/zod-schema';
7
+ import type { Step } from '../_internal/api/marketplace.gen';
9
8
  import { useConfig } from './useConfig';
10
9
 
11
- const UserGeneratSellTransactionArgsSchema = z.object({
12
- chainId: z.number(),
13
- onSuccess: z.function().args(stepSchema.array().optional()).optional(),
14
- });
10
+ interface UseGenerateSellTransactionArgs {
11
+ chainId: number;
12
+ onSuccess?: (steps?: Step[]) => void;
13
+ }
15
14
 
16
- type UseGenerateSellTransactionArgs = z.infer<
17
- typeof UserGeneratSellTransactionArgsSchema
18
- >;
15
+ type GenerateSellTransactionArgsWithNumberChainId = Omit<
16
+ GenerateSellTransactionArgs,
17
+ 'chainId'
18
+ > & { chainId: number };
19
19
 
20
20
  export const generateSellTransaction = async (
21
- args: GenerateSellTransactionArgs,
21
+ args: GenerateSellTransactionArgsWithNumberChainId,
22
22
  config: SdkConfig,
23
- chainId: number,
24
23
  ) => {
25
- const marketplaceClient = getMarketplaceClient(chainId, config);
24
+ const marketplaceClient = getMarketplaceClient(config);
25
+ const argsWithStringChainId = {
26
+ ...args,
27
+ chainId: String(args.chainId),
28
+ } satisfies GenerateSellTransactionArgs;
26
29
  return marketplaceClient
27
- .generateSellTransaction(args)
30
+ .generateSellTransaction(argsWithStringChainId)
28
31
  .then((data) => data.steps);
29
32
  };
30
33
 
@@ -35,8 +38,9 @@ export const useGenerateSellTransaction = (
35
38
 
36
39
  const { mutate, mutateAsync, ...result } = useMutation({
37
40
  onSuccess: params.onSuccess,
38
- mutationFn: (args: GenerateSellTransactionArgs) =>
39
- generateSellTransaction(args, config, params.chainId),
41
+ mutationFn: (
42
+ args: Omit<GenerateSellTransactionArgsWithNumberChainId, 'chainId'>,
43
+ ) => generateSellTransaction({ ...args, chainId: params.chainId }, config),
40
44
  });
41
45
 
42
46
  return {
@@ -3,11 +3,40 @@ import type { Hex } from 'viem';
3
3
  import { usePublicClient } from 'wagmi';
4
4
 
5
5
  /**
6
- * @returns a function to wait for a transaction receipt and the receipt
7
- * @description This hook is used to wait for a transaction receipt and the receipt
6
+ * Hook to get transaction receipt from hash
7
+ *
8
+ * Provides a function to wait for a transaction receipt using a transaction hash.
9
+ * This is a wagmi-based hook for direct blockchain interaction.
10
+ *
11
+ * @returns Object containing waitForReceipt function
12
+ *
8
13
  * @example
14
+ * Basic usage:
15
+ * ```typescript
9
16
  * const { waitForReceipt } = useGetReceiptFromHash();
10
- * const receipt = await waitForReceipt(transactionHash);
17
+ *
18
+ * // Wait for transaction receipt
19
+ * const receipt = await waitForReceipt('0x123...');
20
+ * console.log('Transaction status:', receipt.status);
21
+ * ```
22
+ *
23
+ * @example
24
+ * In transaction flow:
25
+ * ```typescript
26
+ * const { waitForReceipt } = useGetReceiptFromHash();
27
+ *
28
+ * const handleTransaction = async () => {
29
+ * try {
30
+ * const hash = await writeContract({ ... });
31
+ * const receipt = await waitForReceipt(hash);
32
+ * if (receipt.status === 'success') {
33
+ * console.log('Transaction confirmed!');
34
+ * }
35
+ * } catch (error) {
36
+ * console.error('Transaction failed:', error);
37
+ * }
38
+ * };
39
+ * ```
11
40
  */
12
41
  export const useGetReceiptFromHash = () => {
13
42
  const publicClient = usePublicClient();
@@ -0,0 +1,31 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import type { Address } from 'viem';
3
+ import { useConfig } from '..';
4
+ import { getIndexerClient } from '../_internal';
5
+
6
+ interface UseGetTokenRangesProps {
7
+ chainId: number;
8
+ collectionAddress: Address;
9
+ query?: {
10
+ enabled?: boolean;
11
+ };
12
+ }
13
+
14
+ export function useGetTokenRanges({
15
+ chainId,
16
+ collectionAddress,
17
+ query = {},
18
+ }: UseGetTokenRangesProps) {
19
+ const config = useConfig();
20
+ const indexerClient = getIndexerClient(chainId, config);
21
+
22
+ return useQuery({
23
+ queryKey: ['indexer-tokenRanges', chainId, collectionAddress],
24
+ queryFn: () => {
25
+ return indexerClient.getTokenIDRanges({
26
+ contractAddress: collectionAddress,
27
+ });
28
+ },
29
+ enabled: query?.enabled,
30
+ });
31
+ }