@0xsequence/marketplace-sdk 0.8.12 → 0.10.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 (487) hide show
  1. package/.storybook/main.ts +63 -0
  2. package/.storybook/preview.ts +24 -0
  3. package/.storybook/vitest.setup.ts +6 -0
  4. package/CHANGELOG.md +158 -21
  5. package/dist/{CartIcon-Bll1rbxv.js → CalendarIcon-CqsuAuCm.js} +30 -77
  6. package/dist/CalendarIcon-CqsuAuCm.js.map +1 -0
  7. package/dist/{types-BIJOaL4j.d.ts → CollectibleCard-Dd-CG6dE.d.ts} +11 -7
  8. package/dist/InfoIcon-v0w_Lu7t.js +53 -0
  9. package/dist/InfoIcon-v0w_Lu7t.js.map +1 -0
  10. package/dist/_internal-C75gOSNo.js +14 -0
  11. package/dist/_internal-C75gOSNo.js.map +1 -0
  12. package/dist/actionModal-CMUeVsFX.js +116 -0
  13. package/dist/actionModal-CMUeVsFX.js.map +1 -0
  14. package/dist/{alien_swap-B_76IMma.js → alien_swap-CYv6YlOF.js} +1 -1
  15. package/dist/{alien_swap-B_76IMma.js.map → alien_swap-CYv6YlOF.js.map} +1 -1
  16. package/dist/{api-1KFxYh7o.js → api-BiMGqWdz.js} +79 -87
  17. package/dist/api-BiMGqWdz.js.map +1 -0
  18. package/dist/{aqua-xyz-CMN_TFY5.js → aqua-xyz-Bzn5baeH.js} +1 -1
  19. package/dist/{aqua-xyz-CMN_TFY5.js.map → aqua-xyz-Bzn5baeH.js.map} +1 -1
  20. package/dist/{aura-Cye_TuHj.js → aura-DzIWh8WT.js} +1 -1
  21. package/dist/{aura-Cye_TuHj.js.map → aura-DzIWh8WT.js.map} +1 -1
  22. package/dist/base-DqaJPvfN.js +22 -0
  23. package/dist/base-DqaJPvfN.js.map +1 -0
  24. package/dist/{blur-DWDMyMpK.js → blur-DSH-Cbpj.js} +1 -1
  25. package/dist/{blur-DWDMyMpK.js.map → blur-DSH-Cbpj.js.map} +1 -1
  26. package/dist/{builder-api-BQvzykoU.js → builder-api-BFuZNOaN.js} +2 -2
  27. package/dist/{builder-api-BQvzykoU.js.map → builder-api-BFuZNOaN.js.map} +1 -1
  28. package/dist/{builder.gen-CxP9NT1p.js → builder.gen-B9wR2nvF.js} +1 -1
  29. package/dist/builder.gen-B9wR2nvF.js.map +1 -0
  30. package/dist/{coinbase-ByA_XRB0.js → coinbase-Df8URNxq.js} +1 -1
  31. package/dist/{coinbase-ByA_XRB0.js.map → coinbase-Df8URNxq.js.map} +1 -1
  32. package/dist/{sdk-config-DJzxVPld.d.ts → create-config-DKJ-F0jc.d.ts} +458 -86
  33. package/dist/{wagmi-DRctYEk6.js → create-config-fQ-jbJD1.js} +33 -16
  34. package/dist/create-config-fQ-jbJD1.js.map +1 -0
  35. package/dist/{element-b77CyXIZ.js → element-Cx6uJu5N.js} +1 -1
  36. package/dist/{element-b77CyXIZ.js.map → element-Cx6uJu5N.js.map} +1 -1
  37. package/dist/{foundation-DbOrKP9Y.js → foundation-D6U4aRLN.js} +1 -1
  38. package/dist/{foundation-DbOrKP9Y.js.map → foundation-D6U4aRLN.js.map} +1 -1
  39. package/dist/get-provider-CYYHfrlg.js +10 -0
  40. package/dist/get-provider-CYYHfrlg.js.map +1 -0
  41. package/dist/get-query-client-D19vvfJo.js +23 -0
  42. package/dist/get-query-client-D19vvfJo.js.map +1 -0
  43. package/dist/hooks-4pxIbLbM.js +4044 -0
  44. package/dist/hooks-4pxIbLbM.js.map +1 -0
  45. package/dist/{index-1bezgsFq.d.ts → index-136YrWDH.d.ts} +929 -255
  46. package/dist/{index-D5v5iluA.d.ts → index-BAhaEfqY.d.ts} +1 -1
  47. package/dist/index-BKBin-rq.d.ts +979 -0
  48. package/dist/index-BUWB_RXp.d.ts +3144 -0
  49. package/dist/{index-Cl7PQOGu.d.ts → index-BhVFc2rX.d.ts} +28 -25
  50. package/dist/{index-DXMfTZ1F.d.ts → index-C5aqo8xu.d.ts} +1 -1
  51. package/dist/{index-BIMIpDiI.d.ts → index-CKrYP7ot.d.ts} +74 -103
  52. package/dist/{index-BEYefG1G.d.ts → index-CUwMH7Ht.d.ts} +5 -5
  53. package/dist/{index-BjIwVzc4.d.ts → index-Cu70Lw-w.d.ts} +238 -238
  54. package/dist/index.css +427 -1
  55. package/dist/index.d.ts +8 -10
  56. package/dist/index.js +15 -11
  57. package/dist/{looks-rare-C1VqNcSM.js → looks-rare-ChBRBY-p.js} +1 -1
  58. package/dist/{looks-rare-C1VqNcSM.js.map → looks-rare-ChBRBY-p.js.map} +1 -1
  59. package/dist/{magic-eden-ea_AGCZr.js → magic-eden-D5U7N1xL.js} +1 -1
  60. package/dist/{magic-eden-ea_AGCZr.js.map → magic-eden-D5U7N1xL.js.map} +1 -1
  61. package/dist/{manifold-8y8J2sjT.js → manifold-CtLF52zU.js} +1 -1
  62. package/dist/{manifold-8y8J2sjT.js.map → manifold-CtLF52zU.js.map} +1 -1
  63. package/dist/{marketplace-nwnZv9Cb.js → marketplace-DmFiyBoS.js} +1 -1
  64. package/dist/{marketplace-nwnZv9Cb.js.map → marketplace-DmFiyBoS.js.map} +1 -1
  65. package/dist/{marketplace-logos-CSeGcPW4.js → marketplace-logos-Cd6W-qOq.js} +21 -21
  66. package/dist/{marketplace-logos-CSeGcPW4.js.map → marketplace-logos-Cd6W-qOq.js.map} +1 -1
  67. package/dist/{marketplace.gen-Dqk8vRmD.js → marketplace.gen-HpnpL5xU.js} +12 -3
  68. package/dist/marketplace.gen-HpnpL5xU.js.map +1 -0
  69. package/dist/{marketplaceConfig-D2MYFqll.js → marketplaceConfig-GQTTmihy.js} +3 -3
  70. package/dist/marketplaceConfig-GQTTmihy.js.map +1 -0
  71. package/dist/{mintify-LA68TzWg.js → mintify-Bi3Bce68.js} +1 -1
  72. package/dist/{mintify-LA68TzWg.js.map → mintify-Bi3Bce68.js.map} +1 -1
  73. package/dist/network-CGD0oKtS.js +15 -0
  74. package/dist/network-CGD0oKtS.js.map +1 -0
  75. package/dist/{nftx-D3Tc8nzd.js → nftx-BDQZjtkX.js} +1 -1
  76. package/dist/{nftx-D3Tc8nzd.js.map → nftx-BDQZjtkX.js.map} +1 -1
  77. package/dist/{okx-hbqg6oIJ.js → okx-D4meadLe.js} +1 -1
  78. package/dist/{okx-hbqg6oIJ.js.map → okx-D4meadLe.js.map} +1 -1
  79. package/dist/{open-sea-BccuK8-t.js → open-sea-DN0hgfVw.js} +1 -1
  80. package/dist/{open-sea-BccuK8-t.js.map → open-sea-DN0hgfVw.js.map} +1 -1
  81. package/dist/options-BBBR8u_4.js +0 -0
  82. package/dist/{primary-sale-Cw95phYC.js → primary-sale-CmWxSfFQ.js} +279 -279
  83. package/dist/primary-sale-CmWxSfFQ.js.map +1 -0
  84. package/dist/provider-DPGUA10G.js +125 -0
  85. package/dist/provider-DPGUA10G.js.map +1 -0
  86. package/dist/queries-Ce_2othB.js +757 -0
  87. package/dist/queries-Ce_2othB.js.map +1 -0
  88. package/dist/{rarible-BgTwwj9g.js → rarible-B0xlD88A.js} +1 -1
  89. package/dist/{rarible-BgTwwj9g.js.map → rarible-B0xlD88A.js.map} +1 -1
  90. package/dist/react/_internal/api/index.d.ts +2 -4
  91. package/dist/react/_internal/api/index.js +9 -6
  92. package/dist/react/_internal/databeat/index.d.ts +2 -73
  93. package/dist/react/_internal/databeat/index.js +4 -21
  94. package/dist/react/_internal/index.d.ts +2 -7
  95. package/dist/react/_internal/index.js +13 -8
  96. package/dist/react/_internal/wagmi/index.d.ts +2 -4
  97. package/dist/react/_internal/wagmi/index.js +6 -4
  98. package/dist/react/hooks/index.d.ts +13 -17
  99. package/dist/react/hooks/index.js +25 -21
  100. package/dist/react/hooks/options/index.d.ts +3 -5
  101. package/dist/react/hooks/options/index.js +15 -10
  102. package/dist/react/index.d.ts +13 -40
  103. package/dist/react/index.js +30 -21
  104. package/dist/react/queries/index.d.ts +9 -8
  105. package/dist/react/queries/index.js +22 -17
  106. package/dist/react/ssr/index.d.ts +7 -9
  107. package/dist/react/ssr/index.js +13 -8
  108. package/dist/react/ssr/index.js.map +1 -1
  109. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +3 -9
  110. package/dist/react/ui/components/marketplace-collectible-card/index.js +29 -20
  111. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -7
  112. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +13 -8
  113. package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
  114. package/dist/react/ui/components/marketplace-logos/index.js +1 -1
  115. package/dist/react/ui/icons/index.js +14 -10
  116. package/dist/react/ui/index.d.ts +3 -9
  117. package/dist/react/ui/index.js +29 -20
  118. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +5 -5
  119. package/dist/react/ui/modals/_internal/components/actionModal/index.js +25 -20
  120. package/dist/{react-BG7o4PId.js → react-DP0M2Wfm.js} +4919 -7839
  121. package/dist/react-DP0M2Wfm.js.map +1 -0
  122. package/dist/{react-BbHBl6gg.css → react-DeDyTgo7.css} +1 -1
  123. package/dist/{react-BbHBl6gg.css.map → react-DeDyTgo7.css.map} +1 -1
  124. package/dist/{sequence-Do3kzb4J.js → sequence-BIrOVRXO.js} +1 -1
  125. package/dist/{sequence-Do3kzb4J.js.map → sequence-BIrOVRXO.js.map} +1 -1
  126. package/dist/{sudo-swap-B6vPKxBz.js → sudo-swap-BPMon-M5.js} +1 -1
  127. package/dist/{sudo-swap-B6vPKxBz.js.map → sudo-swap-BPMon-M5.js.map} +1 -1
  128. package/dist/{super-rare-eCm1SE6O.js → super-rare-kPN6Ua8i.js} +1 -1
  129. package/dist/{super-rare-eCm1SE6O.js.map → super-rare-kPN6Ua8i.js.map} +1 -1
  130. package/dist/{token-CO5llIla.js → token-CHSBPYVG.js} +1540 -761
  131. package/dist/token-CHSBPYVG.js.map +1 -0
  132. package/dist/{transaction-CcVViHEL.js → transaction-CnctdNzS.js} +3 -21
  133. package/dist/transaction-CnctdNzS.js.map +1 -0
  134. package/dist/types/index.d.ts +2 -3
  135. package/dist/types/index.js +3 -3
  136. package/dist/{types-DwWE6xOF.js → types-Yw2ywj6j.js} +1 -1
  137. package/dist/types-Yw2ywj6j.js.map +1 -0
  138. package/dist/utils/abi/index.d.ts +5 -5
  139. package/dist/utils/abi/index.js +5 -5
  140. package/dist/utils/abi/marketplace/index.d.ts +1 -1
  141. package/dist/utils/abi/marketplace/index.js +1 -1
  142. package/dist/utils/abi/primary-sale/index.d.ts +1 -1
  143. package/dist/utils/abi/primary-sale/index.js +1 -1
  144. package/dist/utils/abi/token/index.d.ts +2 -2
  145. package/dist/utils/abi/token/index.js +2 -2
  146. package/dist/utils/index.d.ts +7 -8
  147. package/dist/utils/index.js +13 -10
  148. package/dist/{utils-BFdxaToy.js → utils-9RXDgcBl.js} +86 -93
  149. package/dist/utils-9RXDgcBl.js.map +1 -0
  150. package/dist/{utils-Cat9_pef.js → utils-DjVJ9tov.js} +5 -6
  151. package/dist/utils-DjVJ9tov.js.map +1 -0
  152. package/dist/wagmi-Do_KW5ke.js +0 -0
  153. package/dist/{x2y2-DD17tT91.js → x2y2-BLz-_Q2O.js} +1 -1
  154. package/dist/{x2y2-DD17tT91.js.map → x2y2-BLz-_Q2O.js.map} +1 -1
  155. package/dist/{zora-BpSG9UzS.js → zora-UGhKs-aL.js} +1 -1
  156. package/dist/{zora-BpSG9UzS.js.map → zora-UGhKs-aL.js.map} +1 -1
  157. package/eslint/use-client.js +0 -6
  158. package/eslint.config.mjs +4 -0
  159. package/package.json +47 -35
  160. package/postcss.config.mjs +6 -0
  161. package/src/index.css +5 -4
  162. package/src/index.ts +2 -1
  163. package/src/react/__tests__/provider.test.tsx +4 -3
  164. package/src/react/_internal/api/__mocks__/builder.msw.ts +5 -3
  165. package/src/react/_internal/api/__mocks__/indexer.msw.ts +24 -8
  166. package/src/react/_internal/api/__mocks__/laos.msw.ts +387 -0
  167. package/src/react/_internal/api/__mocks__/marketplace.msw.ts +6 -6
  168. package/src/react/_internal/api/__mocks__/metadata.msw.ts +1 -1
  169. package/src/react/_internal/api/__tests__/laos-api.test.ts +756 -0
  170. package/src/react/_internal/api/builder.gen.ts +6 -6
  171. package/src/react/_internal/api/get-query-client.ts +2 -2
  172. package/src/react/_internal/api/index.ts +2 -2
  173. package/src/react/_internal/api/laos-api.ts +3 -0
  174. package/src/react/_internal/api/marketplace.gen.ts +43 -3
  175. package/src/react/_internal/api/query-keys.ts +21 -6
  176. package/src/react/_internal/api/services.ts +30 -45
  177. package/src/react/_internal/databeat/index.ts +15 -14
  178. package/src/react/_internal/databeat/types.ts +22 -0
  179. package/src/react/_internal/databeat/utils.ts +26 -0
  180. package/src/react/_internal/index.ts +1 -1
  181. package/src/react/_internal/types.ts +10 -23
  182. package/src/react/_internal/utils.ts +4 -5
  183. package/src/react/_internal/wagmi/create-config.ts +43 -19
  184. package/src/react/_internal/wagmi/get-connectors.ts +9 -7
  185. package/src/react/_internal/wallet/__tests__/wallet.test.ts +1 -1
  186. package/src/react/_internal/wallet/wallet.ts +22 -22
  187. package/src/react/hooks/__tests__/__snapshots__/useListCollections.test.tsx.snap +20 -0
  188. package/src/react/hooks/__tests__/__snapshots__/useMarketplaceConfig.test.tsx.snap +12 -2
  189. package/src/react/hooks/__tests__/useAutoSelectFeeOption.test.tsx +1 -1
  190. package/src/react/hooks/__tests__/useBalanceOfCollectible.laos.test.tsx +367 -0
  191. package/src/react/hooks/__tests__/useBalanceOfCollectible.test.tsx +1 -1
  192. package/src/react/hooks/__tests__/useCancelOrder.test.tsx +4 -4
  193. package/src/react/hooks/__tests__/useCancelTransactionSteps.test.tsx +1 -1
  194. package/src/react/hooks/__tests__/useCheckoutOptions.test.tsx +158 -0
  195. package/src/react/hooks/__tests__/useCheckoutOptionsSalesContract.test.tsx +42 -65
  196. package/src/react/hooks/__tests__/useCollectible.test.tsx +14 -16
  197. package/src/react/hooks/__tests__/useCollection.test.tsx +4 -4
  198. package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +16 -25
  199. package/src/react/hooks/__tests__/useCollectionDetails.test.tsx +1 -1
  200. package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +12 -4
  201. package/src/react/hooks/__tests__/useComparePrices.test.tsx +7 -6
  202. package/src/react/hooks/__tests__/useConvertPriceToUSD.test.tsx +4 -4
  203. package/src/react/hooks/__tests__/useCountListingsForCollectible.test.tsx +2 -2
  204. package/src/react/hooks/__tests__/useCountOfCollectables.test.tsx +5 -5
  205. package/src/react/hooks/__tests__/useCountOffersForCollectible.test.tsx +2 -2
  206. package/src/react/hooks/__tests__/useCurrency.test.tsx +5 -3
  207. package/src/react/hooks/__tests__/useCurrencyBalance.test.tsx +7 -3
  208. package/src/react/hooks/__tests__/useFilters.test.tsx +3 -3
  209. package/src/react/hooks/__tests__/useFloorOrder.test.tsx +4 -4
  210. package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +3 -3
  211. package/src/react/hooks/__tests__/useGenerateListingTransaction.test.tsx +1 -1
  212. package/src/react/hooks/__tests__/useGenerateOfferTransaction.test.tsx +1 -1
  213. package/src/react/hooks/__tests__/useGenerateSellTransaction.test.tsx +1 -1
  214. package/src/react/hooks/__tests__/useGetTokenRanges.test.tsx +111 -0
  215. package/src/react/hooks/__tests__/useHighestOffer.test.tsx +4 -4
  216. package/src/react/hooks/__tests__/useInventory.test.tsx +1 -1
  217. package/src/react/hooks/__tests__/useListCollectibleActivities.test.tsx +11 -13
  218. package/src/react/hooks/__tests__/useListCollectibles.test.tsx +5 -5
  219. package/src/react/hooks/__tests__/useListCollectiblesPaginated.test.tsx +10 -15
  220. package/src/react/hooks/__tests__/useListCollectionActivities.test.tsx +13 -15
  221. package/src/react/hooks/__tests__/useListCollections.test.tsx +3 -3
  222. package/src/react/hooks/__tests__/useListListingsForCollectible.test.tsx +3 -2
  223. package/src/react/hooks/__tests__/useListMarketCardData.test.tsx +301 -0
  224. package/src/react/hooks/__tests__/useListOffersForCollectible.test.tsx +1 -1
  225. package/src/react/hooks/__tests__/useListTokenMetadata.test.tsx +137 -0
  226. package/src/react/hooks/__tests__/useLowestListing.test.tsx +1 -1
  227. package/src/react/hooks/__tests__/useMarketCurrencies.test.tsx +1 -1
  228. package/src/react/hooks/__tests__/useRoyalty.test.tsx +0 -23
  229. package/src/react/hooks/__tests__/useTransferTokens.test.tsx +469 -0
  230. package/src/react/hooks/index.ts +29 -24
  231. package/src/react/hooks/options/index.ts +0 -1
  232. package/src/react/hooks/useAutoSelectFeeOption.tsx +1 -1
  233. package/src/react/hooks/useBalanceOfCollectible.tsx +1 -1
  234. package/src/react/hooks/useCancelTransactionSteps.tsx +2 -2
  235. package/src/react/hooks/useCheckoutOptions.tsx +84 -54
  236. package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +98 -57
  237. package/src/react/hooks/useCollectible.tsx +64 -49
  238. package/src/react/hooks/useCollection.tsx +60 -11
  239. package/src/react/hooks/useCollectionBalanceDetails.tsx +93 -73
  240. package/src/react/hooks/useCollectionDetails.ts +69 -0
  241. package/src/react/hooks/useCollectionDetailsPolling.tsx +7 -3
  242. package/src/react/hooks/useComparePrices.tsx +91 -86
  243. package/src/react/hooks/useConvertPriceToUSD.tsx +83 -86
  244. package/src/react/hooks/useCountListingsForCollectible.tsx +64 -53
  245. package/src/react/hooks/useCountOfCollectables.tsx +60 -69
  246. package/src/react/hooks/useCountOfPrimarySaleItems.tsx +13 -0
  247. package/src/react/hooks/useCountOffersForCollectible.tsx +64 -53
  248. package/src/react/hooks/useCurrency.tsx +56 -64
  249. package/src/react/hooks/useCurrencyBalance.tsx +132 -46
  250. package/src/react/hooks/useERC721SaleMintedTokens.tsx +8 -5
  251. package/src/react/hooks/useFilterState.tsx +1 -2
  252. package/src/react/hooks/useFilters.tsx +154 -111
  253. package/src/react/hooks/useFloorOrder.tsx +65 -40
  254. package/src/react/hooks/useGenerateCancelTransaction.tsx +5 -10
  255. package/src/react/hooks/useGenerateListingTransaction.tsx +1 -1
  256. package/src/react/hooks/useGenerateOfferTransaction.tsx +1 -1
  257. package/src/react/hooks/useGenerateSellTransaction.tsx +5 -10
  258. package/src/react/hooks/useGetCountOfPrimarySaleItems.tsx +48 -0
  259. package/src/react/hooks/useGetReceiptFromHash.tsx +32 -3
  260. package/src/react/hooks/useGetTokenRanges.tsx +92 -0
  261. package/src/react/hooks/useHighestOffer.tsx +68 -4
  262. package/src/react/hooks/useInventory.tsx +1 -1
  263. package/src/react/hooks/useList1155ShopCardData.tsx +57 -82
  264. package/src/react/hooks/useList721ShopCardData.tsx +98 -63
  265. package/src/react/hooks/useListBalances.tsx +1 -1
  266. package/src/react/hooks/useListCollectibleActivities.tsx +89 -50
  267. package/src/react/hooks/useListCollectibles.tsx +81 -16
  268. package/src/react/hooks/useListCollectiblesPaginated.tsx +96 -66
  269. package/src/react/hooks/useListCollectionActivities.tsx +84 -50
  270. package/src/react/hooks/useListCollections.tsx +71 -17
  271. package/src/react/hooks/useListListingsForCollectible.tsx +90 -50
  272. package/src/react/hooks/useListMarketCardData.tsx +3 -2
  273. package/src/react/hooks/useListOffersForCollectible.tsx +9 -14
  274. package/src/react/hooks/useListPrimarySaleItems.tsx +66 -0
  275. package/src/react/hooks/useListShopCardData.tsx +70 -0
  276. package/src/react/hooks/useListTokenMetadata.ts +64 -12
  277. package/src/react/hooks/useListTokenMetadata.tsx +73 -0
  278. package/src/react/hooks/useLowestListing.tsx +68 -4
  279. package/src/react/hooks/useMarketCurrencies.tsx +62 -5
  280. package/src/react/hooks/useOpenConnectModal.tsx +9 -0
  281. package/src/react/hooks/useRoyalty.tsx +57 -13
  282. package/src/react/hooks/useShopCollectibleSaleData.tsx +349 -0
  283. package/src/react/hooks/useTokenSaleDetailsBatch.tsx +3 -7
  284. package/src/react/hooks/useTokenSupplies.ts +81 -0
  285. package/src/react/hooks/useTransferTokens.tsx +2 -2
  286. package/src/react/hooks/util/optimisticCancelUpdates.ts +5 -7
  287. package/src/react/index.ts +5 -3
  288. package/src/react/provider.tsx +73 -9
  289. package/src/react/queries/__tests__/balanceOfCollectible.laos.test.ts +123 -0
  290. package/src/react/queries/__tests__/inventory.laos.test.ts +496 -0
  291. package/src/react/queries/balanceOfCollectible.ts +8 -5
  292. package/src/react/queries/checkoutOptions.ts +85 -0
  293. package/src/react/queries/checkoutOptionsSalesContract.ts +89 -0
  294. package/src/react/queries/collectible.ts +66 -0
  295. package/src/react/queries/collection.ts +55 -0
  296. package/src/react/queries/collectionBalanceDetails.ts +92 -0
  297. package/src/react/queries/collectionDetails.ts +64 -0
  298. package/src/react/queries/comparePrices.ts +108 -0
  299. package/src/react/queries/convertPriceToUSD.ts +92 -0
  300. package/src/react/queries/countListingsForCollectible.ts +73 -0
  301. package/src/react/queries/countOfCollectables.ts +83 -0
  302. package/src/react/queries/countOfPrimarySaleItems.ts +48 -0
  303. package/src/react/queries/countOffersForCollectible.ts +73 -0
  304. package/src/react/queries/currency.ts +83 -0
  305. package/src/react/queries/filters.ts +138 -0
  306. package/src/react/queries/floorOrder.ts +63 -0
  307. package/src/react/queries/getTokenRanges.ts +62 -0
  308. package/src/react/queries/highestOffer.ts +46 -40
  309. package/src/react/queries/index.ts +10 -4
  310. package/src/react/queries/inventory.ts +10 -4
  311. package/src/react/queries/listBalances.ts +5 -4
  312. package/src/react/queries/listCollectibleActivities.ts +97 -0
  313. package/src/react/queries/listCollectibles.ts +67 -50
  314. package/src/react/queries/listCollectiblesPaginated.ts +87 -0
  315. package/src/react/queries/listCollectionActivities.ts +95 -0
  316. package/src/react/queries/listCollections.ts +53 -10
  317. package/src/react/queries/listListingsForCollectible.ts +82 -0
  318. package/src/react/queries/listTokenMetadata.ts +47 -23
  319. package/src/react/queries/lowestListing.ts +46 -31
  320. package/src/react/queries/marketCurrencies.ts +42 -29
  321. package/src/react/queries/marketplaceConfig.ts +4 -4
  322. package/src/react/queries/primarySaleItems.ts +85 -0
  323. package/src/react/queries/primarySaleItemsCount.ts +64 -0
  324. package/src/react/queries/tokenSupplies.ts +93 -0
  325. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +12 -2
  326. package/src/react/ssr/create-ssr-client.ts +1 -1
  327. package/src/react/types/query.ts +34 -0
  328. package/src/react/ui/components/ModelViewer.tsx +1 -1
  329. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +66 -66
  330. package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +22 -4
  331. package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +14 -8
  332. package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +5 -4
  333. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +3 -0
  334. package/src/react/ui/components/_internals/action-button/components/OwnerActions.tsx +4 -4
  335. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +20 -18
  336. package/src/react/ui/components/_internals/action-button/store.ts +72 -34
  337. package/src/react/ui/components/_internals/custom-select/CustomSelect.stories.tsx +582 -0
  338. package/src/react/ui/components/_internals/pill/Pill.stories.tsx +83 -0
  339. package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +1 -1
  340. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +12 -5
  341. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +7 -4
  342. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +3 -0
  343. package/src/react/ui/components/marketplace-collectible-card/index.ts +1 -1
  344. package/src/react/ui/components/marketplace-collectible-card/types.ts +11 -7
  345. package/src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts +4 -7
  346. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +3 -2
  347. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +7 -6
  348. package/src/react/ui/components/marketplace-logos/marketplace-logos.stories.tsx +199 -0
  349. package/src/react/ui/components/marketplace-logos/marketplace-logos.tsx +1 -1
  350. package/src/react/ui/components/media/Media.stories.tsx +642 -0
  351. package/src/react/ui/components/media/Media.tsx +29 -20
  352. package/src/react/ui/components/media/types.ts +6 -0
  353. package/src/react/ui/index.ts +8 -10
  354. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +15 -0
  355. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +100 -87
  356. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +11 -5
  357. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +10 -2
  358. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +17 -11
  359. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +4 -1
  360. package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +1 -1
  361. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +30 -27
  362. package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +3 -3
  363. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +11 -2
  364. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +2 -2
  365. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +10 -3
  366. package/src/react/ui/modals/BuyModal/index.tsx +9 -1
  367. package/src/react/ui/modals/BuyModal/store.ts +26 -0
  368. package/src/react/ui/modals/CreateListingModal/Modal.tsx +28 -11
  369. package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +2 -2
  370. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +0 -1
  371. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +2 -2
  372. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +7 -6
  373. package/src/react/ui/modals/CreateListingModal/index.tsx +1 -1
  374. package/src/react/ui/modals/CreateListingModal/store.ts +3 -3
  375. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +31 -14
  376. package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +1 -1
  377. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +1 -1
  378. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +0 -1
  379. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +7 -7
  380. package/src/react/ui/modals/MakeOfferModal/index.tsx +1 -1
  381. package/src/react/ui/modals/MakeOfferModal/store.ts +3 -3
  382. package/src/react/ui/modals/SellModal/Modal.tsx +14 -11
  383. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +6 -4
  384. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +1 -1
  385. package/src/react/ui/modals/SellModal/hooks/useSell.tsx +0 -1
  386. package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +6 -6
  387. package/src/react/ui/modals/SellModal/store.ts +3 -3
  388. package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +1 -1
  389. package/src/react/ui/modals/TransferModal/__tests__/__snapshots__/store.test.ts.snap +17 -0
  390. package/src/react/ui/modals/TransferModal/__tests__/store.test.ts +366 -0
  391. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/__tests__/useHandleTransfer.test.tsx +402 -0
  392. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +52 -50
  393. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TransferButton.tsx +39 -47
  394. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/WalletAddressInput.tsx +9 -8
  395. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +33 -37
  396. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/useHandleTransfer.tsx +19 -10
  397. package/src/react/ui/modals/TransferModal/index.tsx +28 -31
  398. package/src/react/ui/modals/TransferModal/messages.ts +1 -1
  399. package/src/react/ui/modals/TransferModal/store.ts +122 -0
  400. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +1 -1
  401. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +2 -4
  402. package/src/react/ui/modals/_internal/components/calendar/index.tsx +0 -1
  403. package/src/react/ui/modals/_internal/components/currencyImage/index.tsx +10 -14
  404. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +6 -3
  405. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +23 -18
  406. package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +10 -10
  407. package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +6 -6
  408. package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +4 -4
  409. package/src/react/ui/modals/_internal/components/priceInput/__tests__/PriceInput.test.tsx +13 -5
  410. package/src/react/ui/modals/_internal/components/priceInput/index.tsx +41 -26
  411. package/src/react/ui/modals/_internal/components/quantityInput/__tests__/index.test.tsx +68 -59
  412. package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +23 -17
  413. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +340 -41
  414. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/_components/BalanceIndicator.tsx +1 -2
  415. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/index.tsx +95 -101
  416. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/store.ts +72 -14
  417. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +29 -14
  418. package/src/react/ui/modals/_internal/components/tokenPreview/index.tsx +2 -2
  419. package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +2 -2
  420. package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +88 -89
  421. package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +37 -11
  422. package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +0 -1
  423. package/src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx +32 -20
  424. package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +92 -63
  425. package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +44 -45
  426. package/src/react/ui/modals/_internal/types.ts +2 -2
  427. package/src/react/ui/modals/modal-provider.tsx +2 -3
  428. package/src/types/api-types.ts +36 -36
  429. package/src/types/buyModalErrors.ts +1 -1
  430. package/src/types/index.ts +5 -5
  431. package/src/types/new-marketplace-types.ts +1 -1
  432. package/src/types/sdk-config.ts +8 -2
  433. package/src/types/types.ts +1 -0
  434. package/src/types/waas-types.ts +1 -1
  435. package/src/utils/abi/index.ts +1 -1
  436. package/src/utils/abi/primary-sale/index.ts +1 -1
  437. package/src/utils/abi/token/index.ts +2 -1
  438. package/src/utils/decode/erc20.ts +1 -1
  439. package/src/utils/index.ts +3 -3
  440. package/src/utils/network.ts +15 -0
  441. package/test/const.ts +3 -1
  442. package/test/mocks/wallet.ts +1 -1
  443. package/test/test-utils.tsx +5 -4
  444. package/vitest.shims.d.ts +2 -0
  445. package/vitest.storybook.config.js +33 -0
  446. package/.changeset/fluffy-jokes-lay.md +0 -5
  447. package/.changeset/wise-bugs-boil.md +0 -8
  448. package/dist/CartIcon-Bll1rbxv.js.map +0 -1
  449. package/dist/CollectibleCard-CLQTl0_6.d.ts +0 -8
  450. package/dist/_internal-69NEWNUE.js +0 -34
  451. package/dist/_internal-69NEWNUE.js.map +0 -1
  452. package/dist/api-1KFxYh7o.js.map +0 -1
  453. package/dist/builder-api-DoK3907S.d.ts +0 -12
  454. package/dist/builder.gen-CxP9NT1p.js.map +0 -1
  455. package/dist/index-4-kfOFdx.d.ts +0 -22
  456. package/dist/index-BHiSG-Yi.d.ts +0 -312
  457. package/dist/index-BQW0PUkQ.d.ts +0 -3973
  458. package/dist/index-BfH21xmk.d.ts +0 -117
  459. package/dist/index-CN8puQQJ.d.ts +0 -24
  460. package/dist/index-DafWjEb4.d.ts +0 -65
  461. package/dist/marketplace.gen-Dqk8vRmD.js.map +0 -1
  462. package/dist/marketplaceConfig-D2MYFqll.js.map +0 -1
  463. package/dist/options-DCi6_23w.js +0 -34
  464. package/dist/options-DCi6_23w.js.map +0 -1
  465. package/dist/primary-sale-Cw95phYC.js.map +0 -1
  466. package/dist/queries-DPvwtnO7.js +0 -486
  467. package/dist/queries-DPvwtnO7.js.map +0 -1
  468. package/dist/react-BG7o4PId.js.map +0 -1
  469. package/dist/token-CO5llIla.js.map +0 -1
  470. package/dist/transaction-CcVViHEL.js.map +0 -1
  471. package/dist/types-DwWE6xOF.js.map +0 -1
  472. package/dist/useCollection-C-mclKU0.d.ts +0 -66
  473. package/dist/utils-BFdxaToy.js.map +0 -1
  474. package/dist/utils-Cat9_pef.js.map +0 -1
  475. package/dist/wagmi-DRctYEk6.js.map +0 -1
  476. package/src/react/_internal/api/zod-schema.ts +0 -678
  477. package/src/react/hooks/options/collectionOptions.ts +0 -41
  478. package/src/react/hooks/useCollectionDetails.tsx +0 -50
  479. package/src/react/hooks/useGetTokenSuppliesMap.ts +0 -33
  480. package/src/react/hooks/useListPrimarySaleItems.ts +0 -42
  481. package/src/react/queries/getTokenSupplies.ts +0 -38
  482. package/src/react/ui/modals/TransferModal/_store.ts +0 -72
  483. package/src/react/ui/modals/_internal/stores/accountModal.ts +0 -3
  484. package/tsconfig.tsbuildinfo +0 -1
  485. /package/dist/{abi-BKyRjVcZ.js → abi-BMvgNbKQ.js} +0 -0
  486. /package/dist/{index-C39K_8SG.d.ts → index-CD2bj_xW.d.ts} +0 -0
  487. /package/dist/{index-ij9f8GAA.d.ts → index-DvpBZgor.d.ts} +0 -0
