@0xsequence/marketplace-sdk 0.8.11 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/CHANGELOG.md +236 -2
  2. package/dist/CalendarIcon-DbQ7Vxcw.js +141 -0
  3. package/dist/CalendarIcon-DbQ7Vxcw.js.map +1 -0
  4. package/dist/CollectibleCard-C8Ae64Ab.d.ts +71 -0
  5. package/dist/_internal-BgWcRIak.js +22 -0
  6. package/dist/_internal-BgWcRIak.js.map +1 -0
  7. package/dist/abi-BKyRjVcZ.js +0 -0
  8. package/dist/{alien_swap-2B65TDGT.js → alien_swap-B_76IMma.js} +5 -5
  9. package/dist/alien_swap-B_76IMma.js.map +1 -0
  10. package/dist/api-DTIan01C.js +241 -0
  11. package/dist/api-DTIan01C.js.map +1 -0
  12. package/dist/{aqua-xyz-WMYQLAIS.js → aqua-xyz-CMN_TFY5.js} +5 -5
  13. package/dist/aqua-xyz-CMN_TFY5.js.map +1 -0
  14. package/dist/{aura-V22RV5OG.js → aura-Cye_TuHj.js} +5 -5
  15. package/dist/aura-Cye_TuHj.js.map +1 -0
  16. package/dist/{blur-GE5QOMCM.js → blur-DWDMyMpK.js} +5 -5
  17. package/dist/blur-DWDMyMpK.js.map +1 -0
  18. package/dist/builder-api-BFuZNOaN.js +28 -0
  19. package/dist/builder-api-BFuZNOaN.js.map +1 -0
  20. package/dist/builder-api-C_zj5mr3.d.ts +12 -0
  21. package/dist/builder.gen-B9wR2nvF.js +303 -0
  22. package/dist/builder.gen-B9wR2nvF.js.map +1 -0
  23. package/dist/{coinbase-NLHJMGAP.js → coinbase-ByA_XRB0.js} +5 -5
  24. package/dist/coinbase-ByA_XRB0.js.map +1 -0
  25. package/dist/{element-2LGTYYSP.js → element-b77CyXIZ.js} +5 -5
  26. package/dist/element-b77CyXIZ.js.map +1 -0
  27. package/dist/{foundation-BPN66ZTN.js → foundation-DbOrKP9Y.js} +5 -5
  28. package/dist/foundation-DbOrKP9Y.js.map +1 -0
  29. package/dist/index-21LE7OhL.d.ts +102 -0
  30. package/dist/index-BL9RUSEK.d.ts +1803 -0
  31. package/dist/index-BQsgAvtX.d.ts +2938 -0
  32. package/dist/index-BUVWziLP.d.ts +60 -0
  33. package/dist/index-ByznONYE.d.ts +187 -0
  34. package/dist/index-C39K_8SG.d.ts +1 -0
  35. package/dist/index-CLy8y5hm.d.ts +1057 -0
  36. package/dist/index-COt10OgI.d.ts +24 -0
  37. package/dist/index-D5v5iluA.d.ts +809 -0
  38. package/dist/index-DPNWNa7t.d.ts +414 -0
  39. package/dist/index-DXMfTZ1F.d.ts +7 -0
  40. package/dist/index-DaE5ZNHb.d.ts +24 -0
  41. package/dist/index-DsfCs3-x.d.ts +122 -0
  42. package/dist/index-DvpBZgor.d.ts +1 -0
  43. package/dist/index-dUb6wb4Y.d.ts +22 -0
  44. package/dist/index.css +397 -371
  45. package/dist/index.d.ts +10 -29
  46. package/dist/index.js +13 -104
  47. package/dist/{looks-rare-MZRSOPT4.js → looks-rare-C1VqNcSM.js} +5 -5
  48. package/dist/looks-rare-C1VqNcSM.js.map +1 -0
  49. package/dist/{magic-eden-PUBL6KWW.js → magic-eden-ea_AGCZr.js} +5 -5
  50. package/dist/magic-eden-ea_AGCZr.js.map +1 -0
  51. package/dist/{manifold-GA445YJ6.js → manifold-8y8J2sjT.js} +5 -5
  52. package/dist/manifold-8y8J2sjT.js.map +1 -0
  53. package/dist/marketplace-logos-CSeGcPW4.js +50 -0
  54. package/dist/marketplace-logos-CSeGcPW4.js.map +1 -0
  55. package/dist/marketplace-nwnZv9Cb.js +1913 -0
  56. package/dist/marketplace-nwnZv9Cb.js.map +1 -0
  57. package/dist/marketplace.gen-BSDIX7NZ.js +1077 -0
  58. package/dist/marketplace.gen-BSDIX7NZ.js.map +1 -0
  59. package/dist/marketplaceConfig-C6X1SUik.js +71 -0
  60. package/dist/marketplaceConfig-C6X1SUik.js.map +1 -0
  61. package/dist/{mintify-UMC5PTKC.js → mintify-LA68TzWg.js} +5 -5
  62. package/dist/mintify-LA68TzWg.js.map +1 -0
  63. package/dist/new-marketplace-types-Bfis0U4J.d.ts +1546 -0
  64. package/dist/{nftx-AX3CY3IE.js → nftx-D3Tc8nzd.js} +5 -5
  65. package/dist/nftx-D3Tc8nzd.js.map +1 -0
  66. package/dist/{okx-GNVLAE2R.js → okx-hbqg6oIJ.js} +5 -5
  67. package/dist/okx-hbqg6oIJ.js.map +1 -0
  68. package/dist/{open-sea-KI43GVEB.js → open-sea-BccuK8-t.js} +5 -5
  69. package/dist/open-sea-BccuK8-t.js.map +1 -0
  70. package/dist/options-B4QN7Xou.js +0 -0
  71. package/dist/primary-sale-C55ALnfQ.js +1264 -0
  72. package/dist/primary-sale-C55ALnfQ.js.map +1 -0
  73. package/dist/queries-CUU65uYZ.js +599 -0
  74. package/dist/queries-CUU65uYZ.js.map +1 -0
  75. package/dist/{rarible-2J3MMZJ7.js → rarible-BgTwwj9g.js} +5 -5
  76. package/dist/rarible-BgTwwj9g.js.map +1 -0
  77. package/dist/react/_internal/api/index.d.ts +4 -86
  78. package/dist/react/_internal/api/index.js +7 -150
  79. package/dist/react/_internal/databeat/index.d.ts +45 -41
  80. package/dist/react/_internal/databeat/index.js +23 -27
  81. package/dist/react/_internal/index.d.ts +7 -76
  82. package/dist/react/_internal/index.js +9 -176
  83. package/dist/react/_internal/wagmi/index.d.ts +4 -17
  84. package/dist/react/_internal/wagmi/index.js +5 -14
  85. package/dist/react/hooks/index.d.ts +18 -3652
  86. package/dist/react/hooks/index.js +23 -153
  87. package/dist/react/hooks/options/index.d.ts +4 -8
  88. package/dist/react/hooks/options/index.js +11 -21
  89. package/dist/react/index.d.ts +18 -36
  90. package/dist/react/index.js +23 -193
  91. package/dist/react/queries/index.d.ts +8 -26
  92. package/dist/react/queries/index.js +18 -51
  93. package/dist/react/ssr/index.d.ts +19 -13
  94. package/dist/react/ssr/index.js +29 -28
  95. package/dist/react/ssr/index.js.map +1 -1
  96. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +9 -0
  97. package/dist/react/ui/components/marketplace-collectible-card/index.js +23 -0
  98. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +8 -0
  99. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +10 -0
  100. package/dist/react/ui/components/marketplace-logos/index.d.ts +26 -24
  101. package/dist/react/ui/components/marketplace-logos/index.js +3 -45
  102. package/dist/react/ui/icons/index.d.ts +1 -2
  103. package/dist/react/ui/icons/index.js +10 -14
  104. package/dist/react/ui/index.d.ts +9 -116
  105. package/dist/react/ui/index.js +23 -41
  106. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +59 -33
  107. package/dist/react/ui/modals/_internal/components/actionModal/index.js +23 -31
  108. package/dist/react-BbHBl6gg.css +80 -0
  109. package/dist/react-BbHBl6gg.css.map +1 -0
  110. package/dist/react-DAIicQPT.js +8938 -0
  111. package/dist/react-DAIicQPT.js.map +1 -0
  112. package/dist/{sequence-TGLUFEPQ.js → sequence-Do3kzb4J.js} +5 -5
  113. package/dist/sequence-Do3kzb4J.js.map +1 -0
  114. package/dist/src-Dz2CfBL0.js +8 -0
  115. package/dist/src-Dz2CfBL0.js.map +1 -0
  116. package/dist/{sudo-swap-M2O6E3TE.js → sudo-swap-B6vPKxBz.js} +5 -5
  117. package/dist/sudo-swap-B6vPKxBz.js.map +1 -0
  118. package/dist/{super-rare-UU2U4LIN.js → super-rare-eCm1SE6O.js} +5 -5
  119. package/dist/super-rare-eCm1SE6O.js.map +1 -0
  120. package/dist/token-Da4TdyUk.js +2091 -0
  121. package/dist/token-Da4TdyUk.js.map +1 -0
  122. package/dist/transaction-CcVViHEL.js +97 -0
  123. package/dist/transaction-CcVViHEL.js.map +1 -0
  124. package/dist/types/index.d.ts +3 -13
  125. package/dist/types/index.js +5 -44
  126. package/dist/types-DwWE6xOF.js +13 -0
  127. package/dist/types-DwWE6xOF.js.map +1 -0
  128. package/dist/utils/abi/index.d.ts +5 -3
  129. package/dist/utils/abi/index.js +6 -26
  130. package/dist/utils/abi/marketplace/index.d.ts +2 -805
  131. package/dist/utils/abi/marketplace/index.js +3 -11
  132. package/dist/utils/abi/primary-sale/index.d.ts +2 -1054
  133. package/dist/utils/abi/primary-sale/index.js +3 -9
  134. package/dist/utils/abi/token/index.d.ts +2 -1125
  135. package/dist/utils/abi/token/index.js +3 -11
  136. package/dist/utils/index.d.ts +8 -91
  137. package/dist/utils/index.js +11 -57
  138. package/dist/utils-BPYfgDSL.js +44 -0
  139. package/dist/utils-BPYfgDSL.js.map +1 -0
  140. package/dist/utils-CW2NA5KG.js +216 -0
  141. package/dist/utils-CW2NA5KG.js.map +1 -0
  142. package/dist/wagmi-CDzEQbfk.js +166 -0
  143. package/dist/wagmi-CDzEQbfk.js.map +1 -0
  144. package/dist/{x2y2-3W5BBMZC.js → x2y2-DD17tT91.js} +5 -5
  145. package/dist/x2y2-DD17tT91.js.map +1 -0
  146. package/dist/{zora-6EY6FUH6.js → zora-BpSG9UzS.js} +5 -5
  147. package/dist/zora-BpSG9UzS.js.map +1 -0
  148. package/eslint/use-client.js +0 -6
  149. package/package.json +36 -35
  150. package/src/index.ts +1 -2
  151. package/src/react/_internal/api/__mocks__/builder.msw.ts +5 -3
  152. package/src/react/_internal/api/__mocks__/indexer.msw.ts +9 -8
  153. package/src/react/_internal/api/__mocks__/marketplace.msw.ts +4 -6
  154. package/src/react/_internal/api/__mocks__/metadata.msw.ts +1 -1
  155. package/src/react/_internal/api/builder.gen.ts +6 -7
  156. package/src/react/_internal/api/get-query-client.ts +2 -2
  157. package/src/react/_internal/api/index.ts +2 -2
  158. package/src/react/_internal/api/marketplace.gen.ts +505 -26
  159. package/src/react/_internal/api/query-keys.ts +13 -6
  160. package/src/react/_internal/api/services.ts +42 -52
  161. package/src/react/_internal/index.ts +1 -1
  162. package/src/react/_internal/types.ts +10 -23
  163. package/src/react/_internal/utils.ts +1 -2
  164. package/src/react/_internal/wagmi/__tests__/create-config.test.ts +5 -5
  165. package/src/react/_internal/wagmi/create-config.ts +23 -9
  166. package/src/react/_internal/wagmi/get-connectors.ts +10 -5
  167. package/src/react/_internal/wallet/__tests__/wallet.test.ts +1 -1
  168. package/src/react/_internal/wallet/wallet.ts +18 -18
  169. package/src/react/hooks/__tests__/__snapshots__/useListCollections.test.tsx.snap +181 -2
  170. package/src/react/hooks/__tests__/__snapshots__/useMarketplaceConfig.test.tsx.snap +54 -6
  171. package/src/react/hooks/__tests__/useAutoSelectFeeOption.test.tsx +8 -5
  172. package/src/react/hooks/__tests__/useBalanceOfCollectible.test.tsx +1 -1
  173. package/src/react/hooks/__tests__/useCancelOrder.test.tsx +4 -4
  174. package/src/react/hooks/__tests__/useCancelTransactionSteps.test.tsx +1 -1
  175. package/src/react/hooks/__tests__/useCheckoutOptionsSalesContract.test.tsx +225 -0
  176. package/src/react/hooks/__tests__/useCollectible.test.tsx +14 -16
  177. package/src/react/hooks/__tests__/useCollection.test.tsx +4 -4
  178. package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +1 -27
  179. package/src/react/hooks/__tests__/useCollectionDetails.test.tsx +1 -1
  180. package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +4 -4
  181. package/src/react/hooks/__tests__/useComparePrices.test.tsx +7 -6
  182. package/src/react/hooks/__tests__/useConvertPriceToUSD.test.tsx +1 -1
  183. package/src/react/hooks/__tests__/useCountListingsForCollectible.test.tsx +2 -2
  184. package/src/react/hooks/__tests__/useCountOfCollectables.test.tsx +5 -5
  185. package/src/react/hooks/__tests__/useCountOffersForCollectible.test.tsx +2 -2
  186. package/src/react/hooks/__tests__/useCurrency.test.tsx +5 -3
  187. package/src/react/hooks/__tests__/useFilters.test.tsx +1 -1
  188. package/src/react/hooks/__tests__/useFloorOrder.test.tsx +4 -4
  189. package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +5 -6
  190. package/src/react/hooks/__tests__/useGenerateListingTransaction.test.tsx +1 -1
  191. package/src/react/hooks/__tests__/useGenerateOfferTransaction.test.tsx +1 -1
  192. package/src/react/hooks/__tests__/useGenerateSellTransaction.test.tsx +1 -1
  193. package/src/react/hooks/__tests__/useGetTokenSuppliesMap.test.tsx +104 -0
  194. package/src/react/hooks/__tests__/useHighestOffer.test.tsx +4 -20
  195. package/src/react/hooks/__tests__/useInventory.test.tsx +1 -37
  196. package/src/react/hooks/__tests__/useListCollectibleActivities.test.tsx +11 -13
  197. package/src/react/hooks/__tests__/useListCollectibles.test.tsx +5 -5
  198. package/src/react/hooks/__tests__/useListCollectiblesPaginated.test.tsx +10 -15
  199. package/src/react/hooks/__tests__/useListCollectionActivities.test.tsx +13 -15
  200. package/src/react/hooks/__tests__/useListCollections.test.tsx +4 -4
  201. package/src/react/hooks/__tests__/useListListingsForCollectible.test.tsx +3 -2
  202. package/src/react/hooks/__tests__/useListMarketCardData.test.tsx +301 -0
  203. package/src/react/hooks/__tests__/useListOffersForCollectible.test.tsx +1 -1
  204. package/src/react/hooks/__tests__/useListTokenMetadata.test.tsx +111 -0
  205. package/src/react/hooks/__tests__/useLowestListing.test.tsx +1 -1
  206. package/src/react/hooks/__tests__/useMarketCurrencies.test.tsx +1 -1
  207. package/src/react/hooks/__tests__/useRoyalty.test.tsx +0 -23
  208. package/src/react/hooks/index.ts +27 -17
  209. package/src/react/hooks/options/index.ts +0 -1
  210. package/src/react/hooks/useAutoSelectFeeOption.tsx +1 -1
  211. package/src/react/hooks/useBalanceOfCollectible.tsx +14 -10
  212. package/src/react/hooks/useCancelTransactionSteps.tsx +7 -3
  213. package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +67 -0
  214. package/src/react/hooks/useCollectible.tsx +64 -49
  215. package/src/react/hooks/useCollection.tsx +60 -11
  216. package/src/react/hooks/useCollectionBalanceDetails.tsx +20 -27
  217. package/src/react/hooks/useCollectionDetails.ts +69 -0
  218. package/src/react/hooks/useCollectionDetailsPolling.tsx +10 -2
  219. package/src/react/hooks/useComparePrices.tsx +18 -21
  220. package/src/react/hooks/useConvertPriceToUSD.tsx +20 -37
  221. package/src/react/hooks/useCountListingsForCollectible.tsx +64 -52
  222. package/src/react/hooks/useCountOfCollectables.tsx +61 -67
  223. package/src/react/hooks/useCountOfPrimarySaleItems.tsx +13 -0
  224. package/src/react/hooks/useCountOffersForCollectible.tsx +64 -52
  225. package/src/react/hooks/useCurrency.tsx +56 -64
  226. package/src/react/hooks/useERC721SaleMintedTokens.tsx +67 -0
  227. package/src/react/hooks/useFilterState.tsx +1 -2
  228. package/src/react/hooks/useFloorOrder.tsx +65 -37
  229. package/src/react/hooks/useGenerateCancelTransaction.tsx +17 -15
  230. package/src/react/hooks/useGenerateListingTransaction.tsx +16 -6
  231. package/src/react/hooks/useGenerateOfferTransaction.tsx +16 -7
  232. package/src/react/hooks/useGenerateSellTransaction.tsx +19 -15
  233. package/src/react/hooks/useGetReceiptFromHash.tsx +32 -3
  234. package/src/react/hooks/useGetTokenRanges.tsx +31 -0
  235. package/src/react/hooks/useGetTokenSuppliesMap.tsx +73 -0
  236. package/src/react/hooks/useHighestOffer.tsx +68 -4
  237. package/src/react/hooks/useInventory.tsx +8 -6
  238. package/src/react/hooks/useList1155ShopCardData.tsx +103 -0
  239. package/src/react/hooks/useList721ShopCardData.tsx +160 -0
  240. package/src/react/hooks/useListBalances.tsx +7 -10
  241. package/src/react/hooks/useListCollectibleActivities.tsx +89 -49
  242. package/src/react/hooks/useListCollectibles.tsx +78 -26
  243. package/src/react/hooks/useListCollectiblesPaginated.tsx +96 -63
  244. package/src/react/hooks/useListCollectionActivities.tsx +84 -49
  245. package/src/react/hooks/useListCollections.tsx +72 -18
  246. package/src/react/hooks/useListListingsForCollectible.tsx +90 -49
  247. package/src/react/hooks/useListMarketCardData.tsx +157 -0
  248. package/src/react/hooks/useListOffersForCollectible.tsx +11 -15
  249. package/src/react/hooks/useListPrimarySaleItems.ts +102 -0
  250. package/src/react/hooks/useListShopCardData.tsx +70 -0
  251. package/src/react/hooks/useListTokenMetadata.tsx +73 -0
  252. package/src/react/hooks/useLowestListing.tsx +68 -4
  253. package/src/react/hooks/useMarketCurrencies.tsx +62 -5
  254. package/src/react/hooks/useRoyalty.tsx +57 -13
  255. package/src/react/hooks/useShopCollectibleSaleData.tsx +349 -0
  256. package/src/react/hooks/useTokenSaleDetailsBatch.tsx +134 -0
  257. package/src/react/hooks/useTransferTokens.tsx +1 -1
  258. package/src/react/hooks/util/optimisticCancelUpdates.ts +5 -7
  259. package/src/react/index.ts +5 -3
  260. package/src/react/queries/balanceOfCollectible.ts +1 -1
  261. package/src/react/queries/collectible.ts +66 -0
  262. package/src/react/queries/collection.ts +55 -0
  263. package/src/react/queries/collectionDetails.ts +64 -0
  264. package/src/react/queries/countListingsForCollectible.ts +73 -0
  265. package/src/react/queries/countOfCollectables.ts +83 -0
  266. package/src/react/queries/countOfPrimarySaleItems.ts +48 -0
  267. package/src/react/queries/countOffersForCollectible.ts +73 -0
  268. package/src/react/queries/currency.ts +83 -0
  269. package/src/react/queries/floorOrder.ts +63 -0
  270. package/src/react/queries/getTokenSuppliesMap.ts +77 -0
  271. package/src/react/queries/highestOffer.ts +48 -40
  272. package/src/react/queries/index.ts +7 -4
  273. package/src/react/queries/inventory.ts +38 -4
  274. package/src/react/queries/listBalances.ts +14 -30
  275. package/src/react/queries/listCollectibleActivities.ts +97 -0
  276. package/src/react/queries/listCollectibles.ts +117 -47
  277. package/src/react/queries/listCollectiblesPaginated.ts +87 -0
  278. package/src/react/queries/listCollectionActivities.ts +95 -0
  279. package/src/react/queries/listCollections.ts +55 -10
  280. package/src/react/queries/listListingsForCollectible.ts +82 -0
  281. package/src/react/queries/listTokenMetadata.ts +47 -18
  282. package/src/react/queries/lowestListing.ts +48 -31
  283. package/src/react/queries/marketCurrencies.ts +52 -35
  284. package/src/react/queries/marketplaceConfig.ts +56 -81
  285. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +54 -6
  286. package/src/react/ssr/__tests__/create-ssr-client.test.ts +0 -3
  287. package/src/react/ssr/create-ssr-client.ts +6 -11
  288. package/src/react/types/query.ts +34 -0
  289. package/src/react/ui/components/ModelViewer.tsx +1 -1
  290. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +47 -13
  291. package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +1 -1
  292. package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +28 -15
  293. package/src/react/ui/components/_internals/action-button/__tests__/OwnerActions.test.tsx +1 -1
  294. package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +15 -9
  295. package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +1 -1
  296. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +78 -15
  297. package/src/react/ui/components/_internals/action-button/components/OwnerActions.tsx +1 -1
  298. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +13 -16
  299. package/src/react/ui/components/_internals/action-button/store.ts +46 -18
  300. package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +17 -0
  301. package/src/react/ui/components/marketplace-collectible-card/CollectibleCardSkeleton.tsx +24 -0
  302. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +231 -0
  303. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +76 -0
  304. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +58 -0
  305. package/src/react/ui/components/marketplace-collectible-card/index.ts +3 -0
  306. package/src/react/ui/components/marketplace-collectible-card/types.ts +98 -0
  307. package/src/react/ui/components/marketplace-collectible-card/utils/formatPrice.ts +45 -0
  308. package/src/react/ui/components/marketplace-collectible-card/utils/index.ts +2 -0
  309. package/src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts +39 -0
  310. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +125 -0
  311. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +102 -0
  312. package/src/react/ui/components/marketplace-logos/marketplace-logos.tsx +1 -1
  313. package/src/react/ui/components/{collectible-card/media → media}/Media.tsx +47 -26
  314. package/src/react/ui/components/{collectible-card/media → media}/types.ts +3 -1
  315. package/src/react/ui/index.ts +8 -7
  316. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +554 -0
  317. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +392 -0
  318. package/src/react/ui/modals/BuyModal/__tests__/ERC721ShopModal.test.tsx +272 -0
  319. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx.bak +112 -0
  320. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +117 -13
  321. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +10 -7
  322. package/src/react/ui/modals/BuyModal/components/BuyModalRouter.tsx +157 -0
  323. package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +136 -0
  324. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +183 -0
  325. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +121 -0
  326. package/src/react/ui/modals/BuyModal/components/ERC721BuyModal.tsx +85 -0
  327. package/src/react/ui/modals/BuyModal/components/ERC721ShopModal.tsx +86 -0
  328. package/src/react/ui/modals/BuyModal/components/Modal.tsx +14 -0
  329. package/src/react/ui/modals/BuyModal/components/types.ts +8 -0
  330. package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +5 -5
  331. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +379 -0
  332. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC721SalePaymentParams.test.tsx +253 -0
  333. package/src/react/ui/modals/BuyModal/hooks/__tests__/{useFees.test.tsx → useMarketPlatformFee.test.tsx} +10 -11
  334. package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +63 -45
  335. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +73 -0
  336. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +196 -0
  337. package/src/react/ui/modals/BuyModal/hooks/useLoadData.ts +74 -18
  338. package/src/react/ui/modals/BuyModal/hooks/useMarketPlatformFee.ts +53 -0
  339. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +30 -15
  340. package/src/react/ui/modals/BuyModal/store.ts +147 -13
  341. package/src/react/ui/modals/CreateListingModal/Modal.tsx +1 -1
  342. package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +2 -2
  343. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +0 -1
  344. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +4 -3
  345. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +12 -9
  346. package/src/react/ui/modals/CreateListingModal/index.tsx +1 -1
  347. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +2 -2
  348. package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +1 -1
  349. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +3 -2
  350. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +0 -1
  351. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +12 -10
  352. package/src/react/ui/modals/MakeOfferModal/index.tsx +1 -1
  353. package/src/react/ui/modals/SellModal/Modal.tsx +3 -3
  354. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +6 -4
  355. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +5 -4
  356. package/src/react/ui/modals/SellModal/hooks/useSell.tsx +0 -1
  357. package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +11 -8
  358. package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +12 -8
  359. package/src/react/ui/modals/SuccessfulPurchaseModal/index.tsx +34 -28
  360. package/src/react/ui/modals/SuccessfulPurchaseModal/store.ts +71 -0
  361. package/src/react/ui/modals/TransferModal/_store.ts +1 -7
  362. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +2 -3
  363. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +2 -2
  364. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +1 -2
  365. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +107 -112
  366. package/src/react/ui/modals/_internal/components/actionModal/store.ts +45 -12
  367. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +1 -1
  368. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +0 -1
  369. package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +4 -4
  370. package/src/react/ui/modals/_internal/components/quantityInput/QuantityInputBase.tsx +166 -0
  371. package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +12 -141
  372. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +1 -1
  373. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/_components/BalanceIndicator.tsx +1 -2
  374. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +0 -1
  375. package/src/react/ui/modals/_internal/components/switchChainModal/__tests__/SwitchChainModal.test.tsx +12 -8
  376. package/src/react/ui/modals/_internal/components/switchChainModal/index.tsx +35 -33
  377. package/src/react/ui/modals/_internal/components/switchChainModal/store.ts +61 -32
  378. package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +1 -1
  379. package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +1 -1
  380. package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +0 -1
  381. package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +1 -1
  382. package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +1 -1
  383. package/src/react/ui/modals/modal-provider.tsx +3 -4
  384. package/src/types/api-types.ts +36 -36
  385. package/src/types/buyModalErrors.ts +438 -0
  386. package/src/types/index.ts +5 -2
  387. package/src/types/new-marketplace-types.ts +6 -21
  388. package/src/types/sdk-config.ts +19 -24
  389. package/src/types/types.ts +17 -0
  390. package/src/types/waas-types.ts +1 -1
  391. package/src/utils/_internal/error/transaction.ts +36 -1
  392. package/src/utils/abi/index.ts +1 -1
  393. package/src/utils/abi/primary-sale/index.ts +1 -1
  394. package/src/utils/abi/token/index.ts +2 -1
  395. package/src/utils/decode/erc20.ts +1 -1
  396. package/src/utils/index.ts +3 -3
  397. package/test/const.ts +3 -1
  398. package/test/mocks/wallet.ts +1 -1
  399. package/test/test-utils.tsx +3 -4
  400. package/tsconfig.json +1 -1
  401. package/tsdown.config.ts +25 -0
  402. package/.changeset/fluffy-jokes-lay.md +0 -5
  403. package/.changeset/wise-bugs-boil.md +0 -8
  404. package/.ctirc +0 -32
  405. package/dist/alien_swap-2B65TDGT.js.map +0 -1
  406. package/dist/aqua-xyz-WMYQLAIS.js.map +0 -1
  407. package/dist/aura-V22RV5OG.js.map +0 -1
  408. package/dist/blur-GE5QOMCM.js.map +0 -1
  409. package/dist/chunk-2PSNAIAT.js +0 -1
  410. package/dist/chunk-2PSNAIAT.js.map +0 -1
  411. package/dist/chunk-5C6ZZ6WX.js +0 -130
  412. package/dist/chunk-5C6ZZ6WX.js.map +0 -1
  413. package/dist/chunk-5O44EPXZ.js +0 -207
  414. package/dist/chunk-5O44EPXZ.js.map +0 -1
  415. package/dist/chunk-6CTFVBKU.js +0 -1
  416. package/dist/chunk-6CTFVBKU.js.map +0 -1
  417. package/dist/chunk-6OPMUCGX.js +0 -42
  418. package/dist/chunk-6OPMUCGX.js.map +0 -1
  419. package/dist/chunk-FUM4OGOQ.js +0 -1027
  420. package/dist/chunk-FUM4OGOQ.js.map +0 -1
  421. package/dist/chunk-L6KWLCER.js +0 -32
  422. package/dist/chunk-L6KWLCER.js.map +0 -1
  423. package/dist/chunk-LAP2CKLN.js +0 -485
  424. package/dist/chunk-LAP2CKLN.js.map +0 -1
  425. package/dist/chunk-LECCEZAO.js +0 -11
  426. package/dist/chunk-LECCEZAO.js.map +0 -1
  427. package/dist/chunk-N7SQWS2R.js +0 -38
  428. package/dist/chunk-N7SQWS2R.js.map +0 -1
  429. package/dist/chunk-NX52D7NX.js +0 -135
  430. package/dist/chunk-NX52D7NX.js.map +0 -1
  431. package/dist/chunk-OAOONM4S.js +0 -1787
  432. package/dist/chunk-OAOONM4S.js.map +0 -1
  433. package/dist/chunk-Q3ECVC4F.js +0 -811
  434. package/dist/chunk-Q3ECVC4F.js.map +0 -1
  435. package/dist/chunk-QY52UADF.js +0 -107
  436. package/dist/chunk-QY52UADF.js.map +0 -1
  437. package/dist/chunk-TNAR3XEF.js +0 -8729
  438. package/dist/chunk-TNAR3XEF.js.map +0 -1
  439. package/dist/chunk-XABYNWXO.js +0 -549
  440. package/dist/chunk-XABYNWXO.js.map +0 -1
  441. package/dist/chunk-XX4EVWBF.js +0 -1292
  442. package/dist/chunk-XX4EVWBF.js.map +0 -1
  443. package/dist/chunk-YB5UUF2G.js +0 -11
  444. package/dist/chunk-YB5UUF2G.js.map +0 -1
  445. package/dist/chunk-YWGFI4PN.js +0 -217
  446. package/dist/chunk-YWGFI4PN.js.map +0 -1
  447. package/dist/coinbase-NLHJMGAP.js.map +0 -1
  448. package/dist/create-config-DLMvMTkZ.d.ts +0 -8
  449. package/dist/element-2LGTYYSP.js.map +0 -1
  450. package/dist/foundation-BPN66ZTN.js.map +0 -1
  451. package/dist/get-query-client-D46hbjk6.d.ts +0 -5
  452. package/dist/index.css.map +0 -1
  453. package/dist/index.js.map +0 -1
  454. package/dist/looks-rare-MZRSOPT4.js.map +0 -1
  455. package/dist/magic-eden-PUBL6KWW.js.map +0 -1
  456. package/dist/manifold-GA445YJ6.js.map +0 -1
  457. package/dist/marketCurrencies-enNVYwBk.d.ts +0 -277
  458. package/dist/marketplace.gen-D24veUQs.d.ts +0 -1073
  459. package/dist/marketplaceConfig-BwNAbLPw.d.ts +0 -21
  460. package/dist/mintify-UMC5PTKC.js.map +0 -1
  461. package/dist/new-marketplace-types-BCw19X9S.d.ts +0 -102
  462. package/dist/nftx-AX3CY3IE.js.map +0 -1
  463. package/dist/okx-GNVLAE2R.js.map +0 -1
  464. package/dist/open-sea-KI43GVEB.js.map +0 -1
  465. package/dist/rarible-2J3MMZJ7.js.map +0 -1
  466. package/dist/react/_internal/api/index.js.map +0 -1
  467. package/dist/react/_internal/databeat/index.css +0 -2764
  468. package/dist/react/_internal/databeat/index.css.map +0 -1
  469. package/dist/react/_internal/databeat/index.js.map +0 -1
  470. package/dist/react/_internal/index.js.map +0 -1
  471. package/dist/react/_internal/wagmi/index.js.map +0 -1
  472. package/dist/react/hooks/index.css +0 -2764
  473. package/dist/react/hooks/index.css.map +0 -1
  474. package/dist/react/hooks/index.js.map +0 -1
  475. package/dist/react/hooks/options/index.js.map +0 -1
  476. package/dist/react/index.css +0 -2764
  477. package/dist/react/index.css.map +0 -1
  478. package/dist/react/index.js.map +0 -1
  479. package/dist/react/queries/index.js.map +0 -1
  480. package/dist/react/ui/components/collectible-card/index.css +0 -2764
  481. package/dist/react/ui/components/collectible-card/index.css.map +0 -1
  482. package/dist/react/ui/components/collectible-card/index.d.ts +0 -71
  483. package/dist/react/ui/components/collectible-card/index.js +0 -27
  484. package/dist/react/ui/components/collectible-card/index.js.map +0 -1
  485. package/dist/react/ui/components/marketplace-logos/index.js.map +0 -1
  486. package/dist/react/ui/icons/index.js.map +0 -1
  487. package/dist/react/ui/index.css +0 -2764
  488. package/dist/react/ui/index.css.map +0 -1
  489. package/dist/react/ui/index.js.map +0 -1
  490. package/dist/react/ui/modals/_internal/components/actionModal/index.css +0 -2764
  491. package/dist/react/ui/modals/_internal/components/actionModal/index.css.map +0 -1
  492. package/dist/react/ui/modals/_internal/components/actionModal/index.js.map +0 -1
  493. package/dist/sdk-config-qorA0TgF.d.ts +0 -165
  494. package/dist/sequence-TGLUFEPQ.js.map +0 -1
  495. package/dist/services-WrshxCqc.d.ts +0 -23
  496. package/dist/sudo-swap-M2O6E3TE.js.map +0 -1
  497. package/dist/super-rare-UU2U4LIN.js.map +0 -1
  498. package/dist/types/index.js.map +0 -1
  499. package/dist/useCollection-YAdXfVO7.d.ts +0 -61
  500. package/dist/utils/abi/index.js.map +0 -1
  501. package/dist/utils/abi/marketplace/index.js.map +0 -1
  502. package/dist/utils/abi/primary-sale/index.js.map +0 -1
  503. package/dist/utils/abi/token/index.js.map +0 -1
  504. package/dist/utils/index.js.map +0 -1
  505. package/dist/x2y2-3W5BBMZC.js.map +0 -1
  506. package/dist/zora-6EY6FUH6.js.map +0 -1
  507. package/postcss.config.mjs +0 -5
  508. package/src/react/_internal/api/zod-schema.ts +0 -678
  509. package/src/react/hooks/__tests__/__snapshots__/useRoyaltyPercentage.test.tsx.snap +0 -8
  510. package/src/react/hooks/options/collectionOptions.ts +0 -41
  511. package/src/react/hooks/useCheckoutOptions.tsx +0 -65
  512. package/src/react/hooks/useCollectionDetails.tsx +0 -35
  513. package/src/react/hooks/useGetTokenSuppliesMap.ts +0 -28
  514. package/src/react/hooks/useListTokenMetadata.ts +0 -19
  515. package/src/react/queries/getTokenSupplies.ts +0 -38
  516. package/src/react/ui/components/collectible-card/CollectibleCard.tsx +0 -170
  517. package/src/react/ui/components/collectible-card/Footer.tsx +0 -157
  518. package/src/react/ui/components/collectible-card/__tests__/CollectibleCard.test.tsx +0 -94
  519. package/src/react/ui/components/collectible-card/__tests__/Footer.test.tsx +0 -136
  520. package/src/react/ui/components/collectible-card/__tests__/Media.test.tsx +0 -264
  521. package/src/react/ui/components/collectible-card/index.ts +0 -2
  522. package/src/react/ui/modals/BuyModal/ERC1155QuantityModal.tsx +0 -130
  523. package/src/react/ui/modals/BuyModal/Modal.tsx +0 -124
  524. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx +0 -104
  525. package/src/react/ui/modals/BuyModal/hooks/useFees.ts +0 -39
  526. package/src/react/ui/modals/SuccessfulPurchaseModal/_store.ts +0 -72
  527. package/tsconfig.tsbuildinfo +0 -1
  528. package/tsup.config.ts +0 -23
  529. /package/src/react/ui/components/{collectible-card/media → media}/MediaSkeleton.tsx +0 -0
  530. /package/src/react/ui/components/{collectible-card/media → media}/utils.ts +0 -0
