@0xsequence/marketplace-sdk 0.8.12 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/.storybook/main.ts +63 -0
  2. package/.storybook/preview.ts +24 -0
  3. package/.storybook/vitest.setup.ts +6 -0
  4. package/CHANGELOG.md +158 -21
  5. package/dist/{CartIcon-Bll1rbxv.js → CalendarIcon-CqsuAuCm.js} +30 -77
  6. package/dist/CalendarIcon-CqsuAuCm.js.map +1 -0
  7. package/dist/{types-BIJOaL4j.d.ts → CollectibleCard-Dd-CG6dE.d.ts} +11 -7
  8. package/dist/InfoIcon-v0w_Lu7t.js +53 -0
  9. package/dist/InfoIcon-v0w_Lu7t.js.map +1 -0
  10. package/dist/_internal-C75gOSNo.js +14 -0
  11. package/dist/_internal-C75gOSNo.js.map +1 -0
  12. package/dist/actionModal-CMUeVsFX.js +116 -0
  13. package/dist/actionModal-CMUeVsFX.js.map +1 -0
  14. package/dist/{alien_swap-B_76IMma.js → alien_swap-CYv6YlOF.js} +1 -1
  15. package/dist/{alien_swap-B_76IMma.js.map → alien_swap-CYv6YlOF.js.map} +1 -1
  16. package/dist/{api-1KFxYh7o.js → api-BiMGqWdz.js} +79 -87
  17. package/dist/api-BiMGqWdz.js.map +1 -0
  18. package/dist/{aqua-xyz-CMN_TFY5.js → aqua-xyz-Bzn5baeH.js} +1 -1
  19. package/dist/{aqua-xyz-CMN_TFY5.js.map → aqua-xyz-Bzn5baeH.js.map} +1 -1
  20. package/dist/{aura-Cye_TuHj.js → aura-DzIWh8WT.js} +1 -1
  21. package/dist/{aura-Cye_TuHj.js.map → aura-DzIWh8WT.js.map} +1 -1
  22. package/dist/base-DqaJPvfN.js +22 -0
  23. package/dist/base-DqaJPvfN.js.map +1 -0
  24. package/dist/{blur-DWDMyMpK.js → blur-DSH-Cbpj.js} +1 -1
  25. package/dist/{blur-DWDMyMpK.js.map → blur-DSH-Cbpj.js.map} +1 -1
  26. package/dist/{builder-api-BQvzykoU.js → builder-api-BFuZNOaN.js} +2 -2
  27. package/dist/{builder-api-BQvzykoU.js.map → builder-api-BFuZNOaN.js.map} +1 -1
  28. package/dist/{builder.gen-CxP9NT1p.js → builder.gen-B9wR2nvF.js} +1 -1
  29. package/dist/builder.gen-B9wR2nvF.js.map +1 -0
  30. package/dist/{coinbase-ByA_XRB0.js → coinbase-Df8URNxq.js} +1 -1
  31. package/dist/{coinbase-ByA_XRB0.js.map → coinbase-Df8URNxq.js.map} +1 -1
  32. package/dist/{sdk-config-DJzxVPld.d.ts → create-config-DKJ-F0jc.d.ts} +458 -86
  33. package/dist/{wagmi-DRctYEk6.js → create-config-fQ-jbJD1.js} +33 -16
  34. package/dist/create-config-fQ-jbJD1.js.map +1 -0
  35. package/dist/{element-b77CyXIZ.js → element-Cx6uJu5N.js} +1 -1
  36. package/dist/{element-b77CyXIZ.js.map → element-Cx6uJu5N.js.map} +1 -1
  37. package/dist/{foundation-DbOrKP9Y.js → foundation-D6U4aRLN.js} +1 -1
  38. package/dist/{foundation-DbOrKP9Y.js.map → foundation-D6U4aRLN.js.map} +1 -1
  39. package/dist/get-provider-CYYHfrlg.js +10 -0
  40. package/dist/get-provider-CYYHfrlg.js.map +1 -0
  41. package/dist/get-query-client-D19vvfJo.js +23 -0
  42. package/dist/get-query-client-D19vvfJo.js.map +1 -0
  43. package/dist/hooks-4pxIbLbM.js +4044 -0
  44. package/dist/hooks-4pxIbLbM.js.map +1 -0
  45. package/dist/{index-1bezgsFq.d.ts → index-136YrWDH.d.ts} +929 -255
  46. package/dist/{index-D5v5iluA.d.ts → index-BAhaEfqY.d.ts} +1 -1
  47. package/dist/index-BKBin-rq.d.ts +979 -0
  48. package/dist/index-BUWB_RXp.d.ts +3144 -0
  49. package/dist/{index-Cl7PQOGu.d.ts → index-BhVFc2rX.d.ts} +28 -25
  50. package/dist/{index-DXMfTZ1F.d.ts → index-C5aqo8xu.d.ts} +1 -1
  51. package/dist/{index-BIMIpDiI.d.ts → index-CKrYP7ot.d.ts} +74 -103
  52. package/dist/{index-BEYefG1G.d.ts → index-CUwMH7Ht.d.ts} +5 -5
  53. package/dist/{index-BjIwVzc4.d.ts → index-Cu70Lw-w.d.ts} +238 -238
  54. package/dist/index.css +427 -1
  55. package/dist/index.d.ts +8 -10
  56. package/dist/index.js +15 -11
  57. package/dist/{looks-rare-C1VqNcSM.js → looks-rare-ChBRBY-p.js} +1 -1
  58. package/dist/{looks-rare-C1VqNcSM.js.map → looks-rare-ChBRBY-p.js.map} +1 -1
  59. package/dist/{magic-eden-ea_AGCZr.js → magic-eden-D5U7N1xL.js} +1 -1
  60. package/dist/{magic-eden-ea_AGCZr.js.map → magic-eden-D5U7N1xL.js.map} +1 -1
  61. package/dist/{manifold-8y8J2sjT.js → manifold-CtLF52zU.js} +1 -1
  62. package/dist/{manifold-8y8J2sjT.js.map → manifold-CtLF52zU.js.map} +1 -1
  63. package/dist/{marketplace-nwnZv9Cb.js → marketplace-DmFiyBoS.js} +1 -1
  64. package/dist/{marketplace-nwnZv9Cb.js.map → marketplace-DmFiyBoS.js.map} +1 -1
  65. package/dist/{marketplace-logos-CSeGcPW4.js → marketplace-logos-Cd6W-qOq.js} +21 -21
  66. package/dist/{marketplace-logos-CSeGcPW4.js.map → marketplace-logos-Cd6W-qOq.js.map} +1 -1
  67. package/dist/{marketplace.gen-Dqk8vRmD.js → marketplace.gen-HpnpL5xU.js} +12 -3
  68. package/dist/marketplace.gen-HpnpL5xU.js.map +1 -0
  69. package/dist/{marketplaceConfig-D2MYFqll.js → marketplaceConfig-GQTTmihy.js} +3 -3
  70. package/dist/marketplaceConfig-GQTTmihy.js.map +1 -0
  71. package/dist/{mintify-LA68TzWg.js → mintify-Bi3Bce68.js} +1 -1
  72. package/dist/{mintify-LA68TzWg.js.map → mintify-Bi3Bce68.js.map} +1 -1
  73. package/dist/network-CGD0oKtS.js +15 -0
  74. package/dist/network-CGD0oKtS.js.map +1 -0
  75. package/dist/{nftx-D3Tc8nzd.js → nftx-BDQZjtkX.js} +1 -1
  76. package/dist/{nftx-D3Tc8nzd.js.map → nftx-BDQZjtkX.js.map} +1 -1
  77. package/dist/{okx-hbqg6oIJ.js → okx-D4meadLe.js} +1 -1
  78. package/dist/{okx-hbqg6oIJ.js.map → okx-D4meadLe.js.map} +1 -1
  79. package/dist/{open-sea-BccuK8-t.js → open-sea-DN0hgfVw.js} +1 -1
  80. package/dist/{open-sea-BccuK8-t.js.map → open-sea-DN0hgfVw.js.map} +1 -1
  81. package/dist/options-BBBR8u_4.js +0 -0
  82. package/dist/{primary-sale-Cw95phYC.js → primary-sale-CmWxSfFQ.js} +279 -279
  83. package/dist/primary-sale-CmWxSfFQ.js.map +1 -0
  84. package/dist/provider-DPGUA10G.js +125 -0
  85. package/dist/provider-DPGUA10G.js.map +1 -0
  86. package/dist/queries-Ce_2othB.js +757 -0
  87. package/dist/queries-Ce_2othB.js.map +1 -0
  88. package/dist/{rarible-BgTwwj9g.js → rarible-B0xlD88A.js} +1 -1
  89. package/dist/{rarible-BgTwwj9g.js.map → rarible-B0xlD88A.js.map} +1 -1
  90. package/dist/react/_internal/api/index.d.ts +2 -4
  91. package/dist/react/_internal/api/index.js +9 -6
  92. package/dist/react/_internal/databeat/index.d.ts +2 -73
  93. package/dist/react/_internal/databeat/index.js +4 -21
  94. package/dist/react/_internal/index.d.ts +2 -7
  95. package/dist/react/_internal/index.js +13 -8
  96. package/dist/react/_internal/wagmi/index.d.ts +2 -4
  97. package/dist/react/_internal/wagmi/index.js +6 -4
  98. package/dist/react/hooks/index.d.ts +13 -17
  99. package/dist/react/hooks/index.js +25 -21
  100. package/dist/react/hooks/options/index.d.ts +3 -5
  101. package/dist/react/hooks/options/index.js +15 -10
  102. package/dist/react/index.d.ts +13 -40
  103. package/dist/react/index.js +30 -21
  104. package/dist/react/queries/index.d.ts +9 -8
  105. package/dist/react/queries/index.js +22 -17
  106. package/dist/react/ssr/index.d.ts +7 -9
  107. package/dist/react/ssr/index.js +13 -8
  108. package/dist/react/ssr/index.js.map +1 -1
  109. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +3 -9
  110. package/dist/react/ui/components/marketplace-collectible-card/index.js +29 -20
  111. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -7
  112. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +13 -8
  113. package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
  114. package/dist/react/ui/components/marketplace-logos/index.js +1 -1
  115. package/dist/react/ui/icons/index.js +14 -10
  116. package/dist/react/ui/index.d.ts +3 -9
  117. package/dist/react/ui/index.js +29 -20
  118. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +5 -5
  119. package/dist/react/ui/modals/_internal/components/actionModal/index.js +25 -20
  120. package/dist/{react-BG7o4PId.js → react-DP0M2Wfm.js} +4919 -7839
  121. package/dist/react-DP0M2Wfm.js.map +1 -0
  122. package/dist/{react-BbHBl6gg.css → react-DeDyTgo7.css} +1 -1
  123. package/dist/{react-BbHBl6gg.css.map → react-DeDyTgo7.css.map} +1 -1
  124. package/dist/{sequence-Do3kzb4J.js → sequence-BIrOVRXO.js} +1 -1
  125. package/dist/{sequence-Do3kzb4J.js.map → sequence-BIrOVRXO.js.map} +1 -1
  126. package/dist/{sudo-swap-B6vPKxBz.js → sudo-swap-BPMon-M5.js} +1 -1
  127. package/dist/{sudo-swap-B6vPKxBz.js.map → sudo-swap-BPMon-M5.js.map} +1 -1
  128. package/dist/{super-rare-eCm1SE6O.js → super-rare-kPN6Ua8i.js} +1 -1
  129. package/dist/{super-rare-eCm1SE6O.js.map → super-rare-kPN6Ua8i.js.map} +1 -1
  130. package/dist/{token-CO5llIla.js → token-CHSBPYVG.js} +1540 -761
  131. package/dist/token-CHSBPYVG.js.map +1 -0
  132. package/dist/{transaction-CcVViHEL.js → transaction-CnctdNzS.js} +3 -21
  133. package/dist/transaction-CnctdNzS.js.map +1 -0
  134. package/dist/types/index.d.ts +2 -3
  135. package/dist/types/index.js +3 -3
  136. package/dist/{types-DwWE6xOF.js → types-Yw2ywj6j.js} +1 -1
  137. package/dist/types-Yw2ywj6j.js.map +1 -0
  138. package/dist/utils/abi/index.d.ts +5 -5
  139. package/dist/utils/abi/index.js +5 -5
  140. package/dist/utils/abi/marketplace/index.d.ts +1 -1
  141. package/dist/utils/abi/marketplace/index.js +1 -1
  142. package/dist/utils/abi/primary-sale/index.d.ts +1 -1
  143. package/dist/utils/abi/primary-sale/index.js +1 -1
  144. package/dist/utils/abi/token/index.d.ts +2 -2
  145. package/dist/utils/abi/token/index.js +2 -2
  146. package/dist/utils/index.d.ts +7 -8
  147. package/dist/utils/index.js +13 -10
  148. package/dist/{utils-BFdxaToy.js → utils-9RXDgcBl.js} +86 -93
  149. package/dist/utils-9RXDgcBl.js.map +1 -0
  150. package/dist/{utils-Cat9_pef.js → utils-DjVJ9tov.js} +5 -6
  151. package/dist/utils-DjVJ9tov.js.map +1 -0
  152. package/dist/wagmi-Do_KW5ke.js +0 -0
  153. package/dist/{x2y2-DD17tT91.js → x2y2-BLz-_Q2O.js} +1 -1
  154. package/dist/{x2y2-DD17tT91.js.map → x2y2-BLz-_Q2O.js.map} +1 -1
  155. package/dist/{zora-BpSG9UzS.js → zora-UGhKs-aL.js} +1 -1
  156. package/dist/{zora-BpSG9UzS.js.map → zora-UGhKs-aL.js.map} +1 -1
  157. package/eslint/use-client.js +0 -6
  158. package/eslint.config.mjs +4 -0
  159. package/package.json +47 -35
  160. package/postcss.config.mjs +6 -0
  161. package/src/index.css +5 -4
  162. package/src/index.ts +2 -1
  163. package/src/react/__tests__/provider.test.tsx +4 -3
  164. package/src/react/_internal/api/__mocks__/builder.msw.ts +5 -3
  165. package/src/react/_internal/api/__mocks__/indexer.msw.ts +24 -8
  166. package/src/react/_internal/api/__mocks__/laos.msw.ts +387 -0
  167. package/src/react/_internal/api/__mocks__/marketplace.msw.ts +6 -6
  168. package/src/react/_internal/api/__mocks__/metadata.msw.ts +1 -1
  169. package/src/react/_internal/api/__tests__/laos-api.test.ts +756 -0
  170. package/src/react/_internal/api/builder.gen.ts +6 -6
  171. package/src/react/_internal/api/get-query-client.ts +2 -2
  172. package/src/react/_internal/api/index.ts +2 -2
  173. package/src/react/_internal/api/laos-api.ts +3 -0
  174. package/src/react/_internal/api/marketplace.gen.ts +43 -3
  175. package/src/react/_internal/api/query-keys.ts +21 -6
  176. package/src/react/_internal/api/services.ts +30 -45
  177. package/src/react/_internal/databeat/index.ts +15 -14
  178. package/src/react/_internal/databeat/types.ts +22 -0
  179. package/src/react/_internal/databeat/utils.ts +26 -0
  180. package/src/react/_internal/index.ts +1 -1
  181. package/src/react/_internal/types.ts +10 -23
  182. package/src/react/_internal/utils.ts +4 -5
  183. package/src/react/_internal/wagmi/create-config.ts +43 -19
  184. package/src/react/_internal/wagmi/get-connectors.ts +9 -7
  185. package/src/react/_internal/wallet/__tests__/wallet.test.ts +1 -1
  186. package/src/react/_internal/wallet/wallet.ts +22 -22
  187. package/src/react/hooks/__tests__/__snapshots__/useListCollections.test.tsx.snap +20 -0
  188. package/src/react/hooks/__tests__/__snapshots__/useMarketplaceConfig.test.tsx.snap +12 -2
  189. package/src/react/hooks/__tests__/useAutoSelectFeeOption.test.tsx +1 -1
  190. package/src/react/hooks/__tests__/useBalanceOfCollectible.laos.test.tsx +367 -0
  191. package/src/react/hooks/__tests__/useBalanceOfCollectible.test.tsx +1 -1
  192. package/src/react/hooks/__tests__/useCancelOrder.test.tsx +4 -4
  193. package/src/react/hooks/__tests__/useCancelTransactionSteps.test.tsx +1 -1
  194. package/src/react/hooks/__tests__/useCheckoutOptions.test.tsx +158 -0
  195. package/src/react/hooks/__tests__/useCheckoutOptionsSalesContract.test.tsx +42 -65
  196. package/src/react/hooks/__tests__/useCollectible.test.tsx +14 -16
  197. package/src/react/hooks/__tests__/useCollection.test.tsx +4 -4
  198. package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +16 -25
  199. package/src/react/hooks/__tests__/useCollectionDetails.test.tsx +1 -1
  200. package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +12 -4
  201. package/src/react/hooks/__tests__/useComparePrices.test.tsx +7 -6
  202. package/src/react/hooks/__tests__/useConvertPriceToUSD.test.tsx +4 -4
  203. package/src/react/hooks/__tests__/useCountListingsForCollectible.test.tsx +2 -2
  204. package/src/react/hooks/__tests__/useCountOfCollectables.test.tsx +5 -5
  205. package/src/react/hooks/__tests__/useCountOffersForCollectible.test.tsx +2 -2
  206. package/src/react/hooks/__tests__/useCurrency.test.tsx +5 -3
  207. package/src/react/hooks/__tests__/useCurrencyBalance.test.tsx +7 -3
  208. package/src/react/hooks/__tests__/useFilters.test.tsx +3 -3
  209. package/src/react/hooks/__tests__/useFloorOrder.test.tsx +4 -4
  210. package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +3 -3
  211. package/src/react/hooks/__tests__/useGenerateListingTransaction.test.tsx +1 -1
  212. package/src/react/hooks/__tests__/useGenerateOfferTransaction.test.tsx +1 -1
  213. package/src/react/hooks/__tests__/useGenerateSellTransaction.test.tsx +1 -1
  214. package/src/react/hooks/__tests__/useGetTokenRanges.test.tsx +111 -0
  215. package/src/react/hooks/__tests__/useHighestOffer.test.tsx +4 -4
  216. package/src/react/hooks/__tests__/useInventory.test.tsx +1 -1
  217. package/src/react/hooks/__tests__/useListCollectibleActivities.test.tsx +11 -13
  218. package/src/react/hooks/__tests__/useListCollectibles.test.tsx +5 -5
  219. package/src/react/hooks/__tests__/useListCollectiblesPaginated.test.tsx +10 -15
  220. package/src/react/hooks/__tests__/useListCollectionActivities.test.tsx +13 -15
  221. package/src/react/hooks/__tests__/useListCollections.test.tsx +3 -3
  222. package/src/react/hooks/__tests__/useListListingsForCollectible.test.tsx +3 -2
  223. package/src/react/hooks/__tests__/useListMarketCardData.test.tsx +301 -0
  224. package/src/react/hooks/__tests__/useListOffersForCollectible.test.tsx +1 -1
  225. package/src/react/hooks/__tests__/useListTokenMetadata.test.tsx +137 -0
  226. package/src/react/hooks/__tests__/useLowestListing.test.tsx +1 -1
  227. package/src/react/hooks/__tests__/useMarketCurrencies.test.tsx +1 -1
  228. package/src/react/hooks/__tests__/useRoyalty.test.tsx +0 -23
  229. package/src/react/hooks/__tests__/useTransferTokens.test.tsx +469 -0
  230. package/src/react/hooks/index.ts +29 -24
  231. package/src/react/hooks/options/index.ts +0 -1
  232. package/src/react/hooks/useAutoSelectFeeOption.tsx +1 -1
  233. package/src/react/hooks/useBalanceOfCollectible.tsx +1 -1
  234. package/src/react/hooks/useCancelTransactionSteps.tsx +2 -2
  235. package/src/react/hooks/useCheckoutOptions.tsx +84 -54
  236. package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +98 -57
  237. package/src/react/hooks/useCollectible.tsx +64 -49
  238. package/src/react/hooks/useCollection.tsx +60 -11
  239. package/src/react/hooks/useCollectionBalanceDetails.tsx +93 -73
  240. package/src/react/hooks/useCollectionDetails.ts +69 -0
  241. package/src/react/hooks/useCollectionDetailsPolling.tsx +7 -3
  242. package/src/react/hooks/useComparePrices.tsx +91 -86
  243. package/src/react/hooks/useConvertPriceToUSD.tsx +83 -86
  244. package/src/react/hooks/useCountListingsForCollectible.tsx +64 -53
  245. package/src/react/hooks/useCountOfCollectables.tsx +60 -69
  246. package/src/react/hooks/useCountOfPrimarySaleItems.tsx +13 -0
  247. package/src/react/hooks/useCountOffersForCollectible.tsx +64 -53
  248. package/src/react/hooks/useCurrency.tsx +56 -64
  249. package/src/react/hooks/useCurrencyBalance.tsx +132 -46
  250. package/src/react/hooks/useERC721SaleMintedTokens.tsx +8 -5
  251. package/src/react/hooks/useFilterState.tsx +1 -2
  252. package/src/react/hooks/useFilters.tsx +154 -111
  253. package/src/react/hooks/useFloorOrder.tsx +65 -40
  254. package/src/react/hooks/useGenerateCancelTransaction.tsx +5 -10
  255. package/src/react/hooks/useGenerateListingTransaction.tsx +1 -1
  256. package/src/react/hooks/useGenerateOfferTransaction.tsx +1 -1
  257. package/src/react/hooks/useGenerateSellTransaction.tsx +5 -10
  258. package/src/react/hooks/useGetCountOfPrimarySaleItems.tsx +48 -0
  259. package/src/react/hooks/useGetReceiptFromHash.tsx +32 -3
  260. package/src/react/hooks/useGetTokenRanges.tsx +92 -0
  261. package/src/react/hooks/useHighestOffer.tsx +68 -4
  262. package/src/react/hooks/useInventory.tsx +1 -1
  263. package/src/react/hooks/useList1155ShopCardData.tsx +57 -82
  264. package/src/react/hooks/useList721ShopCardData.tsx +98 -63
  265. package/src/react/hooks/useListBalances.tsx +1 -1
  266. package/src/react/hooks/useListCollectibleActivities.tsx +89 -50
  267. package/src/react/hooks/useListCollectibles.tsx +81 -16
  268. package/src/react/hooks/useListCollectiblesPaginated.tsx +96 -66
  269. package/src/react/hooks/useListCollectionActivities.tsx +84 -50
  270. package/src/react/hooks/useListCollections.tsx +71 -17
  271. package/src/react/hooks/useListListingsForCollectible.tsx +90 -50
  272. package/src/react/hooks/useListMarketCardData.tsx +3 -2
  273. package/src/react/hooks/useListOffersForCollectible.tsx +9 -14
  274. package/src/react/hooks/useListPrimarySaleItems.tsx +66 -0
  275. package/src/react/hooks/useListShopCardData.tsx +70 -0
  276. package/src/react/hooks/useListTokenMetadata.ts +64 -12
  277. package/src/react/hooks/useListTokenMetadata.tsx +73 -0
  278. package/src/react/hooks/useLowestListing.tsx +68 -4
  279. package/src/react/hooks/useMarketCurrencies.tsx +62 -5
  280. package/src/react/hooks/useOpenConnectModal.tsx +9 -0
  281. package/src/react/hooks/useRoyalty.tsx +57 -13
  282. package/src/react/hooks/useShopCollectibleSaleData.tsx +349 -0
  283. package/src/react/hooks/useTokenSaleDetailsBatch.tsx +3 -7
  284. package/src/react/hooks/useTokenSupplies.ts +81 -0
  285. package/src/react/hooks/useTransferTokens.tsx +2 -2
  286. package/src/react/hooks/util/optimisticCancelUpdates.ts +5 -7
  287. package/src/react/index.ts +5 -3
  288. package/src/react/provider.tsx +73 -9
  289. package/src/react/queries/__tests__/balanceOfCollectible.laos.test.ts +123 -0
  290. package/src/react/queries/__tests__/inventory.laos.test.ts +496 -0
  291. package/src/react/queries/balanceOfCollectible.ts +8 -5
  292. package/src/react/queries/checkoutOptions.ts +85 -0
  293. package/src/react/queries/checkoutOptionsSalesContract.ts +89 -0
  294. package/src/react/queries/collectible.ts +66 -0
  295. package/src/react/queries/collection.ts +55 -0
  296. package/src/react/queries/collectionBalanceDetails.ts +92 -0
  297. package/src/react/queries/collectionDetails.ts +64 -0
  298. package/src/react/queries/comparePrices.ts +108 -0
  299. package/src/react/queries/convertPriceToUSD.ts +92 -0
  300. package/src/react/queries/countListingsForCollectible.ts +73 -0
  301. package/src/react/queries/countOfCollectables.ts +83 -0
  302. package/src/react/queries/countOfPrimarySaleItems.ts +48 -0
  303. package/src/react/queries/countOffersForCollectible.ts +73 -0
  304. package/src/react/queries/currency.ts +83 -0
  305. package/src/react/queries/filters.ts +138 -0
  306. package/src/react/queries/floorOrder.ts +63 -0
  307. package/src/react/queries/getTokenRanges.ts +62 -0
  308. package/src/react/queries/highestOffer.ts +46 -40
  309. package/src/react/queries/index.ts +10 -4
  310. package/src/react/queries/inventory.ts +10 -4
  311. package/src/react/queries/listBalances.ts +5 -4
  312. package/src/react/queries/listCollectibleActivities.ts +97 -0
  313. package/src/react/queries/listCollectibles.ts +67 -50
  314. package/src/react/queries/listCollectiblesPaginated.ts +87 -0
  315. package/src/react/queries/listCollectionActivities.ts +95 -0
  316. package/src/react/queries/listCollections.ts +53 -10
  317. package/src/react/queries/listListingsForCollectible.ts +82 -0
  318. package/src/react/queries/listTokenMetadata.ts +47 -23
  319. package/src/react/queries/lowestListing.ts +46 -31
  320. package/src/react/queries/marketCurrencies.ts +42 -29
  321. package/src/react/queries/marketplaceConfig.ts +4 -4
  322. package/src/react/queries/primarySaleItems.ts +85 -0
  323. package/src/react/queries/primarySaleItemsCount.ts +64 -0
  324. package/src/react/queries/tokenSupplies.ts +93 -0
  325. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +12 -2
  326. package/src/react/ssr/create-ssr-client.ts +1 -1
  327. package/src/react/types/query.ts +34 -0
  328. package/src/react/ui/components/ModelViewer.tsx +1 -1
  329. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +66 -66
  330. package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +22 -4
  331. package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +14 -8
  332. package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +5 -4
  333. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +3 -0
  334. package/src/react/ui/components/_internals/action-button/components/OwnerActions.tsx +4 -4
  335. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +20 -18
  336. package/src/react/ui/components/_internals/action-button/store.ts +72 -34
  337. package/src/react/ui/components/_internals/custom-select/CustomSelect.stories.tsx +582 -0
  338. package/src/react/ui/components/_internals/pill/Pill.stories.tsx +83 -0
  339. package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +1 -1
  340. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +12 -5
  341. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +7 -4
  342. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +3 -0
  343. package/src/react/ui/components/marketplace-collectible-card/index.ts +1 -1
  344. package/src/react/ui/components/marketplace-collectible-card/types.ts +11 -7
  345. package/src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts +4 -7
  346. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +3 -2
  347. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +7 -6
  348. package/src/react/ui/components/marketplace-logos/marketplace-logos.stories.tsx +199 -0
  349. package/src/react/ui/components/marketplace-logos/marketplace-logos.tsx +1 -1
  350. package/src/react/ui/components/media/Media.stories.tsx +642 -0
  351. package/src/react/ui/components/media/Media.tsx +29 -20
  352. package/src/react/ui/components/media/types.ts +6 -0
  353. package/src/react/ui/index.ts +8 -10
  354. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +15 -0
  355. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +100 -87
  356. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +11 -5
  357. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +10 -2
  358. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +17 -11
  359. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +4 -1
  360. package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +1 -1
  361. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +30 -27
  362. package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +3 -3
  363. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +11 -2
  364. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +2 -2
  365. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +10 -3
  366. package/src/react/ui/modals/BuyModal/index.tsx +9 -1
  367. package/src/react/ui/modals/BuyModal/store.ts +26 -0
  368. package/src/react/ui/modals/CreateListingModal/Modal.tsx +28 -11
  369. package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +2 -2
  370. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +0 -1
  371. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +2 -2
  372. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +7 -6
  373. package/src/react/ui/modals/CreateListingModal/index.tsx +1 -1
  374. package/src/react/ui/modals/CreateListingModal/store.ts +3 -3
  375. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +31 -14
  376. package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +1 -1
  377. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +1 -1
  378. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +0 -1
  379. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +7 -7
  380. package/src/react/ui/modals/MakeOfferModal/index.tsx +1 -1
  381. package/src/react/ui/modals/MakeOfferModal/store.ts +3 -3
  382. package/src/react/ui/modals/SellModal/Modal.tsx +14 -11
  383. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +6 -4
  384. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +1 -1
  385. package/src/react/ui/modals/SellModal/hooks/useSell.tsx +0 -1
  386. package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +6 -6
  387. package/src/react/ui/modals/SellModal/store.ts +3 -3
  388. package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +1 -1
  389. package/src/react/ui/modals/TransferModal/__tests__/__snapshots__/store.test.ts.snap +17 -0
  390. package/src/react/ui/modals/TransferModal/__tests__/store.test.ts +366 -0
  391. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/__tests__/useHandleTransfer.test.tsx +402 -0
  392. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +52 -50
  393. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TransferButton.tsx +39 -47
  394. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/WalletAddressInput.tsx +9 -8
  395. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +33 -37
  396. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/useHandleTransfer.tsx +19 -10
  397. package/src/react/ui/modals/TransferModal/index.tsx +28 -31
  398. package/src/react/ui/modals/TransferModal/messages.ts +1 -1
  399. package/src/react/ui/modals/TransferModal/store.ts +122 -0
  400. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +1 -1
  401. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +2 -4
  402. package/src/react/ui/modals/_internal/components/calendar/index.tsx +0 -1
  403. package/src/react/ui/modals/_internal/components/currencyImage/index.tsx +10 -14
  404. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +6 -3
  405. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +23 -18
  406. package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +10 -10
  407. package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +6 -6
  408. package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +4 -4
  409. package/src/react/ui/modals/_internal/components/priceInput/__tests__/PriceInput.test.tsx +13 -5
  410. package/src/react/ui/modals/_internal/components/priceInput/index.tsx +41 -26
  411. package/src/react/ui/modals/_internal/components/quantityInput/__tests__/index.test.tsx +68 -59
  412. package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +23 -17
  413. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +340 -41
  414. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/_components/BalanceIndicator.tsx +1 -2
  415. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/index.tsx +95 -101
  416. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/store.ts +72 -14
  417. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +29 -14
  418. package/src/react/ui/modals/_internal/components/tokenPreview/index.tsx +2 -2
  419. package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +2 -2
  420. package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +88 -89
  421. package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +37 -11
  422. package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +0 -1
  423. package/src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx +32 -20
  424. package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +92 -63
  425. package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +44 -45
  426. package/src/react/ui/modals/_internal/types.ts +2 -2
  427. package/src/react/ui/modals/modal-provider.tsx +2 -3
  428. package/src/types/api-types.ts +36 -36
  429. package/src/types/buyModalErrors.ts +1 -1
  430. package/src/types/index.ts +5 -5
  431. package/src/types/new-marketplace-types.ts +1 -1
  432. package/src/types/sdk-config.ts +8 -2
  433. package/src/types/types.ts +1 -0
  434. package/src/types/waas-types.ts +1 -1
  435. package/src/utils/abi/index.ts +1 -1
  436. package/src/utils/abi/primary-sale/index.ts +1 -1
  437. package/src/utils/abi/token/index.ts +2 -1
  438. package/src/utils/decode/erc20.ts +1 -1
  439. package/src/utils/index.ts +3 -3
  440. package/src/utils/network.ts +15 -0
  441. package/test/const.ts +3 -1
  442. package/test/mocks/wallet.ts +1 -1
  443. package/test/test-utils.tsx +5 -4
  444. package/vitest.shims.d.ts +2 -0
  445. package/vitest.storybook.config.js +33 -0
  446. package/.changeset/fluffy-jokes-lay.md +0 -5
  447. package/.changeset/wise-bugs-boil.md +0 -8
  448. package/dist/CartIcon-Bll1rbxv.js.map +0 -1
  449. package/dist/CollectibleCard-CLQTl0_6.d.ts +0 -8
  450. package/dist/_internal-69NEWNUE.js +0 -34
  451. package/dist/_internal-69NEWNUE.js.map +0 -1
  452. package/dist/api-1KFxYh7o.js.map +0 -1
  453. package/dist/builder-api-DoK3907S.d.ts +0 -12
  454. package/dist/builder.gen-CxP9NT1p.js.map +0 -1
  455. package/dist/index-4-kfOFdx.d.ts +0 -22
  456. package/dist/index-BHiSG-Yi.d.ts +0 -312
  457. package/dist/index-BQW0PUkQ.d.ts +0 -3973
  458. package/dist/index-BfH21xmk.d.ts +0 -117
  459. package/dist/index-CN8puQQJ.d.ts +0 -24
  460. package/dist/index-DafWjEb4.d.ts +0 -65
  461. package/dist/marketplace.gen-Dqk8vRmD.js.map +0 -1
  462. package/dist/marketplaceConfig-D2MYFqll.js.map +0 -1
  463. package/dist/options-DCi6_23w.js +0 -34
  464. package/dist/options-DCi6_23w.js.map +0 -1
  465. package/dist/primary-sale-Cw95phYC.js.map +0 -1
  466. package/dist/queries-DPvwtnO7.js +0 -486
  467. package/dist/queries-DPvwtnO7.js.map +0 -1
  468. package/dist/react-BG7o4PId.js.map +0 -1
  469. package/dist/token-CO5llIla.js.map +0 -1
  470. package/dist/transaction-CcVViHEL.js.map +0 -1
  471. package/dist/types-DwWE6xOF.js.map +0 -1
  472. package/dist/useCollection-C-mclKU0.d.ts +0 -66
  473. package/dist/utils-BFdxaToy.js.map +0 -1
  474. package/dist/utils-Cat9_pef.js.map +0 -1
  475. package/dist/wagmi-DRctYEk6.js.map +0 -1
  476. package/src/react/_internal/api/zod-schema.ts +0 -678
  477. package/src/react/hooks/options/collectionOptions.ts +0 -41
  478. package/src/react/hooks/useCollectionDetails.tsx +0 -50
  479. package/src/react/hooks/useGetTokenSuppliesMap.ts +0 -33
  480. package/src/react/hooks/useListPrimarySaleItems.ts +0 -42
  481. package/src/react/queries/getTokenSupplies.ts +0 -38
  482. package/src/react/ui/modals/TransferModal/_store.ts +0 -72
  483. package/src/react/ui/modals/_internal/stores/accountModal.ts +0 -3
  484. package/tsconfig.tsbuildinfo +0 -1
  485. /package/dist/{abi-BKyRjVcZ.js → abi-BMvgNbKQ.js} +0 -0
  486. /package/dist/{index-C39K_8SG.d.ts → index-CD2bj_xW.d.ts} +0 -0
  487. /package/dist/{index-ij9f8GAA.d.ts → index-DvpBZgor.d.ts} +0 -0
