@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
@@ -0,0 +1,157 @@
1
+ import { useMemo } from 'react';
2
+
3
+ import type { Address } from 'viem';
4
+ import { useAccount } from 'wagmi';
5
+ import type {
6
+ CollectibleCardAction,
7
+ CollectibleOrder,
8
+ ContractType,
9
+ Order,
10
+ OrderbookKind,
11
+ PropertyFilter,
12
+ } from '../../types';
13
+ import { OrderSide } from '../../types';
14
+ import type { MarketCollectibleCardProps } from '../ui/components/marketplace-collectible-card/types';
15
+ import { useSellModal } from '../ui/modals/SellModal';
16
+ import { useCollectionBalanceDetails } from './useCollectionBalanceDetails';
17
+ import { useListCollectibles } from './useListCollectibles';
18
+
19
+ interface UseListMarketCardDataProps {
20
+ collectionAddress: Address;
21
+ chainId: number;
22
+ orderbookKind: OrderbookKind;
23
+ collectionType: ContractType;
24
+ filterOptions?: PropertyFilter[];
25
+ searchText?: string;
26
+ showListedOnly?: boolean;
27
+ onCollectibleClick?: (tokenId: string) => void;
28
+ onCannotPerformAction?: (action: CollectibleCardAction) => void;
29
+ prioritizeOwnerActions?: boolean;
30
+ assetSrcPrefixUrl?: string;
31
+ }
32
+
33
+ export function useListMarketCardData({
34
+ collectionAddress,
35
+ chainId,
36
+ orderbookKind,
37
+ collectionType,
38
+ filterOptions,
39
+ searchText,
40
+ showListedOnly = false,
41
+ onCollectibleClick,
42
+ onCannotPerformAction,
43
+ prioritizeOwnerActions,
44
+ assetSrcPrefixUrl,
45
+ }: UseListMarketCardDataProps) {
46
+ const { address: accountAddress } = useAccount();
47
+ const { show: showSellModal } = useSellModal();
48
+
49
+ // Get collectibles with listings
50
+ const {
51
+ data: collectiblesList,
52
+ isLoading: collectiblesListIsLoading,
53
+ fetchNextPage,
54
+ hasNextPage,
55
+ isFetchingNextPage,
56
+ error: collectiblesListError,
57
+ } = useListCollectibles({
58
+ collectionAddress,
59
+ chainId,
60
+ side: OrderSide.listing,
61
+ filter: {
62
+ includeEmpty: !showListedOnly,
63
+ searchText,
64
+ properties: filterOptions,
65
+ },
66
+ query: {
67
+ enabled: !!collectionAddress && !!chainId,
68
+ },
69
+ });
70
+
71
+ // Get user balances for this collection
72
+ const { data: collectionBalance, isLoading: balanceLoading } =
73
+ useCollectionBalanceDetails({
74
+ chainId,
75
+ filter: {
76
+ accountAddresses: accountAddress ? [accountAddress] : [],
77
+ omitNativeBalances: true,
78
+ contractWhitelist: [collectionAddress],
79
+ },
80
+ query: {
81
+ enabled: !!accountAddress,
82
+ },
83
+ });
84
+
85
+ // Flatten all collectibles from all pages
86
+ const allCollectibles = useMemo(() => {
87
+ if (!collectiblesList?.pages) return [];
88
+ return collectiblesList.pages.flatMap((page) => page.collectibles);
89
+ }, [collectiblesList?.pages]);
90
+
91
+ // Generate card props for each collectible
92
+ const collectibleCards = useMemo(() => {
93
+ return allCollectibles.map((collectible: CollectibleOrder) => {
94
+ const balance = collectionBalance?.balances.find(
95
+ (balance) => balance.tokenID === collectible.metadata.tokenId,
96
+ )?.balance;
97
+
98
+ const cardProps: MarketCollectibleCardProps = {
99
+ collectibleId: collectible.metadata.tokenId,
100
+ chainId,
101
+ collectionAddress,
102
+ collectionType,
103
+ cardLoading: collectiblesListIsLoading || balanceLoading,
104
+ marketplaceType: 'market',
105
+ orderbookKind,
106
+ collectible,
107
+ onCollectibleClick,
108
+ balance,
109
+ balanceIsLoading: balanceLoading,
110
+ onCannotPerformAction,
111
+ prioritizeOwnerActions,
112
+ assetSrcPrefixUrl,
113
+ onOfferClick: ({ order }) => {
114
+ if (!accountAddress) return;
115
+
116
+ if (balance) {
117
+ showSellModal({
118
+ chainId,
119
+ collectionAddress,
120
+ tokenId: collectible.metadata.tokenId,
121
+ order: order as Order,
122
+ });
123
+ return;
124
+ }
125
+ },
126
+ };
127
+
128
+ return cardProps;
129
+ });
130
+ }, [
131
+ allCollectibles,
132
+ chainId,
133
+ collectionAddress,
134
+ collectionType,
135
+ collectiblesListIsLoading,
136
+ balanceLoading,
137
+ orderbookKind,
138
+ onCollectibleClick,
139
+ collectionBalance?.balances,
140
+ onCannotPerformAction,
141
+ prioritizeOwnerActions,
142
+ assetSrcPrefixUrl,
143
+ accountAddress,
144
+ showSellModal,
145
+ ]);
146
+
147
+ return {
148
+ collectibleCards,
149
+ isLoading: collectiblesListIsLoading || balanceLoading,
150
+ error: collectiblesListError,
151
+
152
+ hasNextPage,
153
+ isFetchingNextPage,
154
+ fetchNextPage,
155
+ allCollectibles,
156
+ };
157
+ }
@@ -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>
@@ -30,13 +25,14 @@ const fetchListOffersForCollectible = async (
30
25
  args: UseListOffersForCollectibleArgs,
31
26
  ) => {
32
27
  const arg = {
28
+ chainId: String(args.chainId),
33
29
  contractAddress: args.collectionAddress,
34
30
  tokenId: args.collectibleId,
35
31
  filter: args.filter,
36
32
  page: args.page,
37
33
  } satisfies ListOffersForCollectibleArgs;
38
34
 
39
- const marketplaceClient = getMarketplaceClient(args.chainId, config);
35
+ const marketplaceClient = getMarketplaceClient(config);
40
36
  return marketplaceClient.listCollectibleOffers(arg);
41
37
  };
