@0xsequence/marketplace-sdk 0.8.12 → 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 (327) hide show
  1. package/CHANGELOG.md +91 -23
  2. package/dist/{CartIcon-Bll1rbxv.js → CalendarIcon-DbQ7Vxcw.js} +38 -38
  3. package/dist/CalendarIcon-DbQ7Vxcw.js.map +1 -0
  4. package/dist/{types-BIJOaL4j.d.ts → CollectibleCard-C8Ae64Ab.d.ts} +7 -4
  5. package/dist/{_internal-69NEWNUE.js → _internal-BgWcRIak.js} +2 -14
  6. package/dist/_internal-BgWcRIak.js.map +1 -0
  7. package/dist/{api-1KFxYh7o.js → api-DTIan01C.js} +73 -64
  8. package/dist/api-DTIan01C.js.map +1 -0
  9. package/dist/{builder-api-BQvzykoU.js → builder-api-BFuZNOaN.js} +2 -2
  10. package/dist/{builder-api-BQvzykoU.js.map → builder-api-BFuZNOaN.js.map} +1 -1
  11. package/dist/{builder-api-DoK3907S.d.ts → builder-api-C_zj5mr3.d.ts} +2 -2
  12. package/dist/{builder.gen-CxP9NT1p.js → builder.gen-B9wR2nvF.js} +1 -1
  13. package/dist/builder.gen-B9wR2nvF.js.map +1 -0
  14. package/dist/{index-Cl7PQOGu.d.ts → index-21LE7OhL.d.ts} +24 -24
  15. package/dist/{index-1bezgsFq.d.ts → index-BL9RUSEK.d.ts} +929 -255
  16. package/dist/index-BQsgAvtX.d.ts +2938 -0
  17. package/dist/{index-DafWjEb4.d.ts → index-BUVWziLP.d.ts} +9 -14
  18. package/dist/{index-BIMIpDiI.d.ts → index-ByznONYE.d.ts} +98 -99
  19. package/dist/{index-BjIwVzc4.d.ts → index-CLy8y5hm.d.ts} +238 -238
  20. package/dist/{index-CN8puQQJ.d.ts → index-COt10OgI.d.ts} +4 -4
  21. package/dist/index-DPNWNa7t.d.ts +414 -0
  22. package/dist/{index-BEYefG1G.d.ts → index-DaE5ZNHb.d.ts} +2 -2
  23. package/dist/{index-BfH21xmk.d.ts → index-DsfCs3-x.d.ts} +46 -41
  24. package/dist/{index-4-kfOFdx.d.ts → index-dUb6wb4Y.d.ts} +5 -5
  25. package/dist/index.css +14 -1
  26. package/dist/index.d.ts +7 -7
  27. package/dist/index.js +7 -7
  28. package/dist/marketplace-logos-CSeGcPW4.js.map +1 -1
  29. package/dist/{marketplace.gen-Dqk8vRmD.js → marketplace.gen-BSDIX7NZ.js} +12 -3
  30. package/dist/marketplace.gen-BSDIX7NZ.js.map +1 -0
  31. package/dist/{marketplaceConfig-D2MYFqll.js → marketplaceConfig-C6X1SUik.js} +2 -2
  32. package/dist/marketplaceConfig-C6X1SUik.js.map +1 -0
  33. package/dist/{sdk-config-DJzxVPld.d.ts → new-marketplace-types-Bfis0U4J.d.ts} +65 -54
  34. package/dist/options-B4QN7Xou.js +0 -0
  35. package/dist/{primary-sale-Cw95phYC.js → primary-sale-C55ALnfQ.js} +279 -279
  36. package/dist/primary-sale-C55ALnfQ.js.map +1 -0
  37. package/dist/{queries-DPvwtnO7.js → queries-CUU65uYZ.js} +247 -134
  38. package/dist/queries-CUU65uYZ.js.map +1 -0
  39. package/dist/react/_internal/api/index.d.ts +4 -4
  40. package/dist/react/_internal/api/index.js +5 -5
  41. package/dist/react/_internal/databeat/index.d.ts +3 -3
  42. package/dist/react/_internal/databeat/index.js +15 -15
  43. package/dist/react/_internal/index.d.ts +7 -7
  44. package/dist/react/_internal/index.js +7 -7
  45. package/dist/react/_internal/wagmi/index.d.ts +3 -3
  46. package/dist/react/_internal/wagmi/index.js +2 -2
  47. package/dist/react/hooks/index.d.ts +15 -14
  48. package/dist/react/hooks/index.js +16 -16
  49. package/dist/react/hooks/options/index.d.ts +4 -5
  50. package/dist/react/hooks/options/index.js +9 -9
  51. package/dist/react/index.d.ts +15 -37
  52. package/dist/react/index.js +16 -16
  53. package/dist/react/queries/index.d.ts +8 -8
  54. package/dist/react/queries/index.js +12 -12
  55. package/dist/react/ssr/index.d.ts +6 -6
  56. package/dist/react/ssr/index.js +7 -7
  57. package/dist/react/ssr/index.js.map +1 -1
  58. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +8 -9
  59. package/dist/react/ui/components/marketplace-collectible-card/index.js +15 -15
  60. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +7 -7
  61. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +7 -7
  62. package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
  63. package/dist/react/ui/icons/index.js +6 -6
  64. package/dist/react/ui/index.d.ts +8 -9
  65. package/dist/react/ui/index.js +15 -15
  66. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +5 -5
  67. package/dist/react/ui/modals/_internal/components/actionModal/index.js +15 -15
  68. package/dist/{react-BG7o4PId.js → react-DAIicQPT.js} +7422 -6835
  69. package/dist/react-DAIicQPT.js.map +1 -0
  70. package/dist/{token-CO5llIla.js → token-Da4TdyUk.js} +1540 -761
  71. package/dist/token-Da4TdyUk.js.map +1 -0
  72. package/dist/types/index.d.ts +2 -2
  73. package/dist/types/index.js +2 -2
  74. package/dist/types-DwWE6xOF.js.map +1 -1
  75. package/dist/utils/abi/index.d.ts +3 -3
  76. package/dist/utils/abi/index.js +3 -3
  77. package/dist/utils/abi/primary-sale/index.d.ts +1 -1
  78. package/dist/utils/abi/primary-sale/index.js +1 -1
  79. package/dist/utils/abi/token/index.d.ts +2 -2
  80. package/dist/utils/abi/token/index.js +2 -2
  81. package/dist/utils/index.d.ts +6 -6
  82. package/dist/utils/index.js +6 -6
  83. package/dist/{utils-Cat9_pef.js → utils-BPYfgDSL.js} +2 -2
  84. package/dist/{utils-Cat9_pef.js.map → utils-BPYfgDSL.js.map} +1 -1
  85. package/dist/{utils-BFdxaToy.js → utils-CW2NA5KG.js} +87 -87
  86. package/dist/utils-CW2NA5KG.js.map +1 -0
  87. package/dist/{wagmi-DRctYEk6.js → wagmi-CDzEQbfk.js} +19 -12
  88. package/dist/wagmi-CDzEQbfk.js.map +1 -0
  89. package/eslint/use-client.js +0 -6
  90. package/package.json +30 -31
  91. package/src/index.ts +1 -1
  92. package/src/react/_internal/api/__mocks__/builder.msw.ts +5 -3
  93. package/src/react/_internal/api/__mocks__/indexer.msw.ts +8 -8
  94. package/src/react/_internal/api/__mocks__/marketplace.msw.ts +4 -6
  95. package/src/react/_internal/api/__mocks__/metadata.msw.ts +1 -1
  96. package/src/react/_internal/api/builder.gen.ts +6 -6
  97. package/src/react/_internal/api/get-query-client.ts +2 -2
  98. package/src/react/_internal/api/index.ts +2 -2
  99. package/src/react/_internal/api/marketplace.gen.ts +42 -4
  100. package/src/react/_internal/api/query-keys.ts +13 -6
  101. package/src/react/_internal/api/services.ts +28 -31
  102. package/src/react/_internal/index.ts +1 -1
  103. package/src/react/_internal/types.ts +10 -23
  104. package/src/react/_internal/utils.ts +1 -2
  105. package/src/react/_internal/wagmi/create-config.ts +20 -11
  106. package/src/react/_internal/wagmi/get-connectors.ts +9 -7
  107. package/src/react/_internal/wallet/__tests__/wallet.test.ts +1 -1
  108. package/src/react/_internal/wallet/wallet.ts +18 -18
  109. package/src/react/hooks/__tests__/__snapshots__/useListCollections.test.tsx.snap +20 -0
  110. package/src/react/hooks/__tests__/__snapshots__/useMarketplaceConfig.test.tsx.snap +12 -2
  111. package/src/react/hooks/__tests__/useAutoSelectFeeOption.test.tsx +1 -1
  112. package/src/react/hooks/__tests__/useBalanceOfCollectible.test.tsx +1 -1
  113. package/src/react/hooks/__tests__/useCancelOrder.test.tsx +4 -4
  114. package/src/react/hooks/__tests__/useCancelTransactionSteps.test.tsx +1 -1
  115. package/src/react/hooks/__tests__/useCollectible.test.tsx +14 -16
  116. package/src/react/hooks/__tests__/useCollection.test.tsx +4 -4
  117. package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +1 -27
  118. package/src/react/hooks/__tests__/useCollectionDetails.test.tsx +1 -1
  119. package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +1 -1
  120. package/src/react/hooks/__tests__/useComparePrices.test.tsx +7 -6
  121. package/src/react/hooks/__tests__/useConvertPriceToUSD.test.tsx +1 -1
  122. package/src/react/hooks/__tests__/useCountListingsForCollectible.test.tsx +2 -2
  123. package/src/react/hooks/__tests__/useCountOfCollectables.test.tsx +5 -5
  124. package/src/react/hooks/__tests__/useCountOffersForCollectible.test.tsx +2 -2
  125. package/src/react/hooks/__tests__/useCurrency.test.tsx +5 -3
  126. package/src/react/hooks/__tests__/useFilters.test.tsx +1 -1
  127. package/src/react/hooks/__tests__/useFloorOrder.test.tsx +4 -4
  128. package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +3 -3
  129. package/src/react/hooks/__tests__/useGenerateListingTransaction.test.tsx +1 -1
  130. package/src/react/hooks/__tests__/useGenerateOfferTransaction.test.tsx +1 -1
  131. package/src/react/hooks/__tests__/useGenerateSellTransaction.test.tsx +1 -1
  132. package/src/react/hooks/__tests__/useGetTokenSuppliesMap.test.tsx +104 -0
  133. package/src/react/hooks/__tests__/useHighestOffer.test.tsx +4 -4
  134. package/src/react/hooks/__tests__/useInventory.test.tsx +1 -1
  135. package/src/react/hooks/__tests__/useListCollectibleActivities.test.tsx +11 -13
  136. package/src/react/hooks/__tests__/useListCollectibles.test.tsx +5 -5
  137. package/src/react/hooks/__tests__/useListCollectiblesPaginated.test.tsx +10 -15
  138. package/src/react/hooks/__tests__/useListCollectionActivities.test.tsx +13 -15
  139. package/src/react/hooks/__tests__/useListCollections.test.tsx +3 -3
  140. package/src/react/hooks/__tests__/useListListingsForCollectible.test.tsx +3 -2
  141. package/src/react/hooks/__tests__/useListMarketCardData.test.tsx +301 -0
  142. package/src/react/hooks/__tests__/useListOffersForCollectible.test.tsx +1 -1
  143. package/src/react/hooks/__tests__/useListTokenMetadata.test.tsx +111 -0
  144. package/src/react/hooks/__tests__/useLowestListing.test.tsx +1 -1
  145. package/src/react/hooks/__tests__/useMarketCurrencies.test.tsx +1 -1
  146. package/src/react/hooks/__tests__/useRoyalty.test.tsx +0 -23
  147. package/src/react/hooks/index.ts +27 -24
  148. package/src/react/hooks/options/index.ts +0 -1
  149. package/src/react/hooks/useAutoSelectFeeOption.tsx +1 -1
  150. package/src/react/hooks/useBalanceOfCollectible.tsx +1 -1
  151. package/src/react/hooks/useCancelTransactionSteps.tsx +2 -2
  152. package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +1 -1
  153. package/src/react/hooks/useCollectible.tsx +64 -49
  154. package/src/react/hooks/useCollection.tsx +60 -11
  155. package/src/react/hooks/useCollectionBalanceDetails.tsx +20 -27
  156. package/src/react/hooks/useCollectionDetails.ts +69 -0
  157. package/src/react/hooks/useCollectionDetailsPolling.tsx +10 -2
  158. package/src/react/hooks/useComparePrices.tsx +18 -21
  159. package/src/react/hooks/useConvertPriceToUSD.tsx +20 -37
  160. package/src/react/hooks/useCountListingsForCollectible.tsx +64 -53
  161. package/src/react/hooks/useCountOfCollectables.tsx +60 -69
  162. package/src/react/hooks/useCountOfPrimarySaleItems.tsx +13 -0
  163. package/src/react/hooks/useCountOffersForCollectible.tsx +64 -53
  164. package/src/react/hooks/useCurrency.tsx +56 -64
  165. package/src/react/hooks/useFilterState.tsx +1 -2
  166. package/src/react/hooks/useFloorOrder.tsx +65 -40
  167. package/src/react/hooks/useGenerateCancelTransaction.tsx +5 -10
  168. package/src/react/hooks/useGenerateListingTransaction.tsx +1 -1
  169. package/src/react/hooks/useGenerateOfferTransaction.tsx +1 -1
  170. package/src/react/hooks/useGenerateSellTransaction.tsx +5 -10
  171. package/src/react/hooks/useGetReceiptFromHash.tsx +32 -3
  172. package/src/react/hooks/{useGetTokenSuppliesMap.ts → useGetTokenRanges.tsx} +15 -17
  173. package/src/react/hooks/useGetTokenSuppliesMap.tsx +73 -0
  174. package/src/react/hooks/useHighestOffer.tsx +68 -4
  175. package/src/react/hooks/useInventory.tsx +1 -1
  176. package/src/react/hooks/useList1155ShopCardData.tsx +55 -82
  177. package/src/react/hooks/useList721ShopCardData.tsx +93 -63
  178. package/src/react/hooks/useListBalances.tsx +1 -1
  179. package/src/react/hooks/useListCollectibleActivities.tsx +89 -50
  180. package/src/react/hooks/useListCollectibles.tsx +81 -16
  181. package/src/react/hooks/useListCollectiblesPaginated.tsx +96 -66
  182. package/src/react/hooks/useListCollectionActivities.tsx +84 -50
  183. package/src/react/hooks/useListCollections.tsx +72 -18
  184. package/src/react/hooks/useListListingsForCollectible.tsx +90 -50
  185. package/src/react/hooks/useListMarketCardData.tsx +1 -1
  186. package/src/react/hooks/useListOffersForCollectible.tsx +9 -14
  187. package/src/react/hooks/useListPrimarySaleItems.ts +72 -12
  188. package/src/react/hooks/useListShopCardData.tsx +70 -0
  189. package/src/react/hooks/useListTokenMetadata.tsx +73 -0
  190. package/src/react/hooks/useLowestListing.tsx +68 -4
  191. package/src/react/hooks/useMarketCurrencies.tsx +62 -5
  192. package/src/react/hooks/useRoyalty.tsx +57 -13
  193. package/src/react/hooks/useShopCollectibleSaleData.tsx +349 -0
  194. package/src/react/hooks/useTransferTokens.tsx +1 -1
  195. package/src/react/hooks/util/optimisticCancelUpdates.ts +5 -7
  196. package/src/react/index.ts +5 -3
  197. package/src/react/queries/balanceOfCollectible.ts +1 -1
  198. package/src/react/queries/collectible.ts +66 -0
  199. package/src/react/queries/collection.ts +55 -0
  200. package/src/react/queries/collectionDetails.ts +64 -0
  201. package/src/react/queries/countListingsForCollectible.ts +73 -0
  202. package/src/react/queries/countOfCollectables.ts +83 -0
  203. package/src/react/queries/countOfPrimarySaleItems.ts +48 -0
  204. package/src/react/queries/countOffersForCollectible.ts +73 -0
  205. package/src/react/queries/currency.ts +83 -0
  206. package/src/react/queries/floorOrder.ts +63 -0
  207. package/src/react/queries/getTokenSuppliesMap.ts +77 -0
  208. package/src/react/queries/highestOffer.ts +46 -40
  209. package/src/react/queries/index.ts +7 -4
  210. package/src/react/queries/inventory.ts +4 -4
  211. package/src/react/queries/listBalances.ts +1 -1
  212. package/src/react/queries/listCollectibleActivities.ts +97 -0
  213. package/src/react/queries/listCollectibles.ts +67 -50
  214. package/src/react/queries/listCollectiblesPaginated.ts +87 -0
  215. package/src/react/queries/listCollectionActivities.ts +95 -0
  216. package/src/react/queries/listCollections.ts +47 -8
  217. package/src/react/queries/listListingsForCollectible.ts +82 -0
  218. package/src/react/queries/listTokenMetadata.ts +47 -23
  219. package/src/react/queries/lowestListing.ts +46 -31
  220. package/src/react/queries/marketCurrencies.ts +42 -29
  221. package/src/react/queries/marketplaceConfig.ts +3 -3
  222. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +12 -2
  223. package/src/react/ssr/create-ssr-client.ts +1 -1
  224. package/src/react/types/query.ts +34 -0
  225. package/src/react/ui/components/ModelViewer.tsx +1 -1
  226. package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +14 -8
  227. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +12 -15
  228. package/src/react/ui/components/_internals/action-button/store.ts +46 -18
  229. package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +1 -1
  230. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +1 -1
  231. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +3 -0
  232. package/src/react/ui/components/marketplace-collectible-card/index.ts +1 -1
  233. package/src/react/ui/components/marketplace-collectible-card/types.ts +7 -4
  234. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +3 -2
  235. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +2 -5
  236. package/src/react/ui/components/marketplace-logos/marketplace-logos.tsx +1 -1
  237. package/src/react/ui/components/media/Media.tsx +5 -1
  238. package/src/react/ui/index.ts +8 -10
  239. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +94 -87
  240. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +4 -4
  241. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +1 -1
  242. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +3 -4
  243. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +1 -1
  244. package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +1 -1
  245. package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +1 -1
  246. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +1 -1
  247. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +3 -3
  248. package/src/react/ui/modals/CreateListingModal/Modal.tsx +1 -1
  249. package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +2 -2
  250. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +0 -1
  251. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +2 -2
  252. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +7 -6
  253. package/src/react/ui/modals/CreateListingModal/index.tsx +1 -1
  254. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +2 -2
  255. package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +1 -1
  256. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +1 -1
  257. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +0 -1
  258. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +7 -7
  259. package/src/react/ui/modals/MakeOfferModal/index.tsx +1 -1
  260. package/src/react/ui/modals/SellModal/Modal.tsx +3 -3
  261. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +6 -4
  262. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +1 -1
  263. package/src/react/ui/modals/SellModal/hooks/useSell.tsx +0 -1
  264. package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +6 -6
  265. package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +1 -1
  266. package/src/react/ui/modals/TransferModal/_store.ts +1 -7
  267. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +2 -3
  268. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +2 -2
  269. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +1 -1
  270. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +2 -4
  271. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +1 -1
  272. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +0 -1
  273. package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +4 -4
  274. package/src/react/ui/modals/_internal/components/quantityInput/QuantityInputBase.tsx +166 -0
  275. package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +12 -141
  276. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +1 -1
  277. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/_components/BalanceIndicator.tsx +1 -2
  278. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +0 -1
  279. package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +1 -1
  280. package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +1 -1
  281. package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +0 -1
  282. package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +1 -1
  283. package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +1 -1
  284. package/src/react/ui/modals/modal-provider.tsx +2 -3
  285. package/src/types/api-types.ts +36 -36
  286. package/src/types/buyModalErrors.ts +1 -1
  287. package/src/types/index.ts +5 -5
  288. package/src/types/new-marketplace-types.ts +1 -1
  289. package/src/types/sdk-config.ts +2 -1
  290. package/src/types/types.ts +1 -0
  291. package/src/types/waas-types.ts +1 -1
  292. package/src/utils/abi/index.ts +1 -1
  293. package/src/utils/abi/primary-sale/index.ts +1 -1
  294. package/src/utils/abi/token/index.ts +2 -1
  295. package/src/utils/decode/erc20.ts +1 -1
  296. package/src/utils/index.ts +3 -3
  297. package/test/const.ts +3 -1
  298. package/test/mocks/wallet.ts +1 -1
  299. package/test/test-utils.tsx +3 -4
  300. package/.changeset/fluffy-jokes-lay.md +0 -5
  301. package/.changeset/wise-bugs-boil.md +0 -8
  302. package/dist/CartIcon-Bll1rbxv.js.map +0 -1
  303. package/dist/CollectibleCard-CLQTl0_6.d.ts +0 -8
  304. package/dist/_internal-69NEWNUE.js.map +0 -1
  305. package/dist/api-1KFxYh7o.js.map +0 -1
  306. package/dist/builder.gen-CxP9NT1p.js.map +0 -1
  307. package/dist/index-BHiSG-Yi.d.ts +0 -312
  308. package/dist/index-BQW0PUkQ.d.ts +0 -3973
  309. package/dist/marketplace.gen-Dqk8vRmD.js.map +0 -1
  310. package/dist/marketplaceConfig-D2MYFqll.js.map +0 -1
  311. package/dist/options-DCi6_23w.js +0 -34
  312. package/dist/options-DCi6_23w.js.map +0 -1
  313. package/dist/primary-sale-Cw95phYC.js.map +0 -1
  314. package/dist/queries-DPvwtnO7.js.map +0 -1
  315. package/dist/react-BG7o4PId.js.map +0 -1
  316. package/dist/token-CO5llIla.js.map +0 -1
  317. package/dist/useCollection-C-mclKU0.d.ts +0 -66
  318. package/dist/utils-BFdxaToy.js.map +0 -1
  319. package/dist/wagmi-DRctYEk6.js.map +0 -1
  320. package/src/react/_internal/api/zod-schema.ts +0 -678
  321. package/src/react/hooks/options/collectionOptions.ts +0 -41
  322. package/src/react/hooks/useCheckoutOptions.tsx +0 -66
  323. package/src/react/hooks/useCollectionDetails.tsx +0 -50
  324. package/src/react/hooks/useListTokenMetadata.ts +0 -19
  325. package/src/react/queries/getTokenSupplies.ts +0 -38
  326. package/tsconfig.tsbuildinfo +0 -1
  327. /package/dist/{index-ij9f8GAA.d.ts → index-DvpBZgor.d.ts} +0 -0
