@0xsequence/marketplace-sdk 0.8.10 → 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 (436) hide show
  1. package/.changeset/fluffy-jokes-lay.md +5 -0
  2. package/.changeset/wise-bugs-boil.md +8 -0
  3. package/CHANGELOG.md +182 -3
  4. package/dist/CartIcon-Bll1rbxv.js +141 -0
  5. package/dist/CartIcon-Bll1rbxv.js.map +1 -0
  6. package/dist/CollectibleCard-CLQTl0_6.d.ts +8 -0
  7. package/dist/_internal-69NEWNUE.js +34 -0
  8. package/dist/_internal-69NEWNUE.js.map +1 -0
  9. package/dist/abi-BKyRjVcZ.js +0 -0
  10. package/dist/{alien_swap-2B65TDGT.js → alien_swap-B_76IMma.js} +5 -5
  11. package/dist/alien_swap-B_76IMma.js.map +1 -0
  12. package/dist/api-1KFxYh7o.js +232 -0
  13. package/dist/api-1KFxYh7o.js.map +1 -0
  14. package/dist/{aqua-xyz-WMYQLAIS.js → aqua-xyz-CMN_TFY5.js} +5 -5
  15. package/dist/aqua-xyz-CMN_TFY5.js.map +1 -0
  16. package/dist/{aura-V22RV5OG.js → aura-Cye_TuHj.js} +5 -5
  17. package/dist/aura-Cye_TuHj.js.map +1 -0
  18. package/dist/{blur-GE5QOMCM.js → blur-DWDMyMpK.js} +5 -5
  19. package/dist/blur-DWDMyMpK.js.map +1 -0
  20. package/dist/builder-api-BQvzykoU.js +28 -0
  21. package/dist/builder-api-BQvzykoU.js.map +1 -0
  22. package/dist/builder-api-DoK3907S.d.ts +12 -0
  23. package/dist/builder.gen-CxP9NT1p.js +303 -0
  24. package/dist/builder.gen-CxP9NT1p.js.map +1 -0
  25. package/dist/{coinbase-NLHJMGAP.js → coinbase-ByA_XRB0.js} +5 -5
  26. package/dist/coinbase-ByA_XRB0.js.map +1 -0
  27. package/dist/{element-2LGTYYSP.js → element-b77CyXIZ.js} +5 -5
  28. package/dist/element-b77CyXIZ.js.map +1 -0
  29. package/dist/{foundation-BPN66ZTN.js → foundation-DbOrKP9Y.js} +5 -5
  30. package/dist/foundation-DbOrKP9Y.js.map +1 -0
  31. package/dist/index-1bezgsFq.d.ts +1129 -0
  32. package/dist/index-4-kfOFdx.d.ts +22 -0
  33. package/dist/index-BEYefG1G.d.ts +24 -0
  34. package/dist/index-BHiSG-Yi.d.ts +312 -0
  35. package/dist/index-BIMIpDiI.d.ts +188 -0
  36. package/dist/index-BQW0PUkQ.d.ts +3973 -0
  37. package/dist/index-BfH21xmk.d.ts +117 -0
  38. package/dist/index-BjIwVzc4.d.ts +1057 -0
  39. package/dist/index-C39K_8SG.d.ts +1 -0
  40. package/dist/index-CN8puQQJ.d.ts +24 -0
  41. package/dist/index-Cl7PQOGu.d.ts +102 -0
  42. package/dist/index-D5v5iluA.d.ts +809 -0
  43. package/dist/index-DXMfTZ1F.d.ts +7 -0
  44. package/dist/index-DafWjEb4.d.ts +65 -0
  45. package/dist/index-ij9f8GAA.d.ts +1 -0
  46. package/dist/index.css +384 -371
  47. package/dist/index.d.ts +10 -28
  48. package/dist/index.js +13 -105
  49. package/dist/{looks-rare-MZRSOPT4.js → looks-rare-C1VqNcSM.js} +5 -5
  50. package/dist/looks-rare-C1VqNcSM.js.map +1 -0
  51. package/dist/{magic-eden-PUBL6KWW.js → magic-eden-ea_AGCZr.js} +5 -5
  52. package/dist/magic-eden-ea_AGCZr.js.map +1 -0
  53. package/dist/{manifold-GA445YJ6.js → manifold-8y8J2sjT.js} +5 -5
  54. package/dist/manifold-8y8J2sjT.js.map +1 -0
  55. package/dist/marketplace-logos-CSeGcPW4.js +50 -0
  56. package/dist/marketplace-logos-CSeGcPW4.js.map +1 -0
  57. package/dist/marketplace-nwnZv9Cb.js +1913 -0
  58. package/dist/marketplace-nwnZv9Cb.js.map +1 -0
  59. package/dist/marketplace.gen-Dqk8vRmD.js +1068 -0
  60. package/dist/marketplace.gen-Dqk8vRmD.js.map +1 -0
  61. package/dist/marketplaceConfig-D2MYFqll.js +71 -0
  62. package/dist/marketplaceConfig-D2MYFqll.js.map +1 -0
  63. package/dist/{mintify-UMC5PTKC.js → mintify-LA68TzWg.js} +5 -5
  64. package/dist/mintify-LA68TzWg.js.map +1 -0
  65. package/dist/{nftx-AX3CY3IE.js → nftx-D3Tc8nzd.js} +5 -5
  66. package/dist/nftx-D3Tc8nzd.js.map +1 -0
  67. package/dist/{okx-GNVLAE2R.js → okx-hbqg6oIJ.js} +5 -5
  68. package/dist/okx-hbqg6oIJ.js.map +1 -0
  69. package/dist/{open-sea-KI43GVEB.js → open-sea-BccuK8-t.js} +5 -5
  70. package/dist/open-sea-BccuK8-t.js.map +1 -0
  71. package/dist/options-DCi6_23w.js +34 -0
  72. package/dist/options-DCi6_23w.js.map +1 -0
  73. package/dist/primary-sale-Cw95phYC.js +1264 -0
  74. package/dist/primary-sale-Cw95phYC.js.map +1 -0
  75. package/dist/queries-DPvwtnO7.js +486 -0
  76. package/dist/queries-DPvwtnO7.js.map +1 -0
  77. package/dist/{rarible-2J3MMZJ7.js → rarible-BgTwwj9g.js} +5 -5
  78. package/dist/rarible-BgTwwj9g.js.map +1 -0
  79. package/dist/react/_internal/api/index.d.ts +4 -86
  80. package/dist/react/_internal/api/index.js +7 -150
  81. package/dist/react/_internal/databeat/index.d.ts +45 -41
  82. package/dist/react/_internal/databeat/index.js +23 -27
  83. package/dist/react/_internal/index.d.ts +7 -24
  84. package/dist/react/_internal/index.js +9 -176
  85. package/dist/react/_internal/wagmi/index.d.ts +4 -18
  86. package/dist/react/_internal/wagmi/index.js +5 -14
  87. package/dist/react/hooks/index.d.ts +17 -3803
  88. package/dist/react/hooks/index.js +23 -157
  89. package/dist/react/hooks/options/index.d.ts +5 -7
  90. package/dist/react/hooks/options/index.js +11 -19
  91. package/dist/react/index.d.ts +37 -33
  92. package/dist/react/index.js +23 -199
  93. package/dist/react/queries/index.d.ts +8 -26
  94. package/dist/react/queries/index.js +18 -40
  95. package/dist/react/ssr/index.d.ts +19 -13
  96. package/dist/react/ssr/index.js +29 -27
  97. package/dist/react/ssr/index.js.map +1 -1
  98. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +10 -0
  99. package/dist/react/ui/components/marketplace-collectible-card/index.js +23 -0
  100. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +8 -0
  101. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +10 -0
  102. package/dist/react/ui/components/marketplace-logos/index.d.ts +26 -24
  103. package/dist/react/ui/components/marketplace-logos/index.js +3 -45
  104. package/dist/react/ui/icons/index.d.ts +1 -2
  105. package/dist/react/ui/icons/index.js +10 -14
  106. package/dist/react/ui/index.d.ts +10 -116
  107. package/dist/react/ui/index.js +23 -46
  108. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +59 -33
  109. package/dist/react/ui/modals/_internal/components/actionModal/index.js +23 -31
  110. package/dist/react-BG7o4PId.js +8351 -0
  111. package/dist/react-BG7o4PId.js.map +1 -0
  112. package/dist/react-BbHBl6gg.css +80 -0
  113. package/dist/react-BbHBl6gg.css.map +1 -0
  114. package/dist/sdk-config-DJzxVPld.d.ts +1535 -0
  115. package/dist/{sequence-TGLUFEPQ.js → sequence-Do3kzb4J.js} +5 -5
  116. package/dist/sequence-Do3kzb4J.js.map +1 -0
  117. package/dist/src-Dz2CfBL0.js +8 -0
  118. package/dist/src-Dz2CfBL0.js.map +1 -0
  119. package/dist/{sudo-swap-M2O6E3TE.js → sudo-swap-B6vPKxBz.js} +5 -5
  120. package/dist/sudo-swap-B6vPKxBz.js.map +1 -0
  121. package/dist/{super-rare-UU2U4LIN.js → super-rare-eCm1SE6O.js} +5 -5
  122. package/dist/super-rare-eCm1SE6O.js.map +1 -0
  123. package/dist/token-CO5llIla.js +1312 -0
  124. package/dist/token-CO5llIla.js.map +1 -0
  125. package/dist/transaction-CcVViHEL.js +97 -0
  126. package/dist/transaction-CcVViHEL.js.map +1 -0
  127. package/dist/types/index.d.ts +3 -12
  128. package/dist/types/index.js +5 -44
  129. package/dist/types-BIJOaL4j.d.ts +68 -0
  130. package/dist/types-DwWE6xOF.js +13 -0
  131. package/dist/types-DwWE6xOF.js.map +1 -0
  132. package/dist/useCollection-C-mclKU0.d.ts +66 -0
  133. package/dist/utils/abi/index.d.ts +5 -3
  134. package/dist/utils/abi/index.js +6 -26
  135. package/dist/utils/abi/marketplace/index.d.ts +2 -805
  136. package/dist/utils/abi/marketplace/index.js +3 -11
  137. package/dist/utils/abi/primary-sale/index.d.ts +2 -1054
  138. package/dist/utils/abi/primary-sale/index.js +3 -9
  139. package/dist/utils/abi/token/index.d.ts +2 -1125
  140. package/dist/utils/abi/token/index.js +3 -11
  141. package/dist/utils/index.d.ts +8 -91
  142. package/dist/utils/index.js +11 -56
  143. package/dist/utils-BFdxaToy.js +216 -0
  144. package/dist/utils-BFdxaToy.js.map +1 -0
  145. package/dist/utils-Cat9_pef.js +44 -0
  146. package/dist/utils-Cat9_pef.js.map +1 -0
  147. package/dist/wagmi-DRctYEk6.js +159 -0
  148. package/dist/wagmi-DRctYEk6.js.map +1 -0
  149. package/dist/{x2y2-3W5BBMZC.js → x2y2-DD17tT91.js} +5 -5
  150. package/dist/x2y2-DD17tT91.js.map +1 -0
  151. package/dist/{zora-6EY6FUH6.js → zora-BpSG9UzS.js} +5 -5
  152. package/dist/zora-BpSG9UzS.js.map +1 -0
  153. package/package.json +21 -19
  154. package/src/index.ts +0 -1
  155. package/src/react/_internal/api/__mocks__/builder.msw.ts +157 -80
  156. package/src/react/_internal/api/__mocks__/indexer.msw.ts +1 -0
  157. package/src/react/_internal/api/builder-api.ts +2 -2
  158. package/src/react/_internal/api/builder.gen.ts +666 -112
  159. package/src/react/_internal/api/marketplace.gen.ts +2421 -1315
  160. package/src/react/_internal/api/services.ts +42 -49
  161. package/src/react/_internal/types.ts +1 -13
  162. package/src/react/_internal/wagmi/__tests__/create-config.test.ts +102 -87
  163. package/src/react/_internal/wagmi/create-config.ts +15 -6
  164. package/src/react/_internal/wagmi/get-connectors.ts +29 -21
  165. package/src/react/hooks/__tests__/__snapshots__/useListCollections.test.tsx.snap +273 -0
  166. package/src/react/hooks/__tests__/__snapshots__/useMarketplaceConfig.test.tsx.snap +122 -82
  167. package/src/react/hooks/__tests__/useAutoSelectFeeOption.test.tsx +7 -4
  168. package/src/react/hooks/__tests__/useCheckoutOptionsSalesContract.test.tsx +225 -0
  169. package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +3 -3
  170. package/src/react/hooks/__tests__/useFilters.test.tsx +0 -16
  171. package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +2 -3
  172. package/src/react/hooks/__tests__/useHighestOffer.test.tsx +0 -16
  173. package/src/react/hooks/__tests__/useInventory.test.tsx +6 -42
  174. package/src/react/hooks/__tests__/useListCollections.test.tsx +24 -57
  175. package/src/react/hooks/__tests__/{useCurrencies.test.tsx → useMarketCurrencies.test.tsx} +21 -15
  176. package/src/react/hooks/__tests__/useMarketplaceConfig.test.tsx +2 -59
  177. package/src/react/hooks/index.ts +9 -1
  178. package/src/react/hooks/useBalanceOfCollectible.tsx +14 -8
  179. package/src/react/hooks/useCancelTransactionSteps.tsx +5 -1
  180. package/src/react/hooks/useCheckoutOptions.tsx +2 -1
  181. package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +67 -0
  182. package/src/react/hooks/useCollectionDetails.tsx +22 -7
  183. package/src/react/hooks/useConvertPriceToUSD.tsx +1 -1
  184. package/src/react/hooks/useCountListingsForCollectible.tsx +5 -4
  185. package/src/react/hooks/useCountOfCollectables.tsx +10 -7
  186. package/src/react/hooks/useCountOffersForCollectible.tsx +5 -4
  187. package/src/react/hooks/useCurrency.tsx +2 -2
  188. package/src/react/hooks/useERC721SaleMintedTokens.tsx +67 -0
  189. package/src/react/hooks/useFilters.tsx +14 -22
  190. package/src/react/hooks/useFloorOrder.tsx +5 -2
  191. package/src/react/hooks/useGenerateCancelTransaction.tsx +13 -6
  192. package/src/react/hooks/useGenerateListingTransaction.tsx +15 -5
  193. package/src/react/hooks/useGenerateOfferTransaction.tsx +15 -6
  194. package/src/react/hooks/useGenerateSellTransaction.tsx +15 -6
  195. package/src/react/hooks/useGetTokenSuppliesMap.ts +33 -0
  196. package/src/react/hooks/useInventory.tsx +7 -4
  197. package/src/react/hooks/useList1155ShopCardData.tsx +130 -0
  198. package/src/react/hooks/useList721ShopCardData.tsx +130 -0
  199. package/src/react/hooks/useListBalances.tsx +7 -8
  200. package/src/react/hooks/useListCollectibleActivities.tsx +2 -1
  201. package/src/react/hooks/useListCollectibles.tsx +1 -12
  202. package/src/react/hooks/useListCollectiblesPaginated.tsx +8 -5
  203. package/src/react/hooks/useListCollectionActivities.tsx +2 -1
  204. package/src/react/hooks/useListCollections.tsx +14 -76
  205. package/src/react/hooks/useListListingsForCollectible.tsx +2 -1
  206. package/src/react/hooks/useListMarketCardData.tsx +157 -0
  207. package/src/react/hooks/useListOffersForCollectible.tsx +2 -1
  208. package/src/react/hooks/useListPrimarySaleItems.ts +42 -0
  209. package/src/react/hooks/useMarketCurrencies.tsx +8 -0
  210. package/src/react/hooks/useMarketplaceConfig.tsx +0 -2
  211. package/src/react/hooks/useTokenSaleDetailsBatch.tsx +134 -0
  212. package/src/react/queries/highestOffer.ts +6 -4
  213. package/src/react/queries/index.ts +1 -0
  214. package/src/react/queries/inventory.ts +36 -2
  215. package/src/react/queries/listBalances.ts +14 -30
  216. package/src/react/queries/listCollectibles.ts +60 -7
  217. package/src/react/queries/listCollections.ts +124 -0
  218. package/src/react/queries/listTokenMetadata.ts +6 -1
  219. package/src/react/queries/lowestListing.ts +6 -4
  220. package/src/react/queries/marketCurrencies.ts +81 -0
  221. package/src/react/queries/marketplaceConfig.ts +82 -79
  222. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +122 -82
  223. package/src/react/ssr/__tests__/create-ssr-client.test.ts +0 -3
  224. package/src/react/ssr/create-ssr-client.ts +5 -10
  225. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +47 -13
  226. package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +1 -1
  227. package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +28 -15
  228. package/src/react/ui/components/_internals/action-button/__tests__/OwnerActions.test.tsx +1 -1
  229. package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +1 -1
  230. package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +1 -1
  231. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +78 -15
  232. package/src/react/ui/components/_internals/action-button/components/OwnerActions.tsx +1 -1
  233. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +1 -1
  234. package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +17 -0
  235. package/src/react/ui/components/marketplace-collectible-card/CollectibleCardSkeleton.tsx +24 -0
  236. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +231 -0
  237. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +76 -0
  238. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +55 -0
  239. package/src/react/ui/components/marketplace-collectible-card/index.ts +3 -0
  240. package/src/react/ui/components/marketplace-collectible-card/types.ts +95 -0
  241. package/src/react/ui/components/marketplace-collectible-card/utils/formatPrice.ts +45 -0
  242. package/src/react/ui/components/marketplace-collectible-card/utils/index.ts +2 -0
  243. package/src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts +39 -0
  244. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +124 -0
  245. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +105 -0
  246. package/src/react/ui/components/{collectible-card/media → media}/Media.tsx +52 -30
  247. package/src/react/ui/components/{collectible-card/media → media}/MediaSkeleton.tsx +1 -1
  248. package/src/react/ui/components/{collectible-card/media → media}/types.ts +4 -1
  249. package/src/react/ui/index.ts +5 -2
  250. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +554 -0
  251. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +385 -0
  252. package/src/react/ui/modals/BuyModal/__tests__/ERC721ShopModal.test.tsx +272 -0
  253. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx.bak +112 -0
  254. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +117 -13
  255. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +10 -7
  256. package/src/react/ui/modals/BuyModal/components/BuyModalRouter.tsx +157 -0
  257. package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +136 -0
  258. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +184 -0
  259. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +121 -0
  260. package/src/react/ui/modals/BuyModal/components/ERC721BuyModal.tsx +85 -0
  261. package/src/react/ui/modals/BuyModal/components/ERC721ShopModal.tsx +86 -0
  262. package/src/react/ui/modals/BuyModal/components/Modal.tsx +14 -0
  263. package/src/react/ui/modals/BuyModal/components/types.ts +8 -0
  264. package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +4 -4
  265. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +379 -0
  266. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC721SalePaymentParams.test.tsx +253 -0
  267. package/src/react/ui/modals/BuyModal/hooks/__tests__/{useFees.test.tsx → useMarketPlatformFee.test.tsx} +37 -28
  268. package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +62 -44
  269. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +73 -0
  270. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +196 -0
  271. package/src/react/ui/modals/BuyModal/hooks/useLoadData.ts +74 -18
  272. package/src/react/ui/modals/BuyModal/hooks/useMarketPlatformFee.ts +53 -0
  273. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +27 -12
  274. package/src/react/ui/modals/BuyModal/store.ts +147 -13
  275. package/src/react/ui/modals/CreateListingModal/Modal.tsx +3 -5
  276. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +5 -3
  277. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +2 -1
  278. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +7 -5
  279. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +2 -3
  280. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +2 -1
  281. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +4 -3
  282. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +5 -3
  283. package/src/react/ui/modals/SellModal/Modal.tsx +0 -1
  284. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +4 -3
  285. package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +8 -5
  286. package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +11 -7
  287. package/src/react/ui/modals/SuccessfulPurchaseModal/index.tsx +34 -28
  288. package/src/react/ui/modals/SuccessfulPurchaseModal/store.ts +71 -0
  289. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +0 -1
  290. package/src/react/ui/modals/TransferModal/index.tsx +0 -1
  291. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +0 -1
  292. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +105 -108
  293. package/src/react/ui/modals/_internal/components/actionModal/store.ts +45 -12
  294. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +2 -2
  295. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +7 -6
  296. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +13 -7
  297. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/index.tsx +3 -5
  298. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +5 -3
  299. package/src/react/ui/modals/_internal/components/switchChainModal/__tests__/SwitchChainModal.test.tsx +12 -8
  300. package/src/react/ui/modals/_internal/components/switchChainModal/index.tsx +35 -33
  301. package/src/react/ui/modals/_internal/components/switchChainModal/store.ts +61 -32
  302. package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +2 -2
  303. package/src/react/ui/modals/_internal/hooks/useSelectWaasFeeOptions.ts +2 -12
  304. package/src/react/ui/modals/modal-provider.tsx +1 -1
  305. package/src/types/buyModalErrors.ts +438 -0
  306. package/src/types/index.ts +1 -3
  307. package/src/types/new-marketplace-types.ts +104 -0
  308. package/src/types/sdk-config.ts +22 -12
  309. package/src/types/types.ts +17 -0
  310. package/src/utils/_internal/error/transaction.ts +36 -1
  311. package/tsconfig.json +1 -1
  312. package/tsconfig.tsbuildinfo +1 -1
  313. package/tsdown.config.ts +25 -0
  314. package/.ctirc +0 -32
  315. package/dist/alien_swap-2B65TDGT.js.map +0 -1
  316. package/dist/aqua-xyz-WMYQLAIS.js.map +0 -1
  317. package/dist/aura-V22RV5OG.js.map +0 -1
  318. package/dist/blur-GE5QOMCM.js.map +0 -1
  319. package/dist/chunk-2PSNAIAT.js +0 -1
  320. package/dist/chunk-2PSNAIAT.js.map +0 -1
  321. package/dist/chunk-5C6ZZ6WX.js +0 -130
  322. package/dist/chunk-5C6ZZ6WX.js.map +0 -1
  323. package/dist/chunk-5O44EPXZ.js +0 -207
  324. package/dist/chunk-5O44EPXZ.js.map +0 -1
  325. package/dist/chunk-6CTFVBKU.js +0 -1
  326. package/dist/chunk-6CTFVBKU.js.map +0 -1
  327. package/dist/chunk-7F27CJZW.js +0 -1544
  328. package/dist/chunk-7F27CJZW.js.map +0 -1
  329. package/dist/chunk-A7BVFBWB.js +0 -81
  330. package/dist/chunk-A7BVFBWB.js.map +0 -1
  331. package/dist/chunk-D7RVSZAQ.js +0 -332
  332. package/dist/chunk-D7RVSZAQ.js.map +0 -1
  333. package/dist/chunk-DWTLVJAW.js +0 -42
  334. package/dist/chunk-DWTLVJAW.js.map +0 -1
  335. package/dist/chunk-FGM57QUU.js +0 -128
  336. package/dist/chunk-FGM57QUU.js.map +0 -1
  337. package/dist/chunk-FUM4OGOQ.js +0 -1027
  338. package/dist/chunk-FUM4OGOQ.js.map +0 -1
  339. package/dist/chunk-JKCF7HEA.js +0 -1
  340. package/dist/chunk-JKCF7HEA.js.map +0 -1
  341. package/dist/chunk-KTST7ORH.js +0 -53
  342. package/dist/chunk-KTST7ORH.js.map +0 -1
  343. package/dist/chunk-M6NJ73Y5.js +0 -154
  344. package/dist/chunk-M6NJ73Y5.js.map +0 -1
  345. package/dist/chunk-N7BPFK46.js +0 -1
  346. package/dist/chunk-N7BPFK46.js.map +0 -1
  347. package/dist/chunk-NX52D7NX.js +0 -135
  348. package/dist/chunk-NX52D7NX.js.map +0 -1
  349. package/dist/chunk-O34GCB47.js +0 -32
  350. package/dist/chunk-O34GCB47.js.map +0 -1
  351. package/dist/chunk-Q3ECVC4F.js +0 -811
  352. package/dist/chunk-Q3ECVC4F.js.map +0 -1
  353. package/dist/chunk-RVIUUJTP.js +0 -76
  354. package/dist/chunk-RVIUUJTP.js.map +0 -1
  355. package/dist/chunk-SXVUTSMT.js +0 -2895
  356. package/dist/chunk-SXVUTSMT.js.map +0 -1
  357. package/dist/chunk-UJSF7PSC.js +0 -5728
  358. package/dist/chunk-UJSF7PSC.js.map +0 -1
  359. package/dist/chunk-WH5BZC7W.js +0 -38
  360. package/dist/chunk-WH5BZC7W.js.map +0 -1
  361. package/dist/chunk-XX4EVWBF.js +0 -1292
  362. package/dist/chunk-XX4EVWBF.js.map +0 -1
  363. package/dist/chunk-Y2HJO2VY.js +0 -432
  364. package/dist/chunk-Y2HJO2VY.js.map +0 -1
  365. package/dist/chunk-Y63BOO6M.js +0 -11
  366. package/dist/chunk-Y63BOO6M.js.map +0 -1
  367. package/dist/coinbase-NLHJMGAP.js.map +0 -1
  368. package/dist/create-config-CAQcvjl6.d.ts +0 -8
  369. package/dist/element-2LGTYYSP.js.map +0 -1
  370. package/dist/foundation-BPN66ZTN.js.map +0 -1
  371. package/dist/get-query-client-D46hbjk6.d.ts +0 -5
  372. package/dist/index-MlUK9AQE.d.ts +0 -62
  373. package/dist/index.css.map +0 -1
  374. package/dist/index.js.map +0 -1
  375. package/dist/listTokenMetadata-DO4ChDjn.d.ts +0 -203
  376. package/dist/looks-rare-MZRSOPT4.js.map +0 -1
  377. package/dist/magic-eden-PUBL6KWW.js.map +0 -1
  378. package/dist/manifold-GA445YJ6.js.map +0 -1
  379. package/dist/marketplace.gen-DQzWciwC.d.ts +0 -1072
  380. package/dist/marketplaceConfig-D0MXemEl.d.ts +0 -17
  381. package/dist/mintify-UMC5PTKC.js.map +0 -1
  382. package/dist/nftx-AX3CY3IE.js.map +0 -1
  383. package/dist/okx-GNVLAE2R.js.map +0 -1
  384. package/dist/open-sea-KI43GVEB.js.map +0 -1
  385. package/dist/rarible-2J3MMZJ7.js.map +0 -1
  386. package/dist/react/_internal/api/index.js.map +0 -1
  387. package/dist/react/_internal/databeat/index.js.map +0 -1
  388. package/dist/react/_internal/index.js.map +0 -1
  389. package/dist/react/_internal/wagmi/index.js.map +0 -1
  390. package/dist/react/hooks/index.js.map +0 -1
  391. package/dist/react/hooks/options/index.js.map +0 -1
  392. package/dist/react/index.css +0 -2764
  393. package/dist/react/index.css.map +0 -1
  394. package/dist/react/index.js.map +0 -1
  395. package/dist/react/queries/index.js.map +0 -1
  396. package/dist/react/ui/components/collectible-card/index.css +0 -2764
  397. package/dist/react/ui/components/collectible-card/index.css.map +0 -1
  398. package/dist/react/ui/components/collectible-card/index.d.ts +0 -70
  399. package/dist/react/ui/components/collectible-card/index.js +0 -32
  400. package/dist/react/ui/components/collectible-card/index.js.map +0 -1
  401. package/dist/react/ui/components/marketplace-logos/index.js.map +0 -1
  402. package/dist/react/ui/icons/index.js.map +0 -1
  403. package/dist/react/ui/index.css +0 -2764
  404. package/dist/react/ui/index.css.map +0 -1
  405. package/dist/react/ui/index.js.map +0 -1
  406. package/dist/react/ui/modals/_internal/components/actionModal/index.js.map +0 -1
  407. package/dist/sdk-config-onSPBxJj.d.ts +0 -134
  408. package/dist/sequence-TGLUFEPQ.js.map +0 -1
  409. package/dist/services-CMSb9ipU.d.ts +0 -23
  410. package/dist/sudo-swap-M2O6E3TE.js.map +0 -1
  411. package/dist/super-rare-UU2U4LIN.js.map +0 -1
  412. package/dist/types/index.js.map +0 -1
  413. package/dist/types-B8xzPEKX.d.ts +0 -68
  414. package/dist/utils/abi/index.js.map +0 -1
  415. package/dist/utils/abi/marketplace/index.js.map +0 -1
  416. package/dist/utils/abi/primary-sale/index.js.map +0 -1
  417. package/dist/utils/abi/token/index.js.map +0 -1
  418. package/dist/utils/index.js.map +0 -1
  419. package/dist/x2y2-3W5BBMZC.js.map +0 -1
  420. package/dist/zora-6EY6FUH6.js.map +0 -1
  421. package/postcss.config.mjs +0 -5
  422. package/src/react/hooks/__tests__/__snapshots__/useRoyaltyPercentage.test.tsx.snap +0 -8
  423. package/src/react/hooks/useCurrencies.tsx +0 -77
  424. package/src/react/ui/components/collectible-card/CollectibleCard.tsx +0 -170
  425. package/src/react/ui/components/collectible-card/Footer.tsx +0 -157
  426. package/src/react/ui/components/collectible-card/__tests__/CollectibleCard.test.tsx +0 -94
  427. package/src/react/ui/components/collectible-card/__tests__/Footer.test.tsx +0 -136
  428. package/src/react/ui/components/collectible-card/__tests__/Media.test.tsx +0 -224
  429. package/src/react/ui/components/collectible-card/index.ts +0 -2
  430. package/src/react/ui/modals/BuyModal/ERC1155QuantityModal.tsx +0 -124
  431. package/src/react/ui/modals/BuyModal/Modal.tsx +0 -124
  432. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx +0 -104
  433. package/src/react/ui/modals/BuyModal/hooks/useFees.ts +0 -38
  434. package/src/react/ui/modals/SuccessfulPurchaseModal/_store.ts +0 -72
  435. package/tsup.config.ts +0 -23
  436. /package/src/react/ui/components/{collectible-card/media → media}/utils.ts +0 -0