@@ -0,0 +1,97 @@
1
+ import { queryOptions } from '@tanstack/react-query';
2
+ import type { Address } from 'viem';
3
+ import type { Page, SdkConfig } from '../../types';
4
+ import type {
5
+ ListCollectibleActivitiesArgs,
6
+ ListCollectibleActivitiesReturn,
7
+ SortBy,
8
+ ValuesOptional,
9
+ } from '../_internal';
10
+ import { collectableKeys, getMarketplaceClient } from '../_internal';
11
+ import type { StandardQueryOptions } from '../types/query';
12
+
13
+ export interface FetchListCollectibleActivitiesParams
14
+ extends Omit<
15
+ ListCollectibleActivitiesArgs,
16
+ 'chainId' | 'contractAddress' | 'page'
17
+ > {
18
+ chainId: number;
19
+ collectionAddress: Address;
20
+ page?: number;
21
+ pageSize?: number;
22
+ sort?: SortBy[];
23
+ config: SdkConfig;
24
+ }
25
+
26
+ /**
27
+ * Fetches collectible activities from the Marketplace API
28
+ */
29
+ export async function fetchListCollectibleActivities(
30
+ params: FetchListCollectibleActivitiesParams,
31
+ ): Promise<ListCollectibleActivitiesReturn> {
32
+ const {
33
+ collectionAddress,
34
+ chainId,
35
+ config,
36
+ page,
37
+ pageSize,
38
+ sort,
39
+ ...additionalApiParams
40
+ } = params;
41
+ const marketplaceClient = getMarketplaceClient(config);
42
+
43
+ const pageParams: Page | undefined =
44
+ page || pageSize || sort
45
+ ? {
46
+ page: page ?? 1,
47
+ pageSize: pageSize ?? 10,
48
+ sort,
49
+ }
50
+ : undefined;
51
+
52
+ const apiArgs: ListCollectibleActivitiesArgs = {
53
+ contractAddress: collectionAddress,
54
+ chainId: String(chainId),
55
+ page: pageParams,
56
+ ...additionalApiParams,
57
+ };
58
+
59
+ return await marketplaceClient.listCollectibleActivities(apiArgs);
60
+ }
61
+
62
+ export type ListCollectibleActivitiesQueryOptions =
63
+ ValuesOptional<FetchListCollectibleActivitiesParams> & {
64
+ query?: StandardQueryOptions;
65
+ };
66
+
67
+ export function listCollectibleActivitiesQueryOptions(
68
+ params: ListCollectibleActivitiesQueryOptions,
69
+ ) {
70
+ const enabled = Boolean(
71
+ params.collectionAddress &&
72
+ params.chainId &&
73
+ params.tokenId &&
74
+ params.config &&
75
+ (params.query?.enabled ?? true),
76
+ );
77
+
78
+ return queryOptions({
79
+ queryKey: [...collectableKeys.collectibleActivities, params],
80
+ queryFn: () =>
81
+ fetchListCollectibleActivities({
82
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
83
+ chainId: params.chainId!,
84
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
85
+ collectionAddress: params.collectionAddress!,
86
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
87
+ config: params.config!,
88
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
89
+ tokenId: params.tokenId!,
90
+ page: params.page,
91
+ pageSize: params.pageSize,
92
+ sort: params.sort,
93
+ }),
94
+ ...params.query,
95
+ enabled,
96
+ });
97
+ }
@@ -1,62 +1,54 @@
1
1
  import { infiniteQueryOptions } from '@tanstack/react-query';
