@0xsequence/marketplace-sdk 0.9.0 → 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 (326) 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 +77 -8
  5. package/dist/{CalendarIcon-DbQ7Vxcw.js → CalendarIcon-CqsuAuCm.js} +4 -51
  6. package/dist/CalendarIcon-CqsuAuCm.js.map +1 -0
  7. package/dist/{CollectibleCard-C8Ae64Ab.d.ts → CollectibleCard-Dd-CG6dE.d.ts} +8 -7
  8. package/dist/InfoIcon-v0w_Lu7t.js +53 -0
  9. package/dist/InfoIcon-v0w_Lu7t.js.map +1 -0
  10. package/dist/{_internal-BgWcRIak.js → _internal-C75gOSNo.js} +2 -10
  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-DTIan01C.js → api-BiMGqWdz.js} +17 -34
  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/{coinbase-ByA_XRB0.js → coinbase-Df8URNxq.js} +1 -1
  27. package/dist/{coinbase-ByA_XRB0.js.map → coinbase-Df8URNxq.js.map} +1 -1
  28. package/dist/{new-marketplace-types-Bfis0U4J.d.ts → create-config-DKJ-F0jc.d.ts} +402 -41
  29. package/dist/{wagmi-CDzEQbfk.js → create-config-fQ-jbJD1.js} +20 -10
  30. package/dist/create-config-fQ-jbJD1.js.map +1 -0
  31. package/dist/{element-b77CyXIZ.js → element-Cx6uJu5N.js} +1 -1
  32. package/dist/{element-b77CyXIZ.js.map → element-Cx6uJu5N.js.map} +1 -1
  33. package/dist/{foundation-DbOrKP9Y.js → foundation-D6U4aRLN.js} +1 -1
  34. package/dist/{foundation-DbOrKP9Y.js.map → foundation-D6U4aRLN.js.map} +1 -1
  35. package/dist/get-provider-CYYHfrlg.js +10 -0
  36. package/dist/get-provider-CYYHfrlg.js.map +1 -0
  37. package/dist/get-query-client-D19vvfJo.js +23 -0
  38. package/dist/get-query-client-D19vvfJo.js.map +1 -0
  39. package/dist/hooks-4pxIbLbM.js +4044 -0
  40. package/dist/hooks-4pxIbLbM.js.map +1 -0
  41. package/dist/{index-BL9RUSEK.d.ts → index-136YrWDH.d.ts} +1 -1
  42. package/dist/{index-D5v5iluA.d.ts → index-BAhaEfqY.d.ts} +1 -1
  43. package/dist/index-BKBin-rq.d.ts +979 -0
  44. package/dist/{index-BQsgAvtX.d.ts → index-BUWB_RXp.d.ts} +776 -570
  45. package/dist/{index-21LE7OhL.d.ts → index-BhVFc2rX.d.ts} +6 -3
  46. package/dist/{index-DXMfTZ1F.d.ts → index-C5aqo8xu.d.ts} +1 -1
  47. package/dist/{index-ByznONYE.d.ts → index-CKrYP7ot.d.ts} +20 -48
  48. package/dist/{index-DaE5ZNHb.d.ts → index-CUwMH7Ht.d.ts} +5 -5
  49. package/dist/{index-CLy8y5hm.d.ts → index-Cu70Lw-w.d.ts} +1 -1
  50. package/dist/index.css +414 -1
  51. package/dist/index.d.ts +8 -10
  52. package/dist/index.js +13 -9
  53. package/dist/{looks-rare-C1VqNcSM.js → looks-rare-ChBRBY-p.js} +1 -1
  54. package/dist/{looks-rare-C1VqNcSM.js.map → looks-rare-ChBRBY-p.js.map} +1 -1
  55. package/dist/{magic-eden-ea_AGCZr.js → magic-eden-D5U7N1xL.js} +1 -1
  56. package/dist/{magic-eden-ea_AGCZr.js.map → magic-eden-D5U7N1xL.js.map} +1 -1
  57. package/dist/{manifold-8y8J2sjT.js → manifold-CtLF52zU.js} +1 -1
  58. package/dist/{manifold-8y8J2sjT.js.map → manifold-CtLF52zU.js.map} +1 -1
  59. package/dist/{marketplace-nwnZv9Cb.js → marketplace-DmFiyBoS.js} +1 -1
  60. package/dist/{marketplace-nwnZv9Cb.js.map → marketplace-DmFiyBoS.js.map} +1 -1
  61. package/dist/{marketplace-logos-CSeGcPW4.js → marketplace-logos-Cd6W-qOq.js} +21 -21
  62. package/dist/{marketplace-logos-CSeGcPW4.js.map → marketplace-logos-Cd6W-qOq.js.map} +1 -1
  63. package/dist/{marketplace.gen-BSDIX7NZ.js → marketplace.gen-HpnpL5xU.js} +3 -3
  64. package/dist/marketplace.gen-HpnpL5xU.js.map +1 -0
  65. package/dist/{marketplaceConfig-C6X1SUik.js → marketplaceConfig-GQTTmihy.js} +3 -3
  66. package/dist/marketplaceConfig-GQTTmihy.js.map +1 -0
  67. package/dist/{mintify-LA68TzWg.js → mintify-Bi3Bce68.js} +1 -1
  68. package/dist/{mintify-LA68TzWg.js.map → mintify-Bi3Bce68.js.map} +1 -1
  69. package/dist/network-CGD0oKtS.js +15 -0
  70. package/dist/network-CGD0oKtS.js.map +1 -0
  71. package/dist/{nftx-D3Tc8nzd.js → nftx-BDQZjtkX.js} +1 -1
  72. package/dist/{nftx-D3Tc8nzd.js.map → nftx-BDQZjtkX.js.map} +1 -1
  73. package/dist/{okx-hbqg6oIJ.js → okx-D4meadLe.js} +1 -1
  74. package/dist/{okx-hbqg6oIJ.js.map → okx-D4meadLe.js.map} +1 -1
  75. package/dist/{open-sea-BccuK8-t.js → open-sea-DN0hgfVw.js} +1 -1
  76. package/dist/{open-sea-BccuK8-t.js.map → open-sea-DN0hgfVw.js.map} +1 -1
  77. package/dist/{primary-sale-C55ALnfQ.js → primary-sale-CmWxSfFQ.js} +1 -1
  78. package/dist/{primary-sale-C55ALnfQ.js.map → primary-sale-CmWxSfFQ.js.map} +1 -1
  79. package/dist/provider-DPGUA10G.js +125 -0
  80. package/dist/provider-DPGUA10G.js.map +1 -0
  81. package/dist/{queries-CUU65uYZ.js → queries-Ce_2othB.js} +165 -7
  82. package/dist/queries-Ce_2othB.js.map +1 -0
  83. package/dist/{rarible-BgTwwj9g.js → rarible-B0xlD88A.js} +1 -1
  84. package/dist/{rarible-BgTwwj9g.js.map → rarible-B0xlD88A.js.map} +1 -1
  85. package/dist/react/_internal/api/index.d.ts +2 -4
  86. package/dist/react/_internal/api/index.js +7 -4
  87. package/dist/react/_internal/databeat/index.d.ts +2 -73
  88. package/dist/react/_internal/databeat/index.js +4 -21
  89. package/dist/react/_internal/index.d.ts +2 -7
  90. package/dist/react/_internal/index.js +11 -6
  91. package/dist/react/_internal/wagmi/index.d.ts +2 -4
  92. package/dist/react/_internal/wagmi/index.js +5 -3
  93. package/dist/react/hooks/index.d.ts +12 -17
  94. package/dist/react/hooks/index.js +23 -19
  95. package/dist/react/hooks/options/index.d.ts +2 -3
  96. package/dist/react/hooks/options/index.js +12 -7
  97. package/dist/react/index.d.ts +12 -17
  98. package/dist/react/index.js +28 -19
  99. package/dist/react/queries/index.d.ts +9 -8
  100. package/dist/react/queries/index.js +20 -15
  101. package/dist/react/ssr/index.d.ts +7 -9
  102. package/dist/react/ssr/index.js +11 -6
  103. package/dist/react/ssr/index.js.map +1 -1
  104. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +3 -8
  105. package/dist/react/ui/components/marketplace-collectible-card/index.js +27 -18
  106. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -7
  107. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +11 -6
  108. package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
  109. package/dist/react/ui/components/marketplace-logos/index.js +1 -1
  110. package/dist/react/ui/icons/index.js +13 -9
  111. package/dist/react/ui/index.d.ts +3 -8
  112. package/dist/react/ui/index.js +27 -18
  113. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +2 -2
  114. package/dist/react/ui/modals/_internal/components/actionModal/index.js +23 -18
  115. package/dist/{react-DAIicQPT.js → react-DP0M2Wfm.js} +799 -4306
  116. package/dist/react-DP0M2Wfm.js.map +1 -0
  117. package/dist/{react-BbHBl6gg.css → react-DeDyTgo7.css} +1 -1
  118. package/dist/{react-BbHBl6gg.css.map → react-DeDyTgo7.css.map} +1 -1
  119. package/dist/{sequence-Do3kzb4J.js → sequence-BIrOVRXO.js} +1 -1
  120. package/dist/{sequence-Do3kzb4J.js.map → sequence-BIrOVRXO.js.map} +1 -1
  121. package/dist/{sudo-swap-B6vPKxBz.js → sudo-swap-BPMon-M5.js} +1 -1
  122. package/dist/{sudo-swap-B6vPKxBz.js.map → sudo-swap-BPMon-M5.js.map} +1 -1
  123. package/dist/{super-rare-eCm1SE6O.js → super-rare-kPN6Ua8i.js} +1 -1
  124. package/dist/{super-rare-eCm1SE6O.js.map → super-rare-kPN6Ua8i.js.map} +1 -1
  125. package/dist/{token-Da4TdyUk.js → token-CHSBPYVG.js} +1 -1
  126. package/dist/{token-Da4TdyUk.js.map → token-CHSBPYVG.js.map} +1 -1
  127. package/dist/{transaction-CcVViHEL.js → transaction-CnctdNzS.js} +3 -21
  128. package/dist/transaction-CnctdNzS.js.map +1 -0
  129. package/dist/types/index.d.ts +2 -3
  130. package/dist/types/index.js +2 -2
  131. package/dist/{types-DwWE6xOF.js → types-Yw2ywj6j.js} +1 -1
  132. package/dist/{types-DwWE6xOF.js.map → types-Yw2ywj6j.js.map} +1 -1
  133. package/dist/utils/abi/index.d.ts +4 -4
  134. package/dist/utils/abi/index.js +4 -4
  135. package/dist/utils/abi/marketplace/index.d.ts +1 -1
  136. package/dist/utils/abi/marketplace/index.js +1 -1
  137. package/dist/utils/abi/primary-sale/index.d.ts +1 -1
  138. package/dist/utils/abi/primary-sale/index.js +1 -1
  139. package/dist/utils/abi/token/index.d.ts +1 -1
  140. package/dist/utils/abi/token/index.js +1 -1
  141. package/dist/utils/index.d.ts +7 -8
  142. package/dist/utils/index.js +12 -9
  143. package/dist/{utils-CW2NA5KG.js → utils-9RXDgcBl.js} +4 -11
  144. package/dist/utils-9RXDgcBl.js.map +1 -0
  145. package/dist/{utils-BPYfgDSL.js → utils-DjVJ9tov.js} +5 -6
  146. package/dist/utils-DjVJ9tov.js.map +1 -0
  147. package/dist/wagmi-Do_KW5ke.js +0 -0
  148. package/dist/{x2y2-DD17tT91.js → x2y2-BLz-_Q2O.js} +1 -1
  149. package/dist/{x2y2-DD17tT91.js.map → x2y2-BLz-_Q2O.js.map} +1 -1
  150. package/dist/{zora-BpSG9UzS.js → zora-UGhKs-aL.js} +1 -1
  151. package/dist/{zora-BpSG9UzS.js.map → zora-UGhKs-aL.js.map} +1 -1
  152. package/eslint.config.mjs +4 -0
  153. package/package.json +27 -14
  154. package/postcss.config.mjs +6 -0
  155. package/src/index.css +5 -4
  156. package/src/index.ts +1 -0
  157. package/src/react/__tests__/provider.test.tsx +4 -3
  158. package/src/react/_internal/api/__mocks__/indexer.msw.ts +16 -0
  159. package/src/react/_internal/api/__mocks__/laos.msw.ts +387 -0
  160. package/src/react/_internal/api/__mocks__/marketplace.msw.ts +2 -0
  161. package/src/react/_internal/api/__tests__/laos-api.test.ts +756 -0
  162. package/src/react/_internal/api/laos-api.ts +3 -0
  163. package/src/react/_internal/api/marketplace.gen.ts +5 -3
  164. package/src/react/_internal/api/query-keys.ts +12 -4
  165. package/src/react/_internal/api/services.ts +2 -14
  166. package/src/react/_internal/databeat/index.ts +15 -14
  167. package/src/react/_internal/databeat/types.ts +22 -0
  168. package/src/react/_internal/databeat/utils.ts +26 -0
  169. package/src/react/_internal/utils.ts +4 -4
  170. package/src/react/_internal/wagmi/create-config.ts +28 -13
  171. package/src/react/_internal/wallet/wallet.ts +4 -4
  172. package/src/react/hooks/__tests__/useBalanceOfCollectible.laos.test.tsx +367 -0
  173. package/src/react/hooks/__tests__/useCheckoutOptions.test.tsx +158 -0
  174. package/src/react/hooks/__tests__/useCheckoutOptionsSalesContract.test.tsx +42 -65
  175. package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +17 -0
  176. package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +11 -3
  177. package/src/react/hooks/__tests__/useConvertPriceToUSD.test.tsx +3 -3
  178. package/src/react/hooks/__tests__/useCurrencyBalance.test.tsx +7 -3
  179. package/src/react/hooks/__tests__/useFilters.test.tsx +2 -2
  180. package/src/react/hooks/__tests__/useGetTokenRanges.test.tsx +111 -0
  181. package/src/react/hooks/__tests__/useListTokenMetadata.test.tsx +83 -57
  182. package/src/react/hooks/__tests__/useTransferTokens.test.tsx +469 -0
  183. package/src/react/hooks/index.ts +3 -1
  184. package/src/react/hooks/useCheckoutOptions.tsx +96 -0
  185. package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +98 -57
  186. package/src/react/hooks/useCollectionBalanceDetails.tsx +95 -68
  187. package/src/react/hooks/useCollectionDetailsPolling.tsx +3 -7
  188. package/src/react/hooks/useComparePrices.tsx +90 -82
  189. package/src/react/hooks/useConvertPriceToUSD.tsx +85 -71
  190. package/src/react/hooks/useCurrencyBalance.tsx +132 -46
  191. package/src/react/hooks/useERC721SaleMintedTokens.tsx +8 -5
  192. package/src/react/hooks/useFilters.tsx +154 -111
  193. package/src/react/hooks/useGetCountOfPrimarySaleItems.tsx +48 -0
  194. package/src/react/hooks/useGetTokenRanges.tsx +83 -22
  195. package/src/react/hooks/useList1155ShopCardData.tsx +2 -0
  196. package/src/react/hooks/useList721ShopCardData.tsx +12 -7
  197. package/src/react/hooks/useListCollections.tsx +25 -25
  198. package/src/react/hooks/useListMarketCardData.tsx +2 -1
  199. package/src/react/hooks/useListPrimarySaleItems.tsx +66 -0
  200. package/src/react/hooks/useListTokenMetadata.ts +71 -0
  201. package/src/react/hooks/useOpenConnectModal.tsx +9 -0
  202. package/src/react/hooks/useTokenSaleDetailsBatch.tsx +3 -7
  203. package/src/react/hooks/useTokenSupplies.ts +81 -0
  204. package/src/react/hooks/useTransferTokens.tsx +2 -2
  205. package/src/react/provider.tsx +73 -9
  206. package/src/react/queries/__tests__/balanceOfCollectible.laos.test.ts +123 -0
  207. package/src/react/queries/__tests__/inventory.laos.test.ts +496 -0
  208. package/src/react/queries/balanceOfCollectible.ts +7 -4
  209. package/src/react/queries/checkoutOptions.ts +85 -0
  210. package/src/react/queries/checkoutOptionsSalesContract.ts +89 -0
  211. package/src/react/queries/collectionBalanceDetails.ts +92 -0
  212. package/src/react/queries/comparePrices.ts +108 -0
  213. package/src/react/queries/convertPriceToUSD.ts +92 -0
  214. package/src/react/queries/filters.ts +138 -0
  215. package/src/react/queries/getTokenRanges.ts +62 -0
  216. package/src/react/queries/index.ts +3 -0
  217. package/src/react/queries/inventory.ts +6 -0
  218. package/src/react/queries/listBalances.ts +4 -3
  219. package/src/react/queries/listCollections.ts +7 -3
  220. package/src/react/queries/listTokenMetadata.ts +2 -2
  221. package/src/react/queries/marketplaceConfig.ts +1 -1
  222. package/src/react/queries/primarySaleItems.ts +85 -0
  223. package/src/react/queries/primarySaleItemsCount.ts +64 -0
  224. package/src/react/queries/tokenSupplies.ts +93 -0
  225. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +66 -66
  226. package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +22 -4
  227. package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +5 -4
  228. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +3 -0
  229. package/src/react/ui/components/_internals/action-button/components/OwnerActions.tsx +4 -4
  230. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +13 -8
  231. package/src/react/ui/components/_internals/action-button/store.ts +44 -34
  232. package/src/react/ui/components/_internals/custom-select/CustomSelect.stories.tsx +582 -0
  233. package/src/react/ui/components/_internals/pill/Pill.stories.tsx +83 -0
  234. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +11 -4
  235. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +7 -4
  236. package/src/react/ui/components/marketplace-collectible-card/types.ts +4 -3
  237. package/src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts +4 -7
  238. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +5 -1
  239. package/src/react/ui/components/marketplace-logos/marketplace-logos.stories.tsx +199 -0
  240. package/src/react/ui/components/media/Media.stories.tsx +642 -0
  241. package/src/react/ui/components/media/Media.tsx +24 -19
  242. package/src/react/ui/components/media/types.ts +6 -0
  243. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +15 -0
  244. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +6 -0
  245. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +7 -1
  246. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +9 -1
  247. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +15 -8
  248. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +3 -0
  249. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +30 -27
  250. package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +2 -2
  251. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +11 -2
  252. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +1 -1
  253. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +7 -0
  254. package/src/react/ui/modals/BuyModal/index.tsx +9 -1
  255. package/src/react/ui/modals/BuyModal/store.ts +26 -0
  256. package/src/react/ui/modals/CreateListingModal/Modal.tsx +28 -11
  257. package/src/react/ui/modals/CreateListingModal/store.ts +3 -3
  258. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +30 -13
  259. package/src/react/ui/modals/MakeOfferModal/store.ts +3 -3
  260. package/src/react/ui/modals/SellModal/Modal.tsx +11 -8
  261. package/src/react/ui/modals/SellModal/store.ts +3 -3
  262. package/src/react/ui/modals/TransferModal/__tests__/__snapshots__/store.test.ts.snap +17 -0
  263. package/src/react/ui/modals/TransferModal/__tests__/store.test.ts +366 -0
  264. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/__tests__/useHandleTransfer.test.tsx +402 -0
  265. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +51 -48
  266. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TransferButton.tsx +39 -47
  267. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/WalletAddressInput.tsx +9 -8
  268. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +31 -35
  269. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/useHandleTransfer.tsx +19 -10
  270. package/src/react/ui/modals/TransferModal/index.tsx +28 -31
  271. package/src/react/ui/modals/TransferModal/messages.ts +1 -1
  272. package/src/react/ui/modals/TransferModal/store.ts +122 -0
  273. package/src/react/ui/modals/_internal/components/calendar/index.tsx +0 -1
  274. package/src/react/ui/modals/_internal/components/currencyImage/index.tsx +10 -14
  275. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +5 -2
  276. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +23 -17
  277. package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +10 -10
  278. package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +6 -6
  279. package/src/react/ui/modals/_internal/components/priceInput/__tests__/PriceInput.test.tsx +13 -5
  280. package/src/react/ui/modals/_internal/components/priceInput/index.tsx +41 -26
  281. package/src/react/ui/modals/_internal/components/quantityInput/__tests__/index.test.tsx +68 -59
  282. package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +155 -20
  283. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +339 -40
  284. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/index.tsx +95 -101
  285. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/store.ts +72 -14
  286. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +29 -13
  287. package/src/react/ui/modals/_internal/components/tokenPreview/index.tsx +2 -2
  288. package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +2 -2
  289. package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +88 -89
  290. package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +36 -10
  291. package/src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx +32 -20
  292. package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +91 -62
  293. package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +43 -44
  294. package/src/react/ui/modals/_internal/types.ts +2 -2
  295. package/src/types/sdk-config.ts +6 -1
  296. package/src/utils/network.ts +15 -0
  297. package/test/test-utils.tsx +2 -0
  298. package/vitest.shims.d.ts +2 -0
  299. package/vitest.storybook.config.js +33 -0
  300. package/dist/CalendarIcon-DbQ7Vxcw.js.map +0 -1
  301. package/dist/_internal-BgWcRIak.js.map +0 -1
  302. package/dist/api-DTIan01C.js.map +0 -1
  303. package/dist/builder-api-C_zj5mr3.d.ts +0 -12
  304. package/dist/index-BUVWziLP.d.ts +0 -60
  305. package/dist/index-COt10OgI.d.ts +0 -24
  306. package/dist/index-DPNWNa7t.d.ts +0 -414
  307. package/dist/index-DsfCs3-x.d.ts +0 -122
  308. package/dist/index-dUb6wb4Y.d.ts +0 -22
  309. package/dist/marketplace.gen-BSDIX7NZ.js.map +0 -1
  310. package/dist/marketplaceConfig-C6X1SUik.js.map +0 -1
  311. package/dist/queries-CUU65uYZ.js.map +0 -1
  312. package/dist/react-DAIicQPT.js.map +0 -1
  313. package/dist/transaction-CcVViHEL.js.map +0 -1
  314. package/dist/utils-BPYfgDSL.js.map +0 -1
  315. package/dist/utils-CW2NA5KG.js.map +0 -1
  316. package/dist/wagmi-CDzEQbfk.js.map +0 -1
  317. package/src/react/hooks/__tests__/useGetTokenSuppliesMap.test.tsx +0 -104
  318. package/src/react/hooks/useGetTokenSuppliesMap.tsx +0 -73
  319. package/src/react/hooks/useListPrimarySaleItems.ts +0 -102
  320. package/src/react/queries/getTokenSuppliesMap.ts +0 -77
  321. package/src/react/ui/modals/TransferModal/_store.ts +0 -66
  322. package/src/react/ui/modals/_internal/components/quantityInput/QuantityInputBase.tsx +0 -166
  323. package/src/react/ui/modals/_internal/stores/accountModal.ts +0 -3
  324. /package/dist/{abi-BKyRjVcZ.js → abi-BMvgNbKQ.js} +0 -0
  325. /package/dist/{index-C39K_8SG.d.ts → index-CD2bj_xW.d.ts} +0 -0
  326. /package/dist/{options-B4QN7Xou.js → options-BBBR8u_4.js} +0 -0
