@0xsequence/marketplace-sdk 0.8.10 → 0.8.12

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 (436) hide show
  1. package/.changeset/fluffy-jokes-lay.md +5 -0
  2. package/.changeset/wise-bugs-boil.md +8 -0
  3. package/CHANGELOG.md +182 -3
  4. package/dist/CartIcon-Bll1rbxv.js +141 -0
  5. package/dist/CartIcon-Bll1rbxv.js.map +1 -0
  6. package/dist/CollectibleCard-CLQTl0_6.d.ts +8 -0
  7. package/dist/_internal-69NEWNUE.js +34 -0
  8. package/dist/_internal-69NEWNUE.js.map +1 -0
  9. package/dist/abi-BKyRjVcZ.js +0 -0
  10. package/dist/{alien_swap-2B65TDGT.js → alien_swap-B_76IMma.js} +5 -5
  11. package/dist/alien_swap-B_76IMma.js.map +1 -0
  12. package/dist/api-1KFxYh7o.js +232 -0
  13. package/dist/api-1KFxYh7o.js.map +1 -0
  14. package/dist/{aqua-xyz-WMYQLAIS.js → aqua-xyz-CMN_TFY5.js} +5 -5
  15. package/dist/aqua-xyz-CMN_TFY5.js.map +1 -0
  16. package/dist/{aura-V22RV5OG.js → aura-Cye_TuHj.js} +5 -5
  17. package/dist/aura-Cye_TuHj.js.map +1 -0
  18. package/dist/{blur-GE5QOMCM.js → blur-DWDMyMpK.js} +5 -5
  19. package/dist/blur-DWDMyMpK.js.map +1 -0
  20. package/dist/builder-api-BQvzykoU.js +28 -0
  21. package/dist/builder-api-BQvzykoU.js.map +1 -0
  22. package/dist/builder-api-DoK3907S.d.ts +12 -0
  23. package/dist/builder.gen-CxP9NT1p.js +303 -0
  24. package/dist/builder.gen-CxP9NT1p.js.map +1 -0
  25. package/dist/{coinbase-NLHJMGAP.js → coinbase-ByA_XRB0.js} +5 -5
  26. package/dist/coinbase-ByA_XRB0.js.map +1 -0
  27. package/dist/{element-2LGTYYSP.js → element-b77CyXIZ.js} +5 -5
  28. package/dist/element-b77CyXIZ.js.map +1 -0
  29. package/dist/{foundation-BPN66ZTN.js → foundation-DbOrKP9Y.js} +5 -5
  30. package/dist/foundation-DbOrKP9Y.js.map +1 -0
  31. package/dist/index-1bezgsFq.d.ts +1129 -0
  32. package/dist/index-4-kfOFdx.d.ts +22 -0
  33. package/dist/index-BEYefG1G.d.ts +24 -0
  34. package/dist/index-BHiSG-Yi.d.ts +312 -0
  35. package/dist/index-BIMIpDiI.d.ts +188 -0
  36. package/dist/index-BQW0PUkQ.d.ts +3973 -0
  37. package/dist/index-BfH21xmk.d.ts +117 -0
  38. package/dist/index-BjIwVzc4.d.ts +1057 -0
  39. package/dist/index-C39K_8SG.d.ts +1 -0
  40. package/dist/index-CN8puQQJ.d.ts +24 -0
  41. package/dist/index-Cl7PQOGu.d.ts +102 -0
  42. package/dist/index-D5v5iluA.d.ts +809 -0
  43. package/dist/index-DXMfTZ1F.d.ts +7 -0
  44. package/dist/index-DafWjEb4.d.ts +65 -0
  45. package/dist/index-ij9f8GAA.d.ts +1 -0
  46. package/dist/index.css +384 -371
  47. package/dist/index.d.ts +10 -28
  48. package/dist/index.js +13 -105
  49. package/dist/{looks-rare-MZRSOPT4.js → looks-rare-C1VqNcSM.js} +5 -5
  50. package/dist/looks-rare-C1VqNcSM.js.map +1 -0
  51. package/dist/{magic-eden-PUBL6KWW.js → magic-eden-ea_AGCZr.js} +5 -5
  52. package/dist/magic-eden-ea_AGCZr.js.map +1 -0
  53. package/dist/{manifold-GA445YJ6.js → manifold-8y8J2sjT.js} +5 -5
  54. package/dist/manifold-8y8J2sjT.js.map +1 -0
  55. package/dist/marketplace-logos-CSeGcPW4.js +50 -0
  56. package/dist/marketplace-logos-CSeGcPW4.js.map +1 -0
  57. package/dist/marketplace-nwnZv9Cb.js +1913 -0
  58. package/dist/marketplace-nwnZv9Cb.js.map +1 -0
  59. package/dist/marketplace.gen-Dqk8vRmD.js +1068 -0
  60. package/dist/marketplace.gen-Dqk8vRmD.js.map +1 -0
  61. package/dist/marketplaceConfig-D2MYFqll.js +71 -0
  62. package/dist/marketplaceConfig-D2MYFqll.js.map +1 -0
  63. package/dist/{mintify-UMC5PTKC.js → mintify-LA68TzWg.js} +5 -5
  64. package/dist/mintify-LA68TzWg.js.map +1 -0
  65. package/dist/{nftx-AX3CY3IE.js → nftx-D3Tc8nzd.js} +5 -5
  66. package/dist/nftx-D3Tc8nzd.js.map +1 -0
  67. package/dist/{okx-GNVLAE2R.js → okx-hbqg6oIJ.js} +5 -5
  68. package/dist/okx-hbqg6oIJ.js.map +1 -0
  69. package/dist/{open-sea-KI43GVEB.js → open-sea-BccuK8-t.js} +5 -5
  70. package/dist/open-sea-BccuK8-t.js.map +1 -0
  71. package/dist/options-DCi6_23w.js +34 -0
  72. package/dist/options-DCi6_23w.js.map +1 -0
  73. package/dist/primary-sale-Cw95phYC.js +1264 -0
  74. package/dist/primary-sale-Cw95phYC.js.map +1 -0
  75. package/dist/queries-DPvwtnO7.js +486 -0
  76. package/dist/queries-DPvwtnO7.js.map +1 -0
  77. package/dist/{rarible-2J3MMZJ7.js → rarible-BgTwwj9g.js} +5 -5
  78. package/dist/rarible-BgTwwj9g.js.map +1 -0
  79. package/dist/react/_internal/api/index.d.ts +4 -86
  80. package/dist/react/_internal/api/index.js +7 -150
  81. package/dist/react/_internal/databeat/index.d.ts +45 -41
  82. package/dist/react/_internal/databeat/index.js +23 -27
  83. package/dist/react/_internal/index.d.ts +7 -24
  84. package/dist/react/_internal/index.js +9 -176
  85. package/dist/react/_internal/wagmi/index.d.ts +4 -18
  86. package/dist/react/_internal/wagmi/index.js +5 -14
  87. package/dist/react/hooks/index.d.ts +17 -3803
  88. package/dist/react/hooks/index.js +23 -157
  89. package/dist/react/hooks/options/index.d.ts +5 -7
  90. package/dist/react/hooks/options/index.js +11 -19
  91. package/dist/react/index.d.ts +37 -33
  92. package/dist/react/index.js +23 -199
  93. package/dist/react/queries/index.d.ts +8 -26
  94. package/dist/react/queries/index.js +18 -40
  95. package/dist/react/ssr/index.d.ts +19 -13
  96. package/dist/react/ssr/index.js +29 -27
  97. package/dist/react/ssr/index.js.map +1 -1
  98. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +10 -0
  99. package/dist/react/ui/components/marketplace-collectible-card/index.js +23 -0
  100. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +8 -0
  101. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +10 -0
  102. package/dist/react/ui/components/marketplace-logos/index.d.ts +26 -24
  103. package/dist/react/ui/components/marketplace-logos/index.js +3 -45
  104. package/dist/react/ui/icons/index.d.ts +1 -2
  105. package/dist/react/ui/icons/index.js +10 -14
  106. package/dist/react/ui/index.d.ts +10 -116
  107. package/dist/react/ui/index.js +23 -46
  108. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +59 -33
  109. package/dist/react/ui/modals/_internal/components/actionModal/index.js +23 -31
  110. package/dist/react-BG7o4PId.js +8351 -0
  111. package/dist/react-BG7o4PId.js.map +1 -0
  112. package/dist/react-BbHBl6gg.css +80 -0
  113. package/dist/react-BbHBl6gg.css.map +1 -0
  114. package/dist/sdk-config-DJzxVPld.d.ts +1535 -0
  115. package/dist/{sequence-TGLUFEPQ.js → sequence-Do3kzb4J.js} +5 -5
  116. package/dist/sequence-Do3kzb4J.js.map +1 -0
  117. package/dist/src-Dz2CfBL0.js +8 -0
  118. package/dist/src-Dz2CfBL0.js.map +1 -0
  119. package/dist/{sudo-swap-M2O6E3TE.js → sudo-swap-B6vPKxBz.js} +5 -5
  120. package/dist/sudo-swap-B6vPKxBz.js.map +1 -0
  121. package/dist/{super-rare-UU2U4LIN.js → super-rare-eCm1SE6O.js} +5 -5
  122. package/dist/super-rare-eCm1SE6O.js.map +1 -0
  123. package/dist/token-CO5llIla.js +1312 -0
  124. package/dist/token-CO5llIla.js.map +1 -0
  125. package/dist/transaction-CcVViHEL.js +97 -0
  126. package/dist/transaction-CcVViHEL.js.map +1 -0
  127. package/dist/types/index.d.ts +3 -12
  128. package/dist/types/index.js +5 -44
  129. package/dist/types-BIJOaL4j.d.ts +68 -0
  130. package/dist/types-DwWE6xOF.js +13 -0
  131. package/dist/types-DwWE6xOF.js.map +1 -0
  132. package/dist/useCollection-C-mclKU0.d.ts +66 -0
  133. package/dist/utils/abi/index.d.ts +5 -3
  134. package/dist/utils/abi/index.js +6 -26
  135. package/dist/utils/abi/marketplace/index.d.ts +2 -805
  136. package/dist/utils/abi/marketplace/index.js +3 -11
  137. package/dist/utils/abi/primary-sale/index.d.ts +2 -1054
  138. package/dist/utils/abi/primary-sale/index.js +3 -9
  139. package/dist/utils/abi/token/index.d.ts +2 -1125
  140. package/dist/utils/abi/token/index.js +3 -11
  141. package/dist/utils/index.d.ts +8 -91
  142. package/dist/utils/index.js +11 -56
  143. package/dist/utils-BFdxaToy.js +216 -0
  144. package/dist/utils-BFdxaToy.js.map +1 -0
  145. package/dist/utils-Cat9_pef.js +44 -0
  146. package/dist/utils-Cat9_pef.js.map +1 -0
  147. package/dist/wagmi-DRctYEk6.js +159 -0
  148. package/dist/wagmi-DRctYEk6.js.map +1 -0
  149. package/dist/{x2y2-3W5BBMZC.js → x2y2-DD17tT91.js} +5 -5
  150. package/dist/x2y2-DD17tT91.js.map +1 -0
  151. package/dist/{zora-6EY6FUH6.js → zora-BpSG9UzS.js} +5 -5
  152. package/dist/zora-BpSG9UzS.js.map +1 -0
  153. package/package.json +21 -19
  154. package/src/index.ts +0 -1
  155. package/src/react/_internal/api/__mocks__/builder.msw.ts +157 -80
  156. package/src/react/_internal/api/__mocks__/indexer.msw.ts +1 -0
  157. package/src/react/_internal/api/builder-api.ts +2 -2
  158. package/src/react/_internal/api/builder.gen.ts +666 -112
  159. package/src/react/_internal/api/marketplace.gen.ts +2421 -1315
  160. package/src/react/_internal/api/services.ts +42 -49
  161. package/src/react/_internal/types.ts +1 -13
  162. package/src/react/_internal/wagmi/__tests__/create-config.test.ts +102 -87
  163. package/src/react/_internal/wagmi/create-config.ts +15 -6
  164. package/src/react/_internal/wagmi/get-connectors.ts +29 -21
  165. package/src/react/hooks/__tests__/__snapshots__/useListCollections.test.tsx.snap +273 -0
  166. package/src/react/hooks/__tests__/__snapshots__/useMarketplaceConfig.test.tsx.snap +122 -82
  167. package/src/react/hooks/__tests__/useAutoSelectFeeOption.test.tsx +7 -4
  168. package/src/react/hooks/__tests__/useCheckoutOptionsSalesContract.test.tsx +225 -0
  169. package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +3 -3
  170. package/src/react/hooks/__tests__/useFilters.test.tsx +0 -16
  171. package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +2 -3
  172. package/src/react/hooks/__tests__/useHighestOffer.test.tsx +0 -16
  173. package/src/react/hooks/__tests__/useInventory.test.tsx +6 -42
  174. package/src/react/hooks/__tests__/useListCollections.test.tsx +24 -57
  175. package/src/react/hooks/__tests__/{useCurrencies.test.tsx → useMarketCurrencies.test.tsx} +21 -15
  176. package/src/react/hooks/__tests__/useMarketplaceConfig.test.tsx +2 -59
  177. package/src/react/hooks/index.ts +9 -1
  178. package/src/react/hooks/useBalanceOfCollectible.tsx +14 -8
  179. package/src/react/hooks/useCancelTransactionSteps.tsx +5 -1
  180. package/src/react/hooks/useCheckoutOptions.tsx +2 -1
  181. package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +67 -0
  182. package/src/react/hooks/useCollectionDetails.tsx +22 -7
  183. package/src/react/hooks/useConvertPriceToUSD.tsx +1 -1
  184. package/src/react/hooks/useCountListingsForCollectible.tsx +5 -4
  185. package/src/react/hooks/useCountOfCollectables.tsx +10 -7
  186. package/src/react/hooks/useCountOffersForCollectible.tsx +5 -4
  187. package/src/react/hooks/useCurrency.tsx +2 -2
  188. package/src/react/hooks/useERC721SaleMintedTokens.tsx +67 -0
  189. package/src/react/hooks/useFilters.tsx +14 -22
  190. package/src/react/hooks/useFloorOrder.tsx +5 -2
  191. package/src/react/hooks/useGenerateCancelTransaction.tsx +13 -6
  192. package/src/react/hooks/useGenerateListingTransaction.tsx +15 -5
  193. package/src/react/hooks/useGenerateOfferTransaction.tsx +15 -6
  194. package/src/react/hooks/useGenerateSellTransaction.tsx +15 -6
  195. package/src/react/hooks/useGetTokenSuppliesMap.ts +33 -0
  196. package/src/react/hooks/useInventory.tsx +7 -4
  197. package/src/react/hooks/useList1155ShopCardData.tsx +130 -0
  198. package/src/react/hooks/useList721ShopCardData.tsx +130 -0
  199. package/src/react/hooks/useListBalances.tsx +7 -8
  200. package/src/react/hooks/useListCollectibleActivities.tsx +2 -1
  201. package/src/react/hooks/useListCollectibles.tsx +1 -12
  202. package/src/react/hooks/useListCollectiblesPaginated.tsx +8 -5
  203. package/src/react/hooks/useListCollectionActivities.tsx +2 -1
  204. package/src/react/hooks/useListCollections.tsx +14 -76
  205. package/src/react/hooks/useListListingsForCollectible.tsx +2 -1
  206. package/src/react/hooks/useListMarketCardData.tsx +157 -0
  207. package/src/react/hooks/useListOffersForCollectible.tsx +2 -1
  208. package/src/react/hooks/useListPrimarySaleItems.ts +42 -0
  209. package/src/react/hooks/useMarketCurrencies.tsx +8 -0
  210. package/src/react/hooks/useMarketplaceConfig.tsx +0 -2
  211. package/src/react/hooks/useTokenSaleDetailsBatch.tsx +134 -0
  212. package/src/react/queries/highestOffer.ts +6 -4
  213. package/src/react/queries/index.ts +1 -0
  214. package/src/react/queries/inventory.ts +36 -2
  215. package/src/react/queries/listBalances.ts +14 -30
  216. package/src/react/queries/listCollectibles.ts +60 -7
  217. package/src/react/queries/listCollections.ts +124 -0
  218. package/src/react/queries/listTokenMetadata.ts +6 -1
  219. package/src/react/queries/lowestListing.ts +6 -4
  220. package/src/react/queries/marketCurrencies.ts +81 -0
  221. package/src/react/queries/marketplaceConfig.ts +82 -79
  222. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +122 -82
  223. package/src/react/ssr/__tests__/create-ssr-client.test.ts +0 -3
  224. package/src/react/ssr/create-ssr-client.ts +5 -10
  225. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +47 -13
  226. package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +1 -1
  227. package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +28 -15
  228. package/src/react/ui/components/_internals/action-button/__tests__/OwnerActions.test.tsx +1 -1
  229. package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +1 -1
  230. package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +1 -1
  231. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +78 -15
  232. package/src/react/ui/components/_internals/action-button/components/OwnerActions.tsx +1 -1
  233. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +1 -1
  234. package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +17 -0
  235. package/src/react/ui/components/marketplace-collectible-card/CollectibleCardSkeleton.tsx +24 -0
  236. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +231 -0
  237. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +76 -0
  238. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +55 -0
  239. package/src/react/ui/components/marketplace-collectible-card/index.ts +3 -0
  240. package/src/react/ui/components/marketplace-collectible-card/types.ts +95 -0
  241. package/src/react/ui/components/marketplace-collectible-card/utils/formatPrice.ts +45 -0
  242. package/src/react/ui/components/marketplace-collectible-card/utils/index.ts +2 -0
  243. package/src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts +39 -0
  244. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +124 -0
  245. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +105 -0
  246. package/src/react/ui/components/{collectible-card/media → media}/Media.tsx +52 -30
  247. package/src/react/ui/components/{collectible-card/media → media}/MediaSkeleton.tsx +1 -1
  248. package/src/react/ui/components/{collectible-card/media → media}/types.ts +4 -1
  249. package/src/react/ui/index.ts +5 -2
  250. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +554 -0
  251. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +385 -0
  252. package/src/react/ui/modals/BuyModal/__tests__/ERC721ShopModal.test.tsx +272 -0
  253. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx.bak +112 -0
  254. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +117 -13
  255. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +10 -7
  256. package/src/react/ui/modals/BuyModal/components/BuyModalRouter.tsx +157 -0
  257. package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +136 -0
  258. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +184 -0
  259. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +121 -0
  260. package/src/react/ui/modals/BuyModal/components/ERC721BuyModal.tsx +85 -0
  261. package/src/react/ui/modals/BuyModal/components/ERC721ShopModal.tsx +86 -0
  262. package/src/react/ui/modals/BuyModal/components/Modal.tsx +14 -0
  263. package/src/react/ui/modals/BuyModal/components/types.ts +8 -0
  264. package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +4 -4
  265. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +379 -0
  266. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC721SalePaymentParams.test.tsx +253 -0
  267. package/src/react/ui/modals/BuyModal/hooks/__tests__/{useFees.test.tsx → useMarketPlatformFee.test.tsx} +37 -28
  268. package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +62 -44
  269. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +73 -0
  270. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +196 -0
  271. package/src/react/ui/modals/BuyModal/hooks/useLoadData.ts +74 -18
  272. package/src/react/ui/modals/BuyModal/hooks/useMarketPlatformFee.ts +53 -0
  273. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +27 -12
  274. package/src/react/ui/modals/BuyModal/store.ts +147 -13
  275. package/src/react/ui/modals/CreateListingModal/Modal.tsx +3 -5
  276. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +5 -3
  277. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +2 -1
  278. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +7 -5
  279. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +2 -3
  280. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +2 -1
  281. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +4 -3
  282. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +5 -3
  283. package/src/react/ui/modals/SellModal/Modal.tsx +0 -1
  284. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +4 -3
  285. package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +8 -5
  286. package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +11 -7
  287. package/src/react/ui/modals/SuccessfulPurchaseModal/index.tsx +34 -28
  288. package/src/react/ui/modals/SuccessfulPurchaseModal/store.ts +71 -0
  289. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +0 -1
  290. package/src/react/ui/modals/TransferModal/index.tsx +0 -1
  291. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +0 -1
  292. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +105 -108
  293. package/src/react/ui/modals/_internal/components/actionModal/store.ts +45 -12
  294. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +2 -2
  295. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +7 -6
  296. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +13 -7
  297. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/index.tsx +3 -5
  298. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +5 -3
  299. package/src/react/ui/modals/_internal/components/switchChainModal/__tests__/SwitchChainModal.test.tsx +12 -8
  300. package/src/react/ui/modals/_internal/components/switchChainModal/index.tsx +35 -33
  301. package/src/react/ui/modals/_internal/components/switchChainModal/store.ts +61 -32
  302. package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +2 -2
  303. package/src/react/ui/modals/_internal/hooks/useSelectWaasFeeOptions.ts +2 -12
  304. package/src/react/ui/modals/modal-provider.tsx +1 -1
  305. package/src/types/buyModalErrors.ts +438 -0
  306. package/src/types/index.ts +1 -3
  307. package/src/types/new-marketplace-types.ts +104 -0
  308. package/src/types/sdk-config.ts +22 -12
  309. package/src/types/types.ts +17 -0
  310. package/src/utils/_internal/error/transaction.ts +36 -1
  311. package/tsconfig.json +1 -1
  312. package/tsconfig.tsbuildinfo +1 -1
  313. package/tsdown.config.ts +25 -0
  314. package/.ctirc +0 -32
  315. package/dist/alien_swap-2B65TDGT.js.map +0 -1
  316. package/dist/aqua-xyz-WMYQLAIS.js.map +0 -1
  317. package/dist/aura-V22RV5OG.js.map +0 -1
  318. package/dist/blur-GE5QOMCM.js.map +0 -1
  319. package/dist/chunk-2PSNAIAT.js +0 -1
  320. package/dist/chunk-2PSNAIAT.js.map +0 -1
  321. package/dist/chunk-5C6ZZ6WX.js +0 -130
  322. package/dist/chunk-5C6ZZ6WX.js.map +0 -1
  323. package/dist/chunk-5O44EPXZ.js +0 -207
  324. package/dist/chunk-5O44EPXZ.js.map +0 -1
  325. package/dist/chunk-6CTFVBKU.js +0 -1
  326. package/dist/chunk-6CTFVBKU.js.map +0 -1
  327. package/dist/chunk-7F27CJZW.js +0 -1544
  328. package/dist/chunk-7F27CJZW.js.map +0 -1
  329. package/dist/chunk-A7BVFBWB.js +0 -81
  330. package/dist/chunk-A7BVFBWB.js.map +0 -1
  331. package/dist/chunk-D7RVSZAQ.js +0 -332
  332. package/dist/chunk-D7RVSZAQ.js.map +0 -1
  333. package/dist/chunk-DWTLVJAW.js +0 -42
  334. package/dist/chunk-DWTLVJAW.js.map +0 -1
  335. package/dist/chunk-FGM57QUU.js +0 -128
  336. package/dist/chunk-FGM57QUU.js.map +0 -1
  337. package/dist/chunk-FUM4OGOQ.js +0 -1027
  338. package/dist/chunk-FUM4OGOQ.js.map +0 -1
  339. package/dist/chunk-JKCF7HEA.js +0 -1
  340. package/dist/chunk-JKCF7HEA.js.map +0 -1
  341. package/dist/chunk-KTST7ORH.js +0 -53
  342. package/dist/chunk-KTST7ORH.js.map +0 -1
  343. package/dist/chunk-M6NJ73Y5.js +0 -154
  344. package/dist/chunk-M6NJ73Y5.js.map +0 -1
  345. package/dist/chunk-N7BPFK46.js +0 -1
  346. package/dist/chunk-N7BPFK46.js.map +0 -1
  347. package/dist/chunk-NX52D7NX.js +0 -135
  348. package/dist/chunk-NX52D7NX.js.map +0 -1
  349. package/dist/chunk-O34GCB47.js +0 -32
  350. package/dist/chunk-O34GCB47.js.map +0 -1
  351. package/dist/chunk-Q3ECVC4F.js +0 -811
  352. package/dist/chunk-Q3ECVC4F.js.map +0 -1
  353. package/dist/chunk-RVIUUJTP.js +0 -76
  354. package/dist/chunk-RVIUUJTP.js.map +0 -1
  355. package/dist/chunk-SXVUTSMT.js +0 -2895
  356. package/dist/chunk-SXVUTSMT.js.map +0 -1
  357. package/dist/chunk-UJSF7PSC.js +0 -5728
  358. package/dist/chunk-UJSF7PSC.js.map +0 -1
  359. package/dist/chunk-WH5BZC7W.js +0 -38
  360. package/dist/chunk-WH5BZC7W.js.map +0 -1
  361. package/dist/chunk-XX4EVWBF.js +0 -1292
  362. package/dist/chunk-XX4EVWBF.js.map +0 -1
  363. package/dist/chunk-Y2HJO2VY.js +0 -432
  364. package/dist/chunk-Y2HJO2VY.js.map +0 -1
  365. package/dist/chunk-Y63BOO6M.js +0 -11
  366. package/dist/chunk-Y63BOO6M.js.map +0 -1
  367. package/dist/coinbase-NLHJMGAP.js.map +0 -1
  368. package/dist/create-config-CAQcvjl6.d.ts +0 -8
  369. package/dist/element-2LGTYYSP.js.map +0 -1
  370. package/dist/foundation-BPN66ZTN.js.map +0 -1
  371. package/dist/get-query-client-D46hbjk6.d.ts +0 -5
  372. package/dist/index-MlUK9AQE.d.ts +0 -62
  373. package/dist/index.css.map +0 -1
  374. package/dist/index.js.map +0 -1
  375. package/dist/listTokenMetadata-DO4ChDjn.d.ts +0 -203
  376. package/dist/looks-rare-MZRSOPT4.js.map +0 -1
  377. package/dist/magic-eden-PUBL6KWW.js.map +0 -1
  378. package/dist/manifold-GA445YJ6.js.map +0 -1
  379. package/dist/marketplace.gen-DQzWciwC.d.ts +0 -1072
  380. package/dist/marketplaceConfig-D0MXemEl.d.ts +0 -17
  381. package/dist/mintify-UMC5PTKC.js.map +0 -1
  382. package/dist/nftx-AX3CY3IE.js.map +0 -1
  383. package/dist/okx-GNVLAE2R.js.map +0 -1
  384. package/dist/open-sea-KI43GVEB.js.map +0 -1
  385. package/dist/rarible-2J3MMZJ7.js.map +0 -1
  386. package/dist/react/_internal/api/index.js.map +0 -1
  387. package/dist/react/_internal/databeat/index.js.map +0 -1
  388. package/dist/react/_internal/index.js.map +0 -1
  389. package/dist/react/_internal/wagmi/index.js.map +0 -1
  390. package/dist/react/hooks/index.js.map +0 -1
  391. package/dist/react/hooks/options/index.js.map +0 -1
  392. package/dist/react/index.css +0 -2764
  393. package/dist/react/index.css.map +0 -1
  394. package/dist/react/index.js.map +0 -1
  395. package/dist/react/queries/index.js.map +0 -1
  396. package/dist/react/ui/components/collectible-card/index.css +0 -2764
  397. package/dist/react/ui/components/collectible-card/index.css.map +0 -1
  398. package/dist/react/ui/components/collectible-card/index.d.ts +0 -70
  399. package/dist/react/ui/components/collectible-card/index.js +0 -32
  400. package/dist/react/ui/components/collectible-card/index.js.map +0 -1
  401. package/dist/react/ui/components/marketplace-logos/index.js.map +0 -1
  402. package/dist/react/ui/icons/index.js.map +0 -1
  403. package/dist/react/ui/index.css +0 -2764
  404. package/dist/react/ui/index.css.map +0 -1
  405. package/dist/react/ui/index.js.map +0 -1
  406. package/dist/react/ui/modals/_internal/components/actionModal/index.js.map +0 -1
  407. package/dist/sdk-config-onSPBxJj.d.ts +0 -134
  408. package/dist/sequence-TGLUFEPQ.js.map +0 -1
  409. package/dist/services-CMSb9ipU.d.ts +0 -23
  410. package/dist/sudo-swap-M2O6E3TE.js.map +0 -1
  411. package/dist/super-rare-UU2U4LIN.js.map +0 -1
  412. package/dist/types/index.js.map +0 -1
  413. package/dist/types-B8xzPEKX.d.ts +0 -68
  414. package/dist/utils/abi/index.js.map +0 -1
  415. package/dist/utils/abi/marketplace/index.js.map +0 -1
  416. package/dist/utils/abi/primary-sale/index.js.map +0 -1
  417. package/dist/utils/abi/token/index.js.map +0 -1
  418. package/dist/utils/index.js.map +0 -1
  419. package/dist/x2y2-3W5BBMZC.js.map +0 -1
  420. package/dist/zora-6EY6FUH6.js.map +0 -1
  421. package/postcss.config.mjs +0 -5
  422. package/src/react/hooks/__tests__/__snapshots__/useRoyaltyPercentage.test.tsx.snap +0 -8
  423. package/src/react/hooks/useCurrencies.tsx +0 -77
  424. package/src/react/ui/components/collectible-card/CollectibleCard.tsx +0 -170
  425. package/src/react/ui/components/collectible-card/Footer.tsx +0 -157
  426. package/src/react/ui/components/collectible-card/__tests__/CollectibleCard.test.tsx +0 -94
  427. package/src/react/ui/components/collectible-card/__tests__/Footer.test.tsx +0 -136
  428. package/src/react/ui/components/collectible-card/__tests__/Media.test.tsx +0 -224
  429. package/src/react/ui/components/collectible-card/index.ts +0 -2
  430. package/src/react/ui/modals/BuyModal/ERC1155QuantityModal.tsx +0 -124
  431. package/src/react/ui/modals/BuyModal/Modal.tsx +0 -124
  432. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx +0 -104
  433. package/src/react/ui/modals/BuyModal/hooks/useFees.ts +0 -38
  434. package/src/react/ui/modals/SuccessfulPurchaseModal/_store.ts +0 -72
  435. package/tsup.config.ts +0 -23
  436. /package/src/react/ui/components/{collectible-card/media → media}/utils.ts +0 -0
