@0xsequence/marketplace-sdk 0.8.11 → 0.8.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (404) hide show
  1. package/CHANGELOG.md +166 -0
  2. package/dist/CartIcon-Bll1rbxv.js +141 -0
  3. package/dist/CartIcon-Bll1rbxv.js.map +1 -0
  4. package/dist/CollectibleCard-CLQTl0_6.d.ts +8 -0
  5. package/dist/_internal-69NEWNUE.js +34 -0
  6. package/dist/_internal-69NEWNUE.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-1KFxYh7o.js +232 -0
  11. package/dist/api-1KFxYh7o.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-BQvzykoU.js +28 -0
  19. package/dist/builder-api-BQvzykoU.js.map +1 -0
  20. package/dist/builder-api-DoK3907S.d.ts +12 -0
  21. package/dist/builder.gen-CxP9NT1p.js +303 -0
  22. package/dist/builder.gen-CxP9NT1p.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-1bezgsFq.d.ts +1129 -0
  30. package/dist/index-4-kfOFdx.d.ts +22 -0
  31. package/dist/index-BEYefG1G.d.ts +24 -0
  32. package/dist/index-BHiSG-Yi.d.ts +312 -0
  33. package/dist/index-BIMIpDiI.d.ts +188 -0
  34. package/dist/index-BQW0PUkQ.d.ts +3973 -0
  35. package/dist/index-BfH21xmk.d.ts +117 -0
  36. package/dist/index-BjIwVzc4.d.ts +1057 -0
  37. package/dist/index-C39K_8SG.d.ts +1 -0
  38. package/dist/index-CN8puQQJ.d.ts +24 -0
  39. package/dist/index-Cl7PQOGu.d.ts +102 -0
  40. package/dist/index-D5v5iluA.d.ts +809 -0
  41. package/dist/index-DXMfTZ1F.d.ts +7 -0
  42. package/dist/index-DafWjEb4.d.ts +65 -0
  43. package/dist/index-ij9f8GAA.d.ts +1 -0
  44. package/dist/index.css +384 -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-Dqk8vRmD.js +1068 -0
  58. package/dist/marketplace.gen-Dqk8vRmD.js.map +1 -0
  59. package/dist/marketplaceConfig-D2MYFqll.js +71 -0
  60. package/dist/marketplaceConfig-D2MYFqll.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/{nftx-AX3CY3IE.js → nftx-D3Tc8nzd.js} +5 -5
  64. package/dist/nftx-D3Tc8nzd.js.map +1 -0
  65. package/dist/{okx-GNVLAE2R.js → okx-hbqg6oIJ.js} +5 -5
  66. package/dist/okx-hbqg6oIJ.js.map +1 -0
  67. package/dist/{open-sea-KI43GVEB.js → open-sea-BccuK8-t.js} +5 -5
  68. package/dist/open-sea-BccuK8-t.js.map +1 -0
  69. package/dist/options-DCi6_23w.js +34 -0
  70. package/dist/options-DCi6_23w.js.map +1 -0
  71. package/dist/primary-sale-Cw95phYC.js +1264 -0
  72. package/dist/primary-sale-Cw95phYC.js.map +1 -0
  73. package/dist/queries-DPvwtnO7.js +486 -0
  74. package/dist/queries-DPvwtnO7.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 +17 -3652
  86. package/dist/react/hooks/index.js +23 -153
  87. package/dist/react/hooks/options/index.d.ts +5 -8
  88. package/dist/react/hooks/options/index.js +11 -21
  89. package/dist/react/index.d.ts +37 -33
  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 +10 -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 +10 -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-BG7o4PId.js +8351 -0
  109. package/dist/react-BG7o4PId.js.map +1 -0
  110. package/dist/react-BbHBl6gg.css +80 -0
  111. package/dist/react-BbHBl6gg.css.map +1 -0
  112. package/dist/sdk-config-DJzxVPld.d.ts +1535 -0
  113. package/dist/{sequence-TGLUFEPQ.js → sequence-Do3kzb4J.js} +5 -5
  114. package/dist/sequence-Do3kzb4J.js.map +1 -0
  115. package/dist/src-Dz2CfBL0.js +8 -0
  116. package/dist/src-Dz2CfBL0.js.map +1 -0
  117. package/dist/{sudo-swap-M2O6E3TE.js → sudo-swap-B6vPKxBz.js} +5 -5
  118. package/dist/sudo-swap-B6vPKxBz.js.map +1 -0
  119. package/dist/{super-rare-UU2U4LIN.js → super-rare-eCm1SE6O.js} +5 -5
  120. package/dist/super-rare-eCm1SE6O.js.map +1 -0
  121. package/dist/token-CO5llIla.js +1312 -0
  122. package/dist/token-CO5llIla.js.map +1 -0
  123. package/dist/transaction-CcVViHEL.js +97 -0
  124. package/dist/transaction-CcVViHEL.js.map +1 -0
  125. package/dist/types/index.d.ts +3 -13
  126. package/dist/types/index.js +5 -44
  127. package/dist/types-BIJOaL4j.d.ts +68 -0
  128. package/dist/types-DwWE6xOF.js +13 -0
  129. package/dist/types-DwWE6xOF.js.map +1 -0
  130. package/dist/useCollection-C-mclKU0.d.ts +66 -0
  131. package/dist/utils/abi/index.d.ts +5 -3
  132. package/dist/utils/abi/index.js +6 -26
  133. package/dist/utils/abi/marketplace/index.d.ts +2 -805
  134. package/dist/utils/abi/marketplace/index.js +3 -11
  135. package/dist/utils/abi/primary-sale/index.d.ts +2 -1054
  136. package/dist/utils/abi/primary-sale/index.js +3 -9
  137. package/dist/utils/abi/token/index.d.ts +2 -1125
  138. package/dist/utils/abi/token/index.js +3 -11
  139. package/dist/utils/index.d.ts +8 -91
  140. package/dist/utils/index.js +11 -57
  141. package/dist/utils-BFdxaToy.js +216 -0
  142. package/dist/utils-BFdxaToy.js.map +1 -0
  143. package/dist/utils-Cat9_pef.js +44 -0
  144. package/dist/utils-Cat9_pef.js.map +1 -0
  145. package/dist/wagmi-DRctYEk6.js +159 -0
  146. package/dist/wagmi-DRctYEk6.js.map +1 -0
  147. package/dist/{x2y2-3W5BBMZC.js → x2y2-DD17tT91.js} +5 -5
  148. package/dist/x2y2-DD17tT91.js.map +1 -0
  149. package/dist/{zora-6EY6FUH6.js → zora-BpSG9UzS.js} +5 -5
  150. package/dist/zora-BpSG9UzS.js.map +1 -0
  151. package/package.json +10 -8
  152. package/src/index.ts +0 -1
  153. package/src/react/_internal/api/__mocks__/indexer.msw.ts +1 -0
  154. package/src/react/_internal/api/builder.gen.ts +0 -1
  155. package/src/react/_internal/api/marketplace.gen.ts +467 -26
  156. package/src/react/_internal/api/services.ts +42 -49
  157. package/src/react/_internal/wagmi/__tests__/create-config.test.ts +5 -5
  158. package/src/react/_internal/wagmi/create-config.ts +7 -2
  159. package/src/react/_internal/wagmi/get-connectors.ts +5 -2
  160. package/src/react/hooks/__tests__/__snapshots__/useListCollections.test.tsx.snap +161 -2
  161. package/src/react/hooks/__tests__/__snapshots__/useMarketplaceConfig.test.tsx.snap +44 -6
  162. package/src/react/hooks/__tests__/useAutoSelectFeeOption.test.tsx +7 -4
  163. package/src/react/hooks/__tests__/useCheckoutOptionsSalesContract.test.tsx +225 -0
  164. package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +3 -3
  165. package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +2 -3
  166. package/src/react/hooks/__tests__/useHighestOffer.test.tsx +0 -16
  167. package/src/react/hooks/__tests__/useInventory.test.tsx +0 -36
  168. package/src/react/hooks/__tests__/useListCollections.test.tsx +1 -1
  169. package/src/react/hooks/index.ts +7 -0
  170. package/src/react/hooks/useBalanceOfCollectible.tsx +13 -9
  171. package/src/react/hooks/useCancelTransactionSteps.tsx +5 -1
  172. package/src/react/hooks/useCheckoutOptions.tsx +2 -1
  173. package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +67 -0
  174. package/src/react/hooks/useCollectionDetails.tsx +22 -7
  175. package/src/react/hooks/useCountListingsForCollectible.tsx +5 -4
  176. package/src/react/hooks/useCountOfCollectables.tsx +10 -7
  177. package/src/react/hooks/useCountOffersForCollectible.tsx +5 -4
  178. package/src/react/hooks/useCurrency.tsx +2 -2
  179. package/src/react/hooks/useERC721SaleMintedTokens.tsx +67 -0
  180. package/src/react/hooks/useFloorOrder.tsx +5 -2
  181. package/src/react/hooks/useGenerateCancelTransaction.tsx +13 -6
  182. package/src/react/hooks/useGenerateListingTransaction.tsx +15 -5
  183. package/src/react/hooks/useGenerateOfferTransaction.tsx +15 -6
  184. package/src/react/hooks/useGenerateSellTransaction.tsx +15 -6
  185. package/src/react/hooks/useGetTokenSuppliesMap.ts +5 -0
  186. package/src/react/hooks/useInventory.tsx +7 -5
  187. package/src/react/hooks/useList1155ShopCardData.tsx +130 -0
  188. package/src/react/hooks/useList721ShopCardData.tsx +130 -0
  189. package/src/react/hooks/useListBalances.tsx +6 -9
  190. package/src/react/hooks/useListCollectibleActivities.tsx +2 -1
  191. package/src/react/hooks/useListCollectibles.tsx +1 -14
  192. package/src/react/hooks/useListCollectiblesPaginated.tsx +8 -5
  193. package/src/react/hooks/useListCollectionActivities.tsx +2 -1
  194. package/src/react/hooks/useListCollections.tsx +1 -1
  195. package/src/react/hooks/useListListingsForCollectible.tsx +2 -1
  196. package/src/react/hooks/useListMarketCardData.tsx +157 -0
  197. package/src/react/hooks/useListOffersForCollectible.tsx +2 -1
  198. package/src/react/hooks/useListPrimarySaleItems.ts +42 -0
  199. package/src/react/hooks/useTokenSaleDetailsBatch.tsx +134 -0
  200. package/src/react/queries/highestOffer.ts +6 -4
  201. package/src/react/queries/inventory.ts +35 -1
  202. package/src/react/queries/listBalances.ts +14 -30
  203. package/src/react/queries/listCollectibles.ts +60 -7
  204. package/src/react/queries/listCollections.ts +8 -2
  205. package/src/react/queries/listTokenMetadata.ts +6 -1
  206. package/src/react/queries/lowestListing.ts +6 -4
  207. package/src/react/queries/marketCurrencies.ts +11 -7
  208. package/src/react/queries/marketplaceConfig.ts +55 -80
  209. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +44 -6
  210. package/src/react/ssr/__tests__/create-ssr-client.test.ts +0 -3
  211. package/src/react/ssr/create-ssr-client.ts +5 -10
  212. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +47 -13
  213. package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +1 -1
  214. package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +28 -15
  215. package/src/react/ui/components/_internals/action-button/__tests__/OwnerActions.test.tsx +1 -1
  216. package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +1 -1
  217. package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +1 -1
  218. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +78 -15
  219. package/src/react/ui/components/_internals/action-button/components/OwnerActions.tsx +1 -1
  220. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +1 -1
  221. package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +17 -0
  222. package/src/react/ui/components/marketplace-collectible-card/CollectibleCardSkeleton.tsx +24 -0
  223. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +231 -0
  224. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +76 -0
  225. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +55 -0
  226. package/src/react/ui/components/marketplace-collectible-card/index.ts +3 -0
  227. package/src/react/ui/components/marketplace-collectible-card/types.ts +95 -0
  228. package/src/react/ui/components/marketplace-collectible-card/utils/formatPrice.ts +45 -0
  229. package/src/react/ui/components/marketplace-collectible-card/utils/index.ts +2 -0
  230. package/src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts +39 -0
  231. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +124 -0
  232. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +105 -0
  233. package/src/react/ui/components/{collectible-card/media → media}/Media.tsx +42 -25
  234. package/src/react/ui/components/{collectible-card/media → media}/types.ts +3 -1
  235. package/src/react/ui/index.ts +5 -2
  236. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +554 -0
  237. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +385 -0
  238. package/src/react/ui/modals/BuyModal/__tests__/ERC721ShopModal.test.tsx +272 -0
  239. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx.bak +112 -0
  240. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +117 -13
  241. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +10 -7
  242. package/src/react/ui/modals/BuyModal/components/BuyModalRouter.tsx +157 -0
  243. package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +136 -0
  244. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +184 -0
  245. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +121 -0
  246. package/src/react/ui/modals/BuyModal/components/ERC721BuyModal.tsx +85 -0
  247. package/src/react/ui/modals/BuyModal/components/ERC721ShopModal.tsx +86 -0
  248. package/src/react/ui/modals/BuyModal/components/Modal.tsx +14 -0
  249. package/src/react/ui/modals/BuyModal/components/types.ts +8 -0
  250. package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +4 -4
  251. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +379 -0
  252. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC721SalePaymentParams.test.tsx +253 -0
  253. package/src/react/ui/modals/BuyModal/hooks/__tests__/{useFees.test.tsx → useMarketPlatformFee.test.tsx} +10 -11
  254. package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +62 -44
  255. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +73 -0
  256. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +196 -0
  257. package/src/react/ui/modals/BuyModal/hooks/useLoadData.ts +74 -18
  258. package/src/react/ui/modals/BuyModal/hooks/useMarketPlatformFee.ts +53 -0
  259. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +27 -12
  260. package/src/react/ui/modals/BuyModal/store.ts +147 -13
  261. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +2 -1
  262. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +5 -3
  263. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +2 -1
  264. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +5 -3
  265. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +4 -3
  266. package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +6 -3
  267. package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +11 -7
  268. package/src/react/ui/modals/SuccessfulPurchaseModal/index.tsx +34 -28
  269. package/src/react/ui/modals/SuccessfulPurchaseModal/store.ts +71 -0
  270. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +0 -1
  271. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +105 -108
  272. package/src/react/ui/modals/_internal/components/actionModal/store.ts +45 -12
  273. package/src/react/ui/modals/_internal/components/switchChainModal/__tests__/SwitchChainModal.test.tsx +12 -8
  274. package/src/react/ui/modals/_internal/components/switchChainModal/index.tsx +35 -33
  275. package/src/react/ui/modals/_internal/components/switchChainModal/store.ts +61 -32
  276. package/src/react/ui/modals/modal-provider.tsx +1 -1
  277. package/src/types/buyModalErrors.ts +438 -0
  278. package/src/types/index.ts +4 -1
  279. package/src/types/new-marketplace-types.ts +6 -21
  280. package/src/types/sdk-config.ts +18 -24
  281. package/src/types/types.ts +16 -0
  282. package/src/utils/_internal/error/transaction.ts +36 -1
  283. package/tsconfig.json +1 -1
  284. package/tsconfig.tsbuildinfo +1 -1
  285. package/tsdown.config.ts +25 -0
  286. package/.ctirc +0 -32
  287. package/dist/alien_swap-2B65TDGT.js.map +0 -1
  288. package/dist/aqua-xyz-WMYQLAIS.js.map +0 -1
  289. package/dist/aura-V22RV5OG.js.map +0 -1
  290. package/dist/blur-GE5QOMCM.js.map +0 -1
  291. package/dist/chunk-2PSNAIAT.js +0 -1
  292. package/dist/chunk-2PSNAIAT.js.map +0 -1
  293. package/dist/chunk-5C6ZZ6WX.js +0 -130
  294. package/dist/chunk-5C6ZZ6WX.js.map +0 -1
  295. package/dist/chunk-5O44EPXZ.js +0 -207
  296. package/dist/chunk-5O44EPXZ.js.map +0 -1
  297. package/dist/chunk-6CTFVBKU.js +0 -1
  298. package/dist/chunk-6CTFVBKU.js.map +0 -1
  299. package/dist/chunk-6OPMUCGX.js +0 -42
  300. package/dist/chunk-6OPMUCGX.js.map +0 -1
  301. package/dist/chunk-FUM4OGOQ.js +0 -1027
  302. package/dist/chunk-FUM4OGOQ.js.map +0 -1
  303. package/dist/chunk-L6KWLCER.js +0 -32
  304. package/dist/chunk-L6KWLCER.js.map +0 -1
  305. package/dist/chunk-LAP2CKLN.js +0 -485
  306. package/dist/chunk-LAP2CKLN.js.map +0 -1
  307. package/dist/chunk-LECCEZAO.js +0 -11
  308. package/dist/chunk-LECCEZAO.js.map +0 -1
  309. package/dist/chunk-N7SQWS2R.js +0 -38
  310. package/dist/chunk-N7SQWS2R.js.map +0 -1
  311. package/dist/chunk-NX52D7NX.js +0 -135
  312. package/dist/chunk-NX52D7NX.js.map +0 -1
  313. package/dist/chunk-OAOONM4S.js +0 -1787
  314. package/dist/chunk-OAOONM4S.js.map +0 -1
  315. package/dist/chunk-Q3ECVC4F.js +0 -811
  316. package/dist/chunk-Q3ECVC4F.js.map +0 -1
  317. package/dist/chunk-QY52UADF.js +0 -107
  318. package/dist/chunk-QY52UADF.js.map +0 -1
  319. package/dist/chunk-TNAR3XEF.js +0 -8729
  320. package/dist/chunk-TNAR3XEF.js.map +0 -1
  321. package/dist/chunk-XABYNWXO.js +0 -549
  322. package/dist/chunk-XABYNWXO.js.map +0 -1
  323. package/dist/chunk-XX4EVWBF.js +0 -1292
  324. package/dist/chunk-XX4EVWBF.js.map +0 -1
  325. package/dist/chunk-YB5UUF2G.js +0 -11
  326. package/dist/chunk-YB5UUF2G.js.map +0 -1
  327. package/dist/chunk-YWGFI4PN.js +0 -217
  328. package/dist/chunk-YWGFI4PN.js.map +0 -1
  329. package/dist/coinbase-NLHJMGAP.js.map +0 -1
  330. package/dist/create-config-DLMvMTkZ.d.ts +0 -8
  331. package/dist/element-2LGTYYSP.js.map +0 -1
  332. package/dist/foundation-BPN66ZTN.js.map +0 -1
  333. package/dist/get-query-client-D46hbjk6.d.ts +0 -5
  334. package/dist/index.css.map +0 -1
  335. package/dist/index.js.map +0 -1
  336. package/dist/looks-rare-MZRSOPT4.js.map +0 -1
  337. package/dist/magic-eden-PUBL6KWW.js.map +0 -1
  338. package/dist/manifold-GA445YJ6.js.map +0 -1
  339. package/dist/marketCurrencies-enNVYwBk.d.ts +0 -277
  340. package/dist/marketplace.gen-D24veUQs.d.ts +0 -1073
  341. package/dist/marketplaceConfig-BwNAbLPw.d.ts +0 -21
  342. package/dist/mintify-UMC5PTKC.js.map +0 -1
  343. package/dist/new-marketplace-types-BCw19X9S.d.ts +0 -102
  344. package/dist/nftx-AX3CY3IE.js.map +0 -1
  345. package/dist/okx-GNVLAE2R.js.map +0 -1
  346. package/dist/open-sea-KI43GVEB.js.map +0 -1
  347. package/dist/rarible-2J3MMZJ7.js.map +0 -1
  348. package/dist/react/_internal/api/index.js.map +0 -1
  349. package/dist/react/_internal/databeat/index.css +0 -2764
  350. package/dist/react/_internal/databeat/index.css.map +0 -1
  351. package/dist/react/_internal/databeat/index.js.map +0 -1
  352. package/dist/react/_internal/index.js.map +0 -1
  353. package/dist/react/_internal/wagmi/index.js.map +0 -1
  354. package/dist/react/hooks/index.css +0 -2764
  355. package/dist/react/hooks/index.css.map +0 -1
  356. package/dist/react/hooks/index.js.map +0 -1
  357. package/dist/react/hooks/options/index.js.map +0 -1
  358. package/dist/react/index.css +0 -2764
  359. package/dist/react/index.css.map +0 -1
  360. package/dist/react/index.js.map +0 -1
  361. package/dist/react/queries/index.js.map +0 -1
  362. package/dist/react/ui/components/collectible-card/index.css +0 -2764
  363. package/dist/react/ui/components/collectible-card/index.css.map +0 -1
  364. package/dist/react/ui/components/collectible-card/index.d.ts +0 -71
  365. package/dist/react/ui/components/collectible-card/index.js +0 -27
  366. package/dist/react/ui/components/collectible-card/index.js.map +0 -1
  367. package/dist/react/ui/components/marketplace-logos/index.js.map +0 -1
  368. package/dist/react/ui/icons/index.js.map +0 -1
  369. package/dist/react/ui/index.css +0 -2764
  370. package/dist/react/ui/index.css.map +0 -1
  371. package/dist/react/ui/index.js.map +0 -1
  372. package/dist/react/ui/modals/_internal/components/actionModal/index.css +0 -2764
  373. package/dist/react/ui/modals/_internal/components/actionModal/index.css.map +0 -1
  374. package/dist/react/ui/modals/_internal/components/actionModal/index.js.map +0 -1
  375. package/dist/sdk-config-qorA0TgF.d.ts +0 -165
  376. package/dist/sequence-TGLUFEPQ.js.map +0 -1
  377. package/dist/services-WrshxCqc.d.ts +0 -23
  378. package/dist/sudo-swap-M2O6E3TE.js.map +0 -1
  379. package/dist/super-rare-UU2U4LIN.js.map +0 -1
  380. package/dist/types/index.js.map +0 -1
  381. package/dist/useCollection-YAdXfVO7.d.ts +0 -61
  382. package/dist/utils/abi/index.js.map +0 -1
  383. package/dist/utils/abi/marketplace/index.js.map +0 -1
  384. package/dist/utils/abi/primary-sale/index.js.map +0 -1
  385. package/dist/utils/abi/token/index.js.map +0 -1
  386. package/dist/utils/index.js.map +0 -1
  387. package/dist/x2y2-3W5BBMZC.js.map +0 -1
  388. package/dist/zora-6EY6FUH6.js.map +0 -1
  389. package/postcss.config.mjs +0 -5
  390. package/src/react/hooks/__tests__/__snapshots__/useRoyaltyPercentage.test.tsx.snap +0 -8
  391. package/src/react/ui/components/collectible-card/CollectibleCard.tsx +0 -170
  392. package/src/react/ui/components/collectible-card/Footer.tsx +0 -157
  393. package/src/react/ui/components/collectible-card/__tests__/CollectibleCard.test.tsx +0 -94
  394. package/src/react/ui/components/collectible-card/__tests__/Footer.test.tsx +0 -136
  395. package/src/react/ui/components/collectible-card/__tests__/Media.test.tsx +0 -264
  396. package/src/react/ui/components/collectible-card/index.ts +0 -2
  397. package/src/react/ui/modals/BuyModal/ERC1155QuantityModal.tsx +0 -130
  398. package/src/react/ui/modals/BuyModal/Modal.tsx +0 -124
  399. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx +0 -104
  400. package/src/react/ui/modals/BuyModal/hooks/useFees.ts +0 -39
  401. package/src/react/ui/modals/SuccessfulPurchaseModal/_store.ts +0 -72
  402. package/tsup.config.ts +0 -23
  403. /package/src/react/ui/components/{collectible-card/media → media}/MediaSkeleton.tsx +0 -0
  404. /package/src/react/ui/components/{collectible-card/media → media}/utils.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primary-sale-Cw95phYC.js","names":[],"sources":["../src/utils/abi/primary-sale/sequence-1155-sales-contract.ts","../src/utils/abi/primary-sale/sequence-721-sales-contract.ts"],"sourcesContent":["export const ERC1155_SALES_CONTRACT_ABI = [\n\t{\n\t\ttype: 'function',\n\t\tname: 'DEFAULT_ADMIN_ROLE',\n\t\tinputs: [],\n\t\toutputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'checkMerkleProof',\n\t\tinputs: [\n\t\t\t{ name: 'root', type: 'bytes32', internalType: 'bytes32' },\n\t\t\t{ name: 'proof', type: 'bytes32[]', internalType: 'bytes32[]' },\n\t\t\t{ name: 'addr', type: 'address', internalType: 'address' },\n\t\t\t{ name: 'salt', type: 'bytes32', internalType: 'bytes32' },\n\t\t],\n\t\toutputs: [{ name: '', type: 'bool', internalType: 'bool' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'getRoleAdmin',\n\t\tinputs: [{ name: 'role', type: 'bytes32', internalType: 'bytes32' }],\n\t\toutputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'getRoleMember',\n\t\tinputs: [\n\t\t\t{ name: 'role', type: 'bytes32', internalType: 'bytes32' },\n\t\t\t{ name: 'index', type: 'uint256', internalType: 'uint256' },\n\t\t],\n\t\toutputs: [{ name: '', type: 'address', internalType: 'address' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'getRoleMemberCount',\n\t\tinputs: [{ name: 'role', type: 'bytes32', internalType: 'bytes32' }],\n\t\toutputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'globalSaleDetails',\n\t\tinputs: [],\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tname: '',\n\t\t\t\ttype: 'tuple',\n\t\t\t\tinternalType: 'struct IERC1155SaleFunctions.SaleDetails',\n\t\t\t\tcomponents: [\n\t\t\t\t\t{ name: 'cost', type: 'uint256', internalType: 'uint256' },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'supplyCap',\n\t\t\t\t\t\ttype: 'uint256',\n\t\t\t\t\t\tinternalType: 'uint256',\n\t\t\t\t\t},\n\t\t\t\t\t{ name: 'startTime', type: 'uint64', internalType: 'uint64' },\n\t\t\t\t\t{ name: 'endTime', type: 'uint64', internalType: 'uint64' },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'merkleRoot',\n\t\t\t\t\t\ttype: 'bytes32',\n\t\t\t\t\t\tinternalType: 'bytes32',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'grantRole',\n\t\tinputs: [\n\t\t\t{ name: 'role', type: 'bytes32', internalType: 'bytes32' },\n\t\t\t{ name: 'account', type: 'address', internalType: 'address' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'hasRole',\n\t\tinputs: [\n\t\t\t{ name: 'role', type: 'bytes32', internalType: 'bytes32' },\n\t\t\t{ name: 'account', type: 'address', internalType: 'address' },\n\t\t],\n\t\toutputs: [{ name: '', type: 'bool', internalType: 'bool' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'initialize',\n\t\tinputs: [\n\t\t\t{ name: 'owner', type: 'address', internalType: 'address' },\n\t\t\t{ name: 'items', type: 'address', internalType: 'address' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'mint',\n\t\tinputs: [\n\t\t\t{ name: 'to', type: 'address', internalType: 'address' },\n\t\t\t{\n\t\t\t\tname: 'tokenIds',\n\t\t\t\ttype: 'uint256[]',\n\t\t\t\tinternalType: 'uint256[]',\n\t\t\t},\n\t\t\t{ name: 'amounts', type: 'uint256[]', internalType: 'uint256[]' },\n\t\t\t{ name: 'data', type: 'bytes', internalType: 'bytes' },\n\t\t\t{\n\t\t\t\tname: 'expectedPaymentToken',\n\t\t\t\ttype: 'address',\n\t\t\t\tinternalType: 'address',\n\t\t\t},\n\t\t\t{ name: 'maxTotal', type: 'uint256', internalType: 'uint256' },\n\t\t\t{ name: 'proof', type: 'bytes32[]', internalType: 'bytes32[]' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'payable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'paymentToken',\n\t\tinputs: [],\n\t\toutputs: [{ name: '', type: 'address', internalType: 'address' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'renounceRole',\n\t\tinputs: [\n\t\t\t{ name: 'role', type: 'bytes32', internalType: 'bytes32' },\n\t\t\t{ name: 'account', type: 'address', internalType: 'address' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'revokeRole',\n\t\tinputs: [\n\t\t\t{ name: 'role', type: 'bytes32', internalType: 'bytes32' },\n\t\t\t{ name: 'account', type: 'address', internalType: 'address' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'setGlobalSaleDetails',\n\t\tinputs: [\n\t\t\t{ name: 'cost', type: 'uint256', internalType: 'uint256' },\n\t\t\t{ name: 'supplyCap', type: 'uint256', internalType: 'uint256' },\n\t\t\t{ name: 'startTime', type: 'uint64', internalType: 'uint64' },\n\t\t\t{ name: 'endTime', type: 'uint64', internalType: 'uint64' },\n\t\t\t{ name: 'merkleRoot', type: 'bytes32', internalType: 'bytes32' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'setPaymentToken',\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tname: 'paymentTokenAddr',\n\t\t\t\ttype: 'address',\n\t\t\t\tinternalType: 'address',\n\t\t\t},\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'setTokenSaleDetails',\n\t\tinputs: [\n\t\t\t{ name: 'tokenId', type: 'uint256', internalType: 'uint256' },\n\t\t\t{ name: 'cost', type: 'uint256', internalType: 'uint256' },\n\t\t\t{ name: 'supplyCap', type: 'uint256', internalType: 'uint256' },\n\t\t\t{ name: 'startTime', type: 'uint64', internalType: 'uint64' },\n\t\t\t{ name: 'endTime', type: 'uint64', internalType: 'uint64' },\n\t\t\t{ name: 'merkleRoot', type: 'bytes32', internalType: 'bytes32' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'supportsInterface',\n\t\tinputs: [{ name: 'interfaceId', type: 'bytes4', internalType: 'bytes4' }],\n\t\toutputs: [{ name: '', type: 'bool', internalType: 'bool' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'tokenSaleDetails',\n\t\tinputs: [{ name: 'tokenId', type: 'uint256', internalType: 'uint256' }],\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tname: '',\n\t\t\t\ttype: 'tuple',\n\t\t\t\tinternalType: 'struct IERC1155SaleFunctions.SaleDetails',\n\t\t\t\tcomponents: [\n\t\t\t\t\t{ name: 'cost', type: 'uint256', internalType: 'uint256' },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'supplyCap',\n\t\t\t\t\t\ttype: 'uint256',\n\t\t\t\t\t\tinternalType: 'uint256',\n\t\t\t\t\t},\n\t\t\t\t\t{ name: 'startTime', type: 'uint64', internalType: 'uint64' },\n\t\t\t\t\t{ name: 'endTime', type: 'uint64', internalType: 'uint64' },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'merkleRoot',\n\t\t\t\t\t\ttype: 'bytes32',\n\t\t\t\t\t\tinternalType: 'bytes32',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'withdrawERC20',\n\t\tinputs: [\n\t\t\t{ name: 'token', type: 'address', internalType: 'address' },\n\t\t\t{ name: 'to', type: 'address', internalType: 'address' },\n\t\t\t{ name: 'value', type: 'uint256', internalType: 'uint256' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'withdrawETH',\n\t\tinputs: [\n\t\t\t{ name: 'to', type: 'address', internalType: 'address' },\n\t\t\t{ name: 'value', type: 'uint256', internalType: 'uint256' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'event',\n\t\tname: 'GlobalSaleDetailsUpdated',\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tname: 'cost',\n\t\t\t\ttype: 'uint256',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint256',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'supplyCap',\n\t\t\t\ttype: 'uint256',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint256',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'startTime',\n\t\t\t\ttype: 'uint64',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint64',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'endTime',\n\t\t\t\ttype: 'uint64',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint64',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'merkleRoot',\n\t\t\t\ttype: 'bytes32',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tanonymous: false,\n\t},\n\t{\n\t\ttype: 'event',\n\t\tname: 'RoleAdminChanged',\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tname: 'role',\n\t\t\t\ttype: 'bytes32',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'previousAdminRole',\n\t\t\t\ttype: 'bytes32',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'newAdminRole',\n\t\t\t\ttype: 'bytes32',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tanonymous: false,\n\t},\n\t{\n\t\ttype: 'event',\n\t\tname: 'RoleGranted',\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tname: 'role',\n\t\t\t\ttype: 'bytes32',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'account',\n\t\t\t\ttype: 'address',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'address',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'sender',\n\t\t\t\ttype: 'address',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'address',\n\t\t\t},\n\t\t],\n\t\tanonymous: false,\n\t},\n\t{\n\t\ttype: 'event',\n\t\tname: 'RoleRevoked',\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tname: 'role',\n\t\t\t\ttype: 'bytes32',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'account',\n\t\t\t\ttype: 'address',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'address',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'sender',\n\t\t\t\ttype: 'address',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'address',\n\t\t\t},\n\t\t],\n\t\tanonymous: false,\n\t},\n\t{\n\t\ttype: 'event',\n\t\tname: 'TokenSaleDetailsUpdated',\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tname: 'tokenId',\n\t\t\t\ttype: 'uint256',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint256',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'cost',\n\t\t\t\ttype: 'uint256',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint256',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'supplyCap',\n\t\t\t\ttype: 'uint256',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint256',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'startTime',\n\t\t\t\ttype: 'uint64',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint64',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'endTime',\n\t\t\t\ttype: 'uint64',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint64',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'merkleRoot',\n\t\t\t\ttype: 'bytes32',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tanonymous: false,\n\t},\n\t{ type: 'error', name: 'GlobalSaleInactive', inputs: [] },\n\t{\n\t\ttype: 'error',\n\t\tname: 'InsufficientPayment',\n\t\tinputs: [\n\t\t\t{ name: 'currency', type: 'address', internalType: 'address' },\n\t\t\t{ name: 'expected', type: 'uint256', internalType: 'uint256' },\n\t\t\t{ name: 'actual', type: 'uint256', internalType: 'uint256' },\n\t\t],\n\t},\n\t{\n\t\ttype: 'error',\n\t\tname: 'InsufficientSupply',\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tname: 'currentSupply',\n\t\t\t\ttype: 'uint256',\n\t\t\t\tinternalType: 'uint256',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'requestedAmount',\n\t\t\t\ttype: 'uint256',\n\t\t\t\tinternalType: 'uint256',\n\t\t\t},\n\t\t\t{ name: 'maxSupply', type: 'uint256', internalType: 'uint256' },\n\t\t],\n\t},\n\t{ type: 'error', name: 'InvalidInitialization', inputs: [] },\n\t{ type: 'error', name: 'InvalidSaleDetails', inputs: [] },\n\t{ type: 'error', name: 'InvalidTokenIds', inputs: [] },\n\t{\n\t\ttype: 'error',\n\t\tname: 'MerkleProofInvalid',\n\t\tinputs: [\n\t\t\t{ name: 'root', type: 'bytes32', internalType: 'bytes32' },\n\t\t\t{ name: 'proof', type: 'bytes32[]', internalType: 'bytes32[]' },\n\t\t\t{ name: 'addr', type: 'address', internalType: 'address' },\n\t\t\t{ name: 'salt', type: 'bytes32', internalType: 'bytes32' },\n\t\t],\n\t},\n\t{\n\t\ttype: 'error',\n\t\tname: 'SaleInactive',\n\t\tinputs: [{ name: 'tokenId', type: 'uint256', internalType: 'uint256' }],\n\t},\n\t{ type: 'error', name: 'WithdrawFailed', inputs: [] },\n] as const;\n","export const ERC721_SALE_ABI = [\n\t{\n\t\ttype: 'function',\n\t\tname: 'DEFAULT_ADMIN_ROLE',\n\t\tinputs: [],\n\t\toutputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'checkMerkleProof',\n\t\tinputs: [\n\t\t\t{ name: 'root', type: 'bytes32', internalType: 'bytes32' },\n\t\t\t{ name: 'proof', type: 'bytes32[]', internalType: 'bytes32[]' },\n\t\t\t{ name: 'addr', type: 'address', internalType: 'address' },\n\t\t\t{ name: 'salt', type: 'bytes32', internalType: 'bytes32' },\n\t\t],\n\t\toutputs: [{ name: '', type: 'bool', internalType: 'bool' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'getRoleAdmin',\n\t\tinputs: [{ name: 'role', type: 'bytes32', internalType: 'bytes32' }],\n\t\toutputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'getRoleMember',\n\t\tinputs: [\n\t\t\t{ name: 'role', type: 'bytes32', internalType: 'bytes32' },\n\t\t\t{ name: 'index', type: 'uint256', internalType: 'uint256' },\n\t\t],\n\t\toutputs: [{ name: '', type: 'address', internalType: 'address' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'getRoleMemberCount',\n\t\tinputs: [{ name: 'role', type: 'bytes32', internalType: 'bytes32' }],\n\t\toutputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'grantRole',\n\t\tinputs: [\n\t\t\t{ name: 'role', type: 'bytes32', internalType: 'bytes32' },\n\t\t\t{ name: 'account', type: 'address', internalType: 'address' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'hasRole',\n\t\tinputs: [\n\t\t\t{ name: 'role', type: 'bytes32', internalType: 'bytes32' },\n\t\t\t{ name: 'account', type: 'address', internalType: 'address' },\n\t\t],\n\t\toutputs: [{ name: '', type: 'bool', internalType: 'bool' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'initialize',\n\t\tinputs: [\n\t\t\t{ name: 'owner', type: 'address', internalType: 'address' },\n\t\t\t{ name: 'items', type: 'address', internalType: 'address' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'itemsContract',\n\t\tinputs: [],\n\t\toutputs: [{ name: '', type: 'address', internalType: 'address' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'mint',\n\t\tinputs: [\n\t\t\t{ name: 'to', type: 'address', internalType: 'address' },\n\t\t\t{ name: 'amount', type: 'uint256', internalType: 'uint256' },\n\t\t\t{\n\t\t\t\tname: 'paymentToken',\n\t\t\t\ttype: 'address',\n\t\t\t\tinternalType: 'address',\n\t\t\t},\n\t\t\t{ name: 'maxTotal', type: 'uint256', internalType: 'uint256' },\n\t\t\t{ name: 'proof', type: 'bytes32[]', internalType: 'bytes32[]' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'payable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'renounceRole',\n\t\tinputs: [\n\t\t\t{ name: 'role', type: 'bytes32', internalType: 'bytes32' },\n\t\t\t{ name: 'account', type: 'address', internalType: 'address' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'revokeRole',\n\t\tinputs: [\n\t\t\t{ name: 'role', type: 'bytes32', internalType: 'bytes32' },\n\t\t\t{ name: 'account', type: 'address', internalType: 'address' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'saleDetails',\n\t\tinputs: [],\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tname: '',\n\t\t\t\ttype: 'tuple',\n\t\t\t\tinternalType: 'struct IERC721SaleFunctions.SaleDetails',\n\t\t\t\tcomponents: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'supplyCap',\n\t\t\t\t\t\ttype: 'uint256',\n\t\t\t\t\t\tinternalType: 'uint256',\n\t\t\t\t\t},\n\t\t\t\t\t{ name: 'cost', type: 'uint256', internalType: 'uint256' },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'paymentToken',\n\t\t\t\t\t\ttype: 'address',\n\t\t\t\t\t\tinternalType: 'address',\n\t\t\t\t\t},\n\t\t\t\t\t{ name: 'startTime', type: 'uint64', internalType: 'uint64' },\n\t\t\t\t\t{ name: 'endTime', type: 'uint64', internalType: 'uint64' },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'merkleRoot',\n\t\t\t\t\t\ttype: 'bytes32',\n\t\t\t\t\t\tinternalType: 'bytes32',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'setSaleDetails',\n\t\tinputs: [\n\t\t\t{ name: 'supplyCap', type: 'uint256', internalType: 'uint256' },\n\t\t\t{ name: 'cost', type: 'uint256', internalType: 'uint256' },\n\t\t\t{\n\t\t\t\tname: 'paymentToken',\n\t\t\t\ttype: 'address',\n\t\t\t\tinternalType: 'address',\n\t\t\t},\n\t\t\t{ name: 'startTime', type: 'uint64', internalType: 'uint64' },\n\t\t\t{ name: 'endTime', type: 'uint64', internalType: 'uint64' },\n\t\t\t{ name: 'merkleRoot', type: 'bytes32', internalType: 'bytes32' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'supportsInterface',\n\t\tinputs: [{ name: 'interfaceId', type: 'bytes4', internalType: 'bytes4' }],\n\t\toutputs: [{ name: '', type: 'bool', internalType: 'bool' }],\n\t\tstateMutability: 'view',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'withdrawERC20',\n\t\tinputs: [\n\t\t\t{ name: 'token', type: 'address', internalType: 'address' },\n\t\t\t{ name: 'to', type: 'address', internalType: 'address' },\n\t\t\t{ name: 'value', type: 'uint256', internalType: 'uint256' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'function',\n\t\tname: 'withdrawETH',\n\t\tinputs: [\n\t\t\t{ name: 'to', type: 'address', internalType: 'address' },\n\t\t\t{ name: 'value', type: 'uint256', internalType: 'uint256' },\n\t\t],\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t},\n\t{\n\t\ttype: 'event',\n\t\tname: 'RoleAdminChanged',\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tname: 'role',\n\t\t\t\ttype: 'bytes32',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'previousAdminRole',\n\t\t\t\ttype: 'bytes32',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'newAdminRole',\n\t\t\t\ttype: 'bytes32',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tanonymous: false,\n\t},\n\t{\n\t\ttype: 'event',\n\t\tname: 'RoleGranted',\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tname: 'role',\n\t\t\t\ttype: 'bytes32',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'account',\n\t\t\t\ttype: 'address',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'address',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'sender',\n\t\t\t\ttype: 'address',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'address',\n\t\t\t},\n\t\t],\n\t\tanonymous: false,\n\t},\n\t{\n\t\ttype: 'event',\n\t\tname: 'RoleRevoked',\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tname: 'role',\n\t\t\t\ttype: 'bytes32',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'account',\n\t\t\t\ttype: 'address',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'address',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'sender',\n\t\t\t\ttype: 'address',\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'address',\n\t\t\t},\n\t\t],\n\t\tanonymous: false,\n\t},\n\t{\n\t\ttype: 'event',\n\t\tname: 'SaleDetailsUpdated',\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tname: 'supplyCap',\n\t\t\t\ttype: 'uint256',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint256',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'cost',\n\t\t\t\ttype: 'uint256',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint256',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'paymentToken',\n\t\t\t\ttype: 'address',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'address',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'startTime',\n\t\t\t\ttype: 'uint64',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint64',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'endTime',\n\t\t\t\ttype: 'uint64',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint64',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'merkleRoot',\n\t\t\t\ttype: 'bytes32',\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tanonymous: false,\n\t},\n\t{\n\t\ttype: 'error',\n\t\tname: 'InsufficientPayment',\n\t\tinputs: [\n\t\t\t{ name: 'currency', type: 'address', internalType: 'address' },\n\t\t\t{ name: 'expected', type: 'uint256', internalType: 'uint256' },\n\t\t\t{ name: 'actual', type: 'uint256', internalType: 'uint256' },\n\t\t],\n\t},\n\t{\n\t\ttype: 'error',\n\t\tname: 'InsufficientSupply',\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tname: 'currentSupply',\n\t\t\t\ttype: 'uint256',\n\t\t\t\tinternalType: 'uint256',\n\t\t\t},\n\t\t\t{ name: 'amount', type: 'uint256', internalType: 'uint256' },\n\t\t\t{ name: 'maxSupply', type: 'uint256', internalType: 'uint256' },\n\t\t],\n\t},\n\t{ type: 'error', name: 'InvalidInitialization', inputs: [] },\n\t{ type: 'error', name: 'InvalidSaleDetails', inputs: [] },\n\t{\n\t\ttype: 'error',\n\t\tname: 'MerkleProofInvalid',\n\t\tinputs: [\n\t\t\t{ name: 'root', type: 'bytes32', internalType: 'bytes32' },\n\t\t\t{ name: 'proof', type: 'bytes32[]', internalType: 'bytes32[]' },\n\t\t\t{ name: 'addr', type: 'address', internalType: 'address' },\n\t\t\t{ name: 'salt', type: 'bytes32', internalType: 'bytes32' },\n\t\t],\n\t},\n\t{ type: 'error', name: 'SaleInactive', inputs: [] },\n\t{ type: 'error', name: 'WithdrawFailed', inputs: [] },\n] as const;\n"],"mappings":"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"}
@@ -0,0 +1,486 @@
1
+ import { LaosAPI, balanceQueries, collectableKeys, currencyKeys, getIndexerClient, getMarketplaceClient, getMetadataClient, getQueryClient } from "./api-1KFxYh7o.js";
2
+ import { OrderSide } from "./marketplace.gen-Dqk8vRmD.js";
3
+ import { compareAddress } from "./utils-BFdxaToy.js";
4
+ import { fetchMarketplaceConfig, marketplaceConfigOptions } from "./marketplaceConfig-D2MYFqll.js";
5
+ import { infiniteQueryOptions, queryOptions, skipToken } from "@tanstack/react-query";
6
+ import { zeroAddress } from "viem";
7
+
8
+ //#region src/react/queries/balanceOfCollectible.ts
9
+ /**
10
+ * Fetches the balance of a specific collectible for a user
11
+ *
12
+ * @param args - Arguments for the API call
13
+ * @param config - SDK configuration
14
+ * @returns The balance data
15
+ */
16
+ async function fetchBalanceOfCollectible(args, config) {
17
+ if (args.isLaos721) {
18
+ const laosApi = new LaosAPI();
19
+ const response = await laosApi.getTokenBalances({
20
+ chainId: args.chainId.toString(),
21
+ accountAddress: args.userAddress,
22
+ includeMetadata: true
23
+ });
24
+ return response.balances[0] || null;
25
+ }
26
+ const indexerClient = getIndexerClient(args.chainId, config);
27
+ return indexerClient.getTokenBalances({
28
+ accountAddress: args.userAddress,
29
+ contractAddress: args.collectionAddress,
30
+ tokenID: args.collectableId,
31
+ includeMetadata: false,
32
+ metadataOptions: {
33
+ verifiedOnly: true,
34
+ includeContracts: [args.collectionAddress]
35
+ }
36
+ }).then((res) => res.balances[0] || null);
37
+ }
38
+ /**
39
+ * Creates a tanstack query options object for the balance query
40
+ *
41
+ * @param args - The query arguments
42
+ * @param config - SDK configuration
43
+ * @returns Query options configuration
44
+ */
45
+ function balanceOfCollectibleOptions(args, config) {
46
+ const enabled = !!args.userAddress && (args.query?.enabled ?? true);
47
+ return queryOptions({
48
+ queryKey: [...collectableKeys.userBalances, args],
49
+ queryFn: enabled ? () => fetchBalanceOfCollectible({
50
+ ...args,
51
+ userAddress: args.userAddress
52
+ }, config) : skipToken
53
+ });
54
+ }
55
+
56
+ //#endregion
57
+ //#region src/react/queries/marketCurrencies.ts
58
+ const fetchMarketCurrencies = async (args, config) => {
59
+ const includeNativeCurrency = args.includeNativeCurrency ?? true;
60
+ const marketplaceClient = getMarketplaceClient(config);
61
+ let currencies = await marketplaceClient.listCurrencies({ chainId: String(args.chainId) }).then((resp) => resp.currencies.map((currency) => ({
62
+ ...currency,
63
+ contractAddress: currency.contractAddress || zeroAddress
64
+ })));
65
+ if (args.collectionAddress) {
66
+ const queryClient = getQueryClient();
67
+ const marketplaceConfig = await queryClient.fetchQuery(marketplaceConfigOptions(config));
68
+ const currenciesOptions$1 = marketplaceConfig.market.collections.find((collection) => compareAddress(collection.itemsAddress, args.collectionAddress))?.currencyOptions;
69
+ if (currenciesOptions$1) currencies = currencies.filter((currency) => currenciesOptions$1.includes(currency.contractAddress));
70
+ }
71
+ if (!includeNativeCurrency) currencies = currencies.filter((currency) => !currency.nativeCurrency);
72
+ return currencies;
73
+ };
74
+ const currenciesOptions = (args, config) => {
75
+ return queryOptions({
76
+ ...args.query,
77
+ queryKey: [
78
+ ...currencyKeys.lists,
79
+ args.chainId,
80
+ args.includeNativeCurrency ?? true,
81
+ args.collectionAddress
82
+ ],
83
+ queryFn: () => fetchMarketCurrencies(args, config)
84
+ });
85
+ };
86
+
87
+ //#endregion
88
+ //#region src/react/queries/getTokenSupplies.ts
89
+ async function getTokenSupplies(args, config) {
90
+ if (args.isLaos721) {
91
+ const laosApi = new LaosAPI();
92
+ return laosApi.getTokenSupplies({
93
+ chainId: args.chainId.toString(),
94
+ contractAddress: args.contractAddress
95
+ });
96
+ }
97
+ const indexerClient = getIndexerClient(args.chainId, config);
98
+ return await indexerClient.getTokenSupplies(args);
99
+ }
100
+ function getTokenSuppliesOptions(args, config) {
101
+ return queryOptions({
102
+ queryKey: ["getTokenSupplies", args],
103
+ queryFn: () => getTokenSupplies(args, config)
104
+ });
105
+ }
106
+
107
+ //#endregion
108
+ //#region src/react/queries/listBalances.ts
109
+ async function fetchBalances(args, config, page) {
110
+ if (args.isLaos721 && args.accountAddress) {
111
+ const laosClient = new LaosAPI();
112
+ return laosClient.getTokenBalances({
113
+ chainId: args.chainId.toString(),
114
+ accountAddress: args.accountAddress,
115
+ includeMetadata: args.includeMetadata,
116
+ page: { sort: [{
117
+ column: "CREATED_AT",
118
+ order: "DESC"
119
+ }] }
120
+ });
121
+ }
122
+ const indexerClient = getIndexerClient(args.chainId, config);
123
+ return indexerClient.getTokenBalances({
124
+ ...args,
125
+ tokenID: args.tokenId,
126
+ page
127
+ });
128
+ }
129
+ /**
130
+ * Creates a tanstack infinite query options object for the balances query
131
+ *
132
+ * @param args - The query arguments
133
+ * @param config - SDK configuration
134
+ * @returns Query options configuration
135
+ */
136
+ function listBalancesOptions(args, config) {
137
+ return infiniteQueryOptions({
138
+ ...args.query,
139
+ queryKey: [
140
+ ...balanceQueries.lists,
141
+ args,
142
+ config
143
+ ],
144
+ queryFn: ({ pageParam }) => fetchBalances(args, config, pageParam),
145
+ initialPageParam: {
146
+ page: 1,
147
+ pageSize: 30
148
+ },
149
+ getNextPageParam: (lastPage) => lastPage.page.after
150
+ });
151
+ }
152
+
153
+ //#endregion
154
+ //#region src/react/queries/listCollectibles.ts
155
+ /**
156
+ * Fetches a list of collectibles with pagination support
157
+ *
158
+ * @param args - Arguments for the API call
159
+ * @param config - SDK configuration
160
+ * @param page - Page parameters for pagination
161
+ * @returns The collectibles data
162
+ */
163
+ async function fetchCollectibles(args, config, marketplaceConfig, page) {
164
+ const marketplaceClient = getMarketplaceClient(config);
165
+ const { chainId, collectionAddress,...restArgs } = args;
166
+ const parsedArgs = {
167
+ ...restArgs,
168
+ chainId: String(chainId),
169
+ contractAddress: collectionAddress,
170
+ page,
171
+ side: args.side
172
+ };
173
+ if (args.marketplaceType === "shop") {
174
+ const shopCollection = marketplaceConfig.shop.collections.find((collection) => compareAddress(collection.itemsAddress, args.collectionAddress));
175
+ if (!shopCollection) return { collectibles: [] };
176
+ const primarySaleItemsList = await marketplaceClient.listPrimarySaleItems({
177
+ chainId: args.chainId.toString(),
178
+ primarySaleContractAddress: shopCollection.saleAddress
179
+ }, marketplaceConfig);
180
+ return { collectibles: primarySaleItemsList.primarySaleItems.map((item) => ({
181
+ metadata: item.metadata,
182
+ primarySale: {
183
+ price: {
184
+ amount: item.primarySaleItem.priceAmount,
185
+ formatted: item.primarySaleItem.priceAmountFormatted,
186
+ decimals: item.primarySaleItem.priceDecimals,
187
+ currencyAddress: item.primarySaleItem.currencyAddress
188
+ },
189
+ startDate: item.primarySaleItem.startDate,
190
+ endDate: item.primarySaleItem.endDate,
191
+ supplyCap: item.primarySaleItem.supplyCap,
192
+ itemType: item.primarySaleItem.itemType
193
+ }
194
+ })) };
195
+ }
196
+ if (args.isLaos721 && args.side === OrderSide.listing) try {
197
+ const fetchBalancesArgs = {
198
+ chainId: args.chainId,
199
+ accountAddress: args.filter?.inAccounts?.[0],
200
+ contractAddress: args.collectionAddress,
201
+ page,
202
+ includeMetadata: true,
203
+ isLaos721: true
204
+ };
205
+ const balances = await fetchBalances(fetchBalancesArgs, config, page);
206
+ const collectibles = balances.balances.map((balance) => {
207
+ if (!balance.tokenMetadata) throw new Error("Token metadata not found");
208
+ return { metadata: {
209
+ tokenId: balance.tokenID ?? "",
210
+ attributes: balance.tokenMetadata.attributes,
211
+ image: balance.tokenMetadata.image,
212
+ name: balance.tokenMetadata.name,
213
+ description: balance.tokenMetadata.description,
214
+ video: balance.tokenMetadata.video,
215
+ audio: balance.tokenMetadata.audio
216
+ } };
217
+ });
218
+ return {
219
+ collectibles,
220
+ page: balances.page
221
+ };
222
+ } catch (error) {
223
+ console.error(error);
224
+ }
225
+ return await marketplaceClient.listCollectibles(parsedArgs);
226
+ }
227
+ /**
228
+ * Creates a tanstack infinite query options object for the collectibles query
229
+ *
230
+ * @param args - The query arguments
231
+ * @param config - SDK configuration
232
+ * @returns Query options configuration
233
+ */
234
+ function listCollectiblesOptions(args, config) {
235
+ return infiniteQueryOptions({
236
+ ...args.query,
237
+ queryKey: [
238
+ ...collectableKeys.lists,
239
+ args,
240
+ config
241
+ ],
242
+ queryFn: async ({ pageParam }) => {
243
+ const marketplaceConfig = await fetchMarketplaceConfig({ config });
244
+ return fetchCollectibles(args, config, marketplaceConfig, pageParam);
245
+ },
246
+ initialPageParam: {
247
+ page: 1,
248
+ pageSize: 30
249
+ },
250
+ getNextPageParam: (lastPage) => lastPage.page?.more ? lastPage.page : void 0
251
+ });
252
+ }
253
+
254
+ //#endregion
255
+ //#region src/react/queries/inventory.ts
256
+ const stateByCollection = /* @__PURE__ */ new Map();
257
+ const getCollectionKey = (args) => `${args.chainId}-${args.collectionAddress}-${args.accountAddress}`;
258
+ function getOrInitState(collectionKey) {
259
+ if (!stateByCollection.has(collectionKey)) stateByCollection.set(collectionKey, {
260
+ seenTokenIds: /* @__PURE__ */ new Set(),
261
+ marketplaceFinished: false,
262
+ indexerTokensFetched: false,
263
+ indexerTokenBalances: /* @__PURE__ */ new Map()
264
+ });
265
+ return stateByCollection.get(collectionKey);
266
+ }
267
+ function collectibleFromTokenBalance(token) {
268
+ return {
269
+ metadata: {
270
+ tokenId: token.tokenID ?? "",
271
+ attributes: token.tokenMetadata?.attributes ?? [],
272
+ image: token.tokenMetadata?.image,
273
+ name: token.tokenMetadata?.name ?? "",
274
+ description: token.tokenMetadata?.description,
275
+ video: token.tokenMetadata?.video,
276
+ audio: token.tokenMetadata?.audio
277
+ },
278
+ contractInfo: token.contractInfo,
279
+ contractType: token.contractType,
280
+ balance: token.balance
281
+ };
282
+ }
283
+ async function fetchAllIndexerTokens(chainId, accountAddress, collectionAddress, config, state, isLaos721) {
284
+ if (isLaos721) {
285
+ const laosClient = new LaosAPI();
286
+ const { balances } = await laosClient.getTokenBalances({
287
+ chainId: chainId.toString(),
288
+ accountAddress,
289
+ includeMetadata: true,
290
+ page: { sort: [{
291
+ column: "CREATED_AT",
292
+ order: "DESC"
293
+ }] }
294
+ });
295
+ for (const balance of balances) if (balance.tokenID) state.indexerTokenBalances.set(balance.tokenID, collectibleFromTokenBalance(balance));
296
+ state.indexerTokensFetched = true;
297
+ return;
298
+ }
299
+ const indexerClient = getIndexerClient(chainId, config);
300
+ let page = { pageSize: 50 };
301
+ while (true) {
302
+ const { balances, page: nextPage } = await indexerClient.getTokenBalances({
303
+ accountAddress,
304
+ contractAddress: collectionAddress,
305
+ includeMetadata: true,
306
+ page
307
+ });
308
+ for (const balance of balances) if (balance.tokenID) state.indexerTokenBalances.set(balance.tokenID, collectibleFromTokenBalance(balance));
309
+ if (!nextPage.more) break;
310
+ page = nextPage;
311
+ }
312
+ state.indexerTokensFetched = true;
313
+ }
314
+ function processRemainingIndexerTokens(state, page) {
315
+ const allTokens = Array.from(state.indexerTokenBalances.values());
316
+ const newTokens = allTokens.filter((token) => !state.seenTokenIds.has(token.metadata.tokenId));
317
+ const startIndex = (page.page - 1) * page.pageSize;
318
+ const endIndex = startIndex + page.pageSize;
319
+ const paginatedTokens = newTokens.slice(startIndex, endIndex);
320
+ for (const token of paginatedTokens) state.seenTokenIds.add(token.metadata.tokenId);
321
+ return {
322
+ collectibles: paginatedTokens,
323
+ page: {
324
+ page: page.page,
325
+ pageSize: page.pageSize,
326
+ more: endIndex < newTokens.length
327
+ }
328
+ };
329
+ }
330
+ function processMarketplaceCollectibles(collectibles, state, page) {
331
+ for (const c of collectibles) state.seenTokenIds.add(c.metadata.tokenId);
332
+ const enrichedCollectibles = collectibles.map((c) => {
333
+ const tokenId = c.metadata.tokenId;
334
+ const indexerData = state.indexerTokenBalances.get(tokenId);
335
+ return {
336
+ ...c,
337
+ balance: indexerData?.balance,
338
+ contractInfo: indexerData?.contractInfo,
339
+ contractType: indexerData?.contractType
340
+ };
341
+ });
342
+ const marketplaceTokenIds = new Set(enrichedCollectibles.map((c) => c.metadata.tokenId));
343
+ const missingTokens = Array.from(state.indexerTokenBalances.entries()).filter(([tokenId]) => !marketplaceTokenIds.has(tokenId)).map(([_, balance]) => balance).slice(0, page.pageSize);
344
+ return {
345
+ enrichedCollectibles,
346
+ missingTokens
347
+ };
348
+ }
349
+ async function fetchInventory(args, config, page) {
350
+ const { accountAddress, collectionAddress, chainId, isLaos721 } = args;
351
+ const collectionKey = getCollectionKey(args);
352
+ const state = getOrInitState(collectionKey);
353
+ if (!state.indexerTokensFetched) await fetchAllIndexerTokens(chainId, accountAddress, collectionAddress, config, state, isLaos721);
354
+ if (state.marketplaceFinished) return processRemainingIndexerTokens(state, page);
355
+ const marketplaceConfig = await fetchMarketplaceConfig({ config });
356
+ const collectibles = await fetchCollectibles({
357
+ chainId,
358
+ collectionAddress,
359
+ filter: {
360
+ inAccounts: [accountAddress],
361
+ includeEmpty: true
362
+ },
363
+ side: OrderSide.listing
364
+ }, config, marketplaceConfig, page);
365
+ const { enrichedCollectibles, missingTokens } = processMarketplaceCollectibles(collectibles.collectibles, state, page);
366
+ if (!collectibles.page?.more) {
367
+ state.marketplaceFinished = true;
368
+ return {
369
+ collectibles: [...enrichedCollectibles, ...missingTokens],
370
+ page: {
371
+ page: collectibles.page?.page ?? page.page,
372
+ pageSize: collectibles.page?.pageSize ?? page.pageSize,
373
+ more: missingTokens.length > 0
374
+ }
375
+ };
376
+ }
377
+ return {
378
+ collectibles: enrichedCollectibles,
379
+ page: {
380
+ page: collectibles.page?.page ?? page.page,
381
+ pageSize: collectibles.page?.pageSize ?? page.pageSize,
382
+ more: Boolean(collectibles.page?.more)
383
+ }
384
+ };
385
+ }
386
+ function inventoryOptions(args, config) {
387
+ const collectionKey = getCollectionKey(args);
388
+ const enabledQuery = args.query?.enabled ?? true;
389
+ const enabled = enabledQuery && !!args.accountAddress && !!args.collectionAddress;
390
+ return infiniteQueryOptions({
391
+ queryKey: [
392
+ "inventory",
393
+ args.accountAddress,
394
+ args.collectionAddress,
395
+ args.chainId
396
+ ],
397
+ queryFn: ({ pageParam }) => fetchInventory({
398
+ ...args,
399
+ isLaos721: args.isLaos721 ?? false
400
+ }, config, pageParam),
401
+ initialPageParam: {
402
+ page: 1,
403
+ pageSize: 30
404
+ },
405
+ getNextPageParam: (lastPage) => lastPage.page?.more ? lastPage.page : void 0,
406
+ enabled,
407
+ meta: { onInvalidate: () => {
408
+ stateByCollection.delete(collectionKey);
409
+ } }
410
+ });
411
+ }
412
+
413
+ //#endregion
414
+ //#region src/react/queries/highestOffer.ts
415
+ async function fetchHighestOffer(args, config) {
416
+ const marketplaceClient = getMarketplaceClient(config);
417
+ const { chainId, collectionAddress, tokenId } = args;
418
+ const data = await marketplaceClient.getCollectibleHighestOffer({
419
+ chainId: String(chainId),
420
+ contractAddress: collectionAddress,
421
+ tokenId
422
+ });
423
+ return data.order ?? null;
424
+ }
425
+ /**
426
+ * Creates a tanstack query options object for the highest offer query
427
+ *
428
+ * @param args - The query arguments
429
+ * @param config - SDK configuration
430
+ * @returns Query options configuration
431
+ */
432
+ function highestOfferOptions(args, config) {
433
+ return queryOptions({
434
+ enabled: args.query?.enabled ?? true,
435
+ queryKey: [...collectableKeys.highestOffers, args],
436
+ queryFn: () => fetchHighestOffer(args, config)
437
+ });
438
+ }
439
+
440
+ //#endregion
441
+ //#region src/react/queries/lowestListing.ts
442
+ async function fetchLowestListing(args, config) {
443
+ const marketplaceClient = getMarketplaceClient(config);
444
+ const { chainId, collectionAddress, tokenId } = args;
445
+ const data = await marketplaceClient.getCollectibleLowestListing({
446
+ chainId: String(chainId),
447
+ contractAddress: collectionAddress,
448
+ tokenId
449
+ });
450
+ return data.order || null;
451
+ }
452
+ function lowestListingOptions(args, config) {
453
+ return queryOptions({
454
+ enabled: args.query?.enabled ?? true,
455
+ queryKey: [...collectableKeys.lowestListings, args],
456
+ queryFn: () => fetchLowestListing(args, config)
457
+ });
458
+ }
459
+
460
+ //#endregion
461
+ //#region src/react/queries/listTokenMetadata.ts
462
+ const fetchTokenMetadata = async ({ chainId, contractAddress, tokenIds }, config) => {
463
+ const metadataClient = getMetadataClient(config);
464
+ const response = await metadataClient.getTokenMetadata({
465
+ chainID: chainId.toString(),
466
+ contractAddress,
467
+ tokenIDs: tokenIds
468
+ });
469
+ return response.tokenMetadata;
470
+ };
471
+ const tokenMetadataOptions = (args, config) => {
472
+ return queryOptions({
473
+ ...args.query,
474
+ queryKey: [
475
+ "listTokenMetadata",
476
+ args.chainId,
477
+ args.contractAddress,
478
+ args.tokenIds
479
+ ],
480
+ queryFn: () => fetchTokenMetadata(args, config)
481
+ });
482
+ };
483
+
484
+ //#endregion
485
+ export { balanceOfCollectibleOptions, currenciesOptions, fetchBalanceOfCollectible, fetchBalances, fetchCollectibles, fetchHighestOffer, fetchInventory, fetchLowestListing, getTokenSupplies, getTokenSuppliesOptions, highestOfferOptions, inventoryOptions, listBalancesOptions, listCollectiblesOptions, lowestListingOptions, tokenMetadataOptions };
486
+ //# sourceMappingURL=queries-DPvwtnO7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries-DPvwtnO7.js","names":["args: Omit<UseBalanceOfCollectibleArgs, 'userAddress'> & { userAddress: Hex }","config: SdkConfig","args: UseBalanceOfCollectibleArgs","args: UseMarketCurrenciesArgs","config: SdkConfig","currenciesOptions","args: UseGetTokenSuppliesArgs","config: SdkConfig","args: UseListBalancesArgs","config: SdkConfig","page: Page","args: UseListCollectiblesArgs","config: SdkConfig","marketplaceConfig: MarketplaceConfig","page: Page","collectibles: CollectibleOrder[]","args: UseInventoryArgs","collectionKey: string","token: TokenBalance","chainId: number","accountAddress: Address","collectionAddress: Address","config: SdkConfig","state: InventoryState","isLaos721: boolean","page: IndexerPage","page: Page","collectibles: CollectibleOrder[]","c: CollectibleOrder","args: GetInventoryArgs","args: UseHighestOfferArgs","config: SdkConfig","args: UseLowestListingArgs","config: SdkConfig","config: SdkConfig","args: FetchTokenMetadataArgs"],"sources":["../src/react/queries/balanceOfCollectible.ts","../src/react/queries/marketCurrencies.ts","../src/react/queries/getTokenSupplies.ts","../src/react/queries/listBalances.ts","../src/react/queries/listCollectibles.ts","../src/react/queries/inventory.ts","../src/react/queries/highestOffer.ts","../src/react/queries/lowestListing.ts","../src/react/queries/listTokenMetadata.ts"],"sourcesContent":["import { queryOptions, skipToken } from '@tanstack/react-query';\nimport type { Hex } from 'viem';\nimport type { UseQueryParameters } from 'wagmi/query';\nimport type { SdkConfig } from '../../types';\nimport { LaosAPI, collectableKeys, getIndexerClient } from '../_internal';\n\nexport type UseBalanceOfCollectibleArgs = {\n\tcollectionAddress: Hex;\n\tcollectableId: string;\n\tuserAddress: Hex | undefined;\n\tchainId: number;\n\tisLaos721?: boolean;\n\tquery?: UseQueryParameters;\n};\n\n/**\n * Fetches the balance of a specific collectible for a user\n *\n * @param args - Arguments for the API call\n * @param config - SDK configuration\n * @returns The balance data\n */\nexport async function fetchBalanceOfCollectible(\n\targs: Omit<UseBalanceOfCollectibleArgs, 'userAddress'> & { userAddress: Hex },\n\tconfig: SdkConfig,\n) {\n\tif (args.isLaos721) {\n\t\tconst laosApi = new LaosAPI();\n\t\tconst response = await laosApi.getTokenBalances({\n\t\t\tchainId: args.chainId.toString(),\n\t\t\taccountAddress: args.userAddress,\n\t\t\tincludeMetadata: true,\n\t\t});\n\n\t\treturn response.balances[0] || null;\n\t}\n\n\tconst indexerClient = getIndexerClient(args.chainId, config);\n\treturn indexerClient\n\t\t.getTokenBalances({\n\t\t\taccountAddress: args.userAddress,\n\t\t\tcontractAddress: args.collectionAddress,\n\t\t\ttokenID: args.collectableId,\n\t\t\tincludeMetadata: false,\n\t\t\tmetadataOptions: {\n\t\t\t\tverifiedOnly: true,\n\t\t\t\tincludeContracts: [args.collectionAddress],\n\t\t\t},\n\t\t})\n\t\t.then((res) => res.balances[0] || null);\n}\n\n/**\n * Creates a tanstack query options object for the balance query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function balanceOfCollectibleOptions(\n\targs: UseBalanceOfCollectibleArgs,\n\tconfig: SdkConfig,\n) {\n\tconst enabled = !!args.userAddress && (args.query?.enabled ?? true);\n\treturn queryOptions({\n\t\tqueryKey: [...collectableKeys.userBalances, args],\n\t\tqueryFn: enabled\n\t\t\t? () =>\n\t\t\t\t\tfetchBalanceOfCollectible(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: this is guaranteed by the userAddress check above\n\t\t\t\t\t\t\tuserAddress: args.userAddress!,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t)\n\t\t\t: skipToken,\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport { type Address, zeroAddress } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport { compareAddress } from '../../utils';\nimport {\n\tcurrencyKeys,\n\tgetMarketplaceClient,\n\tgetQueryClient,\n} from '../_internal';\nimport { marketplaceConfigOptions } from './marketplaceConfig';\n\ntype QueryArg = {\n\tenabled?: boolean;\n};\n\nexport interface UseMarketCurrenciesArgs {\n\tchainId: number;\n\tincludeNativeCurrency?: boolean;\n\tcollectionAddress?: Address;\n\tquery?: QueryArg;\n}\n\nconst fetchMarketCurrencies = async (\n\targs: UseMarketCurrenciesArgs,\n\tconfig: SdkConfig,\n) => {\n\tconst includeNativeCurrency = args.includeNativeCurrency ?? true;\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tlet currencies = await marketplaceClient\n\t\t.listCurrencies({\n\t\t\tchainId: String(args.chainId),\n\t\t})\n\t\t.then((resp) =>\n\t\t\tresp.currencies.map((currency) => ({\n\t\t\t\t...currency,\n\t\t\t\tcontractAddress: currency.contractAddress || zeroAddress,\n\t\t\t})),\n\t\t);\n\n\tif (args.collectionAddress) {\n\t\tconst queryClient = getQueryClient();\n\t\tconst marketplaceConfig = await queryClient.fetchQuery(\n\t\t\tmarketplaceConfigOptions(config),\n\t\t);\n\n\t\tconst currenciesOptions = marketplaceConfig.market.collections.find(\n\t\t\t(collection) =>\n\t\t\t\tcompareAddress(collection.itemsAddress, args.collectionAddress),\n\t\t)?.currencyOptions;\n\n\t\t// Filter currencies based on collection currency options\n\t\tif (currenciesOptions) {\n\t\t\tcurrencies = currencies.filter((currency) =>\n\t\t\t\tcurrenciesOptions.includes(currency.contractAddress),\n\t\t\t);\n\t\t}\n\t}\n\n\tif (!includeNativeCurrency) {\n\t\tcurrencies = currencies.filter((currency) => !currency.nativeCurrency);\n\t}\n\n\treturn currencies;\n};\n\nexport const currenciesOptions = (\n\targs: UseMarketCurrenciesArgs,\n\tconfig: SdkConfig,\n) => {\n\treturn queryOptions({\n\t\t...args.query,\n\t\tqueryKey: [\n\t\t\t...currencyKeys.lists,\n\t\t\targs.chainId,\n\t\t\targs.includeNativeCurrency ?? true,\n\t\t\targs.collectionAddress,\n\t\t],\n\t\tqueryFn: () => fetchMarketCurrencies(args, config),\n\t});\n};\n","import { queryOptions } from '@tanstack/react-query';\nimport type { SdkConfig } from '../../types';\n//TODO: This is not complete, there is no hook for this,\n// add it if we need it in the future\nimport { LaosAPI, getIndexerClient } from '../_internal';\n\nexport type UseGetTokenSuppliesArgs = {\n\tchainId: number;\n\tcontractAddress: string;\n\ttokenId: string;\n\tisLaos721?: boolean;\n};\n\nexport async function getTokenSupplies(\n\targs: UseGetTokenSuppliesArgs,\n\tconfig: SdkConfig,\n) {\n\tif (args.isLaos721) {\n\t\tconst laosApi = new LaosAPI();\n\t\treturn laosApi.getTokenSupplies({\n\t\t\tchainId: args.chainId.toString(),\n\t\t\tcontractAddress: args.contractAddress,\n\t\t});\n\t}\n\n\tconst indexerClient = getIndexerClient(args.chainId, config);\n\treturn await indexerClient.getTokenSupplies(args);\n}\n\nexport function getTokenSuppliesOptions(\n\targs: UseGetTokenSuppliesArgs,\n\tconfig: SdkConfig,\n) {\n\treturn queryOptions({\n\t\tqueryKey: ['getTokenSupplies', args],\n\t\tqueryFn: () => getTokenSupplies(args, config),\n\t});\n}\n","import type { GetTokenBalancesReturn, Page } from '@0xsequence/indexer';\nimport { infiniteQueryOptions } from '@tanstack/react-query';\nimport type { Hex } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport { LaosAPI, balanceQueries, getIndexerClient } from '../_internal';\n\nexport type UseListBalancesArgs = {\n\tchainId: number;\n\taccountAddress?: Hex;\n\tcontractAddress?: Hex;\n\ttokenId?: string;\n\tincludeMetadata?: boolean;\n\tmetadataOptions?: {\n\t\tverifiedOnly?: boolean;\n\t\tunverifiedOnly?: boolean;\n\t\tincludeContracts?: Hex[];\n\t};\n\tincludeCollectionTokens?: boolean;\n\tpage?: Page;\n\tisLaos721?: boolean;\n\t//TODO: More options\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n};\n\nexport async function fetchBalances(\n\targs: UseListBalancesArgs,\n\tconfig: SdkConfig,\n\tpage: Page,\n): Promise<GetTokenBalancesReturn> {\n\tif (args.isLaos721 && args.accountAddress) {\n\t\tconst laosClient = new LaosAPI();\n\t\treturn laosClient.getTokenBalances({\n\t\t\tchainId: args.chainId.toString(),\n\t\t\taccountAddress: args.accountAddress,\n\t\t\tincludeMetadata: args.includeMetadata,\n\t\t\tpage: {\n\t\t\t\tsort: [\n\t\t\t\t\t{\n\t\t\t\t\t\tcolumn: 'CREATED_AT',\n\t\t\t\t\t\torder: 'DESC',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t});\n\t}\n\n\tconst indexerClient = getIndexerClient(args.chainId, config);\n\treturn indexerClient.getTokenBalances({\n\t\t...args,\n\t\ttokenID: args.tokenId,\n\t\tpage: page,\n\t});\n}\n\n/**\n * Creates a tanstack infinite query options object for the balances query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function listBalancesOptions(\n\targs: UseListBalancesArgs,\n\tconfig: SdkConfig,\n) {\n\treturn infiniteQueryOptions({\n\t\t...args.query,\n\t\tqueryKey: [...balanceQueries.lists, args, config],\n\t\tqueryFn: ({ pageParam }) => fetchBalances(args, config, pageParam),\n\t\tinitialPageParam: { page: 1, pageSize: 30 } as Page,\n\t\tgetNextPageParam: (lastPage) => lastPage.page.after,\n\t});\n}\n","import { infiniteQueryOptions } from '@tanstack/react-query';\nimport type { Address, Hex } from 'viem';\nimport type { MarketplaceConfig, Page, SdkConfig } from '../../types';\nimport type { MarketplaceType } from '../../types/types';\nimport { compareAddress } from '../../utils';\nimport type {\n\tCollectiblesFilter,\n\tListCollectiblesArgs,\n\tListCollectiblesReturn,\n} from '../_internal';\nimport {\n\ttype CollectibleOrder,\n\tOrderSide,\n\tcollectableKeys,\n\tgetMarketplaceClient,\n} from '../_internal';\nimport { fetchMarketplaceConfig } from '../queries/marketplaceConfig';\nimport { type UseListBalancesArgs, fetchBalances } from './listBalances';\n\nexport type UseListCollectiblesArgs = {\n\tcollectionAddress: Hex;\n\tchainId: number;\n\tside: OrderSide;\n\tfilter?: CollectiblesFilter;\n\tisLaos721?: boolean;\n\tmarketplaceType?: MarketplaceType;\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n};\n\n/**\n * Fetches a list of collectibles with pagination support\n *\n * @param args - Arguments for the API call\n * @param config - SDK configuration\n * @param page - Page parameters for pagination\n * @returns The collectibles data\n */\nexport async function fetchCollectibles(\n\targs: UseListCollectiblesArgs,\n\tconfig: SdkConfig,\n\tmarketplaceConfig: MarketplaceConfig,\n\tpage: Page,\n): Promise<ListCollectiblesReturn> {\n\tconst marketplaceClient = getMarketplaceClient(config);\n\tconst { chainId, collectionAddress, ...restArgs } = args;\n\tconst parsedArgs = {\n\t\t...restArgs,\n\t\tchainId: String(chainId),\n\t\tcontractAddress: collectionAddress,\n\t\tpage: page,\n\t\tside: args.side,\n\t} satisfies ListCollectiblesArgs;\n\n\tif (args.marketplaceType === 'shop') {\n\t\tconst shopCollection = marketplaceConfig.shop.collections.find(\n\t\t\t(collection) =>\n\t\t\t\tcompareAddress(collection.itemsAddress, args.collectionAddress),\n\t\t);\n\n\t\tif (!shopCollection) {\n\t\t\treturn { collectibles: [] };\n\t\t}\n\n\t\tconst primarySaleItemsList = await marketplaceClient.listPrimarySaleItems(\n\t\t\t{\n\t\t\t\tchainId: args.chainId.toString(),\n\t\t\t\tprimarySaleContractAddress: shopCollection.saleAddress as Address,\n\t\t\t},\n\t\t\tmarketplaceConfig,\n\t\t);\n\n\t\treturn {\n\t\t\tcollectibles: primarySaleItemsList.primarySaleItems.map((item) => ({\n\t\t\t\tmetadata: item.metadata,\n\t\t\t\tprimarySale: {\n\t\t\t\t\tprice: {\n\t\t\t\t\t\tamount: item.primarySaleItem.priceAmount,\n\t\t\t\t\t\tformatted: item.primarySaleItem.priceAmountFormatted,\n\t\t\t\t\t\tdecimals: item.primarySaleItem.priceDecimals,\n\t\t\t\t\t\tcurrencyAddress: item.primarySaleItem.currencyAddress,\n\t\t\t\t\t},\n\t\t\t\t\tstartDate: item.primarySaleItem.startDate,\n\t\t\t\t\tendDate: item.primarySaleItem.endDate,\n\t\t\t\t\tsupplyCap: item.primarySaleItem.supplyCap,\n\t\t\t\t\titemType: item.primarySaleItem.itemType,\n\t\t\t\t},\n\t\t\t})),\n\t\t};\n\t}\n\n\tif (args.isLaos721 && args.side === OrderSide.listing) {\n\t\ttry {\n\t\t\tconst fetchBalancesArgs = {\n\t\t\t\tchainId: args.chainId,\n\t\t\t\taccountAddress: args.filter?.inAccounts?.[0] as Address,\n\t\t\t\tcontractAddress: args.collectionAddress,\n\t\t\t\tpage: page,\n\t\t\t\tincludeMetadata: true,\n\t\t\t\tisLaos721: true,\n\t\t\t} satisfies UseListBalancesArgs;\n\n\t\t\tconst balances = await fetchBalances(fetchBalancesArgs, config, page);\n\t\t\tconst collectibles: CollectibleOrder[] = balances.balances.map(\n\t\t\t\t(balance) => {\n\t\t\t\t\tif (!balance.tokenMetadata)\n\t\t\t\t\t\tthrow new Error('Token metadata not found');\n\t\t\t\t\treturn {\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\ttokenId: balance.tokenID ?? '',\n\t\t\t\t\t\t\tattributes: balance.tokenMetadata.attributes,\n\t\t\t\t\t\t\timage: balance.tokenMetadata.image,\n\t\t\t\t\t\t\tname: balance.tokenMetadata.name,\n\t\t\t\t\t\t\tdescription: balance.tokenMetadata.description,\n\t\t\t\t\t\t\tvideo: balance.tokenMetadata.video,\n\t\t\t\t\t\t\taudio: balance.tokenMetadata.audio,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcollectibles: collectibles,\n\t\t\t\t//@ts-expect-error\n\t\t\t\tpage: balances.page,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\t// If the request fails, ignore the error and return the collectibles from our indexer\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n\n\treturn await marketplaceClient.listCollectibles(parsedArgs);\n}\n\n/**\n * Creates a tanstack infinite query options object for the collectibles query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function listCollectiblesOptions(\n\targs: UseListCollectiblesArgs,\n\tconfig: SdkConfig,\n) {\n\treturn infiniteQueryOptions({\n\t\t...args.query,\n\t\tqueryKey: [...collectableKeys.lists, args, config],\n\t\tqueryFn: async ({ pageParam }) => {\n\t\t\tconst marketplaceConfig = await fetchMarketplaceConfig({ config });\n\t\t\treturn fetchCollectibles(args, config, marketplaceConfig, pageParam);\n\t\t},\n\t\tinitialPageParam: { page: 1, pageSize: 30 } as Page,\n\t\tgetNextPageParam: (lastPage) =>\n\t\t\tlastPage.page?.more ? lastPage.page : undefined,\n\t});\n}\n","import type {\n\tContractInfo,\n\tPage as IndexerPage,\n\tTokenBalance,\n} from '@0xsequence/indexer';\nimport { infiniteQueryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport { OrderSide, type Page, type SdkConfig } from '../../types';\nimport {\n\ttype CollectibleOrder,\n\ttype ContractType,\n\tLaosAPI,\n\tgetIndexerClient,\n} from '../_internal';\nimport { fetchCollectibles } from './listCollectibles';\nimport { fetchMarketplaceConfig } from './marketplaceConfig';\n\nexport interface UseInventoryArgs {\n\taccountAddress: Address;\n\tcollectionAddress: Address;\n\tchainId: number;\n\tisLaos721?: boolean;\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n}\n\n// Maintain collection state across calls\ninterface InventoryState {\n\tseenTokenIds: Set<string>;\n\tmarketplaceFinished: boolean;\n\t// Track if we've already fetched all indexer tokens\n\tindexerTokensFetched: boolean;\n\t// Store the token balances from the indexer\n\tindexerTokenBalances: Map<string, CollectibleWithBalance>;\n}\n\n// Store state per collection\nconst stateByCollection = new Map<string, InventoryState>();\n\nconst getCollectionKey = (args: UseInventoryArgs) =>\n\t`${args.chainId}-${args.collectionAddress}-${args.accountAddress}`;\n\ninterface GetInventoryArgs extends Omit<UseInventoryArgs, 'query'> {\n\tisLaos721: boolean;\n}\n\ninterface CollectibleWithBalance extends CollectibleOrder {\n\tbalance: string;\n\tcontractInfo?: ContractInfo;\n\tcontractType: ContractType.ERC1155 | ContractType.ERC721;\n}\n\nexport interface CollectiblesResponse {\n\tcollectibles: CollectibleWithBalance[];\n\tpage: Page;\n}\n\nfunction getOrInitState(collectionKey: string): InventoryState {\n\tif (!stateByCollection.has(collectionKey)) {\n\t\tstateByCollection.set(collectionKey, {\n\t\t\tseenTokenIds: new Set<string>(),\n\t\t\tmarketplaceFinished: false,\n\t\t\tindexerTokensFetched: false,\n\t\t\tindexerTokenBalances: new Map(),\n\t\t});\n\t}\n\n\t// biome-ignore lint/style/noNonNullAssertion: guaranteed to exist, by the above init\n\treturn stateByCollection.get(collectionKey)!;\n}\n\nfunction collectibleFromTokenBalance(\n\ttoken: TokenBalance,\n): CollectibleWithBalance {\n\treturn {\n\t\tmetadata: {\n\t\t\ttokenId: token.tokenID ?? '',\n\t\t\tattributes: token.tokenMetadata?.attributes ?? [],\n\t\t\timage: token.tokenMetadata?.image,\n\t\t\tname: token.tokenMetadata?.name ?? '',\n\t\t\tdescription: token.tokenMetadata?.description,\n\t\t\tvideo: token.tokenMetadata?.video,\n\t\t\taudio: token.tokenMetadata?.audio,\n\t\t},\n\t\tcontractInfo: token.contractInfo,\n\t\tcontractType: token.contractType as unknown as\n\t\t\t| ContractType.ERC1155\n\t\t\t| ContractType.ERC721,\n\t\tbalance: token.balance,\n\t};\n}\n\nasync function fetchAllIndexerTokens(\n\tchainId: number,\n\taccountAddress: Address,\n\tcollectionAddress: Address,\n\tconfig: SdkConfig,\n\tstate: InventoryState,\n\tisLaos721: boolean,\n): Promise<void> {\n\tif (isLaos721) {\n\t\tconst laosClient = new LaosAPI();\n\t\tconst { balances } = await laosClient.getTokenBalances({\n\t\t\tchainId: chainId.toString(),\n\t\t\taccountAddress,\n\t\t\tincludeMetadata: true,\n\t\t\tpage: {\n\t\t\t\tsort: [\n\t\t\t\t\t{\n\t\t\t\t\t\tcolumn: 'CREATED_AT',\n\t\t\t\t\t\torder: 'DESC',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t});\n\n\t\tfor (const balance of balances) {\n\t\t\tif (balance.tokenID) {\n\t\t\t\tstate.indexerTokenBalances.set(\n\t\t\t\t\tbalance.tokenID,\n\t\t\t\t\tcollectibleFromTokenBalance(balance),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tstate.indexerTokensFetched = true;\n\t\treturn;\n\t}\n\n\tconst indexerClient = getIndexerClient(chainId, config);\n\n\tlet page: IndexerPage = {\n\t\tpageSize: 50,\n\t};\n\n\twhile (true) {\n\t\tconst { balances, page: nextPage } = await indexerClient.getTokenBalances({\n\t\t\taccountAddress,\n\t\t\tcontractAddress: collectionAddress,\n\t\t\tincludeMetadata: true,\n\t\t\tpage: page,\n\t\t});\n\n\t\tfor (const balance of balances) {\n\t\t\tif (balance.tokenID) {\n\t\t\t\tstate.indexerTokenBalances.set(\n\t\t\t\t\tbalance.tokenID,\n\t\t\t\t\tcollectibleFromTokenBalance(balance),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!nextPage.more) {\n\t\t\tbreak;\n\t\t}\n\t\tpage = nextPage;\n\t}\n\n\tstate.indexerTokensFetched = true;\n}\n\n// Process indexer tokens that we haven't seen yet\nfunction processRemainingIndexerTokens(\n\tstate: InventoryState,\n\tpage: Page,\n): CollectiblesResponse {\n\tconst allTokens = Array.from(state.indexerTokenBalances.values());\n\n\t// Filter out tokens that we've already seen\n\tconst newTokens = allTokens.filter(\n\t\t(token) => !state.seenTokenIds.has(token.metadata.tokenId),\n\t);\n\n\t// Calculate pagination\n\tconst startIndex = (page.page - 1) * page.pageSize;\n\tconst endIndex = startIndex + page.pageSize;\n\tconst paginatedTokens = newTokens.slice(startIndex, endIndex);\n\n\t// Add new token IDs to the set\n\tfor (const token of paginatedTokens) {\n\t\tstate.seenTokenIds.add(token.metadata.tokenId);\n\t}\n\n\treturn {\n\t\tcollectibles: paginatedTokens,\n\t\tpage: {\n\t\t\tpage: page.page,\n\t\t\tpageSize: page.pageSize,\n\t\t\tmore: endIndex < newTokens.length,\n\t\t},\n\t};\n}\n\nfunction processMarketplaceCollectibles(\n\tcollectibles: CollectibleOrder[],\n\tstate: InventoryState,\n\tpage: Page,\n): {\n\tenrichedCollectibles: CollectibleWithBalance[];\n\tmissingTokens: CollectibleWithBalance[];\n} {\n\t// Add new token IDs to the set\n\tfor (const c of collectibles) {\n\t\tstate.seenTokenIds.add(c.metadata.tokenId);\n\t}\n\n\t// Enrich marketplace collectibles with balance data from indexer\n\tconst enrichedCollectibles = collectibles.map((c: CollectibleOrder) => {\n\t\tconst tokenId = c.metadata.tokenId;\n\t\tconst indexerData = state.indexerTokenBalances.get(tokenId);\n\n\t\treturn {\n\t\t\t...c,\n\t\t\tbalance: indexerData?.balance,\n\t\t\tcontractInfo: indexerData?.contractInfo,\n\t\t\tcontractType: indexerData?.contractType,\n\t\t} as CollectibleWithBalance;\n\t});\n\n\t// Check for missing tokens in the marketplace data\n\tconst marketplaceTokenIds = new Set(\n\t\tenrichedCollectibles.map((c) => c.metadata.tokenId),\n\t);\n\n\tconst missingTokens = Array.from(state.indexerTokenBalances.entries())\n\t\t.filter(([tokenId]) => !marketplaceTokenIds.has(tokenId))\n\t\t.map(([_, balance]) => balance)\n\t\t.slice(0, page.pageSize);\n\n\treturn { enrichedCollectibles, missingTokens };\n}\n\nexport async function fetchInventory(\n\targs: GetInventoryArgs,\n\tconfig: SdkConfig,\n\tpage: Page,\n): Promise<CollectiblesResponse> {\n\tconst { accountAddress, collectionAddress, chainId, isLaos721 } = args;\n\tconst collectionKey = getCollectionKey(args);\n\tconst state = getOrInitState(collectionKey);\n\n\t// On first run, fetch all pages from the indexer\n\tif (!state.indexerTokensFetched) {\n\t\tawait fetchAllIndexerTokens(\n\t\t\tchainId,\n\t\t\taccountAddress,\n\t\t\tcollectionAddress,\n\t\t\tconfig,\n\t\t\tstate,\n\t\t\tisLaos721,\n\t\t);\n\t}\n\n\t// If marketplace API has no more results, use the indexer data\n\tif (state.marketplaceFinished) {\n\t\treturn processRemainingIndexerTokens(state, page);\n\t}\n\n\t// Fetch collectibles from marketplace API\n\tconst marketplaceConfig = await fetchMarketplaceConfig({ config });\n\tconst collectibles = await fetchCollectibles(\n\t\t{\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t\tfilter: {\n\t\t\t\tinAccounts: [accountAddress],\n\t\t\t\tincludeEmpty: true,\n\t\t\t},\n\t\t\tside: OrderSide.listing,\n\t\t},\n\t\tconfig,\n\t\tmarketplaceConfig,\n\t\tpage,\n\t);\n\n\t// Process the collectibles and find missing tokens\n\tconst { enrichedCollectibles, missingTokens } =\n\t\tprocessMarketplaceCollectibles(collectibles.collectibles, state, page);\n\n\t// If there are no more results from the marketplace API\n\tif (!collectibles.page?.more) {\n\t\t// Mark marketplace as finished and start using indexer data on next call\n\t\tstate.marketplaceFinished = true;\n\t\treturn {\n\t\t\tcollectibles: [...enrichedCollectibles, ...missingTokens],\n\t\t\tpage: {\n\t\t\t\tpage: collectibles.page?.page ?? page.page,\n\t\t\t\tpageSize: collectibles.page?.pageSize ?? page.pageSize,\n\t\t\t\tmore: missingTokens.length > 0,\n\t\t\t},\n\t\t};\n\t}\n\n\treturn {\n\t\tcollectibles: enrichedCollectibles,\n\t\tpage: {\n\t\t\tpage: collectibles.page?.page ?? page.page,\n\t\t\tpageSize: collectibles.page?.pageSize ?? page.pageSize,\n\t\t\tmore: Boolean(collectibles.page?.more),\n\t\t},\n\t};\n}\n\nexport function inventoryOptions(args: UseInventoryArgs, config: SdkConfig) {\n\tconst collectionKey = getCollectionKey(args);\n\tconst enabledQuery = args.query?.enabled ?? true;\n\tconst enabled =\n\t\tenabledQuery && !!args.accountAddress && !!args.collectionAddress;\n\n\treturn infiniteQueryOptions({\n\t\tqueryKey: [\n\t\t\t'inventory',\n\t\t\targs.accountAddress,\n\t\t\targs.collectionAddress,\n\t\t\targs.chainId,\n\t\t],\n\t\tqueryFn: ({ pageParam }) =>\n\t\t\tfetchInventory(\n\t\t\t\t{\n\t\t\t\t\t...args,\n\t\t\t\t\tisLaos721: args.isLaos721 ?? false,\n\t\t\t\t},\n\t\t\t\tconfig,\n\t\t\t\tpageParam,\n\t\t\t),\n\t\tinitialPageParam: { page: 1, pageSize: 30 } as Page,\n\t\tgetNextPageParam: (lastPage) =>\n\t\t\tlastPage.page?.more ? lastPage.page : undefined,\n\t\tenabled,\n\t\tmeta: {\n\t\t\tonInvalidate: () => {\n\t\t\t\tstateByCollection.delete(collectionKey);\n\t\t\t},\n\t\t},\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport {\n\ttype GetCollectibleHighestOfferArgs,\n\tcollectableKeys,\n\tgetMarketplaceClient,\n} from '../_internal';\n\nexport interface UseHighestOfferArgs\n\textends Omit<GetCollectibleHighestOfferArgs, 'contractAddress' | 'chainId'> {\n\tcollectionAddress: Address;\n\tchainId: number;\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n}\n\nexport async function fetchHighestOffer(\n\targs: UseHighestOfferArgs,\n\tconfig: SdkConfig,\n) {\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst { chainId, collectionAddress, tokenId } = args;\n\tconst data = await marketplaceClient.getCollectibleHighestOffer({\n\t\tchainId: String(chainId),\n\t\tcontractAddress: collectionAddress,\n\t\ttokenId,\n\t});\n\n\t// let order: Order | undefined;\n\t// if (data.order) {\n\t// \torder = {\n\t// \t\t...data.order,\n\t// \t\tpriceAmount: BigInt(data.order.priceAmount),\n\t// \t\tpriceAmountNet: BigInt(data.order.priceAmountNet),\n\t// \t};\n\t// }\n\n\treturn data.order ?? null;\n}\n\n/**\n * Creates a tanstack query options object for the highest offer query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function highestOfferOptions(\n\targs: UseHighestOfferArgs,\n\tconfig: SdkConfig,\n) {\n\treturn queryOptions({\n\t\tenabled: args.query?.enabled ?? true,\n\t\tqueryKey: [...collectableKeys.highestOffers, args],\n\t\tqueryFn: () => fetchHighestOffer(args, config),\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport {\n\ttype GetCollectibleLowestListingArgs,\n\ttype GetCollectibleLowestListingReturn,\n\tcollectableKeys,\n\tgetMarketplaceClient,\n} from '../_internal';\n\nexport interface UseLowestListingArgs\n\textends Omit<GetCollectibleLowestListingArgs, 'contractAddress' | 'chainId'> {\n\tcollectionAddress: Address;\n\tchainId: number;\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n}\n\nexport async function fetchLowestListing(\n\targs: UseLowestListingArgs,\n\tconfig: SdkConfig,\n): Promise<GetCollectibleLowestListingReturn['order'] | null> {\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst { chainId, collectionAddress, tokenId } = args;\n\tconst data = await marketplaceClient.getCollectibleLowestListing({\n\t\tchainId: String(chainId),\n\t\tcontractAddress: collectionAddress,\n\t\ttokenId,\n\t});\n\n\t// let order: Order | undefined;\n\t// if (data.order) {\n\t// \torder = {\n\t// \t\t...data.order,\n\t// \t\tpriceAmount: BigInt(data.order.priceAmount),\n\t// \t\tpriceAmountNet: BigInt(data.order.priceAmountNet),\n\t// \t};\n\t// }\n\n\treturn data.order || null;\n}\n\nexport function lowestListingOptions(\n\targs: UseLowestListingArgs,\n\tconfig: SdkConfig,\n) {\n\treturn queryOptions({\n\t\tenabled: args.query?.enabled ?? true,\n\t\tqueryKey: [...collectableKeys.lowestListings, args],\n\t\tqueryFn: () => fetchLowestListing(args, config),\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { SdkConfig } from '../../types';\nimport { getMetadataClient } from '../_internal';\n\nexport interface FetchTokenMetadataArgs {\n\tchainId: number;\n\tcontractAddress: string;\n\ttokenIds: string[];\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n}\n\nconst fetchTokenMetadata = async (\n\t{ chainId, contractAddress, tokenIds }: FetchTokenMetadataArgs,\n\tconfig: SdkConfig,\n) => {\n\tconst metadataClient = getMetadataClient(config);\n\n\tconst response = await metadataClient.getTokenMetadata({\n\t\tchainID: chainId.toString(),\n\t\tcontractAddress: contractAddress,\n\t\ttokenIDs: tokenIds,\n\t});\n\n\treturn response.tokenMetadata;\n};\n\nexport const tokenMetadataOptions = (\n\targs: FetchTokenMetadataArgs,\n\tconfig: SdkConfig,\n) => {\n\treturn queryOptions({\n\t\t...args.query,\n\t\tqueryKey: [\n\t\t\t'listTokenMetadata',\n\t\t\targs.chainId,\n\t\t\targs.contractAddress,\n\t\t\targs.tokenIds,\n\t\t],\n\t\tqueryFn: () => fetchTokenMetadata(args, config),\n\t});\n};\n"],"mappings":"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"}