@@ -0,0 +1,438 @@
1
+ // Enhanced error types with price context and better debugging information
2
+ export type BuyModalError =
3
+ | PriceOverflowError
4
+ | PriceCalculationError
5
+ | InvalidPriceFormatError
6
+ | InvalidQuantityError
7
+ | NetworkError
8
+ | ContractError
9
+ | CheckoutError
10
+ | ValidationError
11
+ | StateError;
12
+
13
+ export interface PriceOverflowError {
14
+ type: 'PRICE_OVERFLOW';
15
+ maxSafeValue: string;
16
+ attemptedValue: string;
17
+ operation: string;
18
+ timestamp: number;
19
+ }
20
+
21
+ export interface PriceCalculationError {
22
+ type: 'PRICE_CALCULATION_ERROR';
23
+ operation: string;
24
+ inputs: string[];
25
+ originalError?: string;
26
+ timestamp: number;
27
+ }
28
+
29
+ // export interface InsufficientFundsError {
30
+ // type: "INSUFFICIENT_FUNDS";
31
+ // required: Price;
32
+ // available: Price;
33
+ // currency: string;
34
+ // shortfall: Price;
35
+ // timestamp: number;
36
+ // }
37
+
38
+ export interface InvalidPriceFormatError {
39
+ type: 'INVALID_PRICE_FORMAT';
40
+ providedPrice: string;
41
+ expectedFormat: string;
42
+ suggestions?: string[];
43
+ timestamp: number;
44
+ }
45
+
46
+ export interface InvalidQuantityError {
47
+ type: 'INVALID_QUANTITY';
48
+ provided: number;
49
+ min: number;
50
+ max: number;
51
+ available?: number;
52
+ timestamp: number;
53
+ }
54
+
55
+ export interface NetworkError {
56
+ type: 'NETWORK_ERROR';
57
+ message: string;
58
+ retryable: boolean;
59
+ chainId?: number;
60
+ endpoint?: string;
61
+ timestamp: number;
62
+ }
63
+
64
+ export interface ContractError {
65
+ type: 'CONTRACT_ERROR';
66
+ contractAddress: string;
67
+ message: string;
68
+ method?: string;
69
+ chainId?: number;
70
+ blockNumber?: number;
71
+ timestamp: number;
72
+ }
73
+
74
+ export interface CheckoutError {
75
+ type: 'CHECKOUT_ERROR';
76
+ provider: string;
77
+ message: string;
78
+ code?: string;
79
+ retryable: boolean;
80
+ timestamp: number;
81
+ }
82
+
83
+ export interface ValidationError {
84
+ type: 'VALIDATION_ERROR';
85
+ field: string;
86
+ message: string;
87
+ value?: unknown;
88
+ constraints?: Record<string, unknown>;
89
+ timestamp: number;
90
+ }
91
+
92
+ export interface StateError {
93
+ type: 'STATE_ERROR';
94
+ currentState: string;
95
+ attemptedAction: string;
96
+ message: string;
97
+ timestamp: number;
98
+ }
99
+
100
+ // biome-ignore lint/complexity/noStaticOnlyClass:
101
+ export class BuyModalErrorFactory {
102
+ static priceOverflow(
103
+ maxSafeValue: string,
104
+ attemptedValue: string,
105
+ operation: string,
106
+ ): PriceOverflowError {
107
+ return {
108
+ type: 'PRICE_OVERFLOW',
109
+ maxSafeValue,
110
+ attemptedValue,
111
+ operation,
112
+ timestamp: Date.now(),
113
+ };
114
+ }
115
+
116
+ static priceCalculation(
117
+ operation: string,
118
+ inputs: string[],
119
+ originalError?: string,
120
+ ): PriceCalculationError {
121
+ return {
122
+ type: 'PRICE_CALCULATION_ERROR',
123
+ operation,
124
+ inputs,
125
+ originalError,
126
+ timestamp: Date.now(),
127
+ };
128
+ }
129
+
130
+ // static insufficientFunds(
131
+ // required: Price,
132
+ // available: Price,
133
+ // currency: string,
134
+ // shortfall: Price
135
+ // ): InsufficientFundsError {
136
+ // return {
137
+ // type: "INSUFFICIENT_FUNDS",
138
+ // required,
139
+ // available,
140
+ // currency,
141
+ // shortfall,
142
+ // timestamp: Date.now(),
143
+ // };
144
+ // }
145
+
146
+ static invalidPriceFormat(
147
+ providedPrice: string,
148
+ expectedFormat: string,
149
+ suggestions?: string[],
150
+ ): InvalidPriceFormatError {
151
+ return {
152
+ type: 'INVALID_PRICE_FORMAT',
153
+ providedPrice,
154
+ expectedFormat,
155
+ suggestions,
156
+ timestamp: Date.now(),
157
+ };
158
+ }
159
+
160
+ static invalidQuantity(
161
+ provided: number,
162
+ min: number,
163
+ max: number,
164
+ available?: number,
165
+ ): InvalidQuantityError {
166
+ return {
167
+ type: 'INVALID_QUANTITY',
168
+ provided,
169
+ min,
170
+ max,
171
+ available,
172
+ timestamp: Date.now(),
173
+ };
174
+ }
175
+
176
+ static networkError(
177
+ message: string,
178
+ retryable: boolean,
179
+ chainId?: number,
180
+ endpoint?: string,
181
+ ): NetworkError {
182
+ return {
183
+ type: 'NETWORK_ERROR',
184
+ message,
185
+ retryable,
186
+ chainId,
187
+ endpoint,
188
+ timestamp: Date.now(),
189
+ };
190
+ }
191
+
192
+ static contractError(
193
+ contractAddress: string,
194
+ message: string,
195
+ method?: string,
196
+ chainId?: number,
197
+ blockNumber?: number,
198
+ ): ContractError {
199
+ return {
200
+ type: 'CONTRACT_ERROR',
201
+ contractAddress,
202
+ message,
203
+ method,
204
+ chainId,
205
+ blockNumber,
206
+ timestamp: Date.now(),
207
+ };
208
+ }
209
+
210
+ static checkoutError(
211
+ provider: string,
212
+ message: string,
213
+ code?: string,
214
+ retryable = false,
215
+ ): CheckoutError {
216
+ return {
217
+ type: 'CHECKOUT_ERROR',
218
+ provider,
219
+ message,
220
+ code,
221
+ retryable,
222
+ timestamp: Date.now(),
223
+ };
224
+ }
225
+
226
+ static validationError(
227
+ field: string,
228
+ message: string,
229
+ value?: unknown,
230
+ constraints?: Record<string, unknown>,
231
+ ): ValidationError {
232
+ return {
233
+ type: 'VALIDATION_ERROR',
234
+ field,
235
+ message,
236
+ value,
237
+ constraints,
238
+ timestamp: Date.now(),
239
+ };
240
+ }
241
+
242
+ static stateError(
243
+ currentState: string,
244
+ attemptedAction: string,
245
+ message: string,
246
+ ): StateError {
247
+ return {
248
+ type: 'STATE_ERROR',
249
+ currentState,
250
+ attemptedAction,
251
+ message,
252
+ timestamp: Date.now(),
253
+ };
254
+ }
255
+ }
256
+
257
+ // Error message formatters for user-friendly display
258
+ // biome-ignore lint/complexity/noStaticOnlyClass: Formatter provides good namespacing for error formatting
259
+ export class BuyModalErrorFormatter {
260
+ static format(error: BuyModalError): string {
261
+ switch (error.type) {
262
+ case 'PRICE_OVERFLOW':
263
+ return 'Price calculation exceeded safe limits. Please reduce quantity or contact support.';
264
+
265
+ case 'PRICE_CALCULATION_ERROR':
266
+ return 'Price calculation failed. Please refresh and try again.';
267
+
268
+ // case "INSUFFICIENT_FUNDS":
269
+ // return `Insufficient funds. You need ${error.currency} but only have available.`;
270
+
271
+ case 'INVALID_PRICE_FORMAT':
272
+ return `Invalid price format. Expected: ${error.expectedFormat}`;
273
+
274
+ case 'INVALID_QUANTITY':
275
+ return `Invalid quantity. Must be between ${error.min} and ${error.max}.`;
276
+
277
+ case 'NETWORK_ERROR':
278
+ return error.retryable
279
+ ? `Network error. ${error.message} Please try again.`
280
+ : `Network unavailable. ${error.message}`;
281
+
282
+ case 'CONTRACT_ERROR':
283
+ return `Blockchain error at ${error.contractAddress}. Please refresh and try again.`;
284
+
285
+ case 'CHECKOUT_ERROR':
286
+ return error.retryable
287
+ ? `Checkout failed with ${error.provider}. Please try again.`
288
+ : `Checkout unavailable with ${error.provider}.`;
289
+
290
+ case 'VALIDATION_ERROR':
291
+ return `${error.field}: ${error.message}`;
292
+
293
+ case 'STATE_ERROR':
294
+ return `Invalid operation: ${error.message}`;
295
+
296
+ default:
297
+ return 'An unexpected error occurred. Please try again.';
298
+ }
299
+ }
300
+
301
+ static isRetryable(error: BuyModalError): boolean {
302
+ switch (error.type) {
303
+ case 'NETWORK_ERROR':
304
+ case 'CHECKOUT_ERROR':
305
+ return error.retryable;
306
+
307
+ case 'PRICE_CALCULATION_ERROR':
308
+ case 'CONTRACT_ERROR':
309
+ return true;
310
+
311
+ default:
312
+ return false;
313
+ }
314
+ }
315
+
316
+ static getRecoveryAction(error: BuyModalError): string {
317
+ switch (error.type) {
318
+ // case "INSUFFICIENT_FUNDS":
319
+ // return "Add funds to your wallet";
320
+
321
+ case 'INVALID_QUANTITY':
322
+ return 'Adjust quantity';
323
+
324
+ case 'INVALID_PRICE_FORMAT':
325
+ return 'Enter valid price';
326
+
327
+ case 'NETWORK_ERROR':
328
+ case 'CONTRACT_ERROR':
329
+ return 'Retry transaction';
330
+
331
+ case 'CHECKOUT_ERROR':
332
+ return 'Try different payment method';
333
+
334
+ default:
335
+ return 'Refresh and try again';
336
+ }
337
+ }
338
+
339
+ /**
340
+ * Transform class-based errors (BaseError/TransactionError) to user-friendly BuyModalError
341
+ * This bridges the internal error system with the modal error system
342
+ */
343
+ static fromTransactionError(error: Error): BuyModalError {
344
+ // Import transaction errors
345
+ const errorName = error.name || error.constructor.name;
346
+
347
+ switch (errorName) {
348
+ case 'PriceCalculationError':
349
+ return BuyModalErrorFactory.priceCalculation(
350
+ 'price calculation',
351
+ [],
352
+ error.message,
353
+ );
354
+
355
+ case 'SalesContractError': {
356
+ // Extract contract address from error message if available
357
+ const addressMatch = error.message.match(/0x[a-fA-F0-9]{40}/);
358
+ return BuyModalErrorFactory.contractError(
359
+ addressMatch?.[0] || 'unknown',
360
+ error.message,
361
+ );
362
+ }
363
+
364
+ case 'QuantityValidationError': {
365
+ // Parse quantity from error message
366
+ const quantityMatch = error.message.match(/Invalid quantity: (\d+)/);
367
+ const availableMatch = error.message.match(
368
+ /available supply \((\d+)\)/,
369
+ );
370
+ return BuyModalErrorFactory.invalidQuantity(
371
+ Number(quantityMatch?.[1] || 0),
372
+ 0,
373
+ Number(availableMatch?.[1] || 0),
374
+ );
375
+ }
376
+
377
+ case 'UserRejectedRequestError':
378
+ return BuyModalErrorFactory.checkoutError(
379
+ 'user',
380
+ 'User cancelled the transaction',
381
+ 'USER_REJECTED',
382
+ false,
383
+ );
384
+
385
+ case 'NoWalletConnectedError':
386
+ return BuyModalErrorFactory.stateError(
387
+ 'disconnected',
388
+ 'purchase',
389
+ 'Please connect your wallet to continue',
390
+ );
391
+
392
+ case 'ChainSwitchError':
393
+ case 'NetworkError':
394
+ return BuyModalErrorFactory.networkError(
395
+ error.message,
396
+ true, // retryable
397
+ );
398
+
399
+ case 'ShopDataValidationError':
400
+ return BuyModalErrorFactory.validationError(
401
+ 'shop-config',
402
+ error.message,
403
+ );
404
+
405
+ default:
406
+ // Generic error for unknown types
407
+ return BuyModalErrorFactory.stateError(
408
+ 'unknown',
409
+ 'operation',
410
+ error.message || 'An unexpected error occurred',
411
+ );
412
+ }
413
+ }
414
+
415
+ /**
416
+ * Enhanced error wrapper that catches and transforms errors consistently
417
+ */
418
+ static async withErrorHandling<T>(
419
+ operation: () => Promise<T>,
420
+ _context: string, // Prefixed with underscore to indicate intentionally unused
421
+ ): Promise<T> {
422
+ try {
423
+ return await operation();
424
+ } catch (error) {
425
+ // Transform the error to user-friendly format
426
+ const buyModalError = BuyModalErrorFormatter.fromTransactionError(
427
+ error as Error,
428
+ );
429
+
430
+ // Re-throw as the original error for error boundaries to catch
431
+ // but attach the transformed error for UI consumption
432
+ const enhancedError = error as Error & { buyModalError?: BuyModalError };
433
+ enhancedError.buyModalError = buyModalError;
434
+
435
+ throw enhancedError;
436
+ }
437
+ }
438
+ }
@@ -1,10 +1,8 @@
1
1
  export * from './api-types';