2
- import type { Address, Hex } from 'viem';
2
+ import type { Address } from 'viem';
3
3
  import type { MarketplaceConfig, Page, SdkConfig } from '../../types';
4
4
  import type { MarketplaceType } from '../../types/types';
5
5
  import { compareAddress } from '../../utils';
6
6
  import type {
7
- CollectiblesFilter,
8
7
  ListCollectiblesArgs,
9
8
  ListCollectiblesReturn,
9
+ ValuesOptional,
10
10
  } from '../_internal';
11
11
  import {
12
12
  type CollectibleOrder,
13
- OrderSide,
14
13
  collectableKeys,
15
14
  getMarketplaceClient,
15
+ OrderSide,
16
16
  } from '../_internal';
17
17
  import { fetchMarketplaceConfig } from '../queries/marketplaceConfig';
18
- import { type UseListBalancesArgs, fetchBalances } from './listBalances';
18
+ import type { StandardInfiniteQueryOptions } from '../types/query';
19
+ import { fetchBalances, type UseListBalancesArgs } from './listBalances';
19
20
 
20
- export type UseListCollectiblesArgs = {
21
- collectionAddress: Hex;
21
+ export interface FetchListCollectiblesParams
22
+ extends Omit<ListCollectiblesArgs, 'chainId' | 'contractAddress'> {
22
23
  chainId: number;
23
- side: OrderSide;
24
- filter?: CollectiblesFilter;
24
+ collectionAddress: Address;
25
25
  isLaos721?: boolean;
26
26
  marketplaceType?: MarketplaceType;
27
- query?: {
28
- enabled?: boolean;
29
- };
30
- };
27
+ config: SdkConfig;
28
+ }
31
29
 