42
38
 
@@ -0,0 +1,102 @@
1
+ import { useInfiniteQuery, useQuery } from '@tanstack/react-query';
2
+ import type { Address } from 'viem';
3
+ import type { SdkConfig } from '../../types';
4
+ import {
5
+ getMarketplaceClient,
6
+ type ListPrimarySaleItemsArgs,
7
+ type ListPrimarySaleItemsReturn,
8
+ type Page,
9
+ type PrimarySaleItemsFilter,
10
+ } from '../_internal';
11
+ import { useConfig } from './useConfig';
12
+
13
+ interface UseListPrimarySaleItemsArgs {
14
+ chainId: number;
15
+ primarySaleContractAddress: Address | undefined;
16
+ filter?: PrimarySaleItemsFilter;
17
+ page?: Page;
18
+ query?: {
19
+ enabled?: boolean;
20
+ };
21
+ }
22
+
23
+ const fetchListPrimarySaleItems = async (
24
+ args: ListPrimarySaleItemsArgs,
25
+ config: SdkConfig,
26
+ ): Promise<ListPrimarySaleItemsReturn> => {
27
+ const arg = {
28
+ chainId: String(args.chainId),
29
+ primarySaleContractAddress: args.primarySaleContractAddress,
30
+ filter: args.filter,
31
+ page: args.page,
32
+ } satisfies ListPrimarySaleItemsArgs;
33
+
34
+ const marketplaceClient = getMarketplaceClient(config);
35
+ return marketplaceClient.listPrimarySaleItems(arg);
36
+ };
37
+
38
+ const listPrimarySaleItemsOptions = (
39
+ args: UseListPrimarySaleItemsArgs,
40
+ config: SdkConfig,
41
+ ) => {
42
+ const primarySaleContractAddress = args.primarySaleContractAddress as Address;
43
+ return {
44
+ queryKey: ['listPrimarySaleItems', args],
45
+ queryFn: async ({ pageParam }: { pageParam: Page }) => {
46
+ return fetchListPrimarySaleItems(
47
+ {
48
+ chainId: String(args.chainId),
49
+ primarySaleContractAddress,
50
+ filter: args.filter,
51
+ page: pageParam,
52
+ },
53
+ config,
54
+ );
55
+ },
56
+ initialPageParam: { page: 1, pageSize: 30 } as Page,
57
+ getNextPageParam: (lastPage: ListPrimarySaleItemsReturn) =>
58
+ lastPage.page?.more
59
+ ? {
60
+ page: lastPage.page?.page || 1,
61
+ pageSize: lastPage.page?.pageSize || 30,
62
+ }
63
+ : undefined,
64
+ ...args.query,
65
+ enabled: !!primarySaleContractAddress && args.query?.enabled !== false,
66
+ };
67
+ };
68
+
69
+ export const useListPrimarySaleItems = (args: UseListPrimarySaleItemsArgs) => {
70
+ const config = useConfig();
71
+ return useInfiniteQuery(listPrimarySaleItemsOptions(args, config));
72
+ };
73
+
74
+ interface UseGetCountOfPrimarySaleItemsArgs {
75
+ chainId: number;
76
+ primarySaleContractAddress: Address | undefined;
77
+ filter?: PrimarySaleItemsFilter;
78
+ query?: {
79
+ enabled?: boolean;
80
+ };
81
+ }
82
+
83
+ export const useGetCountOfPrimarySaleItems = (
84
+ args: UseGetCountOfPrimarySaleItemsArgs,
85
+ ) => {
86
+ const config = useConfig();
87
+
88
+ return useQuery({
89
+ queryKey: ['getCountOfPrimarySaleItems', args],
90
+ queryFn: async () => {
91
+ const marketplaceClient = getMarketplaceClient(config);
92
+
93
+ return marketplaceClient.getCountOfPrimarySaleItems({
94
+ chainId: String(args.chainId),
95
+ primarySaleContractAddress: args.primarySaleContractAddress || '',
96
+ filter: args.filter,
97
+ });
98
+ },
99
+ ...args.query,
100
+ enabled: !!args.primarySaleContractAddress && args.query?.enabled !== false,
101
+ });
102
+ };
@@ -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
+ }
@@ -0,0 +1,73 @@
1
+ 'use client';
2
+
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import type { Optional } from '../_internal';
5
+ import {
6
+ type FetchListTokenMetadataParams,
7
+ type ListTokenMetadataQueryOptions,
8
+ listTokenMetadataQueryOptions,
9
+ } from '../queries/listTokenMetadata';
10
+ import { useConfig } from './useConfig';
11
+
12
+ export type UseListTokenMetadataParams = Optional<
13
+ ListTokenMetadataQueryOptions,
14
+ 'config'
15
+ >;
16
+
17
+ /**
18
+ * Hook to fetch metadata for multiple tokens
19
+ *
20
+ * Retrieves metadata for a batch of tokens from a specific contract using the metadata API.
21
+ * This hook is optimized for fetching multiple token metadata in a single request.
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.config - Optional SDK configuration (defaults from context)
28
+ * @param params.query - Optional React Query configuration
29
+ *
30
+ * @returns Query result containing an array of token metadata
31
+ *
32
+ * @example
33
+ * Basic usage:
34
+ * ```typescript
35
+ * const { data: metadata, isLoading } = useListTokenMetadata({
36
+ * chainId: 137,
37
+ * contractAddress: '0x...',
38
+ * tokenIds: ['1', '2', '3']
39
+ * })
40
+ * ```
41
+ *
42
+ * @example
43
+ * With query options:
44
+ * ```typescript
45
+ * const { data: metadata } = useListTokenMetadata({
46
+ * chainId: 1,
47
+ * contractAddress: '0x...',
48
+ * tokenIds: selectedTokenIds,
49
+ * query: {
50
+ * enabled: selectedTokenIds.length > 0,
51
+ * staleTime: 10 * 60 * 1000 // 10 minutes
52
+ * }
53
+ * })
54
+ * ```
55
+ */
56
+ export function useListTokenMetadata(params: UseListTokenMetadataParams) {
57
+ const defaultConfig = useConfig();
58
+
59
+ const { config = defaultConfig, ...rest } = params;
60
+
61
+ const queryOptions = listTokenMetadataQueryOptions({
62
+ config,
63
+ ...rest,
64
+ });
65
+
66
+ return useQuery({
67
+ ...queryOptions,
68
+ });
69
+ }
70
+
71
+ export { listTokenMetadataQueryOptions };
72
+
73
+ export type { FetchListTokenMetadataParams, ListTokenMetadataQueryOptions };
@@ -1,8 +1,72 @@
1
+ 'use client';
2
+
1
3
  import { useQuery } from '@tanstack/react-query';
