@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,73 @@
1
+ 'use client';
2
+
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import type { Optional } from '../_internal';
5
+ import {
6
+ type FetchGetTokenSuppliesMapParams,
7
+ type GetTokenSuppliesMapQueryOptions,
8
+ getTokenSuppliesMapQueryOptions,
9
+ } from '../queries/getTokenSuppliesMap';
10
+ import { useConfig } from './useConfig';
11
+
12
+ export type UseGetTokenSuppliesMapParams = Optional<
13
+ GetTokenSuppliesMapQueryOptions,
14
+ 'config'
15
+ >;
16
+
17
+ /**
18
+ * Hook to fetch token supplies mapping from the indexer
19
+ *
20
+ * Retrieves supply information for multiple tokens within a collection using the indexer API.
21
+ * This is useful for getting supply data for batches of tokens efficiently.
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.tokenIds - Array of token IDs to fetch supplies 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 token supplies mapping
31
+ *
32
+ * @example
33
+ * Basic usage:
34
+ * ```typescript
35
+ * const { data: suppliesMap, isLoading } = useGetTokenSuppliesMap({
36
+ * chainId: 137,
37
+ * collectionAddress: '0x...',
38
+ * tokenIds: ['1', '2', '3']
39
+ * })
40
+ * ```
41
+ *
42
+ * @example
43
+ * With query options:
44
+ * ```typescript
45
+ * const { data: suppliesMap } = useGetTokenSuppliesMap({
46
+ * chainId: 1,
47
+ * collectionAddress: '0x...',
48
+ * tokenIds: selectedTokenIds,
49
+ * query: {
50
+ * enabled: selectedTokenIds.length > 0,
51
+ * staleTime: 30 * 1000 // 30 seconds
52
+ * }
53
+ * })
54
+ * ```
55
+ */
56
+ export function useGetTokenSuppliesMap(params: UseGetTokenSuppliesMapParams) {
57
+ const defaultConfig = useConfig();
58
+
59
+ const { config = defaultConfig, ...rest } = params;
60
+
61
+ const queryOptions = getTokenSuppliesMapQueryOptions({
62
+ config,
63
+ ...rest,
64
+ });
65
+
66
+ return useQuery({
67
+ ...queryOptions,
68
+ });
69
+ }
70
+
71
+ export { getTokenSuppliesMapQueryOptions };
72
+
73
+ export type { FetchGetTokenSuppliesMapParams, GetTokenSuppliesMapQueryOptions };
@@ -1,8 +1,72 @@
1
+ 'use client';
2
+
1
3
  import { useQuery } from '@tanstack/react-query';
2
- import { type UseHighestOfferArgs, highestOfferOptions } from '../queries';
4
+ import type { Optional } from '../_internal';
5
+ import {
6
+ type FetchHighestOfferParams,
7
+ type HighestOfferQueryOptions,
8
+ highestOfferQueryOptions,
9
+ } from '../queries/highestOffer';
3
10
  import { useConfig } from './useConfig';
4
11
 