32
30
  /**
33
- * Fetches a list of collectibles with pagination support
34
- *
35
- * @param args - Arguments for the API call
36
- * @param config - SDK configuration
37
- * @param page - Page parameters for pagination
38
- * @returns The collectibles data
31
+ * Fetches a list of collectibles with pagination support from the Marketplace API
39
32
  */
40
- export async function fetchCollectibles(
41
- args: UseListCollectiblesArgs,
42
- config: SdkConfig,
33
+ export async function fetchListCollectibles(
34
+ params: FetchListCollectiblesParams,
43
35
  marketplaceConfig: MarketplaceConfig,
44
36
  page: Page,
45
37
  ): Promise<ListCollectiblesReturn> {
38
+ const { collectionAddress, chainId, config, ...additionalApiParams } = params;
46
39
  const marketplaceClient = getMarketplaceClient(config);
47
- const { chainId, collectionAddress, ...restArgs } = args;
48
- const parsedArgs = {
49
- ...restArgs,
50
- chainId: String(chainId),
40
+
41
+ const apiArgs: ListCollectiblesArgs = {
51
42
  contractAddress: collectionAddress,
43
+ chainId: String(chainId),
52
44
  page: page,
53
- side: args.side,
54
- } satisfies ListCollectiblesArgs;
45
+ ...additionalApiParams,
46
+ };
55
47
 
56
- if (args.marketplaceType === 'shop') {
48
+ if (params.marketplaceType === 'shop') {
57
49
  const shopCollection = marketplaceConfig.shop.collections.find(
58
50
  (collection) =>
59
- compareAddress(collection.itemsAddress, args.collectionAddress),
51
+ compareAddress(collection.itemsAddress, params.collectionAddress),
60
52
  );
61
53
 
62
54
  if (!shopCollection) {
@@ -65,7 +57,7 @@ export async function fetchCollectibles(
65
57
 
66
58
  const primarySaleItemsList = await marketplaceClient.listPrimarySaleItems(
67
59
  {
68
- chainId: args.chainId.toString(),
60
+ chainId: params.chainId.toString(),
69
61
  primarySaleContractAddress: shopCollection.saleAddress as Address,
70
62
  },
71
63
  marketplaceConfig,
@@ -83,19 +75,19 @@ export async function fetchCollectibles(
83
75
  },
84
76
  startDate: item.primarySaleItem.startDate,
85
77
  endDate: item.primarySaleItem.endDate,
86
- supplyCap: item.primarySaleItem.supplyCap,
78
+ supplyCap: item.primarySaleItem.supply,
87
79
  itemType: item.primarySaleItem.itemType,
88
80
  },
89
81
  })),
90
82
  };
91
83
  }
92
84
 
93
- if (args.isLaos721 && args.side === OrderSide.listing) {
85
+ if (params.isLaos721 && params.side === OrderSide.listing) {
94
86
  try {
95
87
  const fetchBalancesArgs = {
96
- chainId: args.chainId,
97
- accountAddress: args.filter?.inAccounts?.[0] as Address,
98
- contractAddress: args.collectionAddress,
88
+ chainId: params.chainId,
89
+ accountAddress: params.filter?.inAccounts?.[0] as Address,
90
+ contractAddress: params.collectionAddress,
99
91
  page: page,
100
92
  includeMetadata: true,
101
93
  isLaos721: true,
@@ -130,29 +122,54 @@ export async function fetchCollectibles(
130
122
  }
131
123
  }
132
124
 
133
- return await marketplaceClient.listCollectibles(parsedArgs);
125
+ return await marketplaceClient.listCollectibles(apiArgs);
134
126
  }
135
127
 
136
- /**
137
- * Creates a tanstack infinite query options object for the collectibles query
138
- *
139
- * @param args - The query arguments
140
- * @param config - SDK configuration
141
- * @returns Query options configuration
142
- */
143
- export function listCollectiblesOptions(
144
- args: UseListCollectiblesArgs,
145
- config: SdkConfig,
128
+ export type ListCollectiblesQueryOptions =
129
+ ValuesOptional<FetchListCollectiblesParams> & {
130
+ query?: StandardInfiniteQueryOptions;
131
+ };
132
+
133
+ export function listCollectiblesQueryOptions(
134
+ params: ListCollectiblesQueryOptions,
146
135
  ) {
136
+ const enabled = Boolean(
137
+ params.collectionAddress &&
138
+ params.chainId &&
139
+ params.side &&
140
+ params.config &&
141
+ (params.query?.enabled ?? true),
142
+ );
143
+
147
144
  return infiniteQueryOptions({
148
- ...args.query,
149
- queryKey: [...collectableKeys.lists, args, config],
145
+ queryKey: [...collectableKeys.lists, params],
150
146
  queryFn: async ({ pageParam }) => {
151
- const marketplaceConfig = await fetchMarketplaceConfig({ config });
152
- return fetchCollectibles(args, config, marketplaceConfig, pageParam);
147
+ const marketplaceConfig = await fetchMarketplaceConfig({
148
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
149
+ config: params.config!,
150
+ });
151
+ return fetchListCollectibles(
152
+ {
153
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
154
+ chainId: params.chainId!,
155
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
156
+ collectionAddress: params.collectionAddress!,
157
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
158
+ config: params.config!,
159
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
160
+ side: params.side!,
161
+ filter: params.filter,
162
+ isLaos721: params.isLaos721,
163
+ marketplaceType: params.marketplaceType,
164
+ },
165
+ marketplaceConfig,
166
+ pageParam,
167
+ );
153
168
  },
154
169
  initialPageParam: { page: 1, pageSize: 30 } as Page,
155
170
  getNextPageParam: (lastPage) =>
156
171
  lastPage.page?.more ? lastPage.page : undefined,
172
+ ...params.query,
173
+ enabled,
157
174
  });
158
175
  }
@@ -0,0 +1,87 @@
1
+ import { queryOptions } from '@tanstack/react-query';
2
+ import type { Address } from 'viem';
3
+ import type { Page, SdkConfig } from '../../types';
4
+ import type {
5
+ ListCollectiblesArgs,
6
+ ListCollectiblesReturn,
7
+ ValuesOptional,
8
+ } from '../_internal';
9
+ import { collectableKeys, getMarketplaceClient } from '../_internal';
10
+ import type { StandardQueryOptions } from '../types/query';
11
+
12
+ export interface FetchListCollectiblesPaginatedParams
13
+ extends Omit<ListCollectiblesArgs, 'chainId' | 'contractAddress' | 'page'> {
14
+ chainId: number;
15
+ collectionAddress: Address;
16
+ page?: number;
17
+ pageSize?: number;
18
+ config: SdkConfig;
19
+ }
20
+
21
+ /**
22
+ * Fetches a list of collectibles with pagination support from the Marketplace API
23
+ */
24
+ export async function fetchListCollectiblesPaginated(
25
+ params: FetchListCollectiblesPaginatedParams,
26
+ ): Promise<ListCollectiblesReturn> {
27
+ const {
28
+ collectionAddress,
29
+ chainId,
30
+ config,
31
+ page = 1,
32
+ pageSize = 30,
33
+ ...additionalApiParams
34
+ } = params;
35
+ const marketplaceClient = getMarketplaceClient(config);
36
+
37
+ const pageParams: Page = {
38
+ page,
39
+ pageSize,
40
+ };
41
+
42
+ const apiArgs: ListCollectiblesArgs = {
43
+ contractAddress: collectionAddress,
44
+ chainId: String(chainId),
45
+ page: pageParams,
46
+ ...additionalApiParams,
47
+ };
48
+
49
+ return await marketplaceClient.listCollectibles(apiArgs);
50
+ }
51
+
52
+ export type ListCollectiblesPaginatedQueryOptions =
53
+ ValuesOptional<FetchListCollectiblesPaginatedParams> & {
54
+ query?: StandardQueryOptions;
55
+ };
56
+
57
+ export function listCollectiblesPaginatedQueryOptions(
58
+ params: ListCollectiblesPaginatedQueryOptions,
59
+ ) {
60
+ const enabled = Boolean(
61
+ params.collectionAddress &&
62
+ params.chainId &&
63
+ params.side &&
64
+ params.config &&
65
+ (params.query?.enabled ?? true),
66
+ );
67
+
68
+ return queryOptions({
69
+ queryKey: [...collectableKeys.lists, 'paginated', params],
70
+ queryFn: () =>
71
+ fetchListCollectiblesPaginated({
72
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
73
+ chainId: params.chainId!,
74
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
75
+ collectionAddress: params.collectionAddress!,
76
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
77
+ config: params.config!,
78
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
79
+ side: params.side!,
80
+ filter: params.filter,
81
+ page: params.page,
82
+ pageSize: params.pageSize,
83
+ }),
84
+ ...params.query,
85
+ enabled,
86
+ });
87
+ }
@@ -0,0 +1,95 @@
1
+ import { queryOptions } from '@tanstack/react-query';
2
+ import type { Address } from 'viem';
3
+ import type { Page, SdkConfig } from '../../types';
4
+ import type {
5
+ ListCollectionActivitiesArgs,
6
+ ListCollectionActivitiesReturn,
7
+ SortBy,
8
+ ValuesOptional,
9
+ } from '../_internal';
10
+ import { getMarketplaceClient } from '../_internal';
11
+ import { collectionKeys } from '../_internal/api';
12
+ import type { StandardQueryOptions } from '../types/query';
13
+
14
+ export interface FetchListCollectionActivitiesParams
15
+ extends Omit<
16
+ ListCollectionActivitiesArgs,
17
+ 'chainId' | 'contractAddress' | 'page'
18
+ > {
19
+ chainId: number;
20
+ collectionAddress: Address;
21
+ page?: number;
22
+ pageSize?: number;
23
+ sort?: SortBy[];
24
+ config: SdkConfig;
25
+ }
26
+
27
+ /**
28
+ * Fetches collection activities from the Marketplace API
29
+ */
30
+ export async function fetchListCollectionActivities(
31
+ params: FetchListCollectionActivitiesParams,
32
+ ): Promise<ListCollectionActivitiesReturn> {
33
+ const {
34
+ collectionAddress,
35
+ chainId,
36
+ config,
37
+ page,
38
+ pageSize,
39
+ sort,
40
+ ...additionalApiParams
41
+ } = params;
42
+ const marketplaceClient = getMarketplaceClient(config);
43
+
44
+ const pageParams: Page | undefined =
45
+ page || pageSize || sort
46
+ ? {
47
+ page: page ?? 1,
48
+ pageSize: pageSize ?? 10,
49
+ sort,
50
+ }
51
+ : undefined;
52
+
53
+ const apiArgs: ListCollectionActivitiesArgs = {
54
+ contractAddress: collectionAddress,
55
+ chainId: String(chainId),
56
+ page: pageParams,
57
+ ...additionalApiParams,
58
+ };
59
+
60
+ return await marketplaceClient.listCollectionActivities(apiArgs);
61
+ }
62
+
63
+ export type ListCollectionActivitiesQueryOptions =
64
+ ValuesOptional<FetchListCollectionActivitiesParams> & {
65
+ query?: StandardQueryOptions;
66
+ };
67
+
68
+ export function listCollectionActivitiesQueryOptions(
69
+ params: ListCollectionActivitiesQueryOptions,
70
+ ) {
71
+ const enabled = Boolean(
72
+ params.collectionAddress &&
73
+ params.chainId &&
74
+ params.config &&
75
+ (params.query?.enabled ?? true),
76
+ );
77
+
78
+ return queryOptions({
79
+ queryKey: [...collectionKeys.collectionActivities, params],
80
+ queryFn: () =>
81
+ fetchListCollectionActivities({
82
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
83
+ chainId: params.chainId!,
84
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
85
+ collectionAddress: params.collectionAddress!,
86
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
87
+ config: params.config!,
88
+ page: params.page,
89
+ pageSize: params.pageSize,
90
+ sort: params.sort,
91
+ }),
92
+ ...params.query,
93
+ enabled,
94
+ });
95
+ }
@@ -7,7 +7,12 @@ import type {
7
7
  ShopCollection,
8
8
  } from '../../types/new-marketplace-types';
9
9
  import { compareAddress } from '../../utils';
10
- import { collectionKeys, getMetadataClient } from '../_internal';
10
+ import {
11
+ collectionKeys,
12
+ getMetadataClient,
13
+ type ValuesOptional,
14
+ } from '../_internal';
15
+ import type { StandardQueryOptions } from '../types/query';
11
16
 
12
17
  const allCollections = (marketplaceConfig: MarketplaceConfig) => {
13
18
  return [
@@ -16,15 +21,17 @@ const allCollections = (marketplaceConfig: MarketplaceConfig) => {
16
21
  ];
17
22
  };
18
23
 
19
- const fetchListCollections = async ({
20
- marketplaceType,
21
- marketplaceConfig,
22
- config,
23
- }: {
24
+ export interface FetchListCollectionsParams {
24
25
  marketplaceType?: MarketplaceType;
25
26
  marketplaceConfig: MarketplaceConfig;
26
27
  config: SdkConfig;
27
- }) => {
28
+ }
29
+
30
+ /**
31
+ * Fetches collections from the metadata API with marketplace config filtering
32
+ */
33
+ export async function fetchListCollections(params: FetchListCollectionsParams) {
34
+ const { marketplaceType, marketplaceConfig, config } = params;
28
35
  const metadataClient = getMetadataClient(config);
29
36
 
30
37
  let collections = allCollections(marketplaceConfig);
@@ -99,8 +106,40 @@ const fetchListCollections = async ({
99
106
  }));
100
107
 
101
108
  return collectionsWithMetadata;
102
- };
109
+ }
110
+
111
+ export type ListCollectionsQueryOptions =
112
+ ValuesOptional<FetchListCollectionsParams> & {
113
+ query?: StandardQueryOptions;
114
+ };
115
+
116
+ export function listCollectionsQueryOptions(
117
+ params: ListCollectionsQueryOptions,
118
+ ) {
119
+ const enabled = Boolean(
120
+ params.marketplaceConfig &&
121
+ params.config &&
122
+ (params.query?.enabled ?? true),
123
+ );
103
124
 
125
+ return queryOptions({
126
+ queryKey: [...collectionKeys.list, params],
127
+ queryFn: enabled
128
+ ? () =>
129
+ fetchListCollections({
130
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
131
+ marketplaceConfig: params.marketplaceConfig!,
132
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
133
+ config: params.config!,
134
+ marketplaceType: params.marketplaceType,
135
+ })
136
+ : skipToken,
137
+ ...params.query,
138
+ enabled,
139
+ });
140
+ }
141
+
142
+ // Keep old function for backward compatibility during migration
104
143
  export const listCollectionsOptions = ({
105
144
  marketplaceType,
106
145
  marketplaceConfig,
@@ -111,14 +150,18 @@ export const listCollectionsOptions = ({
111
150
  config: SdkConfig;
112
151
  }) => {
113
152
  return queryOptions({
114
- queryKey: [...collectionKeys.list, marketplaceType],
153
+ queryKey: [
154
+ ...collectionKeys.list,
155
+ { marketplaceType, marketplaceConfig, config },
156
+ ],
115
157
  queryFn: marketplaceConfig
116
158
  ? () =>
117
159
  fetchListCollections({
118
- marketplaceType,
119
160
  marketplaceConfig,
120
161
  config,
162
+ marketplaceType,
121
163
  })
122
164
  : skipToken,
165
+ enabled: Boolean(marketplaceConfig),
123
166
  });
124
167
  };
@@ -0,0 +1,82 @@
1
+ import { queryOptions } from '@tanstack/react-query';
2
+ import type { Address } from 'viem';
3
+ import type { SdkConfig } from '../../types';
4
+ import type {
5
+ ListCollectibleListingsArgs,
6
+ ListCollectibleListingsReturn,
7
+ ValuesOptional,
8
+ } from '../_internal';
9
+ import { collectableKeys, getMarketplaceClient } from '../_internal';
10
+ import type { StandardQueryOptions } from '../types/query';
11
+
12
+ export interface FetchListListingsForCollectibleParams
13
+ extends Omit<
14
+ ListCollectibleListingsArgs,
15
+ 'chainId' | 'contractAddress' | 'tokenId'
16
+ > {
17
+ chainId: number;
18
+ collectionAddress: Address;
19
+ collectibleId: string;
20
+ config: SdkConfig;
21
+ }
22
+
23
+ /**
24
+ * Fetches listings for a specific collectible from the Marketplace API
25
+ */
26
+ export async function fetchListListingsForCollectible(
27
+ params: FetchListListingsForCollectibleParams,
28
+ ): Promise<ListCollectibleListingsReturn> {
29
+ const {
30
+ collectionAddress,
31
+ chainId,
32
+ collectibleId,
33
+ config,
34
+ ...additionalApiParams
35
+ } = params;
36
+ const marketplaceClient = getMarketplaceClient(config);
37
+
38
+ const apiArgs: ListCollectibleListingsArgs = {
39
+ contractAddress: collectionAddress,
40
+ chainId: String(chainId),
41
+ tokenId: collectibleId,
42
+ ...additionalApiParams,
43
+ };
44
+
45
+ return await marketplaceClient.listCollectibleListings(apiArgs);
46
+ }
47
+
48
+ export type ListListingsForCollectibleQueryOptions =
49
+ ValuesOptional<FetchListListingsForCollectibleParams> & {
50
+ query?: StandardQueryOptions;
51
+ };
52
+
53
+ export function listListingsForCollectibleQueryOptions(
54
+ params: ListListingsForCollectibleQueryOptions,
55
+ ) {
56
+ const enabled = Boolean(
57
+ params.collectionAddress &&
58
+ params.chainId &&
59
+ params.collectibleId &&
60
+ params.config &&
61
+ (params.query?.enabled ?? true),
62
+ );
63
+
64
+ return queryOptions({
65
+ queryKey: [...collectableKeys.listings, params],
66
+ queryFn: () =>
67
+ fetchListListingsForCollectible({
68
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
69
+ chainId: params.chainId!,
70
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
71
+ collectionAddress: params.collectionAddress!,
72
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
73
+ collectibleId: params.collectibleId!,
74
+ // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
75
+ config: params.config!,
76
+ filter: params.filter,
77
+ page: params.page,
78
+ }),
79
+ ...params.query,
80
+ enabled,
81
+ });
82
+ }