@@ -5,7 +5,7 @@
5
5
  //
6
6
  // webrpc-gen -schema=builder.main.ridl -target=typescript -client -out=../../webapp/src/rpc/proto/builder.gen.ts
7
7
 
8
- import { OrderbookKind } from "./marketplace.gen";
8
+ import type { OrderbookKind } from "./marketplace.gen";
9
9
 
10
10
  export const WebrpcHeader = "Webrpc";
11
11
  export const WebrpcHeaderValue =
@@ -59,10 +59,10 @@ export interface MarketplaceSettings {
59
59
  }
60
60
 
61
61
  export interface MarketplacePage {
62
- enabled: boolean;
63
- title: string;
64
- bannerUrl: string;
65
- ogImage: string;
62
+ enabled: boolean
63
+ bannerUrl: string
64
+ ogImage: string
65
+ private: boolean
66
66
  }
67
67
 
68
68
  export interface MarketplaceSocials {
@@ -135,7 +135,7 @@ export interface ShopCollection {
135
135
  saleAddress: string;
136
136
  name: string;
137
137
  bannerUrl: string;
138
- saleBannerUrl: string;
138
+ tokenIds: Array<string>;
139
139
  createdAt?: string;
140
140
  updatedAt?: string;
141
141
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
- QueryClient,
3
2
  defaultShouldDehydrateQuery,
3
+ QueryClient,
4
4
  } from '@tanstack/react-query';
5
5
  import { hashFn } from 'wagmi/query';
6
6
 
@@ -20,7 +20,7 @@ function makeQueryClient() {
20
20
  });