5
- export function useHighestOffer(args: UseHighestOfferArgs) {
6
- const config = useConfig();
7
- return useQuery(highestOfferOptions(args, config));
12
+ export type UseHighestOfferParams = Optional<
13
+ HighestOfferQueryOptions,
14
+ 'config'
15
+ >;
16
+
17
+ /**
18
+ * Hook to fetch the highest offer for a collectible
19
+ *
20
+ * Retrieves the highest offer 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 highest offer data or null if no offers exist
30
+ *
31
+ * @example
32
+ * Basic usage:
33
+ * ```typescript
34
+ * const { data, isLoading } = useHighestOffer({
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 } = useHighestOffer({
45
+ * chainId: 1,
46
+ * collectionAddress: '0x...',
47
+ * tokenId: '42',
48
+ * query: {
49
+ * refetchInterval: 15000,
50
+ * enabled: hasTokenId
51
+ * }
52
+ * })
53
+ * ```
54
+ */
55
+ export function useHighestOffer(params: UseHighestOfferParams) {
56
+ const defaultConfig = useConfig();
57
+
58
+ const { config = defaultConfig, ...rest } = params;
59
+
60
+ const queryOptions = highestOfferQueryOptions({
61
+ config,
62
+ ...rest,
63
+ });
64
+
65
+ return useQuery({
66
+ ...queryOptions,
67
+ });
8
68
  }
69
+
70
+ export { highestOfferQueryOptions };
71
+
72
+ export type { FetchHighestOfferParams, HighestOfferQueryOptions };
@@ -1,16 +1,18 @@
1
1
  import { useInfiniteQuery } from '@tanstack/react-query';
2
- import { ContractType } from '../../types/api-types';
3
- import { type UseInventoryArgs, inventoryOptions } from '../queries/inventory';
2
+ import { ContractType } from '../_internal';
3
+ import { inventoryOptions, type UseInventoryArgs } from '../queries/inventory';
4
4
  import { useConfig } from './useConfig';
5
5
  import { useMarketplaceConfig } from './useMarketplaceConfig';
6
6
 
7
7
  export function useInventory(args: UseInventoryArgs) {
8
8
  const config = useConfig();
9
- const marketplaceConfig = useMarketplaceConfig();
9
+ const { data: marketplaceConfig } = useMarketplaceConfig();
10
+
10
11
  const isLaos721 =
11
- marketplaceConfig.data?.market.collections.find(
12
- (c) => c.itemsAddress === args.collectionAddress,
13
- )?.contractType === ContractType.LAOSERC721;
12
+ marketplaceConfig?.market?.collections?.find(
13
+ (c) =>
14
+ c.itemsAddress === args.collectionAddress && c.chainId === args.chainId,
15
+ )?.contractType === ContractType.LAOS_ERC_721;
14
16
 
15
17
  return useInfiniteQuery(inventoryOptions({ ...args, isLaos721 }, config));
16
18
  }
@@ -0,0 +1,103 @@
1
+ import type { Address } from 'viem';
2
+ import { useReadContract } from 'wagmi';
3
+ import { ERC1155_SALES_CONTRACT_ABI } from '../../utils';
4
+ import { ContractType, type TokenMetadata } from '../_internal';
5
+ import type { ShopCollectibleCardProps } from '../ui/components/marketplace-collectible-card/types';
6
+ import { useCollection } from './useCollection';
7
+ import { useFilterState } from './useFilterState';
8
+ import { useListPrimarySaleItems } from './useListPrimarySaleItems';
9
+
10
+ interface UseList1155ShopCardDataProps {
11
+ tokenIds: string[];
12
+ chainId: number;
13
+ contractAddress: Address;
14
+ salesContractAddress: Address;
15
+ enabled?: boolean;
16
+ }
17
+
18
+ export function useList1155ShopCardData({
19
+ tokenIds,
20
+ chainId,
21
+ contractAddress,
22
+ salesContractAddress,
23
+ enabled = true,
24
+ }: UseList1155ShopCardDataProps) {
25
+ const { showListedOnly } = useFilterState();
26
+ const {
27
+ data: primarySaleItems,
28
+ isLoading: primarySaleItemsLoading,
29
+ error: primarySaleItemsError,
30
+ } = useListPrimarySaleItems({
31
+ chainId,
32
+ primarySaleContractAddress: salesContractAddress,
33
+ filter: {
34
+ includeEmpty: !showListedOnly,
35
+ },
36
+ });
37
+
38
+ const { data: collection, isLoading: collectionLoading } = useCollection({
39
+ chainId,
40
+ collectionAddress: contractAddress,
41
+ });
42
+
43
+ const { data: paymentToken, isLoading: paymentTokenLoading } =
44
+ useReadContract({
45
+ chainId,
46
+ address: salesContractAddress,
47
+ abi: ERC1155_SALES_CONTRACT_ABI,
48
+ functionName: 'paymentToken',
49
+ query: {
50
+ enabled,
51
+ },
52
+ });
53
+
54
+ const isLoading =
55
+ primarySaleItemsLoading || collectionLoading || paymentTokenLoading;
56
+
57
+ // Flatten all collectibles from all pages
58
+ const allPrimarySaleItems =
59
+ primarySaleItems?.pages.flatMap((page) => page.primarySaleItems) ?? [];
60
+
61
+ const collectibleCards = tokenIds.map((tokenId) => {
62
+ const matchingPrimarySaleItem = allPrimarySaleItems.find(
63
+ (item) => item.primarySaleItem.tokenId?.toString() === tokenId,
64
+ );
65
+
66
+ const saleData = matchingPrimarySaleItem?.primarySaleItem;
67
+ const tokenMetadata =
68
+ matchingPrimarySaleItem?.metadata || ({} as TokenMetadata);
69
+
70
+ const salePrice = {
71
+ amount: saleData?.priceAmount?.toString() || '',
72
+ currencyAddress: (saleData?.currencyAddress ||
73
+ paymentToken ||
74
+ '0x') as Address,
75
+ };
76
+
77
+ const supply = saleData?.supply?.toString();
78
+
79
+ return {
80
+ collectibleId: tokenId,
81
+ chainId,
82
+ collectionAddress: contractAddress,
83
+ collectionType: ContractType.ERC1155,
84
+ tokenMetadata: tokenMetadata,
85
+ cardLoading: isLoading,
86
+ salesContractAddress: salesContractAddress,
87
+ salePrice,
88
+ quantityInitial: supply,
89
+ quantityDecimals: collection?.decimals || 0,
90
+ quantityRemaining: supply,
91
+ saleStartsAt: saleData?.startDate?.toString(),
92
+ saleEndsAt: saleData?.endDate?.toString(),
93
+ marketplaceType: 'shop',
94
+ } satisfies ShopCollectibleCardProps;
95
+ });
96
+
97
+ return {
98
+ collectibleCards,
99
+ tokenMetadataError: primarySaleItemsError,
100
+ tokenSaleDetailsError: null,
101
+ isLoading,
102
+ };
103
+ }
@@ -0,0 +1,160 @@
1
+ import type { Address } from 'viem';
2
+ import { useReadContract } from 'wagmi';
3
+ import { ContractType, OrderSide, type TokenMetadata } from '../../types';
4
+ import { ERC721_SALE_ABI } from '../../utils';
5
+ import type { ShopCollectibleCardProps } from '../ui/components/marketplace-collectible-card/types';
6
+ import { useFilterState } from './useFilterState';
7
+ import { useListCollectibles } from './useListCollectibles';
8
+ import { useListPrimarySaleItems } from './useListPrimarySaleItems';
9
+
10
+ interface UseList721ShopCardDataProps {
11
+ tokenIds: string[];
12
+ chainId: number;
13
+ contractAddress: Address;
14
+ salesContractAddress: Address;
15
+ enabled?: boolean;
16
+ }
17
+
18
+ export function useList721ShopCardData({
19
+ tokenIds,
20
+ chainId,
21
+ contractAddress,
22
+ salesContractAddress,
23
+ enabled = true,
24
+ }: UseList721ShopCardDataProps) {
25
+ const { showListedOnly } = useFilterState();
26
+
27
+ const {
28
+ data: primarySaleItems,
29
+ isLoading: primarySaleItemsLoading,
30
+ error: primarySaleItemsError,
31
+ } = useListPrimarySaleItems({
32
+ chainId,
33
+ primarySaleContractAddress: salesContractAddress,
34
+ filter: {
35
+ includeEmpty: !showListedOnly,
36
+ },
37
+ });
38
+
39
+ // Check if we have minted tokens by looking at the first available token ID
40
+ const firstAvailableTokenId =
41
+ primarySaleItems?.pages[0]?.primarySaleItems[0]?.primarySaleItem.tokenId?.toString();
42
+ const hasMintedTokens: boolean =
43
+ Boolean(firstAvailableTokenId) && Number(firstAvailableTokenId) > 0;
44
+
45
+ // Fetch metadata for minted tokens
46
+ const { data: mintedTokensMetadata, isLoading: mintedTokensMetadataLoading } =
47
+ useListCollectibles({
48
+ chainId,
49
+ collectionAddress: contractAddress,
50
+ side: OrderSide.listing,
51
+ filter: {
52
+ includeEmpty: true,
53
+ },
54
+ query: {
55
+ enabled: enabled && hasMintedTokens,
56
+ },
57
+ });
58
+
59
+ // For ERC721, we'll fetch the sale details directly from the contract
60
+ const {
61
+ data: saleDetails,
62
+ isLoading: saleDetailsLoading,
63
+ error: saleDetailsError,
64
+ } = useReadContract({
65
+ chainId,
66
+ address: salesContractAddress,
67
+ abi: ERC721_SALE_ABI,
68
+ functionName: 'saleDetails',
69
+ query: {
70
+ enabled,
71
+ },
72
+ });
73
+
74
+ const isLoading =
75
+ saleDetailsLoading ||
76
+ primarySaleItemsLoading ||
77
+ mintedTokensMetadataLoading;
78
+
79
+ // Create a map of token metadata from minted tokens
80
+ const mintedTokensMetadataMap = new Map<string, TokenMetadata>();
81
+ for (const page of mintedTokensMetadata?.pages ?? []) {
82
+ for (const collectible of page.collectibles) {
83
+ mintedTokensMetadataMap.set(
84
+ collectible.metadata.tokenId,
85
+ collectible.metadata,
86
+ );
87
+ }
88
+ }
89
+
90
+ const collectibleCards = tokenIds.map((tokenId) => {
91
+ const minted =
92
+ hasMintedTokens && Number(tokenId) < Number(firstAvailableTokenId);
93
+
94
+ const matchingPrimarySaleItem = primarySaleItems?.pages
95
+ .flatMap((page) => page.primarySaleItems)
96
+ .find(
97
+ (item: { primarySaleItem: { tokenId: { toString: () => string } } }) =>
98
+ item.primarySaleItem.tokenId?.toString() === tokenId,
99
+ );
100
+
101
+ const saleData = matchingPrimarySaleItem?.primarySaleItem;
102
+ let tokenMetadata = matchingPrimarySaleItem?.metadata;
103
+
104
+ // If token is minted, prefer metadata from mintedTokensMetadata
105
+ if (minted && mintedTokensMetadataMap.has(tokenId)) {
106
+ tokenMetadata = mintedTokensMetadataMap.get(tokenId);
107
+ }
108
+ // Fallback to empty metadata if none found
109
+ tokenMetadata = tokenMetadata || ({} as TokenMetadata);
110
+
111
+ const salePrice = saleData
112
+ ? {
113
+ amount: saleData.priceAmount?.toString() || '',
114
+ currencyAddress: saleData.currencyAddress as Address,
115
+ }
116
+ : {
117
+ amount: saleDetails?.cost?.toString() || '',
118
+ currencyAddress: saleDetails?.paymentToken ?? ('0x' as Address),
119
+ };
120
+
121
+ const quantityInitial =
122
+ saleData?.supply?.toString() ??
123
+ (saleDetails?.supplyCap ? saleDetails.supplyCap.toString() : undefined);
124
+
125
+ const quantityRemaining = minted ? undefined : '1';
126
+
127
+ const saleStartsAt =
128
+ saleData?.startDate?.toString() ?? saleDetails?.startTime?.toString();
129
+
130
+ const saleEndsAt =
131
+ saleData?.endDate?.toString() ?? saleDetails?.endTime?.toString();
132
+
133
+ return {
134
+ collectibleId: tokenId,
135
+ chainId,
136
+ collectionAddress: contractAddress,
137
+ collectionType: ContractType.ERC721,
138
+ tokenMetadata: tokenMetadata,
139
+ cardLoading: isLoading,
140
+ salesContractAddress: salesContractAddress,
141
+ salePrice,
142
+ quantityInitial,
143
+ quantityRemaining,
144
+ quantityDecimals: 0,
145
+ saleStartsAt,
146
+ saleEndsAt,
147
+ marketplaceType: 'shop',
148
+ } satisfies ShopCollectibleCardProps;
149
+ });
150
+
151
+ return {
152
+ salePrice: collectibleCards[0]?.salePrice,
153
+ collectibleCards,
154
+ saleDetailsError,
155
+ primarySaleItemsError,
156
+ saleDetails,
157
+ primarySaleItems,
158
+ isLoading,
159
+ };
160
+ }
@@ -1,7 +1,7 @@
1
1
  import { useInfiniteQuery } from '@tanstack/react-query';
2
- import { ContractType } from '../../types/api-types';
3
- import { listBalancesOptions } from '../queries/listBalances';
2
+ import { ContractType } from '../_internal';
4
3
  import type { UseListBalancesArgs } from '../queries/listBalances';
4
+ import { listBalancesOptions } from '../queries/listBalances';
5
5
  import { useConfig } from './useConfig';
6
6
  import { useMarketplaceConfig } from './useMarketplaceConfig';
7
7
 
@@ -29,13 +29,10 @@ export function useListBalances(args: UseListBalancesArgs) {
29
29
  const { data: marketplaceConfig } = useMarketplaceConfig();
30
30
 
31
31
  const isLaos721 =
32
- marketplaceConfig?.market.collections.find(
33
- (collection) => collection.itemsAddress === args.contractAddress,
34
- )?.contractType === ContractType.LAOSERC721;
35
-
36
- if (isLaos721) {
37
- args.isLaos721 = true;
38
- }
32
+ marketplaceConfig?.market?.collections?.find(
33
+ (c) =>
34
+ c.itemsAddress === args.contractAddress && c.chainId === args.chainId,
35
+ )?.contractType === ContractType.LAOS_ERC_721;
39
36
 
40
- return useInfiniteQuery(listBalancesOptions(args, config));
37
+ return useInfiniteQuery(listBalancesOptions({ ...args, isLaos721 }, config));
41
38
  }
@@ -1,58 +1,98 @@
1
- import { queryOptions, useQuery } from '@tanstack/react-query';
2
- import type { z } from 'zod';
3
- import type { SdkConfig } from '../../types';
4
- import { collectableKeys, getMarketplaceClient } from '../_internal';
5
- import type {
6
- getListCollectibleActivitiesArgsSchema,
7
- getListCollectibleActivitiesReturnSchema,
8
- } from '../_internal/api/zod-schema';
1
+ 'use client';
2
+
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import type { Optional } from '../_internal';
5
+ import {
6
+ type FetchListCollectibleActivitiesParams,
7
+ type fetchListCollectibleActivities,
8
+ type ListCollectibleActivitiesQueryOptions,
9
+ listCollectibleActivitiesQueryOptions,
10
+ } from '../queries/listCollectibleActivities';
9
11
  import { useConfig } from './useConfig';
10
12
 
11
- export type UseListCollectibleActivitiesArgs = z.infer<
12
- typeof getListCollectibleActivitiesArgsSchema
13
+ export type UseListCollectibleActivitiesParams = Optional<
14
+ ListCollectibleActivitiesQueryOptions,
15
+ 'config'
13
16
  >;
14
17
 
15
- export type UseListCollectibleActivitiesReturn = z.infer<
16
- typeof getListCollectibleActivitiesReturnSchema
17
- >;
18
+ /**
19
+ * Hook to fetch a list of activities for a specific collectible
20
+ *
21
+ * Fetches activities (transfers, sales, offers, etc.) for a specific token
22
+ * from the marketplace with support for pagination and sorting.
23
+ *
24
+ * @param params - Configuration parameters
25
+ * @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
26
+ * @param params.collectionAddress - The collection contract address
27
+ * @param params.tokenId - The specific token ID to fetch activities for
28
+ * @param params.page - Page number to fetch (default: 1)
29
+ * @param params.pageSize - Number of activities per page (default: 10)
30
+ * @param params.sort - Sort order for activities
31
+ * @param params.query - Optional React Query configuration
32
+ *
33
+ * @returns Query result containing activities data
34
+ *
35
+ * @example
36
+ * Basic usage:
37
+ * ```typescript
38
+ * const { data, isLoading } = useListCollectibleActivities({
39
+ * chainId: 137,
40
+ * collectionAddress: '0x...',
41
+ * tokenId: '123'
42
+ * })
43
+ * ```
44
+ *
45
+ * @example
46
+ * With pagination:
47
+ * ```typescript
48
+ * const { data } = useListCollectibleActivities({
49
+ * chainId: 1,
50
+ * collectionAddress: '0x...',
51
+ * tokenId: '456',
52
+ * page: 2,
53
+ * pageSize: 20
54
+ * })
55
+ * ```
56
+ *
57
+ * @example
58
+ * With sorting:
59
+ * ```typescript
60
+ * const { data } = useListCollectibleActivities({
61
+ * chainId: 137,
62
+ * collectionAddress: '0x...',
63
+ * tokenId: '789',
64
+ * sort: 'timestamp_desc',
65
+ * pageSize: 50
66
+ * })
67
+ * ```
68
+ */
69
+ export function useListCollectibleActivities(
70
+ params: UseListCollectibleActivitiesParams,
71
+ ) {
72
+ const defaultConfig = useConfig();
18
73
 
19
- const fetchCollectibleActivities = async (
20
- args: UseListCollectibleActivitiesArgs,
21
- config: SdkConfig,
22
- ) => {
23
- const marketplaceClient = getMarketplaceClient(args.chainId, config);
24
- return marketplaceClient
25
- .listCollectibleActivities({
26
- contractAddress: args.collectionAddress,
27
- tokenId: args.tokenId,
28
- page: args.query?.enabled
29
- ? {
30
- page: args.query.page ?? 1,
31
- pageSize: args.query.pageSize ?? 10,
32
- sort: args.query.sort,
33
- }
34
- : undefined,
35
- })
36
- .then((data) => ({
37
- activities: data.activities,
38
- page: data.page,
39
- }));
40
- };
74
+ const { config = defaultConfig, ...rest } = params;
41
75
 
42
- export const listCollectibleActivitiesOptions = (
43
- args: UseListCollectibleActivitiesArgs,
44
- config: SdkConfig,
45
- ) => {
46
- return queryOptions({
47
- queryKey: [...collectableKeys.collectibleActivities, args, config],
48
- queryFn: () => fetchCollectibleActivities(args, config),
49
- enabled: args.query?.enabled ?? true,
76
+ const queryOptions = listCollectibleActivitiesQueryOptions({
77
+ config,
78
+ ...rest,
50
79
  });
51
- };
52
80
 
53
- export const useListCollectibleActivities = (
54
- args: UseListCollectibleActivitiesArgs,
55
- ) => {
56
- const config = useConfig();
57
- return useQuery(listCollectibleActivitiesOptions(args, config));
81
+ return useQuery({
82
+ ...queryOptions,
83
+ });
84
+ }
85
+
86
+ export { listCollectibleActivitiesQueryOptions };
87
+
88
+ export type {
89
+ FetchListCollectibleActivitiesParams,
90
+ ListCollectibleActivitiesQueryOptions,
58
91
  };
92
+
93
+ // Legacy exports for backward compatibility during migration
94
+ export type UseListCollectibleActivitiesArgs =
95
+ UseListCollectibleActivitiesParams;
96
+ export type UseListCollectibleActivitiesReturn = Awaited<
97
+ ReturnType<typeof fetchListCollectibleActivities>
98
+ >;