@@ -10,8 +10,10 @@ import {
10
10
  type CollectibleOrder,
11
11
  type ContractType,
12
12
  getIndexerClient,
13
+ LaosAPI,
13
14
  } from '../_internal';
14
- import { fetchCollectibles } from './listCollectibles';
15
+ import { fetchListCollectibles } from './listCollectibles';
16
+ import { fetchMarketplaceConfig } from './marketplaceConfig';
15
17
 
16
18
  export interface UseInventoryArgs {
17
19
  accountAddress: Address;
@@ -95,7 +97,37 @@ async function fetchAllIndexerTokens(
95
97
  collectionAddress: Address,
96
98
  config: SdkConfig,
97
99
  state: InventoryState,
100
+ isLaos721: boolean,
98
101
  ): Promise<void> {
102
+ if (isLaos721) {
103
+ const laosClient = new LaosAPI();
104
+ const { balances } = await laosClient.getTokenBalances({
105
+ chainId: chainId.toString(),
106
+ accountAddress,
107
+ includeMetadata: true,
108
+ page: {
109
+ sort: [
110
+ {
111
+ column: 'CREATED_AT',
112
+ order: 'DESC',
113
+ },
114
+ ],
115
+ },
116
+ });
117
+
118
+ for (const balance of balances) {
119
+ if (balance.tokenID) {
120
+ state.indexerTokenBalances.set(
121
+ balance.tokenID,
122
+ collectibleFromTokenBalance(balance),
123
+ );
124
+ }
125
+ }
126
+
127
+ state.indexerTokensFetched = true;
128
+ return;
129
+ }
130
+
99
131
  const indexerClient = getIndexerClient(chainId, config);
100
132
 
101
133
  let page: IndexerPage = {
@@ -216,6 +248,7 @@ export async function fetchInventory(
216
248
  collectionAddress,
217
249
  config,
218
250
  state,
251
+ isLaos721,
219
252
  );
220
253
  }
221
254
 
@@ -225,7 +258,8 @@ export async function fetchInventory(
225
258
  }
226
259
 
227
260
  // Fetch collectibles from marketplace API
228
- const collectibles = await fetchCollectibles(
261
+ const marketplaceConfig = await fetchMarketplaceConfig({ config });
262
+ const collectibles = await fetchListCollectibles(
229
263
  {
230
264
  chainId,
231
265
  collectionAddress,
@@ -234,9 +268,9 @@ export async function fetchInventory(
234
268
  includeEmpty: true,
235
269
  },
236
270
  side: OrderSide.listing,
237
- isLaos721,
271
+ config,
238
272
  },
239
- config,
273
+ marketplaceConfig,
240
274
  page,
241
275
  );
242
276
 
@@ -2,7 +2,7 @@ import type { GetTokenBalancesReturn, Page } from '@0xsequence/indexer';
2
2
  import { infiniteQueryOptions } from '@tanstack/react-query';
3
3
  import type { Hex } from 'viem';
4
4
  import type { SdkConfig } from '../../types';
5
- import { balanceQueries, getIndexerClient } from '../_internal';
5
+ import { balanceQueries, getIndexerClient, LaosAPI } from '../_internal';
6
6
 
7
7
  export type UseListBalancesArgs = {
8
8
  chainId: number;
@@ -29,37 +29,21 @@ export async function fetchBalances(
29
29
  config: SdkConfig,
30
30
  page: Page,
31
31
  ): Promise<GetTokenBalancesReturn> {
32
- if (args.isLaos721) {
33
- const response = await fetch(
34
- 'https://extensions.api.laosnetwork.io/token/GetTokenBalances',
35
- {
36
- method: 'POST',
37
- headers: {
38
- 'Content-Type': 'application/json',
39
- },
40
- body: JSON.stringify({
41
- chainId: args.chainId.toString(),
42
- accountAddress: args.accountAddress,
43
- contractAddress: args.contractAddress,
44
- includeMetadata: args.includeMetadata ?? true,
45
- page: {
46
- sort: [
47
- {
48
- column: 'CREATED_AT',
49
- order: 'DESC',
50
- },
51
- ],
32
+ if (args.isLaos721 && args.accountAddress) {
33
+ const laosClient = new LaosAPI();
34
+ return laosClient.getTokenBalances({
35
+ chainId: args.chainId.toString(),
36
+ accountAddress: args.accountAddress,
37
+ includeMetadata: args.includeMetadata,
38
+ page: {
39
+ sort: [
40
+ {
41
+ column: 'CREATED_AT',
42
+ order: 'DESC',
52
43
  },
53
- }),
44
+ ],
54
45
  },
55
- );
56
-
57
- if (!response.ok) {
58
- throw new Error(`Laos API request failed with status ${response.status}`);
59
- }
60
-
61
- // TODO: This is pretty unsafe, we should validate the response
62
- return response.json() as Promise<GetTokenBalancesReturn>;
46
+ });
63
47
  }
64
48
 
65
49
  const indexerClient = getIndexerClient(args.chainId, config);
@@ -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,52 +1,93 @@
1
1
  import { infiniteQueryOptions } from '@tanstack/react-query';
2
- import type { Address, Hex } from 'viem';
3
- import type { Page, SdkConfig } from '../../types';
2
+ import type { Address } from 'viem';
3
+ import type { MarketplaceConfig, Page, SdkConfig } from '../../types';
4
+ import type { MarketplaceType } from '../../types/types';
5
+ import { compareAddress } from '../../utils';
4
6
  import type {
5
- CollectibleOrder,
6
- CollectiblesFilter,
7
7
  ListCollectiblesArgs,
8
8
  ListCollectiblesReturn,
9
+ ValuesOptional,
9
10
  } from '../_internal';
10
- import { OrderSide, collectableKeys, getMarketplaceClient } from '../_internal';
11
- import { type UseListBalancesArgs, fetchBalances } from './listBalances';
12
- export type UseListCollectiblesArgs = {
13
- collectionAddress: Hex;
11
+ import {
12
+ type CollectibleOrder,
13
+ collectableKeys,
14
+ getMarketplaceClient,
15
+ OrderSide,
16
+ } from '../_internal';
17
+ import { fetchMarketplaceConfig } from '../queries/marketplaceConfig';
18
+ import type { StandardInfiniteQueryOptions } from '../types/query';
19
+ import { fetchBalances, type UseListBalancesArgs } from './listBalances';
20
+
21
+ export interface FetchListCollectiblesParams
22
+ extends Omit<ListCollectiblesArgs, 'chainId' | 'contractAddress'> {
14
23
  chainId: number;
15
- side: OrderSide;
16
- filter?: CollectiblesFilter;
24
+ collectionAddress: Address;
17
25
  isLaos721?: boolean;
18
- query?: {
19
- enabled?: boolean;
20
- };
21
- };
26
+ marketplaceType?: MarketplaceType;
27
+ config: SdkConfig;
28
+ }
22
29
 
23
30
  /**
24
- * Fetches a list of collectibles with pagination support
25
- *
26
- * @param args - Arguments for the API call
27
- * @param config - SDK configuration
28
- * @param page - Page parameters for pagination
29
- * @returns The collectibles data
31
+ * Fetches a list of collectibles with pagination support from the Marketplace API
30
32
  */
31
- export async function fetchCollectibles(
32
- args: UseListCollectiblesArgs,
33
- config: SdkConfig,
33
+ export async function fetchListCollectibles(
34
+ params: FetchListCollectiblesParams,
35
+ marketplaceConfig: MarketplaceConfig,
34
36
  page: Page,
35
37
  ): Promise<ListCollectiblesReturn> {
36
- const marketplaceClient = getMarketplaceClient(args.chainId, config);
37
- const parsedArgs = {
38
- ...args,
39
- contractAddress: args.collectionAddress,
38
+ const { collectionAddress, chainId, config, ...additionalApiParams } = params;
39
+ const marketplaceClient = getMarketplaceClient(config);
40
+
41
+ const apiArgs: ListCollectiblesArgs = {
42
+ contractAddress: collectionAddress,
43
+ chainId: String(chainId),
40
44
  page: page,
41
- side: args.side,
42
- } satisfies ListCollectiblesArgs;
45
+ ...additionalApiParams,
46
+ };
43
47
 
44
- if (args.isLaos721 && args.side === OrderSide.listing) {
48
+ if (params.marketplaceType === 'shop') {
49
+ const shopCollection = marketplaceConfig.shop.collections.find(
50
+ (collection) =>
51
+ compareAddress(collection.itemsAddress, params.collectionAddress),
52
+ );
53
+
54
+ if (!shopCollection) {
55
+ return { collectibles: [] };
56
+ }
57
+
58
+ const primarySaleItemsList = await marketplaceClient.listPrimarySaleItems(
59
+ {
60
+ chainId: params.chainId.toString(),
61
+ primarySaleContractAddress: shopCollection.saleAddress as Address,
62
+ },
63
+ marketplaceConfig,
64
+ );
65
+
66
+ return {
67
+ collectibles: primarySaleItemsList.primarySaleItems.map((item) => ({
68
+ metadata: item.metadata,
69
+ primarySale: {
70
+ price: {
71
+ amount: item.primarySaleItem.priceAmount,
72
+ formatted: item.primarySaleItem.priceAmountFormatted,
73
+ decimals: item.primarySaleItem.priceDecimals,
74
+ currencyAddress: item.primarySaleItem.currencyAddress,
75
+ },
76
+ startDate: item.primarySaleItem.startDate,
77
+ endDate: item.primarySaleItem.endDate,
78
+ supplyCap: item.primarySaleItem.supply,
79
+ itemType: item.primarySaleItem.itemType,
80
+ },
81
+ })),
82
+ };
83
+ }
84
+
85
+ if (params.isLaos721 && params.side === OrderSide.listing) {
45
86
  try {
46
87
  const fetchBalancesArgs = {
47
- chainId: args.chainId,
48
- accountAddress: args.filter?.inAccounts?.[0] as Address,
49
- contractAddress: args.collectionAddress,
88
+ chainId: params.chainId,
89
+ accountAddress: params.filter?.inAccounts?.[0] as Address,
90
+ contractAddress: params.collectionAddress,
50
91
  page: page,
51
92
  includeMetadata: true,
52
93
  isLaos721: true,
@@ -80,26 +121,55 @@ export async function fetchCollectibles(
80
121
  console.error(error);
81
122
  }
82
123
  }
83
- return await marketplaceClient.listCollectibles(parsedArgs);
124
+
125
+ return await marketplaceClient.listCollectibles(apiArgs);
84
126
  }
85
127
 
86
- /**
87
- * Creates a tanstack infinite query options object for the collectibles query
88
- *
89
- * @param args - The query arguments
90
- * @param config - SDK configuration
91
- * @returns Query options configuration
92
- */
93
- export function listCollectiblesOptions(
94
- args: UseListCollectiblesArgs,
95
- config: SdkConfig,
128
+ export type ListCollectiblesQueryOptions =
129
+ ValuesOptional<FetchListCollectiblesParams> & {
130
+ query?: StandardInfiniteQueryOptions;
131
+ };
132
+
133
+ export function listCollectiblesQueryOptions(
134
+ params: ListCollectiblesQueryOptions,
96
135
  ) {
136
+ const enabled = Boolean(
137
+ params.collectionAddress &&
138
+ params.chainId &&
139
+ params.side &&
140
+ params.config &&
141
+ (params.query?.enabled ?? true),
142
+ );
143
+
97
144
  return infiniteQueryOptions({
98
- ...args.query,
99
- queryKey: [...collectableKeys.lists, args, config],
100
- queryFn: ({ pageParam }) => fetchCollectibles(args, config, pageParam),
145
+ queryKey: [...collectableKeys.lists, params],
146
+ queryFn: async ({ 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
+ );
168
+ },
101
169
  initialPageParam: { page: 1, pageSize: 30 } as Page,
102
170
  getNextPageParam: (lastPage) =>
103
171
  lastPage.page?.more ? lastPage.page : undefined,
172
+ ...params.query,
173
+ enabled,
104
174
  });
105
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
+ }