@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
@@ -25,27 +25,4 @@ describe('useRoyaltyPercentage', () => {
25
25
  }
26
26
  `);
27
27
  });
28
-
29
- it('should handle invalid args', async () => {
30
- const invalidArgs = {
31
- collectionAddress: 'invalid-collection-address' as `0x${string}`,
32
- chainId: 'invalid-chain-id',
33
- collectibleId: '1',
34
- };
35
-
36
- // @ts-expect-error - This will fail Zod validation
37
- const { result } = renderHook(() => useRoyalty(invalidArgs));
38
-
39
- expect(result.current.isLoading).toBe(true);
40
-
41
- await waitFor(
42
- () => {
43
- expect(result.current.isLoading).toBe(false);
44
- },
45
- { timeout: 1000000 },
46
- );
47
-
48
- expect(result.current.data).toBeNull();
49
- expect(result.current.error).toBeDefined();
50
- });
51
28
  });
@@ -1,40 +1,50 @@
1
1
  export * from './useAutoSelectFeeOption';
2
2
  export * from './useBalanceOfCollectible';
3
- export * from './useCountOfCollectables';
3
+ export * from './useCancelOrder';
4
+ export * from './useCheckoutOptionsSalesContract';
5
+ export * from './useCheckoutOptionsSalesContract';
4
6
  export * from './useCollectible';
5
7
  export * from './useCollection';
6
8
  export * from './useCollectionBalanceDetails';
9
+ export * from './useCollectionDetails';
10
+ export * from './useCollectionDetailsPolling';
7
11
  export * from './useComparePrices';
8
12
  export * from './useConfig';
9
13
  export * from './useConvertPriceToUSD';
10
- export * from './useMarketCurrencies';
14
+ export * from './useCountListingsForCollectible';
15
+ export * from './useCountOfCollectables';
16
+ export * from './useCountOffersForCollectible';
17
+ export * from './useCountOfPrimarySaleItems';
11
18
  export * from './useCurrency';
12
- export * from './useFilters';
19
+ export * from './useERC721SaleMintedTokens';
13
20
  export * from './useFilterState';
21
+ export * from './useFilters';
14
22
  export * from './useFloorOrder';
23
+ export * from './useGenerateCancelTransaction';
24
+ export * from './useGenerateListingTransaction';
25
+ export * from './useGenerateOfferTransaction';
26
+ export * from './useGenerateSellTransaction';
27
+ export * from './useGetTokenRanges';
28
+ export * from './useGetTokenSuppliesMap';
15
29
  export * from './useHighestOffer';
16
30
  export * from './useInventory';
31
+ export * from './useList721ShopCardData';
32
+ export * from './useList1155ShopCardData';
17
33
  export * from './useListBalances';
18
34
  export * from './useListCollectibleActivities';
19
35
  export * from './useListCollectibles';
20
36
  export * from './useListCollectiblesPaginated';
21
37
  export * from './useListCollectionActivities';
22
- export * from './useListOffersForCollectible';
23
- export * from './useCountOffersForCollectible';
38
+ export * from './useListCollections';
24
39
  export * from './useListListingsForCollectible';
25
- export * from './useCountListingsForCollectible';
40
+ export * from './useListMarketCardData';
41
+ export * from './useListOffersForCollectible';
42
+ export * from './useListPrimarySaleItems';
43
+ export * from './useListShopCardData';
44
+ export * from './useListTokenMetadata';
26
45
  export * from './useLowestListing';
46
+ export * from './useMarketCurrencies';
27
47
  export * from './useMarketplaceConfig';
28
48
  export * from './useRoyalty';
29
- export * from './useGenerateListingTransaction';
30
- export * from './useGenerateOfferTransaction';
31
- export * from './useGenerateSellTransaction';
32
- export * from './useGenerateCancelTransaction';
49
+ export * from './useShopCollectibleSaleData';
33
50
  export * from './useTransferTokens';
34
- export * from './useCheckoutOptions';
35
- export * from './useListCollections';
36
- export * from './useCancelOrder';
37
- export * from './useCollectionDetails';
38
- export * from './useCollectionDetailsPolling';
39
- export * from './useListTokenMetadata';
40
- export * from './useGetTokenSuppliesMap';
@@ -1,2 +1 @@
1
- export { fetchCollection, collectionOptions } from './collectionOptions';
2
1
  export * from '../../queries/marketplaceConfig';
@@ -1,8 +1,8 @@
1
1
  'use client';
2
- import { type Address, zeroAddress } from 'viem';
3
2
 
4
3
  import { useChain } from '@0xsequence/connect';
5
4
  import { useCallback, useEffect } from 'react';
5
+ import { type Address, zeroAddress } from 'viem';
6
6
  import { useAccount } from 'wagmi';
7
7
  import type { FeeOption } from '../../types/waas-types';
8
8
  import { useCollectionBalanceDetails } from './useCollectionBalanceDetails';
@@ -1,8 +1,8 @@
1
1
  import { useQuery } from '@tanstack/react-query';
2
2
  import { ContractType } from '../_internal';
3
3
  import {
4
- type UseBalanceOfCollectibleArgs,
5
4
  balanceOfCollectibleOptions,
5
+ type UseBalanceOfCollectibleArgs,
6
6
  } from '../queries/balanceOfCollectible';
7
7
  import { useConfig } from './useConfig';
8
8
  import { useMarketplaceConfig } from './useMarketplaceConfig';
@@ -31,14 +31,18 @@ export function useBalanceOfCollectible(args: UseBalanceOfCollectibleArgs) {
31
31
  const config = useConfig();
32
32
  const { data: marketplaceConfig } = useMarketplaceConfig();
33
33
 
34
- const isLaos721 =
35
- marketplaceConfig?.market.collections.find(
36
- (collection) => collection.itemsAddress === args.collectionAddress,
37
- )?.contractType === ContractType.LAOSERC721;
38
-
39
- if (isLaos721) {
40
- args.isLaos721 = true;
41
- }
34
+ const collection = marketplaceConfig?.market.collections.find(
35
+ (collection) => collection.itemsAddress === args.collectionAddress,
36
+ );
37
+ const isLaos721 = collection?.contractType === ContractType.LAOS_ERC_721;
42
38
 
43
- return useQuery(balanceOfCollectibleOptions(args, config));
39
+ return useQuery(
40
+ balanceOfCollectibleOptions(
41
+ {
42
+ ...args,
43
+ isLaos721,
44
+ },
45
+ config,
46
+ ),
47
+ );
44
48
  }
@@ -4,11 +4,12 @@ import {
4
4
  WalletInstanceNotFoundError,
5
5
  } from '../../utils/_internal/error/transaction';
6
6
  import {
7
+ ExecuteType,
8
+ getMarketplaceClient,
9
+ getQueryClient,
7
10
  type MarketplaceKind,
8
11
  type Step,
9
12
  StepType,
10
- getMarketplaceClient,
11
- getQueryClient,
12
13
  } from '../_internal';
13
14
  import type {
14
15
  SignatureStep,
@@ -46,7 +47,7 @@ export const useCancelTransactionSteps = ({
46
47
  const { wallet, isLoading, isError } = useWallet();
47
48
  const walletIsInitialized = wallet && !isLoading && !isError;
48
49
  const sdkConfig = useConfig();
49
- const marketplaceClient = getMarketplaceClient(chainId, sdkConfig);
50
+ const marketplaceClient = getMarketplaceClient(sdkConfig);
50
51
  const { generateCancelTransactionAsync } = useGenerateCancelTransaction({
51
52
  chainId,
52
53
  });
@@ -95,6 +96,7 @@ export const useCancelTransactionSteps = ({
95
96
  }
96
97
 
97
98
  const steps = await generateCancelTransactionAsync({
99
+ chainId,
98
100
  collectionAddress,
99
101
  maker: address,
100
102
  marketplace,
@@ -230,10 +232,12 @@ export const useCancelTransactionSteps = ({
230
232
  );
231
233
 
232
234
  const result = await marketplaceClient.execute({
235
+ chainId: String(chainId),
233
236
  signature: signature as string,
234
237
  method: signatureStep.post?.method as string,
235
238
  endpoint: signatureStep.post?.endpoint as string,
236
239
  body: signatureStep.post?.body,
240
+ executeType: ExecuteType.order,
237
241
  });
238
242
 
239
243
  return result.orderId;
@@ -0,0 +1,67 @@
1
+ import { queryOptions, skipToken, useQuery } from '@tanstack/react-query';
2
+ import type { Hex } from 'viem';
3
+ import { useAccount } from 'wagmi';
4
+ import type { SdkConfig } from '../../types';
5
+ import {
6
+ type CheckoutOptionsSalesContractArgs,
7
+ getMarketplaceClient,
8
+ } from '../_internal';
9
+ import { useConfig } from './useConfig';
10
+
11
+ type UseCheckoutOptionsSalesContractArgs = Omit<
12
+ CheckoutOptionsSalesContractArgs,
13
+ 'wallet' | 'chainId'
14
+ > & { chainId: number };
15
+
16
+ const fetchCheckoutOptionsSalesContract = async (
17
+ args: CheckoutOptionsSalesContractArgs,
18
+ config: SdkConfig,
19
+ ) => {
20
+ const marketplaceClient = getMarketplaceClient(config);
21
+ return marketplaceClient.checkoutOptionsSalesContract({
22
+ chainId: args.chainId,
23
+ wallet: args.wallet,
24
+ contractAddress: args.contractAddress,
25
+ collectionAddress: args.collectionAddress,
26
+ items: args.items,
27
+ });
28
+ };
29
+
30
+ export const checkoutOptionsSalesContractOptions = (
31
+ args:
32
+ | (UseCheckoutOptionsSalesContractArgs & { wallet?: Hex })
33
+ | typeof skipToken,
34
+ config: SdkConfig,
35
+ ) => {
36
+ return queryOptions({
37
+ queryKey: ['checkoutOptionsSalesContract', args],
38
+ queryFn:
39
+ skipToken === args
40
+ ? skipToken
41
+ : () =>
42
+ fetchCheckoutOptionsSalesContract(
43
+ {
44
+ chainId: String(args.chainId),
45
+ // biome-ignore lint/style/noNonNullAssertion: wallet is guaranteed to exist when not skipToken
46
+ wallet: args.wallet!,
47
+ contractAddress: args.contractAddress,
48
+ collectionAddress: args.collectionAddress,
49
+ items: args.items,
50
+ },
51
+ config,
52
+ ),
53
+ });
54
+ };
55
+
56
+ export const useCheckoutOptionsSalesContract = (
57
+ args: UseCheckoutOptionsSalesContractArgs | typeof skipToken,
58
+ ) => {
59
+ const { address } = useAccount();
60
+ const config = useConfig();
61
+ return useQuery(
62
+ checkoutOptionsSalesContractOptions(
63
+ skipToken === args ? skipToken : { ...args, wallet: address },
64
+ config,
65
+ ),
66
+ );
67
+ };
@@ -1,54 +1,69 @@
1
- import { queryOptions, useQuery } from '@tanstack/react-query';
2
- import { z } from 'zod';
3
- import type { SdkConfig } from '../../types';
1
+ 'use client';
2
+
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import type { Optional } from '../_internal';
4
5
  import {
5
- AddressSchema,
6
- QueryArgSchema,
7
- collectableKeys,
8
- getMetadataClient,
9
- } from '../_internal';
6
+ type CollectibleQueryOptions,
7
+ collectibleQueryOptions,
8
+ type FetchCollectibleParams,
9
+ } from '../queries/collectible';
10
10
  import { useConfig } from './useConfig';
11
11
 
12
- const UseCollectibleSchema = z.object({
13
- chainId: z.number(),
14
- collectionAddress: AddressSchema,
15
- collectibleId: z.string().optional(),
16
- query: QueryArgSchema,
17
- });
18
-
19
- export type UseCollectibleArgs = z.infer<typeof UseCollectibleSchema>;
20
-
21
- export type UseCollectibleReturn = Awaited<ReturnType<typeof fetchCollectible>>;
22
-
23
- const fetchCollectible = async (
24
- args: UseCollectibleArgs,
25
- config: SdkConfig,
26
- ) => {
27
- const parsedArgs = UseCollectibleSchema.parse(args);
28
- const metadataClient = getMetadataClient(config);
29
- const tokenIds = parsedArgs.collectibleId ? [parsedArgs.collectibleId] : [];
30
-
31
- return metadataClient
32
- .getTokenMetadata({
33
- chainID: parsedArgs.chainId.toString(),
34
- contractAddress: parsedArgs.collectionAddress,
35
- tokenIDs: tokenIds,
36
- })
37
- .then((resp) => resp.tokenMetadata[0]);
38
- };
39
-
40
- export const collectibleOptions = (
41
- args: UseCollectibleArgs,
42
- config: SdkConfig,
43
- ) => {
44
- return queryOptions({
45
- ...args.query,
46
- queryKey: [...collectableKeys.details, args, config],
47
- queryFn: () => fetchCollectible(args, config),
12
+ export type UseCollectibleParams = Optional<CollectibleQueryOptions, 'config'>;
13
+
14
+ /**
15
+ * Hook to fetch metadata for a specific collectible
16
+ *
17
+ * This hook retrieves metadata for an individual NFT from a collection,
18
+ * including properties like name, description, image, attributes, etc.
19
+ *
20
+ * @param params - Configuration parameters
21
+ * @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
22
+ * @param params.collectionAddress - The collection contract address
23
+ * @param params.collectibleId - The token ID of the collectible
24
+ * @param params.query - Optional React Query configuration
25
+ *
26
+ * @returns Query result containing the collectible metadata
27
+ *
28
+ * @example
29
+ * Basic usage:
30
+ * ```typescript
31
+ * const { data: collectible, isLoading } = useCollectible({
32
+ * chainId: 137,
33
+ * collectionAddress: '0x631998e91476da5b870d741192fc5cbc55f5a52e',
34
+ * collectibleId: '12345'
35
+ * })
36
+ * ```
37
+ *
38
+ * @example
39
+ * With custom query options:
40
+ * ```typescript
41
+ * const { data } = useCollectible({
42
+ * chainId: 137,
43
+ * collectionAddress: '0x631998e91476da5b870d741192fc5cbc55f5a52e',
44
+ * collectibleId: '12345',
45
+ * query: {
46
+ * enabled: Boolean(collectionAddress && tokenId),
47
+ * staleTime: 30_000
48
+ * }
49
+ * })
50
+ * ```
51
+ */
52
+ export function useCollectible(params: UseCollectibleParams) {
53
+ const defaultConfig = useConfig();
54
+
55
+ const { config = defaultConfig, ...rest } = params;
56
+
57
+ const queryOptions = collectibleQueryOptions({
58
+ config,
59
+ ...rest,
48
60
  });
49
- };
50
61
 
51
- export const useCollectible = (args: UseCollectibleArgs) => {
52
- const config = useConfig();
53
- return useQuery(collectibleOptions(args, config));
54
- };
62
+ return useQuery({
63
+ ...queryOptions,
64
+ });
65
+ }
66
+
67
+ export { collectibleQueryOptions };
68
+
69
+ export type { FetchCollectibleParams, CollectibleQueryOptions };
@@ -1,17 +1,66 @@
1
+ 'use client';
2
+
1
3
  import { useQuery } from '@tanstack/react-query';
2
- import type { z } from 'zod';
4
+ import type { Optional } from '../_internal';
3
5
  import {
4
- type UseCollectionSchema,
5
- collectionOptions,
6
- type fetchCollection,
7
- } from './options/collectionOptions';
6
+ type CollectionQueryOptions,
7
+ collectionQueryOptions,
8
+ type FetchCollectionParams,
9
+ } from '../queries/collection';
8
10
  import { useConfig } from './useConfig';
9
11
 
10
- export type UseCollectionArgs = z.input<typeof UseCollectionSchema>;
12
+ export type UseCollectionParams = Optional<CollectionQueryOptions, 'config'>;
13
+
14
+ /**
15
+ * Hook to fetch collection information from the metadata API
16
+ *
17
+ * Retrieves basic contract information including name, symbol, type,
18
+ * and extension data for a given collection contract.
19
+ *
20
+ * @param params - Configuration parameters
21
+ * @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
22
+ * @param params.collectionAddress - The collection contract address
23
+ * @param params.query - Optional React Query configuration
24
+ *
25
+ * @returns Query result containing contract information
26
+ *
27
+ * @example
28
+ * Basic usage:
29
+ * ```typescript
30
+ * const { data, isLoading } = useCollection({
31
+ * chainId: 137,
32
+ * collectionAddress: '0x...'
33
+ * })
34
+ * ```
35
+ *
36
+ * @example
37
+ * With custom query options:
38
+ * ```typescript
39
+ * const { data, isLoading } = useCollection({
40
+ * chainId: 1,
41
+ * collectionAddress: '0x...',
42
+ * query: {
43
+ * refetchInterval: 30000,
44
+ * enabled: userWantsToFetch
45
+ * }
46
+ * })
47
+ * ```
48
+ */
49
+ export function useCollection(params: UseCollectionParams) {
50
+ const defaultConfig = useConfig();
51
+
52
+ const { config = defaultConfig, ...rest } = params;
53
+
54
+ const queryOptions = collectionQueryOptions({
55
+ config,
56
+ ...rest,
57
+ });
58
+
59
+ return useQuery({
60
+ ...queryOptions,
61
+ });
62
+ }
11
63
 
12
- export type UseCollectionReturn = Awaited<ReturnType<typeof fetchCollection>>;
64
+ export { collectionQueryOptions };
13
65
 
14
- export const useCollection = (args: UseCollectionArgs) => {
15
- const config = useConfig();
16
- return useQuery(collectionOptions(args, config));
17
- };
66
+ export type { FetchCollectionParams, CollectionQueryOptions };
@@ -1,31 +1,22 @@
1
1
  import type { GetTokenBalancesDetailsReturn } from '@0xsequence/indexer';
2
2
  import { queryOptions, useQuery } from '@tanstack/react-query';
3
- import { z } from 'zod';
3
+ import type { Address } from 'viem';
4
4
  import type { SdkConfig } from '../../types';
5
- import {
6
- AddressSchema,
7
- QueryArgSchema,
8
- balanceQueries,
9
- getIndexerClient,
10
- } from '../_internal';
5
+ import type { QueryArg } from '../_internal';
6
+ import { balanceQueries, getIndexerClient } from '../_internal';
11
7
  import { useConfig } from './useConfig';
12
8
 
13
- const filterSchema = z.object({
14
- accountAddresses: z.array(AddressSchema),
15
- contractWhitelist: z.array(AddressSchema).optional(),
16
- omitNativeBalances: z.boolean(),
17
- });
9
+ export interface CollectionBalanceFilter {
10
+ accountAddresses: Address[];
11
+ contractWhitelist?: Address[];
12
+ omitNativeBalances: boolean;
13
+ }
18
14
 
19
- const useCollectionBalanceDetailsArgsSchema = z.object({
20
- chainId: z.number(),
21
- filter: filterSchema,
22
- query: QueryArgSchema.optional(),
23
- });
24
-
25
- export type CollectionBalanceFilter = z.infer<typeof filterSchema>;
26
- export type UseCollectionBalanceDetailsArgs = z.input<
27
- typeof useCollectionBalanceDetailsArgsSchema
28
- >;
15
+ export interface UseCollectionBalanceDetailsArgs {
16
+ chainId: number;
17
+ filter: CollectionBalanceFilter;
18
+ query?: QueryArg;
19
+ }
29
20
 
30
21
  const fetchCollectionBalanceDetails = async (
31
22
  args: UseCollectionBalanceDetailsArgs,
@@ -43,7 +34,10 @@ const fetchCollectionBalanceDetails = async (
43
34
 
44
35
  const responses = await Promise.all(promises);
45
36
  const mergedResponse = responses.reduce<GetTokenBalancesDetailsReturn>(
46
- (acc, curr) => {
37
+ (
38
+ acc: GetTokenBalancesDetailsReturn,
39
+ curr: GetTokenBalancesDetailsReturn | null,
40
+ ) => {
47
41
  if (!curr) return acc;
48
42
  return {
49
43
  page: curr.page,
@@ -68,13 +62,12 @@ export const collectionBalanceDetailsOptions = (
68
62
  args: UseCollectionBalanceDetailsArgs,
69
63
  config: SdkConfig,
70
64
  ) => {
71
- const parsedArgs = useCollectionBalanceDetailsArgsSchema.parse(args);
72
- const indexerClient = getIndexerClient(parsedArgs.chainId, config);
65
+ const indexerClient = getIndexerClient(args.chainId, config);
73
66
 
74
67
  return queryOptions({
75
68
  queryKey: [...balanceQueries.collectionBalanceDetails, args, config],
76
- queryFn: () => fetchCollectionBalanceDetails(parsedArgs, indexerClient),
77
- ...args.query,
69
+ queryFn: () => fetchCollectionBalanceDetails(args, indexerClient),
70
+ ...(args.query || {}),
78
71
  });
79
72
  };
80
73
 
@@ -0,0 +1,69 @@
1
+ 'use client';
2
+
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import type { Optional } from '../_internal';
5
+ import {
6
+ type CollectionDetailsQueryOptions,
7
+ collectionDetailsQueryOptions,
8
+ type FetchCollectionDetailsParams,
9
+ } from '../queries/collectionDetails';
10
+ import { useConfig } from './useConfig';
11
+
12
+ export type UseCollectionDetailsParams = Optional<
13
+ CollectionDetailsQueryOptions,
14
+ 'config'
15
+ >;
16
+
17
+ /**
18
+ * Hook to fetch detailed information about a collection
19
+ *
20
+ * This hook retrieves comprehensive metadata and details for an NFT collection,
21
+ * including collection name, description, banner, avatar, social links, stats, etc.
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.query - Optional React Query configuration
27
+ *
28
+ * @returns Query result containing the collection details
29
+ *
30
+ * @example
31
+ * Basic usage:
32
+ * ```typescript
33
+ * const { data: collection, isLoading } = useCollectionDetails({
34
+ * chainId: 137,
35
+ * collectionAddress: '0x631998e91476da5b870d741192fc5cbc55f5a52e'
36
+ * })
37
+ * ```
38
+ *
39
+ * @example
40
+ * With custom query options:
41
+ * ```typescript
42
+ * const { data } = useCollectionDetails({
43
+ * chainId: 137,
44
+ * collectionAddress: '0x631998e91476da5b870d741192fc5cbc55f5a52e',
45
+ * query: {
46
+ * enabled: Boolean(collectionAddress),
47
+ * staleTime: 60_000
48
+ * }
49
+ * })
50
+ * ```
51
+ */
52
+ export function useCollectionDetails(params: UseCollectionDetailsParams) {
53
+ const defaultConfig = useConfig();
54
+
55
+ const { config = defaultConfig, ...rest } = params;
56
+
57
+ const queryOptions = collectionDetailsQueryOptions({
58
+ config,
59
+ ...rest,
60
+ });
61
+
62
+ return useQuery({
63
+ ...queryOptions,
64
+ });
65
+ }
66
+
67
+ export { collectionDetailsQueryOptions };
68
+
69
+ export type { FetchCollectionDetailsParams, CollectionDetailsQueryOptions };
@@ -1,12 +1,15 @@
1
1
  import { queryOptions, useQuery } from '@tanstack/react-query';
2
2
  import type { SdkConfig } from '../../types';
3
3
  import { CollectionStatus } from '../_internal/api/marketplace.gen';
4
- import { collectionDetailsOptions } from './useCollectionDetails';
4
+ import { collectionDetailsQueryOptions } from '../queries/collectionDetails';
5
5
  import { useConfig } from './useConfig';
6
6
 
7
7
  type UseCollectionDetailsPolling = {
8
8
  collectionAddress: string;
9
9
  chainId: number;
10
+ query?: {
11
+ enabled?: boolean;
12
+ };
10
13
  };
11
14
 
12
15
  const INITIAL_POLLING_INTERVAL = 2000; // 2 seconds
@@ -27,7 +30,11 @@ export const collectionDetailsPollingOptions = (
27
30
  config: SdkConfig,
28
31
  ) => {
29
32
  return queryOptions({
30
- ...collectionDetailsOptions(args, config),
33
+ ...collectionDetailsQueryOptions({
34
+ collectionAddress: args.collectionAddress,
35
+ chainId: args.chainId,
36
+ config,
37
+ }),
31
38
  refetchInterval: (query) => {
32
39
  const data = query.state.data;
33
40
  if (data && isTerminalState(data.status)) {
@@ -49,6 +56,7 @@ export const collectionDetailsPollingOptions = (
49
56
  },
50
57
  refetchOnWindowFocus: false,
51
58
  retry: false,
59
+ enabled: args.query?.enabled ?? true,
52
60
  });
53
61
  };
54
62