@@ -1,12 +1,7 @@
1
1
  import { renderHook, server, waitFor } from '@test';
2
2
  import { describe, expect, it } from 'vitest';
3
- import { createLookupMarketplaceConfigErrorHandler } from '../../_internal/api/__mocks__/builder.msw';
3
+ import { createLookupMarketplaceErrorHandler } from '../../_internal/api/__mocks__/builder.msw';
4
4
 
5
- import {
6
- createStylesErrorHandler,
7
- mockConfig,
8
- mockStyles,
9
- } from '../../_internal/api/__mocks__/builder.msw';
10
5
  import { useMarketplaceConfig } from '../useMarketplaceConfig';
11
6
 
12
7
  describe('useMarketplaceConfig', () => {
@@ -30,7 +25,7 @@ describe('useMarketplaceConfig', () => {
30
25
 
31
26
  it('should handle config fetch error', async () => {
32
27
  // Override the handler for this test to return an error
33
- server.use(createLookupMarketplaceConfigErrorHandler());
28
+ server.use(createLookupMarketplaceErrorHandler());
34
29
 
35
30
  const { result } = renderHook(() => useMarketplaceConfig());
36
31
 
@@ -41,56 +36,4 @@ describe('useMarketplaceConfig', () => {
41
36
  expect(result.current.error).toBeDefined();
42
37
  expect(result.current.data).toBeUndefined();
43
38
  });
44
-
45
- it('should handle styles fetch error', async () => {
46
- // Override the handler for this test to return an error
47
- server.use(createStylesErrorHandler());
48
-
49
- const { result } = renderHook(() => useMarketplaceConfig());
50
-
51
- await waitFor(() => {
52
- expect(result.current.data).toBeDefined();
53
- });
54
-
55
- // They just result in an empty cssString
56
- expect(result.current.isError).toBe(false);
57
- expect(result.current.data?.cssString).toBe('');
58
- });
59
-
60
- it('should handle both config and styles fetch errors', async () => {
61
- // Override both handlers to return errors
62
- server.use(
63
- createLookupMarketplaceConfigErrorHandler(),
64
- createStylesErrorHandler(),
65
- );
66
-
67
- const { result } = renderHook(() => useMarketplaceConfig());
68
-
69
- await waitFor(() => {
70
- expect(result.current.isError).toBe(true);
71
- });
72
-
73
- expect(result.current.error).toBeDefined();
74
- expect(result.current.data).toBeUndefined();
75
- });
76
-
77
- it('should cache the config data', async () => {
78
- // First render to populate cache
79
- const { result, rerender } = renderHook(() => useMarketplaceConfig());
80
-
81
- await waitFor(() => {
82
- expect(result.current.isLoading).toBe(false);
83
- });
84
-
85
- // Trigger a rerender
86
- rerender();
87
-
88
- // Should have data immediately from cache
89
- expect(result.current.isLoading).toBe(false);
90
- expect(result.current.data).toEqual({
91
- ...mockConfig,
92
- cssString: mockStyles.replaceAll(/['"]/g, ''),
93
- manifestUrl: expect.stringContaining('/manifest.json'),
94
- });
95
- });
96
39
  });
@@ -7,7 +7,7 @@ export * from './useCollectionBalanceDetails';
7
7
  export * from './useComparePrices';
8
8
  export * from './useConfig';
9
9
  export * from './useConvertPriceToUSD';
10
- export * from './useCurrencies';
10
+ export * from './useMarketCurrencies';
11
11
  export * from './useCurrency';
12
12
  export * from './useFilters';
13
13
  export * from './useFilterState';
@@ -32,8 +32,16 @@ export * from './useGenerateSellTransaction';
32
32
  export * from './useGenerateCancelTransaction';
33
33
  export * from './useTransferTokens';
34
34
  export * from './useCheckoutOptions';
35
+ export * from './useCheckoutOptionsSalesContract';
35
36
  export * from './useListCollections';
36
37
  export * from './useCancelOrder';
37
38
  export * from './useCollectionDetails';
38
39
  export * from './useCollectionDetailsPolling';
39
40
  export * from './useListTokenMetadata';
41
+ export * from './useList1155ShopCardData';
42
+ export * from './useList721ShopCardData';
43
+ export * from './useListMarketCardData';
44
+ export * from './useGetTokenSuppliesMap';
45
+ export * from './useListPrimarySaleItems';
46
+ export * from './useERC721SaleMintedTokens';
47
+ export * from './useCheckoutOptionsSalesContract';
@@ -1,4 +1,5 @@
1
1
  import { useQuery } from '@tanstack/react-query';
2
+ import { ContractType } from '../_internal';
2
3
  import {
3
4
  type UseBalanceOfCollectibleArgs,
4
5
  balanceOfCollectibleOptions,
@@ -30,13 +31,18 @@ export function useBalanceOfCollectible(args: UseBalanceOfCollectibleArgs) {
30
31
  const config = useConfig();
31
32
  const { data: marketplaceConfig } = useMarketplaceConfig();
32
33
 
33
- const isLaos721 = marketplaceConfig?.collections.find(
34
- (collection) => collection.address === args.collectionAddress,
35
- )?.isLAOSERC721;
34
+ const collection = marketplaceConfig?.market.collections.find(
35
+ (collection) => collection.itemsAddress === args.collectionAddress,
36
+ );
37
+ const isLaos721 = collection?.contractType === ContractType.LAOS_ERC_721;
36
38
 
37
- if (isLaos721) {
38
- args.isLaos721 = true;
39
- }
40
-
41
- return useQuery(balanceOfCollectibleOptions(args, config));
39
+ return useQuery(
40
+ balanceOfCollectibleOptions(
41
+ {
42
+ ...args,
43
+ isLaos721,
44
+ },
45
+ config,
46
+ ),
47
+ );
42
48
  }
@@ -4,6 +4,7 @@ import {
4
4
  WalletInstanceNotFoundError,
5
5
  } from '../../utils/_internal/error/transaction';
6
6
  import {
7
+ ExecuteType,
7
8
  type MarketplaceKind,
8
9
  type Step,
9
10
  StepType,
@@ -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;
@@ -33,8 +33,9 @@ const fetchCheckoutOptions = async (
33
33
  args: UseCheckoutOptionsArgs & { walletAddress: Hex },
34
34
  config: SdkConfig,
35
35
  ) => {
36
- const marketplaceClient = getMarketplaceClient(args.chainId, config);
36
+ const marketplaceClient = getMarketplaceClient(config);
37
37
  return marketplaceClient.checkoutOptionsMarketplace({
38
+ chainId: String(args.chainId),
38
39
  wallet: args.walletAddress,
39
40
  orders: args.orders.map((order) => ({
40
41
  contractAddress: order.collectionAddress,
@@ -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: <explanation>
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
+ };
@@ -6,14 +6,24 @@ import { useConfig } from './useConfig';
6
6
  type UseCollectionDetails = {
7
7
  collectionAddress: string;
8
8
  chainId: number;
9
+ query?: {
10
+ enabled?: boolean;
11
+ };
9
12
  };
10
13
 
11
- const fetchCollectionDetails = async (
12
- args: { collectionAddress: string },
13
- marketplaceClient: Awaited<ReturnType<typeof getMarketplaceClient>>,
14
- ) => {
14
+ const fetchCollectionDetails = async ({
15
+ collectionAddress,
16
+ chainId,
17
+ config,
18
+ }: {
19
+ collectionAddress: string;
20
+ chainId: number;
21
+ config: SdkConfig;
22
+ }) => {
23
+ const marketplaceClient = getMarketplaceClient(config);
15
24
  const { collection } = await marketplaceClient.getCollectionDetail({
16
- contractAddress: args.collectionAddress,
25
+ chainId: String(chainId),
26
+ contractAddress: collectionAddress,
17
27
  });
18
28
  return collection;
19
29
  };
@@ -22,10 +32,15 @@ export const collectionDetailsOptions = (
22
32
  args: UseCollectionDetails,
23
33
  config: SdkConfig,
24
34
  ) => {
25
- const marketplaceClient = getMarketplaceClient(args.chainId, config);
26
35
  return queryOptions({
27
36
  queryKey: ['collectionDetails', args],
28
- queryFn: () => fetchCollectionDetails(args, marketplaceClient),
37
+ queryFn: () =>
38
+ fetchCollectionDetails({
39
+ collectionAddress: args.collectionAddress,
40
+ chainId: args.chainId,
41
+ config,
42
+ }),
43
+ enabled: args.query?.enabled,
29
44
  });
30
45
  };
31
46
 
@@ -8,8 +8,8 @@ import {
8
8
  currencyKeys,
9
9
  getQueryClient,
10
10
  } from '../_internal';
11
+ import { currenciesOptions } from '../queries/marketCurrencies';
11
12
  import { useConfig } from './useConfig';
12
- import { currenciesOptions } from './useCurrencies';
13
13
 
14
14
  const UseConvertPriceToUSDArgsSchema = z.object({
15
15
  chainId: z.number(),
@@ -36,11 +36,12 @@ const fetchCountListingsForCollectible = async (
36
36
  config: SdkConfig,
37
37
  ) => {
38
38
  const parsedArgs = UseCountListingsForCollectibleArgsSchema.parse(args);
39
- const marketplaceClient = getMarketplaceClient(parsedArgs.chainId, config);
39
+ const marketplaceClient = getMarketplaceClient(config);
40
+ const { chainId, collectionAddress, collectibleId } = parsedArgs;
40
41
  return marketplaceClient.getCountOfListingsForCollectible({
41
- ...parsedArgs,
42
- contractAddress: parsedArgs.collectionAddress,
43
- tokenId: parsedArgs.collectibleId,
42
+ chainId: String(chainId),
43
+ contractAddress: collectionAddress,
44
+ tokenId: collectibleId,
44
45
  });
45
46
  };
46
47
 
@@ -40,21 +40,24 @@ const fetchCountOfCollectables = async (
40
40
  config: SdkConfig,
41
41
  ) => {
42
42
  const parsedArgs = UseCountOfCollectableSchema.parse(args);
43
- const marketplaceClient = getMarketplaceClient(parsedArgs.chainId, config);
44
- if (parsedArgs.filter) {
43
+ const marketplaceClient = getMarketplaceClient(config);
44
+ const { chainId, collectionAddress, filter, side } = parsedArgs;
45
+
46
+ if (filter) {
45
47
  return marketplaceClient
46
48
  .getCountOfFilteredCollectibles({
47
- ...parsedArgs,
48
- contractAddress: parsedArgs.collectionAddress,
49
+ chainId: String(chainId),
50
+ contractAddress: collectionAddress,
51
+ filter,
49
52
  // biome-ignore lint/style/noNonNullAssertion: safe to assert here, as it's validated
50
- side: parsedArgs.side!,
53
+ side: side!,
51
54
  })
52
55
  .then((resp) => resp.count);
53
56
  }
54
57
  return marketplaceClient
55
58
  .getCountOfAllCollectibles({
56
- ...parsedArgs,
57
- contractAddress: parsedArgs.collectionAddress,
59
+ chainId: String(chainId),
60
+ contractAddress: collectionAddress,
58
61
  })
59
62
  .then((resp) => resp.count);
60
63
  };
@@ -36,11 +36,12 @@ const fetchCountOffersForCollectible = async (
36
36
  config: SdkConfig,
37
37
  ) => {
38
38
  const parsedArgs = UseCountOffersForCollectibleArgsSchema.parse(args);
39
- const marketplaceClient = getMarketplaceClient(parsedArgs.chainId, config);
39
+ const marketplaceClient = getMarketplaceClient(config);
40
+ const { chainId, collectionAddress, collectibleId } = parsedArgs;
40
41
  return marketplaceClient.getCountOfOffersForCollectible({
41
- ...parsedArgs,
42
- contractAddress: parsedArgs.collectionAddress,
43
- tokenId: parsedArgs.collectibleId,
42
+ chainId: String(chainId),
43
+ contractAddress: collectionAddress,
44
+ tokenId: collectibleId,
44
45
  });
45
46
  };
46
47
 
@@ -33,9 +33,9 @@ const fetchCurrency = async (
33
33
  | undefined;
34
34
 
35
35
  if (!currencies) {
36
- const marketplaceClient = getMarketplaceClient(chainId, config);
36
+ const marketplaceClient = getMarketplaceClient(config);
37
37
  currencies = await marketplaceClient
38
- .listCurrencies()
38
+ .listCurrencies({ chainId: String(chainId) })
39
39
  .then((resp) => resp.currencies);
40
40
  }
41
41
 
@@ -0,0 +1,67 @@
1
+ import type { Address } from 'viem';
2
+ import { useReadContract } from 'wagmi';
3
+ import { ERC721_SALE_ABI } from '../../../../sdk/src';
4
+ import { useGetTokenSuppliesMap } from './useGetTokenSuppliesMap';
5
+
6
+ interface UseERC721SaleMintedTokensProps {
7
+ chainId: number;
8
+ contractAddress: Address;
9
+ salesContractAddress: Address;
10
+ enabled?: boolean;
11
+ tokenIds: string[];
12
+ }
13
+
14
+ export function useERC721SaleMintedTokens({
15
+ chainId,
16
+ contractAddress,
17
+ salesContractAddress,
18
+ tokenIds,
19
+ enabled = true,
20
+ }: UseERC721SaleMintedTokensProps) {
21
+ const {
22
+ data: saleDetails,
23
+ isLoading: saleDetailsLoading,
24
+ error: saleDetailsError,
25
+ } = useReadContract({
26
+ chainId,
27
+ address: salesContractAddress,
28
+ abi: ERC721_SALE_ABI,
29
+ functionName: 'saleDetails',
30
+ query: {
31
+ enabled,
32
+ },
33
+ });
34
+
35
+ // Get token supplies for all potential tokens in the sale
36
+ const { data: tokenSupplies, isLoading: tokenSuppliesLoading } =
37
+ useGetTokenSuppliesMap({
38
+ chainId,
39
+ tokenIds,
40
+ collectionAddress: contractAddress as Address,
41
+ });
42
+
43
+ const isLoading = saleDetailsLoading || tokenSuppliesLoading;
44
+
45
+ // Count how many tokens have been minted/owned
46
+ const ownedCount = tokenIds.reduce((count, tokenId) => {
47
+ const supplies = tokenSupplies?.supplies[contractAddress];
48
+ const supply = supplies?.find((s) => s.tokenID === tokenId);
49
+ // If supply exists and is greater than 0, token exists and is owned
50
+ const hasOwner = supply ? BigInt(supply.supply) > 0n : false;
51
+ return count + (hasOwner ? 1 : 0);
52
+ }, 0);
53
+
54
+ const totalSupplyCap = saleDetails?.supplyCap
55
+ ? Number(saleDetails.supplyCap)
56
+ : 0;
57
+ const remainingCount = Math.max(0, totalSupplyCap - ownedCount);
58
+
59
+ return {
60
+ ownedCount,
61
+ totalSupplyCap,
62
+ remainingCount,
63
+ isLoading,
64
+ error: saleDetailsError,
65
+ saleDetails,
66
+ };
67
+ }
@@ -1,39 +1,36 @@
1
1
  import type { PropertyFilter } from '@0xsequence/metadata';
2
2
  import { queryOptions, useQuery } from '@tanstack/react-query';
3
- import { z } from 'zod';
4
3
  import { FilterCondition, type SdkConfig } from '../../types';
5
4
  import { compareAddress } from '../../utils';
6
5
  import {
7
- AddressSchema,
8
- QueryArgSchema,
9
6
  collectableKeys,
10
7
  getMetadataClient,
11
8
  getQueryClient,
12
9
  } from '../_internal';
10
+ import { marketplaceConfigOptions } from '../queries/marketplaceConfig';
13
11
  import { useConfig } from './useConfig';
14
- import { marketplaceConfigOptions } from './useMarketplaceConfig';
15
12
 
16
- const UseFiltersSchema = z.object({
17
- chainId: z.number(),
18
- collectionAddress: AddressSchema,
19
- showAllFilters: z.boolean().default(false).optional(),
20
- query: QueryArgSchema,
21
- excludePropertyValues: z.boolean().default(false).optional(),
22
- });
23
-
24
- export type UseFiltersArgs = z.infer<typeof UseFiltersSchema>;
13
+ export type UseFiltersArgs = {
14
+ chainId: number;
15
+ collectionAddress: string;
16
+ showAllFilters?: boolean;
17
+ excludePropertyValues?: boolean;
18
+ query?: {
19
+ enabled?: boolean;
20
+ };
21
+ };
25
22
 
26
23
  export type UseFilterReturn = Awaited<ReturnType<typeof fetchFilters>>;
27
24
 
28
25
  export const fetchFilters = async (args: UseFiltersArgs, config: SdkConfig) => {
29
- const parsedArgs = UseFiltersSchema.parse(args);
26
+ const parsedArgs = args;
30
27
  const metadataClient = getMetadataClient(config);
31
28
 
32
29
  const filters = await metadataClient
33
30
  .getTokenMetadataPropertyFilters({
34
31
  chainID: parsedArgs.chainId.toString(),
35
32
  contractAddress: parsedArgs.collectionAddress,
36
- excludeProperties: [], // TODO: We can leverage this for some of the exclusion logic
33
+ excludeProperties: [],
37
34
  excludePropertyValues: parsedArgs.excludePropertyValues,
38
35
  })
39
36
  .then((resp) => resp.filters);
@@ -44,8 +41,8 @@ export const fetchFilters = async (args: UseFiltersArgs, config: SdkConfig) => {
44
41
  const marketplaceConfig = await queryClient.fetchQuery(
45
42
  marketplaceConfigOptions(config),
46
43
  );
47
- const collectionFilters = marketplaceConfig.collections.find((c) =>
48
- compareAddress(c.address, parsedArgs.collectionAddress),
44
+ const collectionFilters = marketplaceConfig.market.collections.find((c) =>
45
+ compareAddress(c.itemsAddress, parsedArgs.collectionAddress),
49
46
  )?.filterSettings;
50
47
 
51
48
  if (
@@ -58,7 +55,6 @@ export const fetchFilters = async (args: UseFiltersArgs, config: SdkConfig) => {
58
55
 
59
56
  const { filterOrder, exclusions } = collectionFilters;
60
57
 
61
- // Sort the filters based on the filterOrder, the filters that are not in the filterOrder are at the end
62
58
  const sortedFilters = filters.toSorted((a, b) => {
63
59
  const aIndex =
64
60
  filterOrder.indexOf(a.name) > -1
@@ -73,17 +69,14 @@ export const fetchFilters = async (args: UseFiltersArgs, config: SdkConfig) => {
73
69
 
74
70
  const filteredResults = sortedFilters.reduce<PropertyFilter[]>(
75
71
  (acc, filter) => {
76
- // Check if this filter should be excluded
77
72
  const exclusionRule = exclusions.find((rule) => rule.key === filter.name);
78
73
 
79
74
  if (!exclusionRule) {
80
- // No exclusion rule, include the filter
81
75
  acc.push(filter);
82
76
  return acc;
83
77
  }
84
78
 
85
79
  if (exclusionRule.condition === FilterCondition.ENTIRE_KEY) {
86
- // Skip this filter entirely
87
80
  return acc;
88
81
  }
89
82
 
@@ -91,7 +84,6 @@ export const fetchFilters = async (args: UseFiltersArgs, config: SdkConfig) => {
91
84
  exclusionRule.condition === FilterCondition.SPECIFIC_VALUE &&
92
85
  exclusionRule.value
93
86
  ) {
94
- // Filter out specific values while keeping the filter
95
87
  const filteredValues =
96
88
  filter.values?.filter((value) => value !== exclusionRule.value) || [];
97
89
  if (filteredValues.length > 0) {
@@ -20,9 +20,12 @@ export type UseFloorOrderArgs = z.infer<typeof UseFloorOrderSchema>;
20
20
  export type UseFloorOrderReturn = Awaited<ReturnType<typeof fetchFloorOrder>>;
21
21
 
22
22
  const fetchFloorOrder = async (args: UseFloorOrderArgs, config: SdkConfig) => {
23
- const marketplaceClient = getMarketplaceClient(args.chainId, config);
23
+ const marketplaceClient = getMarketplaceClient(config);
24
24
  return marketplaceClient
25
- .getFloorOrder({ contractAddress: args.collectionAddress })
25
+ .getFloorOrder({
26
+ chainId: String(args.chainId),
27
+ contractAddress: args.collectionAddress,
28
+ })
26
29
  .then((data) => data.collectible);
27
30
  };
28
31
 
@@ -8,6 +8,14 @@ import {
8
8
  import { stepSchema } from '../_internal/api/zod-schema';
9
9
  import { useConfig } from './useConfig';
10
10
 
11
+ // Create a type that uses number for chainId
12
+ type GenerateCancelTransactionArgsWithNumberChainId = Omit<
13
+ GenerateCancelTransactionArgs,
14
+ 'chainId'
15
+ > & {
16
+ chainId: number;
17
+ };
18
+
11
19
  const UserGenerateCancelTransactionArgsSchema = z.object({
12
20
  chainId: z.number(),
13
21
  onSuccess: z.function().args(stepSchema.array().optional()).optional(),
@@ -18,13 +26,12 @@ type UseGenerateCancelTransactionArgs = z.infer<
18
26
  >;
19
27
 
20
28
  export const generateCancelTransaction = async (
21
- args: GenerateCancelTransactionArgs,
29
+ args: GenerateCancelTransactionArgsWithNumberChainId,
22
30
  config: SdkConfig,
23
- chainId: number,
24
31
  ) => {
25
- const marketplaceClient = getMarketplaceClient(chainId, config);
32
+ const marketplaceClient = getMarketplaceClient(config);
26
33
  return marketplaceClient
27
- .generateCancelTransaction(args)
34
+ .generateCancelTransaction({ ...args, chainId: String(args.chainId) })
28
35
  .then((data) => data.steps);
29
36
  };
30
37
 
@@ -35,8 +42,8 @@ export const useGenerateCancelTransaction = (
35
42
 
36
43
  const { mutate, mutateAsync, ...result } = useMutation({
37
44
  onSuccess: params.onSuccess,
38
- mutationFn: (args: GenerateCancelTransactionArgs) =>
39
- generateCancelTransaction(args, config, params.chainId),
45
+ mutationFn: (args: GenerateCancelTransactionArgsWithNumberChainId) =>
46
+ generateCancelTransaction(args, config),
40
47
  });
41
48
 
42
49
  return {
@@ -26,19 +26,27 @@ export type GenerateListingTransactionProps = Omit<
26
26
  listing: CreateReqWithDateExpiry;
27
27
  };
28
28
 
29
+ type GenerateListingTransactionArgsWithNumberChainId = Omit<
30
+ GenerateListingTransactionArgs,
31
+ 'chainId' | 'listing'
32
+ > & {
33
+ chainId: number;
34
+ listing: CreateReqWithDateExpiry;
35
+ };
36
+
29
37
  export const generateListingTransaction = async (
30
- params: GenerateListingTransactionProps,
38
+ params: GenerateListingTransactionArgsWithNumberChainId,
31
39
  config: SdkConfig,
32
- chainId: number,
33
40
  ) => {
34
41
  const args = {
35
42
  ...params,
43
+ chainId: String(params.chainId),
36
44
  listing: {
37
45
  ...params.listing,
38
46
  expiry: dateToUnixTime(params.listing.expiry),
39
47
  },
40
48
  } satisfies GenerateListingTransactionArgs;
41
- const marketplaceClient = getMarketplaceClient(chainId, config);
49
+ const marketplaceClient = getMarketplaceClient(config);
42
50
  return (await marketplaceClient.generateListingTransaction(args)).steps;
43
51
  };
44
52
 
@@ -49,8 +57,10 @@ export const useGenerateListingTransaction = (
49
57
 
50
58
  const { mutate, mutateAsync, ...result } = useMutation({
51
59
  onSuccess: params.onSuccess,
52
- mutationFn: (args: GenerateListingTransactionProps) =>
53
- generateListingTransaction(args, config, params.chainId),
60
+ mutationFn: (
61
+ args: Omit<GenerateListingTransactionArgsWithNumberChainId, 'chainId'>,
62
+ ) =>
63
+ generateListingTransaction({ ...args, chainId: params.chainId }, config),
54
64
  });
55
65
 
56
66
  return {