2
2
  export * from './sdk-config';
3
3
  export * from './types';
4
- export type * from '../react/_internal/api/builder.gen';
5
4
  export type * from './../react/queries/marketplaceConfig';
6
5
  export {
7
- MarketplaceWallet,
6
+ type MarketplaceWallet,
8
7
  FilterCondition,
9
- MarketplaceType,
10
8
  } from '../react/_internal/api/builder.gen';
@@ -0,0 +1,104 @@
1
+ import type {
2
+ FilterCondition,
3
+ MarketplaceSettings,
4
+ MarketplaceWalletType,
5
+ OpenIdProvider,
6
+ } from '../react/_internal/api/builder.gen';
7
+ import type { ContractType, OrderbookKind } from './api-types';
8
+ import type { MarketplaceType } from './types';
9
+
10
+ export interface MarketplaceConfig {
11
+ projectId: number;
12
+ settings: MarketplaceSettings;
13
+ market: MarketPage;
14
+ shop: ShopPage;
15
+ }
16
+
17
+ interface MarketplacePage {
18
+ enabled: boolean;
19
+ bannerUrl: string;
20
+ ogImage?: string;
21
+ }
22
+
23
+ export interface MarketPage extends MarketplacePage {
24
+ collections: MarketCollection[];
25
+ }
26
+
27
+ export interface ShopPage extends MarketplacePage {
28
+ collections: ShopCollection[];
29
+ }
30
+
31
+ export interface MarketplaceSocials {
32
+ twitter: string;
33
+ discord: string;
34
+ website: string;
35
+ tiktok: string;
36
+ instagram: string;
37
+ youtube: string;
38
+ }
39
+
40
+ export interface MarketplaceWalletEcosystem {
41
+ walletUrl: string;
42
+ walletAppName: string;
43
+ logoLightUrl?: string;
44
+ logoDarkUrl?: string;
45
+ }
46
+
47
+ export interface MarketplaceWalletEmbedded {
48
+ tenantKey: string;
49
+ emailEnabled: boolean;
50
+ providers: Array<OpenIdProvider>;
51
+ }
52
+
53
+ interface MarketplaceCollection {
54
+ chainId: number;
55
+ bannerUrl: string;
56
+ itemsAddress: string;
57
+ filterSettings?: CollectionFilterSettings;
58
+ }
59
+
60
+ export interface MarketCollection extends MarketplaceCollection {
61
+ marketplaceType: MarketplaceType;
62
+ contractType: ContractType; //TODO: This should be added to the shop collection too
63
+ feePercentage: number;
64
+ destinationMarketplace: OrderbookKind;
65
+ currencyOptions: Array<string>;
66
+ }
67
+
68
+ export interface ShopCollection extends MarketplaceCollection {
69
+ marketplaceType: MarketplaceType;
70
+ saleAddress: string;
71
+ }
72
+
73
+ export interface EcosystemWalletSettings {
74
+ walletUrl: string;
75
+ walletAppName: string;
76
+ logoLightUrl?: string;
77
+ logoDarkUrl?: string;
78
+ }
79
+
80
+ export interface MarketplaceWalletOptions {
81
+ walletType: MarketplaceWalletType;
82
+ oidcIssuers: { [key: string]: string };
83
+ connectors: Array<string>;
84
+ includeEIP6963Wallets: boolean;
85
+ ecosystem?: EcosystemWalletSettings;
86
+ waas?: MarketplaceWalletWaasSettings;
87
+ }
88
+
89
+ export interface MarketplaceWalletWaasSettings {
90
+ tenantKey: string;
91
+ emailEnabled: boolean;
92
+ providers: Array<OpenIdProvider>;
93
+ }
94
+
95
+ export interface MetadataFilterRule {
96
+ key: string;
97
+ condition: FilterCondition;
98
+ value?: string;
99
+ }
100
+
101
+ export interface CollectionFilterSettings {
102
+ filterOrder: Array<string>;
103
+ exclusions: Array<MetadataFilterRule>;
104
+ }
@@ -1,21 +1,31 @@
1
- import type { MarketplaceSettings } from '../react/_internal/api/builder.gen';
1
+ import type { LookupMarketplaceReturn } from '../react/_internal/api/builder.gen';
2
+ import type { MarketplaceConfig } from './types';
2
3
 