@@ -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 6b46374337129883386b9668e652237c3b31eda1
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-6b46374337129883386b9668e652237c3b31eda1;marketplace-sdk@v0.9.0";
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 = "6b46374337129883386b9668e652237c3b31eda1";
20
+ export const WebRPCSchemaHash = "cf3a5fae407a732cd5a90e4fd68184ac5591b2c1";
21
21
 
22
22
  type WebrpcGenVersions = {
23
23
  webrpcGenVersion: string;
@@ -586,6 +586,8 @@ export interface PrimarySaleItem {
586
586
  priceAmount: string;
587
587
  priceAmountFormatted: string;
588
588
  supply: string;
589
+ supplyCap: string;
590
+ unlimitedSupply: boolean;
589
591
  createdAt: string;
590
592
  updatedAt: string;
591
593
  deletedAt?: string;
@@ -78,9 +78,16 @@ class ConfigKeys {
78
78
  }
79
79
 
80
80
  // biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
81
- class MetadataKeys {
82
- static all = ['metadata'] as const;
83
- static tokenMetadata = [...MetadataKeys.all, 'tokenMetadata'] as const;
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;
84
91
  }
85
92
  export const collectableKeys = CollectableKeys;
86
93
  export const collectionKeys = CollectionKeys;
@@ -88,4 +95,5 @@ export const balanceQueries = BalanceQueries;
88
95
  export const checkoutKeys = CheckoutKeys;
89
96
  export const currencyKeys = CurrencyKeys;
90
97
  export const configKeys = ConfigKeys;
91
- export const metadataKeys = MetadataKeys;
98
+ export const tokenKeys = TokenKeys;
99
+ export const tokenSuppliesKeys = TokenSuppliesKeys;
@@ -1,9 +1,9 @@
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
 
@@ -22,18 +22,6 @@ const SERVICES = {
22
22
 
23
23
  type ChainNameOrId = string | number;
24
24
 
25
- const getNetwork = (nameOrId: ChainNameOrId) => {
26
- for (const network of Object.values(networks)) {
27
- if (
28
- network.name === String(nameOrId).toLowerCase() ||
29
- network.chainId === Number(nameOrId)
30
- ) {
31
- return network;
32
- }
33
- }
34
- throw new MissingConfigError(`Network configuration for chain ${nameOrId}`);
35
- };
36
-
37
25
  const metadataURL = (env: Env = 'production') => {
38
26
  const prefix = getPrefix(env);
39
27
  return stringTemplate(SERVICES.metadata, { prefix });
@@ -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,4 +1,4 @@
1
- import type { Hex, TypedData, TypedDataDomain } from 'viem';
1
+ import type { Address, Hex, TypedData, TypedDataDomain } from 'viem';
2
2
  import { type PostRequest, type Signature, type Step, StepType } from './api';
3
3
 
4
4
  export interface SignatureStep {
@@ -6,7 +6,7 @@ export interface SignatureStep {
6
6
  domain?: TypedDataDomain;
7
7
  types?: TypedData;
8
8
  primaryType?: string;
9
- 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
10
10
  data: string;
11
11
  value: string;
12
12
  price: string;
@@ -22,7 +22,7 @@ export interface TransactionStep {
22
22
  | StepType.createOffer
23
23
  | StepType.createListing;
24
24
  data: Hex;
25
- to: Hex;
25
+ to: Address;
26
26
  value: Hex;
27
27
  price: Hex;
28
28
  maxFeePerGas?: Hex;
@@ -32,7 +32,7 @@ export interface TransactionStep {
32
32
  export interface ApprovalStep {
33
33
  id: StepType.tokenApproval;
34
34
  data: string;
35
- to: Hex;
35
+ to: Address;
36
36
  value: string;
37
37
  price: string;
38
38
  }
@@ -12,19 +12,10 @@ export const createWagmiConfig = (
12
12
  sdkConfig: SdkConfig,
13
13
  ssr?: boolean,
14
14
  ) => {
15
- const chains = getChainConfigs(marketplaceConfig);
16
- const nodeGatewayOverrides = sdkConfig._internal?.overrides?.api?.nodeGateway;
17
- const nodeGatewayEnv = nodeGatewayOverrides?.env ?? 'production';
18
- const nodeGatewayUrl = nodeGatewayOverrides?.url;
19
- const projectAccessKey =
20
- nodeGatewayOverrides?.accessKey ?? sdkConfig.projectAccessKey;
21
-
22
- const transports = getTransportConfigs(
23
- chains,
24
- projectAccessKey,
25
- nodeGatewayEnv,
26
- nodeGatewayUrl,
27
- );
15
+ const { chains, transports } = getWagmiChainsAndTransports({
16
+ marketplaceConfig,
17
+ sdkConfig,
18
+ });
28
19
 
29
20
  const walletType = marketplaceConfig.settings.walletOptions.walletType;
30
21
 
@@ -51,6 +42,30 @@ export const createWagmiConfig = (
51
42
  });
52
43
  };
53
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
+
54
69
  function getAllCollections(marketConfig: MarketplaceConfig) {
55
70
  return [...marketConfig.market.collections, ...marketConfig.shop.collections];
56
71
  }
@@ -46,7 +46,7 @@ export interface WalletInstance {
46
46
  walletKind: WalletKind;
47
47
  getChainId: () => Promise<number>;
48
48
  switchChain: (chainId: number) => Promise<void>;
49
- address: () => Promise<Hex>;
49
+ address: () => Promise<Address>;
50
50
  handleSignMessageStep: (stepItem: SignatureStep) => Promise<Hex | undefined>;
51
51
  handleSendTransactionStep: (
52
52
  chainId: number,
@@ -242,21 +242,21 @@ export const wallet = ({
242
242
  switch (tokenType) {
243
243
  case 'ERC20':
244
244
  return (await publicClient.readContract({
245
- address: contractAddress as Hex,
245
+ address: contractAddress as Address,
246
246
  abi: erc20Abi,
247
247
  functionName: 'allowance',
248
248
  args: [walletAddress, spenderAddress],
249
249
  })) as bigint;
250
250
  case 'ERC721':
251
251
  return (await publicClient.readContract({
252
- address: contractAddress as Hex,
252
+ address: contractAddress as Address,
253
253
  abi: erc721Abi,
254
254
  functionName: 'isApprovedForAll',
255
255
  args: [walletAddress, spenderAddress],
256
256
  })) as boolean;
257
257
  case 'ERC1155':
258
258
  return (await publicClient.readContract({
259
- address: contractAddress as Hex,
259
+ address: contractAddress as Address,
260
260
  abi: ERC1155_ABI,
261
261
  functionName: 'isApprovedForAll',
262
262
  args: [walletAddress, spenderAddress],