2
- import { type UseLowestListingArgs, lowestListingOptions } from '../queries';
4
+ import type { Optional } from '../_internal';
5
+ import {
6
+ type FetchLowestListingParams,
7
+ type LowestListingQueryOptions,
8
+ lowestListingQueryOptions,
9
+ } from '../queries/lowestListing';
3
10
  import { useConfig } from './useConfig';
4
11
 
5
- export function useLowestListing(args: UseLowestListingArgs) {
6
- const config = useConfig();
7
- return useQuery(lowestListingOptions(args, config));
12
+ export type UseLowestListingParams = Optional<
13
+ LowestListingQueryOptions,
14
+ 'config'
15
+ >;
16
+
17
+ /**
18
+ * Hook to fetch the lowest listing for a collectible
19
+ *
20
+ * Retrieves the lowest priced listing currently available for a specific token
21
+ * in a collection from the marketplace.
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.collectionAddress - The collection contract address
26
+ * @param params.tokenId - The token ID within the collection
27
+ * @param params.query - Optional React Query configuration
28
+ *
29
+ * @returns Query result containing the lowest listing data or null if no listings exist
30
+ *
31
+ * @example
32
+ * Basic usage:
33
+ * ```typescript
34
+ * const { data, isLoading } = useLowestListing({
35
+ * chainId: 137,
36
+ * collectionAddress: '0x...',
37
+ * tokenId: '1'
38
+ * })
39
+ * ```
40
+ *
41
+ * @example
42
+ * With custom query options:
43
+ * ```typescript
44
+ * const { data, isLoading } = useLowestListing({
45
+ * chainId: 1,
46
+ * collectionAddress: '0x...',
47
+ * tokenId: '42',
48
+ * query: {
49
+ * refetchInterval: 15000,
50
+ * enabled: hasTokenId
51
+ * }
52
+ * })
53
+ * ```
54
+ */
55
+ export function useLowestListing(params: UseLowestListingParams) {
56
+ const defaultConfig = useConfig();
57
+
58
+ const { config = defaultConfig, ...rest } = params;
59
+
60
+ const queryOptions = lowestListingQueryOptions({
61
+ config,
62
+ ...rest,
63
+ });
64
+
65
+ return useQuery({
66
+ ...queryOptions,
67
+ });
8
68
  }
69
+
70
+ export { lowestListingQueryOptions };
71
+
72
+ export type { FetchLowestListingParams, LowestListingQueryOptions };
@@ -1,8 +1,65 @@
1
+ 'use client';
2
+
1
3
  import { useQuery } from '@tanstack/react-query';
2
- import { type UseMarketCurrenciesArgs, currenciesOptions } from '../queries';
4
+ import type { Optional } from '../_internal';
5
+ import {
6
+ type FetchMarketCurrenciesParams,
7
+ type MarketCurrenciesQueryOptions,
8
+ marketCurrenciesQueryOptions,
9
+ } from '../queries/marketCurrencies';
3
10
  import { useConfig } from './useConfig';
4
11
 
5
- export const useMarketCurrencies = (args: UseMarketCurrenciesArgs) => {
6
- const config = useConfig();
7
- return useQuery(currenciesOptions(args, config));
8
- };
12
+ export type UseMarketCurrenciesParams = Optional<
13
+ MarketCurrenciesQueryOptions,
14
+ 'config'
15
+ >;
16
+
17
+ /**
18
+ * Hook to fetch supported currencies for a marketplace
19
+ *
20
+ * Retrieves the list of currencies supported by the marketplace for a specific chain.
21
+ * Can optionally filter to exclude native currency or filter by collection.
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.includeNativeCurrency - Whether to include native currency (default: true)
26
+ * @param params.collectionAddress - Optional collection address to filter currencies
27
+ * @param params.query - Optional React Query configuration
28
+ *
29
+ * @returns Query result containing supported currencies
30
+ *
31
+ * @example
32
+ * Basic usage:
33
+ * ```typescript
34
+ * const { data, isLoading } = useMarketCurrencies({
35
+ * chainId: 137
36
+ * })
37
+ * ```
38
+ *
39
+ * @example
40
+ * Exclude native currency:
41
+ * ```typescript
42
+ * const { data, isLoading } = useMarketCurrencies({
43
+ * chainId: 1,
44
+ * includeNativeCurrency: false
45
+ * })
46
+ * ```
47
+ */
48
+ export function useMarketCurrencies(params: UseMarketCurrenciesParams) {
49
+ const defaultConfig = useConfig();
50
+
51
+ const { config = defaultConfig, ...rest } = params;
52
+
53
+ const queryOptions = marketCurrenciesQueryOptions({
54
+ config,
55
+ ...rest,
56
+ });
57
+
58
+ return useQuery({
59
+ ...queryOptions,
60
+ });
61
+ }
62
+
63
+ export { marketCurrenciesQueryOptions };
64
+
65
+ export type { FetchMarketCurrenciesParams, MarketCurrenciesQueryOptions };
@@ -1,18 +1,62 @@
1
+ 'use client';
2
+
3
+ import type { Address } from 'viem';
1
4
  import { useReadContract } from 'wagmi';
2
- import { z } from 'zod';
3
5
  import { EIP2981_ABI } from '../../utils';
4
- import { AddressSchema, QueryArgSchema, collectableKeys } from '../_internal';
5
-
6
- const UseRoyaltySchema = z.object({
7
- chainId: z.number(),
8
- collectionAddress: AddressSchema,
9
- collectibleId: z.string(),
10
- query: QueryArgSchema.optional(),
11
- });
6
+ import type { QueryArg } from '../_internal';
7
+ import { collectableKeys } from '../_internal';
12
8
 
13
- type UseRoyaltyArgs = z.infer<typeof UseRoyaltySchema>;
9
+ export interface UseRoyaltyArgs {
10
+ chainId: number;
11
+ collectionAddress: Address;
12
+ collectibleId: string;
13
+ query?: QueryArg;
14
+ }
14
15
 
15
- export const useRoyalty = (args: UseRoyaltyArgs) => {
16
+ /**
17
+ * Hook to fetch royalty information for a collectible
18
+ *
19
+ * Reads royalty information from the blockchain using the EIP-2981 standard.
20
+ * This hook queries the contract directly to get royalty percentage and recipient
21
+ * address for a specific token.
22
+ *
23
+ * @param args - Configuration parameters
24
+ * @param args.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
25
+ * @param args.collectionAddress - The collection contract address
26
+ * @param args.collectibleId - The token ID within the collection
27
+ * @param args.query - Optional React Query configuration
28
+ *
29
+ * @returns Query result containing royalty information (percentage and recipient) or null
30
+ *
31
+ * @example
32
+ * Basic usage:
33
+ * ```typescript
34
+ * const { data, isLoading } = useRoyalty({
35
+ * chainId: 137,
36
+ * collectionAddress: '0x...',
37
+ * collectibleId: '1'
38
+ * })
39
+ *
40
+ * if (data) {
41
+ * console.log('Royalty:', data.percentage, 'Recipient:', data.recipient)
42
+ * }
43
+ * ```
44
+ *
45
+ * @example
46
+ * With custom query options:
47
+ * ```typescript
48
+ * const { data, isLoading } = useRoyalty({
49
+ * chainId: 1,
50
+ * collectionAddress: '0x...',
51
+ * collectibleId: '42',
52
+ * query: {
53
+ * refetchInterval: 60000,
54
+ * enabled: hasTokenId
55
+ * }
56
+ * })
57
+ * ```
58
+ */
59
+ export function useRoyalty(args: UseRoyaltyArgs) {
16
60
  const { chainId, collectionAddress, collectibleId, query } = args;
17
61
  const scopeKey = `${collectableKeys.royaltyPercentage.join('.')}-${chainId}-${collectionAddress}-${collectibleId}`;
18
62
 
@@ -31,7 +75,7 @@ export const useRoyalty = (args: UseRoyaltyArgs) => {
31
75
  recipient && percentage
32
76
  ? {
33
77
  percentage,
34
- recipient,
78
+ recipient: recipient as Address,
35
79
  }
36
80
  : null;
37
81
 
@@ -39,4 +83,4 @@ export const useRoyalty = (args: UseRoyaltyArgs) => {
39
83
  ...contractResult,
40
84
  data: formattedData,
41
85
  };
42
- };
86
+ }