3
- export type Env = 'development' | 'next' | 'production';
4
+ export type Env = 'development' | 'production' | 'next';
5
+
6
+ export type ApiConfig = {
7
+ env: Env;
8
+ accessKey?: string;
9
+ };
4
10
 
5
11
  export type SdkConfig = {
6
12
  projectAccessKey: string;
7
13
  projectId: string;
8
14
  walletConnectProjectId?: string;
9
15
  _internal?: {
10
- prefetchedMarketplaceSettings?: MarketplaceSettings;
11
- devAccessKey?: string;
12
- nextAccessKey?: string;
13
- builderEnv?: Env;
14
- marketplaceEnv?: Env;
15
- nodeGatewayEnv?: Env;
16
- metadataEnv?: Env;
17
- indexerEnv?: Env;
18
- sequenceApiEnv?: Env;
19
- sequenceWalletEnv?: Env;
16
+ prefetchedMarketplaceSettings?: LookupMarketplaceReturn;
17
+ overrides?: {
18
+ marketplaceConfig?: Partial<MarketplaceConfig>;
19
+
20
+ api?: {
21
+ builder?: ApiConfig;
22
+ marketplace?: ApiConfig;
23
+ nodeGateway?: ApiConfig;
24
+ metadata?: ApiConfig;
25
+ indexer?: ApiConfig;
26
+ sequenceApi?: ApiConfig;
27
+ sequenceWallet?: ApiConfig;
28
+ };
29
+ };
20
30
  };
21
31
  };