@@ -1,61 +1,101 @@
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
- type ListListingsForCollectibleArgs,
6
- collectableKeys,
7
- getMarketplaceClient,
8
- } from '../_internal';
9
- import { listListingsForCollectibleArgsSchema } from '../_internal/api/zod-schema';
6
+ type FetchListListingsForCollectibleParams,
7
+ type fetchListListingsForCollectible,
8
+ type ListListingsForCollectibleQueryOptions,
9
+ listListingsForCollectibleQueryOptions,
10
+ } from '../queries/listListingsForCollectible';
10
11
  import { useConfig } from './useConfig';
11
12
 
12
- const UseListListingsForCollectibleArgsSchema =
13
- listListingsForCollectibleArgsSchema
14
- .extend({
15
- chainId: z.number(),
16
- collectionAddress: z.string(),
17
- collectibleId: z.string(),
18
- })
19
- .omit({ contractAddress: true, tokenId: true });
20
-
21
- type UseListListingsForCollectibleArgs = z.infer<
22
- typeof UseListListingsForCollectibleArgsSchema
13
+ export type UseListListingsForCollectibleParams = Optional<
14
+ ListListingsForCollectibleQueryOptions,
15
+ 'config'
23
16
  >;
24
17
 
25
- export type UseListListingsForCollectibleReturn = Awaited<
26
- ReturnType<typeof fetchListListingsForCollectible>
27
- >;
18
+ /**
19
+ * Hook to fetch listings for a specific collectible
20
+ *
21
+ * Fetches active listings (sales) for a specific token from the marketplace
22
+ * with support for filtering and pagination.
23
+ *
24
+ * @param params - Configuration parameters
25
+ * @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
26
+ * @param params.collectionAddress - The collection contract address
27
+ * @param params.collectibleId - The specific token ID to fetch listings for
28
+ * @param params.filter - Optional filtering parameters (marketplace, currencies, etc.)
29
+ * @param params.page - Optional pagination parameters
30
+ * @param params.query - Optional React Query configuration
31
+ *
32
+ * @returns Query result containing listings data for the collectible
33
+ *
34
+ * @example
35
+ * Basic usage:
36
+ * ```typescript
37
+ * const { data, isLoading } = useListListingsForCollectible({
38
+ * chainId: 137,
39
+ * collectionAddress: '0x...',
40
+ * collectibleId: '123'
41
+ * })
42
+ * ```
43
+ *
44
+ * @example
45
+ * With pagination:
46
+ * ```typescript
47
+ * const { data } = useListListingsForCollectible({
48
+ * chainId: 1,
49
+ * collectionAddress: '0x...',
50
+ * collectibleId: '456',
51
+ * page: {
52
+ * page: 2,
53
+ * pageSize: 20
54
+ * }
55
+ * })
56
+ * ```
57
+ *
58
+ * @example
59
+ * With filtering:
60
+ * ```typescript
61
+ * const { data } = useListListingsForCollectible({
62
+ * chainId: 137,
63
+ * collectionAddress: '0x...',
64
+ * collectibleId: '789',
65
+ * filter: {
66
+ * marketplace: [MarketplaceKind.sequence_marketplace_v2],
67
+ * currencies: ['0x...'] // Specific currency addresses
68
+ * }
69
+ * })
70
+ * ```
71
+ */
72
+ export function useListListingsForCollectible(
73
+ params: UseListListingsForCollectibleParams,
74
+ ) {
75
+ const defaultConfig = useConfig();
28
76
 
29
- const fetchListListingsForCollectible = async (
30
- config: SdkConfig,
31
- args: UseListListingsForCollectibleArgs,
32
- ) => {
33
- const arg = {
34
- chainId: String(args.chainId),
35
- contractAddress: args.collectionAddress,
36
- tokenId: args.collectibleId,
37
- filter: args.filter,
38
- page: args.page,
39
- } satisfies ListListingsForCollectibleArgs;
40
-
41
- const marketplaceClient = getMarketplaceClient(config);
42
- return marketplaceClient.listCollectibleListings(arg);
43
- };
77
+ const { config = defaultConfig, ...rest } = params;
44
78
 
45
- export const listListingsForCollectibleOptions = (
46
- args: UseListListingsForCollectibleArgs,
47
- config: SdkConfig,
48
- ) => {
49
- return queryOptions({
50
- queryKey: [...collectableKeys.listings, args, config],
51
- queryFn: () => fetchListListingsForCollectible(config, args),
79
+ const queryOptions = listListingsForCollectibleQueryOptions({
80
+ config,
81
+ ...rest,
52
82
  });
53
- };
54
83
 
55
- export const useListListingsForCollectible = (
56
- args: UseListListingsForCollectibleArgs,
57
- ) => {
58
- const config = useConfig();
84
+ return useQuery({
85
+ ...queryOptions,
86
+ });
87
+ }
88
+
89
+ export { listListingsForCollectibleQueryOptions };
59
90
 
60
- return useQuery(listListingsForCollectibleOptions(args, config));
91
+ export type {
92
+ FetchListListingsForCollectibleParams,
93
+ ListListingsForCollectibleQueryOptions,
61
94
  };
95
+
96
+ // Legacy exports for backward compatibility during migration
97
+ export type UseListListingsForCollectibleArgs =
98
+ UseListListingsForCollectibleParams;
99
+ export type UseListListingsForCollectibleReturn = Awaited<
100
+ ReturnType<typeof fetchListListingsForCollectible>
101
+ >;
@@ -2,7 +2,6 @@ import { useMemo } from 'react';
2
2
 
3
3
  import type { Address } from 'viem';
4
4
  import { useAccount } from 'wagmi';
5
- import { OrderSide } from '../../types';
6
5
  import type {
7
6
  CollectibleCardAction,
8
7
  CollectibleOrder,
@@ -11,6 +10,7 @@ import type {
11
10
  OrderbookKind,
12
11
  PropertyFilter,
13
12
  } from '../../types';
13
+ import { OrderSide } from '../../types';
14
14
  import type { MarketCollectibleCardProps } from '../ui/components/marketplace-collectible-card/types';
15
15
  import { useSellModal } from '../ui/modals/SellModal';
16
16
  import { useCollectionBalanceDetails } from './useCollectionBalanceDetails';
@@ -1,25 +1,20 @@
1
1
  import { queryOptions, useQuery } from '@tanstack/react-query';
2
- import { z } from 'zod';
3
2
  import type { SdkConfig } from '../../types';
4
3
  import {
5
- type ListOffersForCollectibleArgs,
6
4
  collectableKeys,
7
5
  getMarketplaceClient,
6
+ type ListOffersForCollectibleArgs,
8
7
  } from '../_internal';
9
- import { listOffersForCollectibleArgsSchema } from '../_internal/api/zod-schema';
8
+ import type { OrderFilter, Page } from '../_internal/api/marketplace.gen';
10
9
  import { useConfig } from './useConfig';
11
10
 
12
- const UseListOffersForCollectibleArgsSchema = listOffersForCollectibleArgsSchema
13
- .extend({
14
- chainId: z.number(),
15
- collectionAddress: z.string(),
16
- collectibleId: z.string(),
17
- })
18
- .omit({ contractAddress: true, tokenId: true });
19
-
20
- type UseListOffersForCollectibleArgs = z.infer<
21
- typeof UseListOffersForCollectibleArgsSchema
22
- >;
11
+ interface UseListOffersForCollectibleArgs {
12
+ chainId: number;
13
+ collectionAddress: string;
14
+ collectibleId: string;
15
+ filter?: OrderFilter;
16
+ page?: Page;
17
+ }
23
18
 
24
19
  export type UseListOffersForCollectibleReturn = Awaited<
25
20
  ReturnType<typeof fetchListOffersForCollectible>
@@ -1,19 +1,29 @@
1
- import { queryOptions, useQuery } from '@tanstack/react-query';
1
+ import { useInfiniteQuery, useQuery } from '@tanstack/react-query';
2
+ import type { Address } from 'viem';
2
3
  import type { SdkConfig } from '../../types';
3
4
  import {
4
- type ListPrimarySaleItemsArgs,
5
5
  getMarketplaceClient,
6
+ type ListPrimarySaleItemsArgs,
7
+ type ListPrimarySaleItemsReturn,
8
+ type Page,
9
+ type PrimarySaleItemsFilter,
6
10
  } from '../_internal';
7
11
  import { useConfig } from './useConfig';
8
12
 
9
- type UseListPrimarySaleItemsArgs = Omit<ListPrimarySaleItemsArgs, 'chainId'> & {
13
+ interface UseListPrimarySaleItemsArgs {
10
14
  chainId: number;
11
- };
15
+ primarySaleContractAddress: Address | undefined;
16
+ filter?: PrimarySaleItemsFilter;
17
+ page?: Page;
18
+ query?: {
19
+ enabled?: boolean;
20
+ };
21
+ }
12
22
 
13
23
  const fetchListPrimarySaleItems = async (
24
+ args: ListPrimarySaleItemsArgs,
14
25
  config: SdkConfig,
15
- args: UseListPrimarySaleItemsArgs,
16
- ) => {
26
+ ): Promise<ListPrimarySaleItemsReturn> => {
17
27
  const arg = {
18
28
  chainId: String(args.chainId),
19
29
  primarySaleContractAddress: args.primarySaleContractAddress,
@@ -25,18 +35,68 @@ const fetchListPrimarySaleItems = async (
25
35
  return marketplaceClient.listPrimarySaleItems(arg);
26
36
  };
27
37
 
28
- export const listPrimarySaleItemsOptions = (
38
+ const listPrimarySaleItemsOptions = (
29
39
  args: UseListPrimarySaleItemsArgs,
30
40
  config: SdkConfig,
31
41
  ) => {
32
- return queryOptions({
33
- queryKey: ['primarySaleItems', args, config],
34
- queryFn: () => fetchListPrimarySaleItems(config, args),
35
- });
42
+ const primarySaleContractAddress = args.primarySaleContractAddress as Address;
43
+ return {
44
+ queryKey: ['listPrimarySaleItems', args],
45
+ queryFn: async ({ pageParam }: { pageParam: Page }) => {
46
+ return fetchListPrimarySaleItems(
47
+ {
48
+ chainId: String(args.chainId),
49
+ primarySaleContractAddress,
50
+ filter: args.filter,
51
+ page: pageParam,
52
+ },
53
+ config,
54
+ );
55
+ },
56
+ initialPageParam: { page: 1, pageSize: 30 } as Page,
57
+ getNextPageParam: (lastPage: ListPrimarySaleItemsReturn) =>
58
+ lastPage.page?.more
59
+ ? {
60
+ page: lastPage.page?.page || 1,
61
+ pageSize: lastPage.page?.pageSize || 30,
62
+ }
63
+ : undefined,
64
+ ...args.query,
65
+ enabled: !!primarySaleContractAddress && args.query?.enabled !== false,
66
+ };
36
67
  };
37
68
 
38
69
  export const useListPrimarySaleItems = (args: UseListPrimarySaleItemsArgs) => {
39
70
  const config = useConfig();
71
+ return useInfiniteQuery(listPrimarySaleItemsOptions(args, config));
72
+ };
73
+
74
+ interface UseGetCountOfPrimarySaleItemsArgs {
75
+ chainId: number;
76
+ primarySaleContractAddress: Address | undefined;
77
+ filter?: PrimarySaleItemsFilter;
78
+ query?: {
79
+ enabled?: boolean;
80
+ };
81
+ }
82
+
83
+ export const useGetCountOfPrimarySaleItems = (
84
+ args: UseGetCountOfPrimarySaleItemsArgs,
85
+ ) => {
86
+ const config = useConfig();
87
+
88
+ return useQuery({
89
+ queryKey: ['getCountOfPrimarySaleItems', args],
90
+ queryFn: async () => {
91
+ const marketplaceClient = getMarketplaceClient(config);
40
92
 
41
- return useQuery(listPrimarySaleItemsOptions(args, config));
93
+ return marketplaceClient.getCountOfPrimarySaleItems({
94
+ chainId: String(args.chainId),
95
+ primarySaleContractAddress: args.primarySaleContractAddress || '',
96
+ filter: args.filter,
97
+ });
98
+ },
99
+ ...args.query,
100
+ enabled: !!args.primarySaleContractAddress && args.query?.enabled !== false,
101
+ });
42
102
  };
@@ -0,0 +1,70 @@
1
+ import type { Address } from 'viem';
2
+ import { ContractType } from '../_internal';
3
+ import { useList721ShopCardData } from './useList721ShopCardData';
4
+ import { useList1155ShopCardData } from './useList1155ShopCardData';
5
+
6
+ interface UseListShopCardDataProps {
7
+ tokenIds: string[];
8
+ chainId: number;
9
+ contractAddress: Address;
10
+ salesContractAddress: Address;
11
+ contractType: ContractType | undefined;
12
+ enabled?: boolean;
13
+ }
14
+
15
+ export function useListShopCardData({
16
+ tokenIds,
17
+ chainId,
18
+ contractAddress,
19
+ salesContractAddress,
20
+ contractType,
21
+ enabled = true,
22
+ }: UseListShopCardDataProps) {
23
+ const shouldUse721 = contractType === ContractType.ERC721;
24
+ const shouldUse1155 = contractType === ContractType.ERC1155;
25
+
26
+ const erc721Data = useList721ShopCardData({
27
+ tokenIds,
28
+ chainId,
29
+ contractAddress,
30
+ salesContractAddress,
31
+ enabled: enabled && shouldUse721,
32
+ });
33
+
34
+ const erc1155Data = useList1155ShopCardData({
35
+ tokenIds,
36
+ chainId,
37
+ contractAddress,
38
+ salesContractAddress,
39
+ enabled: enabled && shouldUse1155,
40
+ });
41
+
42
+ if (shouldUse721) {
43
+ return erc721Data;
44
+ }
45
+
46
+ if (shouldUse1155) {
47
+ // Map ERC1155 data to match ERC721 structure
48
+ return {
49
+ collectibleCards: erc1155Data.collectibleCards,
50
+ isLoading: erc1155Data.isLoading,
51
+ saleDetailsError: erc1155Data.tokenSaleDetailsError,
52
+ primarySaleItemsError: erc1155Data.tokenMetadataError,
53
+ saleDetails: undefined,
54
+ primarySaleItems: undefined,
55
+ salePrice: erc1155Data.collectibleCards[0]?.salePrice,
56
+ };
57
+ }
58
+
59
+ // Return a default state when contract type is not determined yet
60
+ return {
61
+ collectibleCards: [],
62
+ isLoading: !contractType,
63
+ collectionDetailsError: null,
64
+ saleDetailsError: null,
65
+ primarySaleItemsError: null,
66
+ saleDetails: undefined,
67
+ primarySaleItems: undefined,
68
+ salePrice: undefined,
69
+ };
70
+ }
@@ -0,0 +1,73 @@
1
+ 'use client';
2
+
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import type { Optional } from '../_internal';
5
+ import {
6
+ type FetchListTokenMetadataParams,
7
+ type ListTokenMetadataQueryOptions,
8
+ listTokenMetadataQueryOptions,
9
+ } from '../queries/listTokenMetadata';
10
+ import { useConfig } from './useConfig';
11
+
12
+ export type UseListTokenMetadataParams = Optional<
13
+ ListTokenMetadataQueryOptions,
14
+ 'config'
15
+ >;
16
+
17
+ /**
18
+ * Hook to fetch metadata for multiple tokens
19
+ *
20
+ * Retrieves metadata for a batch of tokens from a specific contract using the metadata API.
21
+ * This hook is optimized for fetching multiple token metadata in a single request.
22
+ *
23
+ * @param params - Configuration parameters
24
+ * @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
25
+ * @param params.contractAddress - The contract address containing the tokens
26
+ * @param params.tokenIds - Array of token IDs to fetch metadata for
27
+ * @param params.config - Optional SDK configuration (defaults from context)
28
+ * @param params.query - Optional React Query configuration
29
+ *
30
+ * @returns Query result containing an array of token metadata
31
+ *
32
+ * @example
33
+ * Basic usage:
34
+ * ```typescript
35
+ * const { data: metadata, isLoading } = useListTokenMetadata({
36
+ * chainId: 137,
37
+ * contractAddress: '0x...',
38
+ * tokenIds: ['1', '2', '3']
39
+ * })
40
+ * ```
41
+ *
42
+ * @example
43
+ * With query options:
44
+ * ```typescript
45
+ * const { data: metadata } = useListTokenMetadata({
46
+ * chainId: 1,
47
+ * contractAddress: '0x...',
48
+ * tokenIds: selectedTokenIds,
49
+ * query: {
50
+ * enabled: selectedTokenIds.length > 0,
51
+ * staleTime: 10 * 60 * 1000 // 10 minutes
52
+ * }
53
+ * })
54
+ * ```
55
+ */
56
+ export function useListTokenMetadata(params: UseListTokenMetadataParams) {
57
+ const defaultConfig = useConfig();
58
+
59
+ const { config = defaultConfig, ...rest } = params;
60
+
61
+ const queryOptions = listTokenMetadataQueryOptions({
62
+ config,
63
+ ...rest,
64
+ });
65
+
66
+ return useQuery({
67
+ ...queryOptions,
68
+ });
69
+ }
70
+
71
+ export { listTokenMetadataQueryOptions };
72
+
73
+ export type { FetchListTokenMetadataParams, ListTokenMetadataQueryOptions };
@@ -1,8 +1,72 @@
1
+ 'use client';
2
+
1
3
  import { useQuery } from '@tanstack/react-query';
2
- import { type UseLowestListingArgs, lowestListingOptions } from '../queries';
4
+ import type { Optional } from '../_internal';
5
+ import {
6
+ type FetchLowestListingParams,
7
+ type LowestListingQueryOptions,
8
+ lowestListingQueryOptions,
9
+ } from '../queries/lowestListing';
3
10
  import { useConfig } from './useConfig';
4
11
 
5
- export function useLowestListing(args: UseLowestListingArgs) {
6
- const config = useConfig();
7
- return useQuery(lowestListingOptions(args, config));
12
+ export type UseLowestListingParams = Optional<
13
+ LowestListingQueryOptions,
14
+ 'config'
15
+ >;
16
+
17
+ /**
18
+ * Hook to fetch the lowest listing for a collectible
19
+ *
20
+ * Retrieves the lowest priced listing currently available for a specific token
21
+ * in a collection from the marketplace.
22
+ *
23
+ * @param params - Configuration parameters
24
+ * @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
25
+ * @param params.collectionAddress - The collection contract address
26
+ * @param params.tokenId - The token ID within the collection
27
+ * @param params.query - Optional React Query configuration
28
+ *
29
+ * @returns Query result containing the lowest listing data or null if no listings exist
30
+ *
31
+ * @example
32
+ * Basic usage:
33
+ * ```typescript
34
+ * const { data, isLoading } = useLowestListing({
35
+ * chainId: 137,
36
+ * collectionAddress: '0x...',
37
+ * tokenId: '1'
38
+ * })
39
+ * ```
40
+ *
41
+ * @example
42
+ * With custom query options:
43
+ * ```typescript
44
+ * const { data, isLoading } = useLowestListing({
45
+ * chainId: 1,
46
+ * collectionAddress: '0x...',
47
+ * tokenId: '42',
48
+ * query: {
49
+ * refetchInterval: 15000,
50
+ * enabled: hasTokenId
51
+ * }
52
+ * })
53
+ * ```
54
+ */
55
+ export function useLowestListing(params: UseLowestListingParams) {
56
+ const defaultConfig = useConfig();
57
+
58
+ const { config = defaultConfig, ...rest } = params;
59
+
60
+ const queryOptions = lowestListingQueryOptions({
61
+ config,
62
+ ...rest,
63
+ });
64
+
65
+ return useQuery({
66
+ ...queryOptions,
67
+ });
8
68
  }
69
+
70
+ export { lowestListingQueryOptions };
71
+
72
+ export type { FetchLowestListingParams, LowestListingQueryOptions };
@@ -1,8 +1,65 @@
1
+ 'use client';
2
+
1
3
  import { useQuery } from '@tanstack/react-query';
2
- import { type UseMarketCurrenciesArgs, currenciesOptions } from '../queries';
4
+ import type { Optional } from '../_internal';
5
+ import {
6
+ type FetchMarketCurrenciesParams,
7
+ type MarketCurrenciesQueryOptions,
8
+ marketCurrenciesQueryOptions,
9
+ } from '../queries/marketCurrencies';
3
10
  import { useConfig } from './useConfig';
4
11
 
5
- export const useMarketCurrencies = (args: UseMarketCurrenciesArgs) => {
6
- const config = useConfig();
7
- return useQuery(currenciesOptions(args, config));
8
- };
12
+ export type UseMarketCurrenciesParams = Optional<
13
+ MarketCurrenciesQueryOptions,
14
+ 'config'
15
+ >;
16
+
17
+ /**
18
+ * Hook to fetch supported currencies for a marketplace
19
+ *
20
+ * Retrieves the list of currencies supported by the marketplace for a specific chain.
21
+ * Can optionally filter to exclude native currency or filter by collection.
22
+ *
23
+ * @param params - Configuration parameters
24
+ * @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
25
+ * @param params.includeNativeCurrency - Whether to include native currency (default: true)
26
+ * @param params.collectionAddress - Optional collection address to filter currencies
27
+ * @param params.query - Optional React Query configuration
28
+ *
29
+ * @returns Query result containing supported currencies
30
+ *
31
+ * @example
32
+ * Basic usage:
33
+ * ```typescript
34
+ * const { data, isLoading } = useMarketCurrencies({
35
+ * chainId: 137
36
+ * })
37
+ * ```
38
+ *
39
+ * @example
40
+ * Exclude native currency:
41
+ * ```typescript
42
+ * const { data, isLoading } = useMarketCurrencies({
43
+ * chainId: 1,
44
+ * includeNativeCurrency: false
45
+ * })
46
+ * ```
47
+ */
48
+ export function useMarketCurrencies(params: UseMarketCurrenciesParams) {
49
+ const defaultConfig = useConfig();
50
+
51
+ const { config = defaultConfig, ...rest } = params;
52
+
53
+ const queryOptions = marketCurrenciesQueryOptions({
54
+ config,
55
+ ...rest,
56
+ });
57
+
58
+ return useQuery({
59
+ ...queryOptions,
60
+ });
61
+ }
62
+
63
+ export { marketCurrenciesQueryOptions };
64
+
65
+ export type { FetchMarketCurrenciesParams, MarketCurrenciesQueryOptions };
@@ -1,18 +1,62 @@
1
+ 'use client';
2
+
3
+ import type { Address } from 'viem';
1
4
  import { useReadContract } from 'wagmi';
2
- import { z } from 'zod';
3
5
  import { EIP2981_ABI } from '../../utils';
4
- import { AddressSchema, QueryArgSchema, collectableKeys } from '../_internal';
5
-
6
- const UseRoyaltySchema = z.object({
7
- chainId: z.number(),
8
- collectionAddress: AddressSchema,
9
- collectibleId: z.string(),
10
- query: QueryArgSchema.optional(),
11
- });
6
+ import type { QueryArg } from '../_internal';
7
+ import { collectableKeys } from '../_internal';
12
8
 
13
- type UseRoyaltyArgs = z.infer<typeof UseRoyaltySchema>;
9
+ export interface UseRoyaltyArgs {
10
+ chainId: number;
11
+ collectionAddress: Address;
12
+ collectibleId: string;
13
+ query?: QueryArg;
14
+ }
14
15
 
15
- export const useRoyalty = (args: UseRoyaltyArgs) => {
16
+ /**
17
+ * Hook to fetch royalty information for a collectible
18
+ *
19
+ * Reads royalty information from the blockchain using the EIP-2981 standard.
20
+ * This hook queries the contract directly to get royalty percentage and recipient
21
+ * address for a specific token.
22
+ *
23
+ * @param args - Configuration parameters
24
+ * @param args.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
25
+ * @param args.collectionAddress - The collection contract address
26
+ * @param args.collectibleId - The token ID within the collection
27
+ * @param args.query - Optional React Query configuration
28
+ *
29
+ * @returns Query result containing royalty information (percentage and recipient) or null
30
+ *
31
+ * @example
32
+ * Basic usage:
33
+ * ```typescript
34
+ * const { data, isLoading } = useRoyalty({
35
+ * chainId: 137,
36
+ * collectionAddress: '0x...',
37
+ * collectibleId: '1'
38
+ * })
39
+ *
40
+ * if (data) {
41
+ * console.log('Royalty:', data.percentage, 'Recipient:', data.recipient)
42
+ * }
43
+ * ```
44
+ *
45
+ * @example
46
+ * With custom query options:
47
+ * ```typescript
48
+ * const { data, isLoading } = useRoyalty({
49
+ * chainId: 1,
50
+ * collectionAddress: '0x...',
51
+ * collectibleId: '42',
52
+ * query: {
53
+ * refetchInterval: 60000,
54
+ * enabled: hasTokenId
55
+ * }
56
+ * })
57
+ * ```
58
+ */
59
+ export function useRoyalty(args: UseRoyaltyArgs) {
16
60
  const { chainId, collectionAddress, collectibleId, query } = args;
17
61
  const scopeKey = `${collectableKeys.royaltyPercentage.join('.')}-${chainId}-${collectionAddress}-${collectibleId}`;
18
62
 
@@ -31,7 +75,7 @@ export const useRoyalty = (args: UseRoyaltyArgs) => {
31
75
  recipient && percentage
32
76
  ? {
33
77
  percentage,
34
- recipient,
78
+ recipient: recipient as Address,
35
79
  }
36
80
  : null;
37
81
 
@@ -39,4 +83,4 @@ export const useRoyalty = (args: UseRoyaltyArgs) => {
39
83
  ...contractResult,
40
84
  data: formattedData,
41
85
  };
42
- };
86
+ }