21
21
  }
22
22
 
23
- let browserQueryClient: QueryClient | undefined = undefined;
23
+ let browserQueryClient: QueryClient | undefined;
24
24
 
25
25
  export function getQueryClient() {
26
26
  if (typeof globalThis.document === 'undefined') {
@@ -1,6 +1,6 @@
1
1
  export * from './get-query-client';
2
- export * from './marketplace-api';
2
+ export * from './laos-api';
3
3
  export * from './marketplace.gen';
4
+ export * from './marketplace-api';
4
5
  export * from './query-keys';
5
6
  export * from './services';
6
- export * from './laos-api';
@@ -22,6 +22,7 @@ export type TokenSuppliesParams = {
22
22
  export type TokenBalancesParams = {
23
23
  chainId: string;
24
24
  accountAddress: string;
25
+ contractAddress: string;
25
26
  includeMetadata?: boolean;
26
27
  page?: PaginationOptions;
27
28
  };
@@ -71,6 +72,7 @@ export class LaosAPI {
71
72
  async getTokenBalances({
72
73
  chainId,
73
74
  accountAddress,
75
+ contractAddress,
74
76
  includeMetadata = true,
75
77
  page = {
76
78
  sort: [
@@ -89,6 +91,7 @@ export class LaosAPI {
89
91
  body: JSON.stringify({
90
92
  chainId,
91
93
  accountAddress,
94
+ contractAddress,
92
95
  includeMetadata,
93
96
  page,
94
97
  }),
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
- // marketplace-api 966f8f49f445aaef13f2daccc968a931178cd71b
2
+ // marketplace-api cf3a5fae407a732cd5a90e4fd68184ac5591b2c1
3
3
  // --
4
4
  // Code generated by webrpc-gen@v0.25.4 with typescript generator. DO NOT EDIT.
5
5
  //
@@ -8,7 +8,7 @@
8
8
  export const WebrpcHeader = "Webrpc";
9
9
 
10
10
  export const WebrpcHeaderValue =
11
- "webrpc@v0.25.4;gen-typescript@v0.17.0;marketplace-api@v0.0.0-966f8f49f445aaef13f2daccc968a931178cd71b";
11
+ "webrpc@v0.25.4;gen-typescript@v0.17.0;marketplace-api@v0.0.0-cf3a5fae407a732cd5a90e4fd68184ac5591b2c1;marketplace-sdk@v0.10.0";
12
12
 
13
13
  // WebRPC description and code-gen version
14
14
  export const WebRPCVersion = "v1";
@@ -17,7 +17,7 @@ export const WebRPCVersion = "v1";
17
17
  export const WebRPCSchemaVersion = "";
18
18
 
19
19
  // Schema hash generated from your RIDL schema
20
- export const WebRPCSchemaHash = "966f8f49f445aaef13f2daccc968a931178cd71b";
20
+ export const WebRPCSchemaHash = "cf3a5fae407a732cd5a90e4fd68184ac5591b2c1";
21
21
 
22
22
  type WebrpcGenVersions = {
23
23
  webrpcGenVersion: string;
@@ -585,7 +585,9 @@ export interface PrimarySaleItem {
585
585
  priceDecimals: number;
586
586
  priceAmount: string;
587
587
  priceAmountFormatted: string;
588
+ supply: string;
588
589
  supplyCap: string;
590
+ unlimitedSupply: boolean;
589
591
  createdAt: string;
590
592
  updatedAt: string;
591
593
  deletedAt?: string;
@@ -1024,6 +1026,11 @@ export interface Marketplace {
1024
1026
  headers?: object,
1025
1027
  signal?: AbortSignal
1026
1028
  ): Promise<SupportedMarketplacesReturn>;
1029
+ getPrimarySaleItem(
1030
+ args: GetPrimarySaleItemArgs,
1031
+ headers?: object,
1032
+ signal?: AbortSignal
1033
+ ): Promise<GetPrimarySaleItemReturn>;
1027
1034
  listPrimarySaleItems(
1028
1035
  args: ListPrimarySaleItemsArgs,
1029
1036
  headers?: object,
@@ -1437,6 +1444,15 @@ export interface SupportedMarketplacesArgs {
1437
1444
  export interface SupportedMarketplacesReturn {
1438
1445
  marketplaces: Array<MarketplaceKind>;
1439
1446
  }
1447
+ export interface GetPrimarySaleItemArgs {
1448
+ chainId: string;
1449
+ primarySaleContractAddress: string;
1450
+ tokenId: string;
1451
+ }
1452
+
1453
+ export interface GetPrimarySaleItemReturn {
1454
+ item: CollectiblePrimarySaleItem;
1455
+ }
1440
1456
  export interface ListPrimarySaleItemsArgs {
1441
1457
  chainId: string;
1442
1458
  primarySaleContractAddress: string;
@@ -2764,6 +2780,30 @@ export class Marketplace implements Marketplace {
2764
2780
  );
2765
2781
  };
2766
2782
 
2783
+ getPrimarySaleItem = (
2784
+ args: GetPrimarySaleItemArgs,
2785
+ headers?: object,
2786
+ signal?: AbortSignal
2787
+ ): Promise<GetPrimarySaleItemReturn> => {
2788
+ return this.fetch(
2789
+ this.url("GetPrimarySaleItem"),
2790
+ createHTTPRequest(args, headers, signal)
2791
+ ).then(
2792
+ (res) => {
2793
+ return buildResponse(res).then((_data) => {
2794
+ return {
2795
+ item: <CollectiblePrimarySaleItem>_data.item,
2796
+ };
2797
+ });
2798
+ },
2799
+ (error) => {
2800
+ throw WebrpcRequestFailedError.new({
2801
+ cause: `fetch(): ${error.message || ""}`,
2802
+ });
2803
+ }
2804
+ );
2805
+ };
2806
+
2767
2807
  listPrimarySaleItems = (
2768
2808
  args: ListPrimarySaleItemsArgs,
2769
2809
  headers?: object,
@@ -1,4 +1,4 @@
1
- // biome-ignore lint/complexity/noStaticOnlyClass:
1
+ // biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
2
2
  class CollectableKeys {
3
3
  static all = ['collectable'] as const;
4
4
  static details = [...CollectableKeys.all, 'details'] as const;
@@ -35,7 +35,7 @@ class CollectableKeys {
35
35
  ] as const;
36
36
  }
37
37
 
38
- // biome-ignore lint/complexity/noStaticOnlyClass:
38
+ // biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
39
39
  class CollectionKeys {
40
40
  static all = ['collections'] as const;
41
41
  static list = [...CollectionKeys.all, 'list'] as const;
@@ -46,7 +46,7 @@ class CollectionKeys {
46
46
  ] as const;
47
47
  }
48
48
 
49
- // biome-ignore lint/complexity/noStaticOnlyClass:
49
+ // biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
50
50
  class BalanceQueries {
51
51
  static all = ['balances'] as const;
52
52
  static lists = [...BalanceQueries.all, 'tokenBalances'] as const;
@@ -56,14 +56,14 @@ class BalanceQueries {
56
56
  ] as const;
57
57
  }
58
58
 
59
- // biome-ignore lint/complexity/noStaticOnlyClass:
59
+ // biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
60
60
  class CheckoutKeys {
61
61
  static all = ['checkouts'] as const;
62
62
  static options = [...CheckoutKeys.all, 'options'] as const;
63
63
  static cartItems = [...CheckoutKeys.all, 'cartItems'] as const;
64
64
  }
65
65
 
66
- // biome-ignore lint/complexity/noStaticOnlyClass:
66
+ // biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
67
67
  class CurrencyKeys {
68
68
  static all = ['currencies'] as const;
69
69
  static lists = [...CurrencyKeys.all, 'list'] as const;
@@ -71,14 +71,29 @@ class CurrencyKeys {
71
71
  static conversion = [...CurrencyKeys.all, 'conversion'] as const;
72
72
  }
73
73
 
74
- // biome-ignore lint/complexity/noStaticOnlyClass:
74
+ // biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
75
75
  class ConfigKeys {
76
76
  static all = ['configs'] as const;
77
77
  static marketplace = [...ConfigKeys.all, 'marketplace'] as const;
78
78
  }
79
+
80
+ // biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
81
+ class TokenKeys {
82
+ static all = ['tokens'] as const;
83
+ static metadata = [...TokenKeys.all, 'metadata'] as const;
84
+ static supplies = [...TokenKeys.all, 'supplies'] as const;
85
+ }
86
+
87
+ // biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
88
+ class TokenSuppliesKeys {
89
+ static all = ['tokenSupplies'] as const;
90
+ static maps = [...TokenSuppliesKeys.all, 'map'] as const;
91
+ }
79
92
  export const collectableKeys = CollectableKeys;
80
93
  export const collectionKeys = CollectionKeys;
81
94
  export const balanceQueries = BalanceQueries;
82
95
  export const checkoutKeys = CheckoutKeys;
83
96
  export const currencyKeys = CurrencyKeys;
84
97
  export const configKeys = ConfigKeys;
98
+ export const tokenKeys = TokenKeys;
99
+ export const tokenSuppliesKeys = TokenSuppliesKeys;
@@ -1,34 +1,27 @@
1
1
  import { SequenceAPIClient } from '@0xsequence/api';
2
2
  import { SequenceIndexer } from '@0xsequence/indexer';
3
3
  import { SequenceMetadata } from '@0xsequence/metadata';
4
- import { networks, stringTemplate } from '@0xsequence/network';
4
+ import { stringTemplate } from '@0xsequence/network';
5
5
  import type { ApiConfig, Env, SdkConfig } from '../../../types/sdk-config';
6
- import { MissingConfigError } from '../../../utils/_internal/error/transaction';
6
+ import { getNetwork } from '../../../utils/network';
7
7
  import { BuilderAPI } from './builder-api';
8
8
  import { SequenceMarketplace } from './marketplace-api';
9
9
 
10
10
  const SERVICES = {
11
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: template placeholder for stringTemplate function
11
12
  sequenceApi: 'https://${prefix}api.sequence.app',
13
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: template placeholder for stringTemplate function
12
14
  metadata: 'https://${prefix}metadata.sequence.app',
15
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: template placeholder for stringTemplate function
13
16
  indexer: 'https://${prefix}${network}-indexer.sequence.app',
17
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: template placeholder for stringTemplate function
14
18
  marketplaceApi: 'https://${prefix}marketplace-api.sequence.app',
19
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: template placeholder for stringTemplate function
15
20
  builderRpcApi: 'https://${prefix}api.sequence.build',
16
21
  };
17
22
 
18
23
  type ChainNameOrId = string | number;
19
24
 
20
- const getNetwork = (nameOrId: ChainNameOrId) => {
21
- for (const network of Object.values(networks)) {
22
- if (
23
- network.name === String(nameOrId).toLowerCase() ||
24
- network.chainId === Number(nameOrId)
25
- ) {
26
- return network;
27
- }
28
- }
29
- throw new MissingConfigError(`Network configuration for chain ${nameOrId}`);
30
- };
31
-
32
25
  const metadataURL = (env: Env = 'production') => {
33
26
  const prefix = getPrefix(env);
34
27
  return stringTemplate(SERVICES.metadata, { prefix });
@@ -41,10 +34,6 @@ const indexerURL = (chain: ChainNameOrId, env: Env = 'production') => {
41
34
  };
42
35
 
43
36
  const marketplaceApiURL = (env: Env = 'production') => {
44
- // TODO: remove this once we have a production endpoint
45
- if (env === 'development') {
46
- return 'https://dev-marketplace-api-v2.sequence-dev.app';
47
- }
48
37
  const prefix = getPrefix(env);
49
38
  return stringTemplate(SERVICES.marketplaceApi, { prefix });
50
39
  };
@@ -60,45 +49,41 @@ export const sequenceApiUrl = (env: Env = 'production') => {
60
49
  };
61
50
 
62
51
  export const getBuilderClient = (config: SdkConfig) => {
63
- const env = config._internal?.overrides?.api?.builder?.env || 'production';
64
- const projectAccessKey =
65
- config._internal?.overrides?.api?.builder?.accessKey ||
66
- config.projectAccessKey;
67
- return new BuilderAPI(builderRpcApiURL(env), projectAccessKey);
52
+ const overrides = config._internal?.overrides?.api?.builder;
53
+ const url =
54
+ overrides?.url || builderRpcApiURL(overrides?.env || 'production');
55
+ const projectAccessKey = overrides?.accessKey || config.projectAccessKey;
56
+ return new BuilderAPI(url, projectAccessKey);
68
57
  };
69
58
 
70
59
  export const getMetadataClient = (config: SdkConfig) => {
71
- const env = config._internal?.overrides?.api?.metadata?.env || 'production';
72
- const projectAccessKey =
73
- config._internal?.overrides?.api?.metadata?.accessKey ||
74
- config.projectAccessKey;
75
- return new SequenceMetadata(metadataURL(env), projectAccessKey);
60
+ const overrides = config._internal?.overrides?.api?.metadata;
61
+ const url = overrides?.url || metadataURL(overrides?.env || 'production');
62
+ const projectAccessKey = overrides?.accessKey || config.projectAccessKey;
63
+ return new SequenceMetadata(url, projectAccessKey);
76
64
  };
77
65
 
78
66
  export const getIndexerClient = (chain: ChainNameOrId, config: SdkConfig) => {
79
- const env = config._internal?.overrides?.api?.indexer?.env || 'production';
80
- const projectAccessKey =
81
- config._internal?.overrides?.api?.indexer?.accessKey ||
82
- config.projectAccessKey;
83
- return new SequenceIndexer(indexerURL(chain, env), projectAccessKey);
67
+ const overrides = config._internal?.overrides?.api?.indexer;
68
+ const url =
69
+ overrides?.url || indexerURL(chain, overrides?.env || 'production');
70
+ const projectAccessKey = overrides?.accessKey || config.projectAccessKey;
71
+ return new SequenceIndexer(url, projectAccessKey);
84
72
  };
85
73
 
86
74
  export const getMarketplaceClient = (config: SdkConfig) => {
87
- const env =
88
- config._internal?.overrides?.api?.marketplace?.env || 'production';
89
- const projectAccessKey =
90
- config._internal?.overrides?.api?.marketplace?.accessKey ||
91
- config.projectAccessKey;
92
- return new SequenceMarketplace(marketplaceApiURL(env), projectAccessKey);
75
+ const overrides = config._internal?.overrides?.api?.marketplace;
76
+ const url =
77
+ overrides?.url || marketplaceApiURL(overrides?.env || 'production');
78
+ const projectAccessKey = overrides?.accessKey || config.projectAccessKey;
79
+ return new SequenceMarketplace(url, projectAccessKey);
93
80
  };
94
81
 
95
82
  export const getSequenceApiClient = (config: SdkConfig) => {
96
- const env =
97
- config._internal?.overrides?.api?.sequenceApi?.env || 'production';
98
- const projectAccessKey =
99
- config._internal?.overrides?.api?.sequenceApi?.accessKey ||
100
- config.projectAccessKey;
101
- return new SequenceAPIClient(sequenceApiUrl(env), projectAccessKey);
83
+ const overrides = config._internal?.overrides?.api?.sequenceApi;
84
+ const url = overrides?.url || sequenceApiUrl(overrides?.env || 'production');
85
+ const projectAccessKey = overrides?.accessKey || config.projectAccessKey;
86
+ return new SequenceAPIClient(url, projectAccessKey);
102
87
  };
103
88
 
104
89
  const getPrefix = (env: ApiConfig['env']) => {
@@ -1,9 +1,11 @@
1
- import type { Auth, Event as DatabeatEvent } from '@databeat/tracker';
1
+ import type { Event as DatabeatEvent } from '@databeat/tracker';
2
2
  import { Databeat } from '@databeat/tracker';
3
+ import { useContext } from 'react';
3
4
 
4
- import { useConfig } from '../../hooks';
5
+ import { MarketplaceSdkContext } from '../../provider';
5
6
  import type {
6
7
  EventType,
8
+ TrackBuyModalOpened,
7
9
  TrackCreateListing,
8
10
  TrackCreateOffer,
9
11
  TrackSellItems,
@@ -22,6 +24,14 @@ export class DatabeatAnalytics extends Databeat<Extract<EventTypes, string>> {
22
24
  });
23
25
  }
24
26
 
27
+ trackBuyModalOpened(args: TrackBuyModalOpened) {
28
+ this.track({
29
+ event: 'BUY_MODAL_OPENED',
30
+ props: args.props,
31
+ nums: args.nums,
32
+ });
33
+ }
34
+
25
35
  trackCreateListing(args: TrackCreateListing) {
26
36
  this.track({
27
37
  event: 'CREATE_LISTING',
@@ -47,16 +57,7 @@ export class DatabeatAnalytics extends Databeat<Extract<EventTypes, string>> {
47
57
  }
48
58
 
49
59
  export const useAnalytics = () => {
50
- const config = useConfig();
51
- const server = 'https://nodes.sequence.app';
52
-
53
- const auth: Auth = {};
54
- auth.headers = { 'X-Access-Key': config.projectAccessKey };
55
-
56
- return new DatabeatAnalytics(server, auth, {
57
- defaultEnabled: true,
58
- initProps: () => {
59
- return { origin: window.location.origin };
60
- },
61
- });
60
+ const context = useContext(MarketplaceSdkContext);
61
+
62
+ return context.analytics;
62
63
  };
@@ -1,3 +1,4 @@
1
+ import type { BuyModalProps } from '../../ui/modals/BuyModal/store';
1
2
  import type { MarketplaceKind, OrderbookKind } from '../api';
2
3
 
3
4
  export enum EventType {
@@ -8,6 +9,7 @@ export enum EventType {
8
9
  CANCEL_LISTING = 4,
9
10
  CANCEL_OFFER = 5,
10
11
  TRANSACTION_FAILED = 6,
12
+ BUY_MODAL_OPENED = 7,
11
13
  }
12
14
 
13
15
  interface PropsEvent {
@@ -41,6 +43,26 @@ export interface TrackBuyItems {
41
43
  nums: TradeItemsValues;
42
44
  }
43
45
 
46
+ type BuyModalOpenedProps = Omit<
47
+ BuyModalProps,
48
+ | 'marketplaceType'
49
+ | 'customCreditCardProviderCallback'
50
+ | 'chainId'
51
+ | 'skipNativeBalanceCheck'
52
+ | 'nativeTokenAddress'
53
+ > & {
54
+ buyAnalyticsId: string;
55
+ };
56
+
57
+ type BuyModalOpenedNums = {
58
+ chainId: number;
59
+ };
60
+
61
+ export interface TrackBuyModalOpened {
62
+ props: BuyModalOpenedProps;
63
+ nums: BuyModalOpenedNums;
64
+ }
65
+
44
66
  export interface TrackSellItems {
45
67
  props: TradeItemsInfo & Transaction;
46
68
  nums: TradeItemsValues;
@@ -0,0 +1,26 @@
1
+ // Flattens an object and turns it into a string and number object for use with analytics
2
+ // Ignores arrays and converts booleans to strings
3
+ export function flattenAnalyticsArgs(args: object) {
4
+ const analyticsProps: Record<string, string> = {};
5
+ const analyticsNums: Record<string, number> = {};
6
+
7
+ function recurse(obj: object, prefix = '') {
8
+ for (const [key, value] of Object.entries(obj)) {
9
+ const path = prefix ? `${prefix}.${key}` : key;
10
+ if (typeof value === 'string' || typeof value === 'boolean') {
11
+ analyticsProps[path] = value.toString();
12
+ } else if (typeof value === 'number') {
13
+ analyticsNums[path] = value;
14
+ } else if (isPojo(value)) {
15
+ recurse(value, path);
16
+ }
17
+ }
18
+ }
19
+
20
+ recurse(args);
21
+ return { analyticsProps, analyticsNums };
22
+ }
23
+
24
+ function isPojo(val: unknown): val is Record<string, unknown> {
25
+ return typeof val === 'object' && val !== null && !Array.isArray(val);
26
+ }
@@ -1,5 +1,5 @@
1
+ export * from './api';
1
2
  export * from './consts';
2
3
  export * from './get-provider';
3
4
  export * from './types';
4
- export * from './api';
5
5
  export * from './wagmi';
@@ -1,30 +1,11 @@
1
- import type { Address } from 'viem';
2
- import { z } from 'zod';
3
1
  import type { ContractType, CreateReq } from '../../types';
4
2
  import type { MarketplaceKind } from './api';
5
3
 
6
- export const QueryArgSchema = z
7
- .object({
8
- enabled: z.boolean().optional(),
9
- })
10
- .optional();
11
-
12
- export type QueryArg = z.infer<typeof QueryArgSchema>;
13
-
14
- export const CollectableIdSchema = z.string().or(z.number());
15
-
16
- export const AddressSchema = z.string().transform((val, ctx) => {
17
- const regex = /^0x[a-fA-F0-9]{40}$/;
18
-
19
- if (!regex.test(val)) {
20
- ctx.addIssue({
21
- code: z.ZodIssueCode.custom,
22
- message: `Invalid Address ${val}`,
23
- });
24
- }
4
+ export interface QueryArg {
5
+ enabled?: boolean;
6
+ }
25
7
 
26
- return val as Address;
27
- });
8
+ export type CollectableId = string | number;
28
9
 
29
10
  export type CollectionType = ContractType.ERC1155 | ContractType.ERC721;
30
11
 
@@ -75,3 +56,9 @@ export interface CancelInput {
75
56
  orderId: string;
76
57
  marketplace: MarketplaceKind;
77
58
  }
59
+
60
+ export type ValuesOptional<T> = {
61
+ [K in keyof T]: T[K] | undefined;
62
+ };
63
+
64
+ export type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
@@ -1,5 +1,4 @@
1
- import type { TypedData, TypedDataDomain } from 'viem';
2
- import type { Hex } from 'viem';
1
+ import type { Address, Hex, TypedData, TypedDataDomain } from 'viem';
3
2
  import { type PostRequest, type Signature, type Step, StepType } from './api';
4
3
 
5
4
  export interface SignatureStep {
@@ -7,7 +6,7 @@ export interface SignatureStep {
7
6
  domain?: TypedDataDomain;
8
7
  types?: TypedData;
9
8
  primaryType?: string;
10
- to: Hex; // TODO: This should not be here, its wrongly typed in webrpc
9
+ to: Address; // TODO: This should not be here, its wrongly typed in webrpc
11
10
  data: string;
12
11
  value: string;
13
12
  price: string;
@@ -23,7 +22,7 @@ export interface TransactionStep {
23
22
  | StepType.createOffer
24
23
  | StepType.createListing;
25
24
  data: Hex;
26
- to: Hex;
25
+ to: Address;
27
26
  value: Hex;
28
27
  price: Hex;
29
28
  maxFeePerGas?: Hex;
@@ -33,7 +32,7 @@ export interface TransactionStep {
33
32
  export interface ApprovalStep {
34
33
  id: StepType.tokenApproval;
35
34
  data: string;
36
- to: Hex;
35
+ to: Address;
37
36
  value: string;
38
37
  price: string;
39
38
  }
@@ -1,7 +1,7 @@
1
1
  import { getDefaultChains } from '@0xsequence/connect';
2
2
  import { allNetworks, findNetworkConfig } from '@0xsequence/network';
3
3
  import type { Chain, Transport } from 'viem';
4
- import { http, cookieStorage, createConfig, createStorage } from 'wagmi';
4
+ import { cookieStorage, createConfig, createStorage, http } from 'wagmi';
5
5
  import type { Env, SdkConfig } from '../../../types';
6
6
  import type { MarketplaceConfig } from '../../../types/new-marketplace-types';
7
7
  import { DEFAULT_NETWORK } from '../consts';
@@ -12,18 +12,10 @@ export const createWagmiConfig = (
12
12
  sdkConfig: SdkConfig,
13
13
  ssr?: boolean,
14
14
  ) => {
15
- const chains = getChainConfigs(marketplaceConfig);
16
- const nodeGatewayEnv =
17
- sdkConfig._internal?.overrides?.api?.nodeGateway?.env ?? 'production';
18
- const projectAccessKey =
19
- sdkConfig._internal?.overrides?.api?.nodeGateway?.accessKey ??
20
- sdkConfig.projectAccessKey;
21
-
22
- const transports = getTransportConfigs(
23
- chains,
24
- projectAccessKey,
25
- nodeGatewayEnv,
26
- );
15
+ const { chains, transports } = getWagmiChainsAndTransports({
16
+ marketplaceConfig,
17
+ sdkConfig,
18
+ });
27
19
 
28
20
  const walletType = marketplaceConfig.settings.walletOptions.walletType;
29
21
 
@@ -50,6 +42,30 @@ export const createWagmiConfig = (
50
42
  });
51
43
  };
52
44
 
45
+ export function getWagmiChainsAndTransports({
46
+ marketplaceConfig,
47
+ sdkConfig,
48
+ }: {
49
+ marketplaceConfig: MarketplaceConfig;
50
+ sdkConfig: SdkConfig;
51
+ }) {
52
+ const chains = getChainConfigs(marketplaceConfig);
53
+ const nodeGatewayOverrides = sdkConfig._internal?.overrides?.api?.nodeGateway;
54
+ const nodeGatewayEnv = nodeGatewayOverrides?.env ?? 'production';
55
+ const nodeGatewayUrl = nodeGatewayOverrides?.url;
56
+ const projectAccessKey =
57
+ nodeGatewayOverrides?.accessKey ?? sdkConfig.projectAccessKey;
58
+
59
+ const transports = getTransportConfigs(
60
+ chains,
61
+ projectAccessKey,
62
+ nodeGatewayEnv,
63
+ nodeGatewayUrl,
64
+ );
65
+
66
+ return { chains, transports };
67
+ }
68
+
53
69
  function getAllCollections(marketConfig: MarketplaceConfig) {
54
70
  return [...marketConfig.market.collections, ...marketConfig.shop.collections];
55
71
  }
@@ -71,18 +87,26 @@ function getChainConfigs(marketConfig: MarketplaceConfig): [Chain, ...Chain[]] {
71
87
  function getTransportConfigs(
72
88
  chains: [Chain, ...Chain[]],
73
89
  projectAccessKey: string,
74
- nodeGatewayEnv: Env,
90
+ nodeGatewayEnv: Env | undefined,
91
+ nodeGatewayUrl?: string,
75
92
  ): Record<number, Transport> {
76
93
  return chains.reduce(
77
94
  (acc, chain) => {
78
95
  const network = findNetworkConfig(allNetworks, chain.id);
79
96
  if (network) {
80
- let rpcUrl = network.rpcUrl;
81
- if (nodeGatewayEnv === 'development') {
82
- rpcUrl = rpcUrl.replace('nodes.', 'dev-nodes.');
97
+ let rpcUrl: string;
98
+ if (nodeGatewayUrl) {
99
+ // Use manual URL if provided
100
+ rpcUrl = nodeGatewayUrl;
101
+ } else {
102
+ // Use default URL with environment prefix
103
+ rpcUrl = network.rpcUrl;
104
+ if (nodeGatewayEnv === 'development') {
105
+ rpcUrl = rpcUrl.replace('nodes.', 'dev-nodes.');
106
+ }
107
+ if (!network.rpcUrl.endsWith(projectAccessKey))
108
+ rpcUrl = `${rpcUrl}/${projectAccessKey}`;
83
109
  }
84
- if (!network.rpcUrl.endsWith(projectAccessKey))
85
- rpcUrl = `${rpcUrl}/${projectAccessKey}`;
86
110
  acc[chain.id] = http(rpcUrl);
87
111
  }
88
112
  return acc;