@@ -1,10 +1,27 @@
1
1
  import type { Currency } from './api-types';
2
+ import type { MarketplaceConfig } from './new-marketplace-types';
3
+ export * from './new-marketplace-types';
2
4
 
3
5
  export type Price = {
4
6
  amountRaw: string;
5
7
  currency: Currency;
6
8
  };
7
9
 
10
+ export type MarketplaceType = 'market' | 'shop';
11
+
12
+ export enum CollectibleCardAction {
13
+ BUY = 'Buy',
14
+ SELL = 'Sell',
15
+ LIST = 'Create listing',
16
+ OFFER = 'Make an offer',
17
+ TRANSFER = 'Transfer',
18
+ }
19
+
20
+ export type MarketCollection =
21
+ MarketplaceConfig['market']['collections'][number];
22
+
23
+ export type ShopCollection = MarketplaceConfig['shop']['collections'][number];
24
+
8
25
  // export type Order = Omit<APIOrder, 'priceAmount' | 'priceAmountNet'> & {
9
26
  // priceAmount: bigint;
10
27
  // priceAmountNet: bigint;
@@ -371,6 +371,38 @@ export class WalletInstanceNotFoundError extends TransactionError {
371
371
  }
372
372
  }
373
373
 
374
+ export class SalesContractError extends TransactionError {
375
+ override name = 'SalesContractError';
376
+ constructor(contractAddress: string, method?: string, cause?: Error) {
377
+ super(`Sales contract operation failed: ${contractAddress}`, {
378
+ details: `Failed to interact with sales contract${
379
+ method ? ` on method: ${method}` : ''
380
+ }. ${cause?.message || 'Contract may be paused or misconfigured.'}`,
381
+ cause,
382
+ });
383
+ }
384
+ }
385
+
386
+ export class QuantityValidationError extends TransactionError {
387
+ override name = 'QuantityValidationError';
388
+ constructor(provided: number, available: number, tokenId?: string) {
389
+ super(`Invalid quantity: ${provided}`, {
390
+ details: `Requested quantity (${provided}) exceeds available supply (${available})${
391
+ tokenId ? ` for token ${tokenId}` : ''
392
+ }.`,
393
+ });
394
+ }
395
+ }
396
+
397
+ export class ShopDataValidationError extends TransactionError {
398
+ override name = 'ShopDataValidationError';
399
+ constructor(missingField: string) {
400
+ super(`Invalid shop configuration: missing ${missingField}`, {
401
+ details: `The shop is missing required field: ${missingField}. Check your marketplace configuration.`,
402
+ });
403
+ }
404
+ }
405
+
374
406
  export type TransactionErrorTypes =
375
407
  | ChainIdUnavailableError
376
408
  | TransactionReceiptError
@@ -408,4 +440,7 @@ export type TransactionErrorTypes =
408
440
  | TransactionExecutionError
409
441
  | NoWalletConnectedError
410
442
  | TransactionError
411
- | WalletInstanceNotFoundError;
443
+ | WalletInstanceNotFoundError
444
+ | SalesContractError
445
+ | QuantityValidationError
446
+ | ShopDataValidationError;
package/tsconfig.json CHANGED
@@ -6,5 +6,5 @@
6
6
  "@test": ["./test/test-utils.tsx"]
7
7
  }
8
8
  },
9
- "include": ["src", "tsup.config.ts", "test", "eslint.config.mjs", "eslint"]
9
+ "include": ["src", "tsdown.config.ts", "test", "eslint.config.mjs", "eslint"]
10
10
  }