@0xsequence/marketplace-sdk 0.10.0 → 1.0.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 (468) hide show
  1. package/.storybook/ConnectionStatus.tsx +289 -0
  2. package/.storybook/main.ts +20 -1
  3. package/.storybook/preview.tsx +106 -0
  4. package/CHANGELOG.md +58 -0
  5. package/compile-tailwind.js +54 -0
  6. package/dist/{CalendarIcon-CqsuAuCm.js → BellIcon-Cb9YEUzJ.js} +76 -29
  7. package/dist/BellIcon-Cb9YEUzJ.js.map +1 -0
  8. package/dist/CollectibleCard-CYyWzk6u.d.ts +8 -0
  9. package/dist/{_internal-C75gOSNo.js → _internal-DslqcNC1.js} +10 -2
  10. package/dist/_internal-DslqcNC1.js.map +1 -0
  11. package/dist/{alien_swap-CYv6YlOF.js → alien_swap-DJ98gZQp.js} +1 -1
  12. package/dist/{alien_swap-CYv6YlOF.js.map → alien_swap-DJ98gZQp.js.map} +1 -1
  13. package/dist/{api-BiMGqWdz.js → api-BmEQfSQa.js} +24 -4
  14. package/dist/api-BmEQfSQa.js.map +1 -0
  15. package/dist/{aqua-xyz-Bzn5baeH.js → aqua-xyz-n1PcCCZ0.js} +1 -1
  16. package/dist/{aqua-xyz-Bzn5baeH.js.map → aqua-xyz-n1PcCCZ0.js.map} +1 -1
  17. package/dist/{aura-DzIWh8WT.js → aura-Bevk_YkS.js} +1 -1
  18. package/dist/{aura-DzIWh8WT.js.map → aura-Bevk_YkS.js.map} +1 -1
  19. package/dist/{blur-DSH-Cbpj.js → blur-B5sHErx5.js} +1 -1
  20. package/dist/{blur-DSH-Cbpj.js.map → blur-B5sHErx5.js.map} +1 -1
  21. package/dist/builder-api-BFuZNOaN.js.map +1 -1
  22. package/dist/builder.gen-B9wR2nvF.js.map +1 -1
  23. package/dist/{coinbase-Df8URNxq.js → coinbase-D30W-lxA.js} +1 -1
  24. package/dist/{coinbase-Df8URNxq.js.map → coinbase-D30W-lxA.js.map} +1 -1
  25. package/dist/contracts-DPHFT2TA.js +97 -0
  26. package/dist/contracts-DPHFT2TA.js.map +1 -0
  27. package/dist/{create-config-fQ-jbJD1.js → create-config-6uynwTeb.js} +2 -2
  28. package/dist/create-config-6uynwTeb.js.map +1 -0
  29. package/dist/{create-config-DKJ-F0jc.d.ts → create-config-lLSrnkbb.d.ts} +253 -226
  30. package/dist/{element-Cx6uJu5N.js → element-C2NJexro.js} +1 -1
  31. package/dist/{element-Cx6uJu5N.js.map → element-C2NJexro.js.map} +1 -1
  32. package/dist/filters-B8XS4tFH.d.ts +31 -0
  33. package/dist/{foundation-D6U4aRLN.js → foundation-QgY1lvUj.js} +1 -1
  34. package/dist/{foundation-D6U4aRLN.js.map → foundation-QgY1lvUj.js.map} +1 -1
  35. package/dist/index-BGJXqdg6.d.ts +131 -0
  36. package/dist/index-BuY_NKSX.d.ts +222 -0
  37. package/dist/{index-BhVFc2rX.d.ts → index-ByW08-Z7.d.ts} +4 -4
  38. package/dist/index-C7xKVIr4.d.ts +447 -0
  39. package/dist/index-CIkpYltz.d.ts +61 -0
  40. package/dist/index-CQnGIGb5.d.ts +346 -0
  41. package/dist/{index-CUwMH7Ht.d.ts → index-CY5UEX4h.d.ts} +2 -2
  42. package/dist/{index-C5aqo8xu.d.ts → index-ChSKFOMx.d.ts} +1 -1
  43. package/dist/{index-BAhaEfqY.d.ts → index-CtF7EE2z.d.ts} +1 -1
  44. package/dist/index-D2HohSwO.d.ts +293 -0
  45. package/dist/index-D71J5Ghd.d.ts +813 -0
  46. package/dist/{index-CKrYP7ot.d.ts → index-DNU9xoGK.d.ts} +14 -22
  47. package/dist/index-DX0Vm8HY.d.ts +2541 -0
  48. package/dist/index-DonXiSg2.d.ts +902 -0
  49. package/dist/index-Dpyp7fQz.d.ts +298 -0
  50. package/dist/index-PSPpUxCE.d.ts +18 -0
  51. package/dist/{index-136YrWDH.d.ts → index-QxxS6f9r.d.ts} +1 -1
  52. package/dist/index-ThUIs-Sy.d.ts +306 -0
  53. package/dist/index.d.ts +8 -8
  54. package/dist/index.js +12 -13
  55. package/dist/listCollectiblesPaginated--AgXjajA.d.ts +166 -0
  56. package/dist/listCollections-Bbzbz7qW.d.ts +624 -0
  57. package/dist/{looks-rare-ChBRBY-p.js → looks-rare-CMVPny4v.js} +1 -1
  58. package/dist/{looks-rare-ChBRBY-p.js.map → looks-rare-CMVPny4v.js.map} +1 -1
  59. package/dist/lowestListing-BQHfQpfg.d.ts +144 -0
  60. package/dist/{magic-eden-D5U7N1xL.js → magic-eden-IrWp2ZXk.js} +1 -1
  61. package/dist/{magic-eden-D5U7N1xL.js.map → magic-eden-IrWp2ZXk.js.map} +1 -1
  62. package/dist/{manifold-CtLF52zU.js → manifold-DeOE-p2G.js} +1 -1
  63. package/dist/{manifold-CtLF52zU.js.map → manifold-DeOE-p2G.js.map} +1 -1
  64. package/dist/marketCurrencies-CmOMCCOr.d.ts +122 -0
  65. package/dist/{marketplace-DmFiyBoS.js → marketplace-B5Z8G03R.js} +1 -1
  66. package/dist/{marketplace-DmFiyBoS.js.map → marketplace-B5Z8G03R.js.map} +1 -1
  67. package/dist/{marketplace-logos-Cd6W-qOq.js → marketplace-logos-D8t86gsW.js} +21 -21
  68. package/dist/{marketplace-logos-Cd6W-qOq.js.map → marketplace-logos-D8t86gsW.js.map} +1 -1
  69. package/dist/{marketplace.gen-HpnpL5xU.js → marketplace.gen-JzNYpM0U.js} +1 -1
  70. package/dist/{marketplace.gen-HpnpL5xU.js.map → marketplace.gen-JzNYpM0U.js.map} +1 -1
  71. package/dist/{marketplaceConfig-GQTTmihy.js → marketplaceConfig-sNh-MA5M.js} +14 -3
  72. package/dist/marketplaceConfig-sNh-MA5M.js.map +1 -0
  73. package/dist/{mintify-Bi3Bce68.js → mintify-DG3GrljJ.js} +1 -1
  74. package/dist/{mintify-Bi3Bce68.js.map → mintify-DG3GrljJ.js.map} +1 -1
  75. package/dist/{network-CGD0oKtS.js → network-DnBEe1Ur.js} +2 -2
  76. package/dist/{network-CGD0oKtS.js.map → network-DnBEe1Ur.js.map} +1 -1
  77. package/dist/{nftx-BDQZjtkX.js → nftx-B3LH-ZYM.js} +1 -1
  78. package/dist/{nftx-BDQZjtkX.js.map → nftx-B3LH-ZYM.js.map} +1 -1
  79. package/dist/{okx-D4meadLe.js → okx-CRFLrT3Z.js} +1 -1
  80. package/dist/{okx-D4meadLe.js.map → okx-CRFLrT3Z.js.map} +1 -1
  81. package/dist/{open-sea-DN0hgfVw.js → open-sea-cOpfl366.js} +1 -1
  82. package/dist/{open-sea-DN0hgfVw.js.map → open-sea-cOpfl366.js.map} +1 -1
  83. package/dist/primary-sale-CLjXRrDj.js +3048 -0
  84. package/dist/primary-sale-CLjXRrDj.js.map +1 -0
  85. package/dist/queries-BYT4GJw3.js +1478 -0
  86. package/dist/queries-BYT4GJw3.js.map +1 -0
  87. package/dist/query-BTe7Wkrs.d.ts +31 -0
  88. package/dist/{rarible-B0xlD88A.js → rarible-guwUx4cn.js} +1 -1
  89. package/dist/{rarible-B0xlD88A.js.map → rarible-guwUx4cn.js.map} +1 -1
  90. package/dist/react/_internal/api/index.d.ts +1 -1
  91. package/dist/react/_internal/api/index.js +4 -6
  92. package/dist/react/_internal/databeat/index.d.ts +1 -1
  93. package/dist/react/_internal/databeat/index.js +24 -4
  94. package/dist/react/_internal/index.d.ts +1 -1
  95. package/dist/react/_internal/index.js +7 -10
  96. package/dist/react/_internal/wagmi/index.d.ts +1 -1
  97. package/dist/react/_internal/wagmi/index.js +3 -4
  98. package/dist/react/hooks/config/index.d.ts +9 -0
  99. package/dist/react/hooks/config/index.js +26 -0
  100. package/dist/react/hooks/contracts/index.d.ts +7 -0
  101. package/dist/react/hooks/contracts/index.js +16 -0
  102. package/dist/react/hooks/data/collectibles/index.d.ts +5 -0
  103. package/dist/react/hooks/data/collectibles/index.js +26 -0
  104. package/dist/react/hooks/data/collections/index.d.ts +11 -0
  105. package/dist/react/hooks/data/collections/index.js +26 -0
  106. package/dist/react/hooks/data/index.d.ts +29 -0
  107. package/dist/react/hooks/data/index.js +26 -0
  108. package/dist/react/hooks/data/inventory/index.d.ts +29 -0
  109. package/dist/react/hooks/data/inventory/index.js +26 -0
  110. package/dist/react/hooks/data/market/index.d.ts +12 -0
  111. package/dist/react/hooks/data/market/index.js +26 -0
  112. package/dist/react/hooks/data/orders/index.d.ts +11 -0
  113. package/dist/react/hooks/data/orders/index.js +26 -0
  114. package/dist/react/hooks/data/primary-sales/index.d.ts +29 -0
  115. package/dist/react/hooks/data/primary-sales/index.js +26 -0
  116. package/dist/react/hooks/data/tokens/index.d.ts +5 -0
  117. package/dist/react/hooks/data/tokens/index.js +26 -0
  118. package/dist/react/hooks/index.d.ts +29 -13
  119. package/dist/react/hooks/index.js +22 -23
  120. package/dist/react/hooks/transactions/index.d.ts +3 -0
  121. package/dist/react/hooks/transactions/index.js +26 -0
  122. package/dist/react/hooks/ui/index.d.ts +5 -0
  123. package/dist/react/hooks/ui/index.js +26 -0
  124. package/dist/react/hooks/utils/index.d.ts +29 -0
  125. package/dist/react/hooks/utils/index.js +26 -0
  126. package/dist/react/index.d.ts +29 -13
  127. package/dist/react/index.js +22 -28
  128. package/dist/react/queries/index.d.ts +16 -9
  129. package/dist/react/queries/index.js +17 -20
  130. package/dist/react/ssr/index.d.ts +7 -7
  131. package/dist/react/ssr/index.js +8 -11
  132. package/dist/react/ssr/index.js.map +1 -1
  133. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +4 -3
  134. package/dist/react/ui/components/marketplace-collectible-card/index.js +21 -27
  135. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -2
  136. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +8 -11
  137. package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
  138. package/dist/react/ui/components/marketplace-logos/index.js +1 -1
  139. package/dist/react/ui/icons/index.js +11 -13
  140. package/dist/react/ui/index.d.ts +4 -3
  141. package/dist/react/ui/index.js +21 -27
  142. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +3 -27
  143. package/dist/react/ui/modals/_internal/components/actionModal/index.js +22 -24
  144. package/dist/react/utils/index.d.ts +19 -0
  145. package/dist/react/utils/index.js +9 -0
  146. package/dist/{react-DeDyTgo7.css → react-CbqXKOpt.css} +1 -1
  147. package/dist/{react-DeDyTgo7.css.map → react-CbqXKOpt.css.map} +1 -1
  148. package/dist/react-Ceq8mamy.js +12494 -0
  149. package/dist/react-Ceq8mamy.js.map +1 -0
  150. package/dist/{sequence-BIrOVRXO.js → sequence-Dt2Xo7Fa.js} +1 -1
  151. package/dist/{sequence-BIrOVRXO.js.map → sequence-Dt2Xo7Fa.js.map} +1 -1
  152. package/dist/{index.css → styles/index.css} +270 -131
  153. package/dist/{sudo-swap-BPMon-M5.js → sudo-swap-CGoARONs.js} +1 -1
  154. package/dist/{sudo-swap-BPMon-M5.js.map → sudo-swap-CGoARONs.js.map} +1 -1
  155. package/dist/{super-rare-kPN6Ua8i.js → super-rare-NeQtZjcn.js} +1 -1
  156. package/dist/{super-rare-kPN6Ua8i.js.map → super-rare-NeQtZjcn.js.map} +1 -1
  157. package/dist/{token-CHSBPYVG.js → token-D9gZVqbX.js} +1 -1
  158. package/dist/{token-CHSBPYVG.js.map → token-D9gZVqbX.js.map} +1 -1
  159. package/dist/tokenSupplies-DXtkRYNO.d.ts +147 -0
  160. package/dist/{transaction-CnctdNzS.js → transaction-CC2KxNF6.js} +21 -18
  161. package/dist/transaction-CC2KxNF6.js.map +1 -0
  162. package/dist/types/index.d.ts +1 -1
  163. package/dist/types/index.js +2 -2
  164. package/dist/{CollectibleCard-Dd-CG6dE.d.ts → types-BlCa0TVE.d.ts} +5 -8
  165. package/dist/{types-Yw2ywj6j.js → types-G2PWxiJR.js} +1 -1
  166. package/dist/{types-Yw2ywj6j.js.map → types-G2PWxiJR.js.map} +1 -1
  167. package/dist/utils/abi/index.d.ts +5 -5
  168. package/dist/utils/abi/index.js +5 -5
  169. package/dist/utils/abi/marketplace/index.d.ts +1 -1
  170. package/dist/utils/abi/marketplace/index.js +1 -1
  171. package/dist/utils/abi/primary-sale/index.d.ts +2 -2
  172. package/dist/utils/abi/primary-sale/index.js +2 -2
  173. package/dist/utils/abi/token/index.d.ts +1 -1
  174. package/dist/utils/abi/token/index.js +1 -1
  175. package/dist/utils/index.d.ts +7 -7
  176. package/dist/utils/index.js +11 -12
  177. package/dist/{utils-9RXDgcBl.js → utils-CKJd-CRf.js} +3 -3
  178. package/dist/{utils-9RXDgcBl.js.map → utils-CKJd-CRf.js.map} +1 -1
  179. package/dist/{utils-DjVJ9tov.js → utils-wquIhK6T.js} +2 -2
  180. package/dist/{utils-DjVJ9tov.js.map → utils-wquIhK6T.js.map} +1 -1
  181. package/dist/waitForTransactionReceipt-DZxAuR9N.js +27 -0
  182. package/dist/waitForTransactionReceipt-DZxAuR9N.js.map +1 -0
  183. package/dist/{x2y2-BLz-_Q2O.js → x2y2-CQdg24VP.js} +1 -1
  184. package/dist/{x2y2-BLz-_Q2O.js.map → x2y2-CQdg24VP.js.map} +1 -1
  185. package/dist/{zora-UGhKs-aL.js → zora-DdEydy4L.js} +1 -1
  186. package/dist/{zora-UGhKs-aL.js.map → zora-DdEydy4L.js.map} +1 -1
  187. package/package.json +44 -41
  188. package/postcss.config.mjs +72 -5
  189. package/public/mockServiceWorker.js +344 -0
  190. package/src/react/_internal/api/__mocks__/builder.msw.ts +6 -0
  191. package/src/react/_internal/api/__mocks__/metadata.msw.ts +12 -1
  192. package/src/react/_internal/api/builder.gen.ts +11 -7
  193. package/src/react/_internal/databeat/index.ts +1 -1
  194. package/src/react/_internal/databeat/types.ts +1 -0
  195. package/src/react/_internal/query-meta.ts +3 -0
  196. package/src/react/_internal/utils.ts +2 -0
  197. package/src/react/_internal/wagmi/create-config.ts +1 -1
  198. package/src/react/_internal/wagmi/get-connectors.ts +1 -1
  199. package/src/react/hooks/{__tests__ → config}/__snapshots__/useMarketplaceConfig.test.tsx.snap +6 -0
  200. package/src/react/hooks/config/index.ts +3 -0
  201. package/src/react/hooks/{useConfig.tsx → config/useConfig.tsx} +2 -2
  202. package/src/react/hooks/config/useConnectorMetadata.tsx +16 -0
  203. package/src/react/hooks/{__tests__ → config}/useMarketplaceConfig.test.tsx +1 -1
  204. package/src/react/hooks/{useMarketplaceConfig.tsx → config/useMarketplaceConfig.tsx} +2 -2
  205. package/src/react/hooks/contracts/index.ts +1 -0
  206. package/src/react/hooks/contracts/useSalesContractABI.ts +174 -0
  207. package/src/react/hooks/data/collectibles/index.ts +6 -0
  208. package/src/react/hooks/{__tests__ → data/collectibles}/useBalanceOfCollectible.laos.test.tsx +4 -4
  209. package/src/react/hooks/{__tests__ → data/collectibles}/useBalanceOfCollectible.test.tsx +2 -2
  210. package/src/react/hooks/{useBalanceOfCollectible.tsx → data/collectibles/useBalanceOfCollectible.tsx} +4 -4
  211. package/src/react/hooks/{__tests__ → data/collectibles}/useCollectible.test.tsx +3 -3
  212. package/src/react/hooks/{useCollectible.tsx → data/collectibles/useCollectible.tsx} +3 -3
  213. package/src/react/hooks/{__tests__ → data/collectibles}/useCountOfCollectables.test.tsx +4 -4
  214. package/src/react/hooks/{useCountOfCollectables.tsx → data/collectibles/useCountOfCollectables.tsx} +3 -3
  215. package/src/react/hooks/{__tests__ → data/collectibles}/useListCollectibleActivities.test.tsx +3 -3
  216. package/src/react/hooks/{useListCollectibleActivities.tsx → data/collectibles/useListCollectibleActivities.tsx} +3 -3
  217. package/src/react/hooks/{__tests__ → data/collectibles}/useListCollectibles.test.tsx +5 -6
  218. package/src/react/hooks/{useListCollectibles.tsx → data/collectibles/useListCollectibles.tsx} +3 -3
  219. package/src/react/hooks/{__tests__ → data/collectibles}/useListCollectiblesPaginated.test.tsx +4 -4
  220. package/src/react/hooks/{useListCollectiblesPaginated.tsx → data/collectibles/useListCollectiblesPaginated.tsx} +3 -3
  221. package/src/react/hooks/{__tests__ → data/collections}/__snapshots__/useListCollections.test.tsx.snap +10 -0
  222. package/src/react/hooks/data/collections/index.ts +6 -0
  223. package/src/react/hooks/{__tests__ → data/collections}/useCollection.test.tsx +2 -3
  224. package/src/react/hooks/{useCollection.tsx → data/collections/useCollection.tsx} +3 -3
  225. package/src/react/hooks/{__tests__ → data/collections}/useCollectionBalanceDetails.test.tsx +2 -2
  226. package/src/react/hooks/{useCollectionBalanceDetails.tsx → data/collections/useCollectionBalanceDetails.tsx} +3 -3
  227. package/src/react/hooks/{__tests__ → data/collections}/useCollectionDetails.test.tsx +2 -2
  228. package/src/react/hooks/{useCollectionDetails.ts → data/collections/useCollectionDetails.ts} +3 -3
  229. package/src/react/hooks/{__tests__ → data/collections}/useCollectionDetailsPolling.test.tsx +3 -3
  230. package/src/react/hooks/{useCollectionDetailsPolling.tsx → data/collections/useCollectionDetailsPolling.tsx} +4 -4
  231. package/src/react/hooks/{__tests__ → data/collections}/useListCollectionActivities.test.tsx +5 -5
  232. package/src/react/hooks/{useListCollectionActivities.tsx → data/collections/useListCollectionActivities.tsx} +3 -3
  233. package/src/react/hooks/{__tests__ → data/collections}/useListCollections.test.tsx +5 -4
  234. package/src/react/hooks/{useListCollections.tsx → data/collections/useListCollections.tsx} +4 -4
  235. package/src/react/hooks/data/index.ts +6 -0
  236. package/src/react/hooks/data/inventory/index.ts +1 -0
  237. package/src/react/hooks/{__tests__ → data/inventory}/useInventory.test.tsx +4 -4
  238. package/src/react/hooks/{useInventory.tsx → data/inventory/useInventory.tsx} +7 -4
  239. package/src/react/hooks/data/market/index.ts +3 -0
  240. package/src/react/hooks/{__tests__ → data/market}/useCurrency.test.tsx +4 -4
  241. package/src/react/hooks/{useCurrency.tsx → data/market/useCurrency.tsx} +3 -3
  242. package/src/react/hooks/{__tests__ → data/market}/useListMarketCardData.test.tsx +10 -14
  243. package/src/react/hooks/{useListMarketCardData.tsx → data/market/useListMarketCardData.tsx} +6 -6
  244. package/src/react/hooks/{__tests__ → data/market}/useMarketCurrencies.test.tsx +5 -5
  245. package/src/react/hooks/{useMarketCurrencies.tsx → data/market/useMarketCurrencies.tsx} +3 -3
  246. package/src/react/hooks/data/orders/index.ts +7 -0
  247. package/src/react/hooks/{__tests__ → data/orders}/useCountListingsForCollectible.test.tsx +2 -2
  248. package/src/react/hooks/{useCountListingsForCollectible.tsx → data/orders/useCountListingsForCollectible.tsx} +3 -3
  249. package/src/react/hooks/{__tests__ → data/orders}/useCountOffersForCollectible.test.tsx +2 -2
  250. package/src/react/hooks/{useCountOffersForCollectible.tsx → data/orders/useCountOffersForCollectible.tsx} +3 -3
  251. package/src/react/hooks/{__tests__ → data/orders}/useFloorOrder.test.tsx +3 -3
  252. package/src/react/hooks/{useFloorOrder.tsx → data/orders/useFloorOrder.tsx} +3 -3
  253. package/src/react/hooks/{__tests__ → data/orders}/useHighestOffer.test.tsx +3 -3
  254. package/src/react/hooks/{useHighestOffer.tsx → data/orders/useHighestOffer.tsx} +3 -3
  255. package/src/react/hooks/{__tests__ → data/orders}/useListListingsForCollectible.test.tsx +6 -6
  256. package/src/react/hooks/{useListListingsForCollectible.tsx → data/orders/useListListingsForCollectible.tsx} +3 -3
  257. package/src/react/hooks/{__tests__ → data/orders}/useListOffersForCollectible.test.tsx +5 -5
  258. package/src/react/hooks/{useListOffersForCollectible.tsx → data/orders/useListOffersForCollectible.tsx} +4 -4
  259. package/src/react/hooks/{__tests__ → data/orders}/useLowestListing.test.tsx +5 -5
  260. package/src/react/hooks/{useLowestListing.tsx → data/orders/useLowestListing.tsx} +3 -3
  261. package/src/react/hooks/data/primary-sales/index.ts +6 -0
  262. package/src/react/hooks/{useCountOfPrimarySaleItems.tsx → data/primary-sales/useCountOfPrimarySaleItems.tsx} +2 -2
  263. package/src/react/hooks/data/primary-sales/useErc721SalesData.tsx +184 -0
  264. package/src/react/hooks/{useGetCountOfPrimarySaleItems.tsx → data/primary-sales/useGetCountOfPrimarySaleItems.tsx} +4 -4
  265. package/src/react/hooks/{useList1155ShopCardData.tsx → data/primary-sales/useList1155ShopCardData.tsx} +15 -8
  266. package/src/react/hooks/data/primary-sales/useList721ShopCardData.tsx +183 -0
  267. package/src/react/hooks/{useListPrimarySaleItems.tsx → data/primary-sales/useListPrimarySaleItems.tsx} +3 -3
  268. package/src/react/hooks/data/tokens/index.ts +5 -0
  269. package/src/react/hooks/{__tests__ → data/tokens}/useCurrencyBalance.test.tsx +2 -2
  270. package/src/react/hooks/{__tests__ → data/tokens}/useGetTokenRanges.test.tsx +3 -3
  271. package/src/react/hooks/{useGetTokenRanges.tsx → data/tokens/useGetTokenRanges.tsx} +6 -4
  272. package/src/react/hooks/{__tests__ → data/tokens}/useListBalances.test.tsx +2 -2
  273. package/src/react/hooks/{useListBalances.tsx → data/tokens/useListBalances.tsx} +5 -5
  274. package/src/react/hooks/{__tests__ → data/tokens}/useListTokenMetadata.test.tsx +3 -3
  275. package/src/react/hooks/{useListTokenMetadata.tsx → data/tokens/useListTokenMetadata.tsx} +3 -3
  276. package/src/react/hooks/data/tokens/useSearchTokenMetadata.test.tsx +284 -0
  277. package/src/react/hooks/data/tokens/useSearchTokenMetadata.tsx +186 -0
  278. package/src/react/hooks/{useTokenSupplies.ts → data/tokens/useTokenSupplies.ts} +5 -5
  279. package/src/react/hooks/index.ts +18 -52
  280. package/src/react/hooks/transactions/index.ts +9 -0
  281. package/src/react/hooks/{__tests__ → transactions}/useCancelOrder.test.tsx +53 -85
  282. package/src/react/hooks/{useCancelOrder.tsx → transactions/useCancelOrder.tsx} +4 -4
  283. package/src/react/hooks/{__tests__/useCancelTransactionSteps.test.tsx → transactions/useCancelTransactionSteps.test.tsx.bak} +3 -52
  284. package/src/react/hooks/transactions/useCancelTransactionSteps.tsx +193 -0
  285. package/src/react/hooks/{__tests__ → transactions}/useGenerateCancelTransaction.test.tsx +2 -2
  286. package/src/react/hooks/{useGenerateCancelTransaction.tsx → transactions/useGenerateCancelTransaction.tsx} +5 -5
  287. package/src/react/hooks/{__tests__ → transactions}/useGenerateListingTransaction.test.tsx +2 -2
  288. package/src/react/hooks/{useGenerateListingTransaction.tsx → transactions/useGenerateListingTransaction.tsx} +5 -5
  289. package/src/react/hooks/{__tests__ → transactions}/useGenerateOfferTransaction.test.tsx +7 -45
  290. package/src/react/hooks/{useGenerateOfferTransaction.tsx → transactions/useGenerateOfferTransaction.tsx} +7 -7
  291. package/src/react/hooks/{__tests__ → transactions}/useGenerateSellTransaction.test.tsx +3 -7
  292. package/src/react/hooks/{useGenerateSellTransaction.tsx → transactions/useGenerateSellTransaction.tsx} +4 -4
  293. package/src/react/hooks/transactions/useOrderSteps.tsx +189 -0
  294. package/src/react/hooks/transactions/useProcessStep.test.tsx +272 -0
  295. package/src/react/hooks/transactions/useProcessStep.ts +95 -0
  296. package/src/react/hooks/{__tests__ → transactions}/useTransferTokens.test.tsx +2 -2
  297. package/src/react/hooks/{useTransferTokens.tsx → transactions/useTransferTokens.tsx} +3 -3
  298. package/src/react/hooks/ui/index.ts +3 -0
  299. package/src/react/hooks/{useFilterState.tsx → ui/useFilterState.tsx} +1 -1
  300. package/src/react/hooks/{__tests__ → ui}/useFilters.test.tsx +1 -2
  301. package/src/react/hooks/{useFilters.tsx → ui/useFilters.tsx} +3 -3
  302. package/src/react/hooks/{useOpenConnectModal.tsx → ui/useOpenConnectModal.tsx} +1 -1
  303. package/src/react/hooks/util/optimisticCancelUpdates.ts +1 -0
  304. package/src/react/hooks/utils/index.ts +9 -0
  305. package/src/react/hooks/{__tests__ → utils}/useAutoSelectFeeOption.test.tsx +7 -3
  306. package/src/react/hooks/{useAutoSelectFeeOption.tsx → utils/useAutoSelectFeeOption.tsx} +2 -2
  307. package/src/react/hooks/{__tests__ → utils}/useCheckoutOptions.test.tsx +9 -5
  308. package/src/react/hooks/{useCheckoutOptions.tsx → utils/useCheckoutOptions.tsx} +6 -4
  309. package/src/react/hooks/{__tests__ → utils}/useCheckoutOptionsSalesContract.test.tsx +8 -4
  310. package/src/react/hooks/{useCheckoutOptionsSalesContract.tsx → utils/useCheckoutOptionsSalesContract.tsx} +3 -3
  311. package/src/react/hooks/{__tests__ → utils}/useComparePrices.test.tsx +1 -1
  312. package/src/react/hooks/{useComparePrices.tsx → utils/useComparePrices.tsx} +3 -5
  313. package/src/react/hooks/{__tests__ → utils}/useConvertPriceToUSD.test.tsx +2 -2
  314. package/src/react/hooks/{useConvertPriceToUSD.tsx → utils/useConvertPriceToUSD.tsx} +3 -3
  315. package/src/react/hooks/utils/useEnsureCorrectChain.ts +74 -0
  316. package/src/react/hooks/{__tests__ → utils}/useRoyalty.test.tsx +1 -1
  317. package/src/react/hooks/{useRoyalty.tsx → utils/useRoyalty.tsx} +3 -3
  318. package/src/react/hooks/utils/useSwitchChainWithModal.ts +38 -0
  319. package/src/react/index.ts +1 -2
  320. package/src/react/{provider.tsx → providers/index.tsx} +10 -7
  321. package/src/react/providers/modal-provider.tsx +43 -0
  322. package/src/react/{__tests__ → providers}/provider.test.tsx +1 -1
  323. package/src/react/providers/shadow-root.tsx +63 -0
  324. package/src/react/providers/theme-provider.tsx +29 -0
  325. package/src/react/queries/index.ts +19 -0
  326. package/src/react/queries/marketplaceConfig.ts +10 -1
  327. package/src/react/queries/primarySaleItems.ts +2 -7
  328. package/src/react/queries/searchTokenMetadata.ts +87 -0
  329. package/src/react/queries/tokenSupplies.ts +26 -18
  330. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +6 -0
  331. package/src/react/ssr/__tests__/create-ssr-client.test.ts +1 -1
  332. package/src/react/ui/components/_internals/action-button/ActionButton.stories.tsx +296 -0
  333. package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +34 -14
  334. package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +4 -11
  335. package/src/react/ui/components/_internals/action-button/__tests__/OwnerActions.test.tsx +5 -12
  336. package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +32 -16
  337. package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +2 -3
  338. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +1 -1
  339. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +2 -3
  340. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +4 -3
  341. package/src/react/ui/components/marketplace-collectible-card/types.ts +3 -2
  342. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +1 -1
  343. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +6 -3
  344. package/src/react/ui/index.ts +1 -1
  345. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +10 -25
  346. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +2 -2
  347. package/src/react/ui/modals/BuyModal/__tests__/ERC721ShopModal.test.tsx +1 -1
  348. package/src/react/ui/modals/BuyModal/components/BuyModalRouter.tsx +5 -5
  349. package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +8 -8
  350. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +32 -14
  351. package/src/react/ui/modals/BuyModal/components/ERC721BuyModal.tsx +4 -4
  352. package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +18 -30
  353. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +14 -1
  354. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC721SalePaymentParams.test.tsx +13 -2
  355. package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +5 -5
  356. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +7 -2
  357. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +18 -7
  358. package/src/react/ui/modals/BuyModal/hooks/useLoadData.ts +5 -9
  359. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +16 -15
  360. package/src/react/ui/modals/BuyModal/store.ts +2 -0
  361. package/src/react/ui/modals/CreateListingModal/Modal.tsx +11 -5
  362. package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +3 -24
  363. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +5 -9
  364. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +43 -83
  365. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +4 -4
  366. package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +88 -62
  367. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +9 -7
  368. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +2 -2
  369. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +47 -84
  370. package/src/react/ui/modals/SellModal/Modal.tsx +7 -9
  371. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +8 -30
  372. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +7 -7
  373. package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +39 -65
  374. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/__tests__/useHandleTransfer.test.tsx +28 -18
  375. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TransferButton.tsx +33 -15
  376. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/useHandleTransfer.tsx +3 -3
  377. package/src/react/ui/modals/TransferModal/index.tsx +9 -23
  378. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +116 -136
  379. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +15 -44
  380. package/src/react/ui/modals/_internal/components/actionModal/index.ts +0 -1
  381. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +9 -3
  382. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +1 -1
  383. package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +2 -2
  384. package/src/react/ui/modals/_internal/components/priceInput/index.tsx +1 -1
  385. package/src/react/ui/modals/_internal/components/quantityInput/__tests__/index.test.tsx +97 -7
  386. package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +30 -11
  387. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +2 -2
  388. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/index.tsx +1 -1
  389. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +1 -1
  390. package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +25 -26
  391. package/src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx +3 -1
  392. package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +19 -4
  393. package/src/react/ui/modals/_internal/hooks/useSelectWaasFeeOptions.ts +3 -5
  394. package/src/react/ui/modals/_internal/types.ts +6 -0
  395. package/src/react/utils/index.ts +1 -0
  396. package/src/react/utils/waitForTransactionReceipt.ts +49 -0
  397. package/src/{index.css → styles/index.css} +1 -1
  398. package/src/styles/styles.ts +3275 -0
  399. package/src/types/sdk-config.ts +2 -0
  400. package/src/utils/_internal/error/transaction.ts +0 -10
  401. package/src/utils/abi/primary-sale/index.ts +4 -2
  402. package/src/utils/abi/primary-sale/{sequence-1155-sales-contract.ts → sequence-1155-sales-contract-v0.ts} +67 -58
  403. package/src/utils/abi/primary-sale/sequence-1155-sales-contract-v1.ts +546 -0
  404. package/src/utils/abi/primary-sale/{sequence-721-sales-contract.ts → sequence-721-sales-contract-v0.ts} +1 -1
  405. package/src/utils/abi/primary-sale/sequence-721-sales-contract-v1.ts +394 -0
  406. package/test/const.ts +1 -1
  407. package/test/globalSetup.ts +39 -11
  408. package/test/handlers.ts +465 -0
  409. package/test/index.ts +1 -0
  410. package/test/server-setup.ts +23 -0
  411. package/test/setup.ts +1 -1
  412. package/test/test-utils.tsx +46 -38
  413. package/tsconfig.json +1 -1
  414. package/tsdown.config.ts +12 -7
  415. package/.storybook/preview.ts +0 -24
  416. package/dist/CalendarIcon-CqsuAuCm.js.map +0 -1
  417. package/dist/InfoIcon-v0w_Lu7t.js +0 -53
  418. package/dist/InfoIcon-v0w_Lu7t.js.map +0 -1
  419. package/dist/_internal-C75gOSNo.js.map +0 -1
  420. package/dist/actionModal-CMUeVsFX.js +0 -116
  421. package/dist/actionModal-CMUeVsFX.js.map +0 -1
  422. package/dist/api-BiMGqWdz.js.map +0 -1
  423. package/dist/base-DqaJPvfN.js +0 -22
  424. package/dist/base-DqaJPvfN.js.map +0 -1
  425. package/dist/create-config-fQ-jbJD1.js.map +0 -1
  426. package/dist/get-provider-CYYHfrlg.js +0 -10
  427. package/dist/get-provider-CYYHfrlg.js.map +0 -1
  428. package/dist/get-query-client-D19vvfJo.js +0 -23
  429. package/dist/get-query-client-D19vvfJo.js.map +0 -1
  430. package/dist/hooks-4pxIbLbM.js +0 -4044
  431. package/dist/hooks-4pxIbLbM.js.map +0 -1
  432. package/dist/index-BKBin-rq.d.ts +0 -979
  433. package/dist/index-BUWB_RXp.d.ts +0 -3144
  434. package/dist/index-Cu70Lw-w.d.ts +0 -1057
  435. package/dist/index-DvpBZgor.d.ts +0 -1
  436. package/dist/marketplaceConfig-GQTTmihy.js.map +0 -1
  437. package/dist/primary-sale-CmWxSfFQ.js +0 -1264
  438. package/dist/primary-sale-CmWxSfFQ.js.map +0 -1
  439. package/dist/provider-DPGUA10G.js +0 -125
  440. package/dist/provider-DPGUA10G.js.map +0 -1
  441. package/dist/queries-Ce_2othB.js +0 -757
  442. package/dist/queries-Ce_2othB.js.map +0 -1
  443. package/dist/react/hooks/options/index.d.ts +0 -3
  444. package/dist/react/hooks/options/index.js +0 -16
  445. package/dist/react-DP0M2Wfm.js +0 -5431
  446. package/dist/react-DP0M2Wfm.js.map +0 -1
  447. package/dist/transaction-CnctdNzS.js.map +0 -1
  448. package/dist/wagmi-Do_KW5ke.js +0 -0
  449. package/src/react/_internal/wallet/__tests__/wallet.test.ts +0 -416
  450. package/src/react/_internal/wallet/useWallet.ts +0 -52
  451. package/src/react/_internal/wallet/wallet.ts +0 -313
  452. package/src/react/hooks/options/index.ts +0 -1
  453. package/src/react/hooks/useCancelTransactionSteps.tsx +0 -249
  454. package/src/react/hooks/useERC721SaleMintedTokens.tsx +0 -70
  455. package/src/react/hooks/useList1155SaleSupplies.tsx +0 -62
  456. package/src/react/hooks/useList721ShopCardData.tsx +0 -165
  457. package/src/react/hooks/useListShopCardData.tsx +0 -70
  458. package/src/react/hooks/useListTokenMetadata.ts +0 -71
  459. package/src/react/hooks/useShopCollectibleSaleData.tsx +0 -349
  460. package/src/react/hooks/useTokenSaleDetailsBatch.tsx +0 -130
  461. package/src/react/ui/modals/_internal/components/actionModal/store.ts +0 -57
  462. package/src/react/ui/modals/modal-provider.tsx +0 -25
  463. package/test/mocks/wallet.ts +0 -63
  464. /package/dist/{abi-BMvgNbKQ.js → abi-Wr_aTZFi.js} +0 -0
  465. /package/dist/{index-CD2bj_xW.d.ts → index-q7f-WDBS.d.ts} +0 -0
  466. /package/dist/{options-BBBR8u_4.js → wagmi-BhP3mdhP.js} +0 -0
  467. /package/src/react/hooks/{useCurrencyBalance.tsx → data/tokens/useCurrencyBalance.tsx} +0 -0
  468. /package/src/react/hooks/{useGetReceiptFromHash.tsx → utils/useGetReceiptFromHash.tsx} +0 -0
@@ -3,12 +3,13 @@
3
3
  import { Text, TokenImage } from '@0xsequence/design-system';
4
4
  import { useState } from 'react';
5
5
  import type { Address } from 'viem';
6
- import { maxUint256 } from 'viem';
6
+ import { maxUint256, parseUnits } from 'viem';
7
7
  import { DEFAULT_MARKETPLACE_FEE_PERCENTAGE } from '../../../../../consts';
8
8
  import type { MarketplaceType } from '../../../../../types';
9
9
  import { formatPriceWithFee } from '../../../../../utils/price';
10
10
  import type { Order } from '../../../../_internal';
11
- import { useCurrency, useMarketplaceConfig } from '../../../../hooks';
11
+ import { useMarketplaceConfig } from '../../../../hooks';
12
+ import { useCurrency } from '../../../../hooks/data/market/useCurrency';
12
13
  import { ActionModal } from '../../_internal/components/actionModal';
13
14
  import QuantityInput from '../../_internal/components/quantityInput';
14
15
  import { buyModalStore, useIsOpen } from '../store';
@@ -39,10 +40,28 @@ export const ERC1155QuantityModal = ({
39
40
  }: ERC1155QuantityModalProps) => {
40
41
  const isOpen = useIsOpen();
41
42
 
42
- const [localQuantity, setLocalQuantity] = useState('1');
43
+ const minQuantity =
44
+ quantityDecimals > 0 ? `0.${'1'.padStart(quantityDecimals, '0')}` : '1';
45
+ const [localQuantity, setLocalQuantity] = useState(minQuantity);
43
46
  const [invalidQuantity, setInvalidQuantity] = useState(false);
44
47
 
45
- const maxQuantity = unlimitedSupply ? INFINITY_STRING : quantityRemaining;
48
+ const maxQuantity = unlimitedSupply
49
+ ? INFINITY_STRING
50
+ : quantityDecimals > 0
51
+ ? (Number(quantityRemaining) / 10 ** quantityDecimals).toString()
52
+ : quantityRemaining;
53
+
54
+ const handleBuyNow = () => {
55
+ // Convert the quantity to account for decimals
56
+ const quantityWithDecimals = parseUnits(
57
+ localQuantity,
58
+ quantityDecimals,
59
+ ).toString();
60
+ buyModalStore.send({
61
+ type: 'setQuantity',
62
+ quantity: Number(quantityWithDecimals),
63
+ });
64
+ };
46
65
 
47
66
  return (
48
67
  <ActionModal
@@ -54,12 +73,7 @@ export const ERC1155QuantityModal = ({
54
73
  ctas={[
55
74
  {
56
75
  label: 'Buy now',
57
- onClick: () => {
58
- buyModalStore.send({
59
- type: 'setQuantity',
60
- quantity: Number(localQuantity),
61
- });
62
- },
76
+ onClick: handleBuyNow,
63
77
  disabled: invalidQuantity,
64
78
  },
65
79
  ]}
@@ -80,6 +94,7 @@ export const ERC1155QuantityModal = ({
80
94
  salePrice={salePrice}
81
95
  chainId={chainId}
82
96
  marketplaceType={marketplaceType}
97
+ quantityDecimals={quantityDecimals}
83
98
  />
84
99
  </div>
85
100
  </ActionModal>
@@ -95,6 +110,7 @@ type TotalPriceProps = {
95
110
  };
96
111
  chainId: number;
97
112
  marketplaceType: MarketplaceType;
113
+ quantityDecimals: number;
98
114
  };
99
115
 
100
116
  const TotalPrice = ({
@@ -103,6 +119,7 @@ const TotalPrice = ({
103
119
  salePrice,
104
120
  chainId,
105
121
  marketplaceType,
122
+ quantityDecimals,
106
123
  }: TotalPriceProps) => {
107
124
  const isShop = marketplaceType === 'shop';
108
125
  const isMarket = marketplaceType === 'market';
@@ -117,7 +134,8 @@ const TotalPrice = ({
117
134
  let error: null | string = null;
118
135
  let formattedPrice = '0';
119
136
 
120
- const quantity = BigInt(quantityStr);
137
+ // Convert quantity to proper decimal format for multiplication
138
+ const quantityForCalculation = parseUnits(quantityStr, quantityDecimals);
121
139
 
122
140
  if (isMarket && currency && order) {
123
141
  try {
@@ -130,8 +148,8 @@ const TotalPrice = ({
130
148
  );
131
149
  const marketplaceFeePercentage =
132
150
  marketCollection?.feePercentage ?? DEFAULT_MARKETPLACE_FEE_PERCENTAGE;
133
- const quantity = BigInt(quantityStr);
134
- const totalPriceRaw = BigInt(order ? order.priceAmount : '0') * quantity;
151
+ const totalPriceRaw =
152
+ BigInt(order ? order.priceAmount : '0') * quantityForCalculation;
135
153
 
136
154
  formattedPrice = formatPriceWithFee(
137
155
  totalPriceRaw,
@@ -145,7 +163,7 @@ const TotalPrice = ({
145
163
  }
146
164
 
147
165
  if (isShop && salePrice && currency) {
148
- const totalPriceRaw = BigInt(salePrice.amount) * quantity;
166
+ const totalPriceRaw = BigInt(salePrice.amount) * quantityForCalculation;
149
167
  formattedPrice = formatPriceWithFee(
150
168
  totalPriceRaw,
151
169
  currency.decimals,
@@ -6,8 +6,8 @@ import {
6
6
  } from '@0xsequence/checkout';
7
7
  import type { ContractInfo, TokenMetadata } from '@0xsequence/metadata';
8
8
  import { useEffect } from 'react';
9
+ import type { Address } from 'viem';
9
10
  import type { CheckoutOptions, Order } from '../../../../_internal';
10
- import type { WalletInstance } from '../../../../_internal/wallet/wallet';
11
11
  import { usePaymentModalParams } from '../hooks/usePaymentModalParams';
12
12
  import { buyModalStore, usePaymentModalState, useQuantity } from '../store';
13
13
 
@@ -15,7 +15,7 @@ interface ERC721BuyModalProps {
15
15
  collection: ContractInfo;
16
16
  collectable: TokenMetadata;
17
17
  order: Order;
18
- wallet: WalletInstance | null | undefined;
18
+ address: Address | undefined;
19
19
  checkoutOptions: CheckoutOptions | undefined;
20
20
  chainId: number;
21
21
  }
@@ -23,7 +23,7 @@ interface ERC721BuyModalProps {
23
23
  export const ERC721BuyModal = ({
24
24
  collectable,
25
25
  order,
26
- wallet,
26
+ address,
27
27
  checkoutOptions,
28
28
  }: ERC721BuyModalProps) => {
29
29
  const quantity = useQuantity();
@@ -40,7 +40,7 @@ export const ERC721BuyModal = ({
40
40
  isLoading: isPaymentModalParamsLoading,
41
41
  isError: isPaymentModalParamsError,
42
42
  } = usePaymentModalParams({
43
- wallet,
43
+ address,
44
44
  quantity: quantity ?? undefined,
45
45
  marketplace: order?.marketplace,
46
46
  collectable,
@@ -2,22 +2,23 @@ import { renderHook, server, waitFor } from '@test';
2
2
  import { HttpResponse, http } from 'msw';
3
3
  import { zeroAddress } from 'viem';
4
4
  import { beforeEach, describe, expect, it, vi } from 'vitest';
5
- import { createMockWallet } from '../../../../../../../test/mocks/wallet';
6
5
  import { MarketplaceKind } from '../../../../../_internal';
7
6
  import { mockMarketplaceEndpoint } from '../../../../../_internal/api/__mocks__/marketplace.msw';
8
7
  import { TransactionCrypto } from '../../../../../_internal/api/marketplace.gen';
9
- import { useWallet } from '../../../../../_internal/wallet/useWallet';
10
8
  import { useCheckoutOptions } from '../useCheckoutOptions';
11
9
  import { useMarketPlatformFee } from '../useMarketPlatformFee';
12
10
 
13
11
  // Mock dependencies
14
- vi.mock('../../../../../_internal/wallet/useWallet');
15
- vi.mock('../useMarketPlatformFee');
16
-
17
- // Create mock wallet instance
18
- const mockWallet = createMockWallet({
19
- address: vi.fn().mockResolvedValue(zeroAddress),
12
+ vi.mock('wagmi', async () => {
13
+ const actual = await vi.importActual('wagmi');
14
+ return {
15
+ ...actual,
16
+ useAccount: vi.fn(() => ({
17
+ address: zeroAddress,
18
+ })),
19
+ };
20
20
  });
21
+ vi.mock('../useMarketPlatformFee');
21
22
 
22
23
  describe('useCheckoutOptions', () => {
23
24
  const defaultInput = {
@@ -30,13 +31,6 @@ describe('useCheckoutOptions', () => {
30
31
  beforeEach(() => {
31
32
  vi.clearAllMocks();
32
33
 
33
- // Set up default wallet mock
34
- vi.mocked(useWallet).mockReturnValue({
35
- wallet: mockWallet,
36
- isLoading: false,
37
- isError: false,
38
- });
39
-
40
34
  // Set up default fees mock
41
35
  vi.mocked(useMarketPlatformFee).mockReturnValue({
42
36
  amount: '100000000000000000',
@@ -105,23 +99,17 @@ describe('useCheckoutOptions', () => {
105
99
  expect(result.current.data).toBeUndefined();
106
100
  });
107
101
 
108
- it('should handle wallet address resolution failure', async () => {
109
- const mockWalletWithFailure = createMockWallet({
110
- address: vi.fn().mockRejectedValue(new Error('Failed to get address')),
111
- });
112
-
113
- vi.mocked(useWallet).mockReturnValue({
114
- wallet: mockWalletWithFailure,
115
- isLoading: false,
116
- isError: false,
117
- });
102
+ it('should not fetch when wallet is not connected', async () => {
103
+ const { useAccount } = vi.mocked(await import('wagmi'));
104
+ useAccount.mockReturnValue({
105
+ address: undefined,
106
+ } as any);
118
107
 
119
108
  const { result } = renderHook(() => useCheckoutOptions(defaultInput));
120
109
 
121
- await waitFor(() => {
122
- expect(result.current.isError).toBe(true);
123
- });
124
-
125
- expect(result.current.error).toBeDefined();
110
+ // Should not be loading or have data when no wallet is connected
111
+ expect(result.current.isLoading).toBe(false);
112
+ expect(result.current.data).toBeUndefined();
113
+ expect(result.current.isError).toBe(false);
126
114
  });
127
115
  });
@@ -33,6 +33,19 @@ vi.mock('../../store', () => ({
33
33
  useOnSuccess: vi.fn(() => vi.fn()),
34
34
  useOnError: vi.fn(() => vi.fn()),
35
35
  useBuyAnalyticsId: vi.fn(() => '123'),
36
+ useBuyModalProps: vi.fn(() => ({
37
+ chainId: 1,
38
+ collectionAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
39
+ marketplaceType: 'shop',
40
+ salesContractAddress: '0x1234567890123456789012345678901234567890',
41
+ items: [],
42
+ quantityDecimals: 0,
43
+ quantityRemaining: 100,
44
+ salePrice: {
45
+ amount: '1000000000000000000',
46
+ currencyAddress: '0x0000000000000000000000000000000000000000',
47
+ },
48
+ })),
36
49
  buyModalStore: {
37
50
  send: vi.fn(),
38
51
  },
@@ -92,7 +105,6 @@ describe('useERC1155Checkout', () => {
92
105
  [
93
106
  {
94
107
  "chain": 1,
95
- "chainId": "1",
96
108
  "checkoutOptions": {
97
109
  "crypto": "all",
98
110
  "nftCheckout": [],
@@ -111,6 +123,7 @@ describe('useERC1155Checkout', () => {
111
123
  "onClose": [Function],
112
124
  "onError": [Function],
113
125
  "onSuccess": [Function],
126
+ "successActionButtons": undefined,
114
127
  "supplementaryAnalyticsInfo": {
115
128
  "marketplaceType": "shop",
116
129
  "saleAnalyticsId": "123",
@@ -21,6 +21,19 @@ vi.mock('wagmi', async () => {
21
21
  vi.mock('../../store', () => ({
22
22
  useOnSuccess: vi.fn(() => vi.fn()),
23
23
  useOnError: vi.fn(() => vi.fn()),
24
+ useBuyModalProps: vi.fn(() => ({
25
+ chainId: 1,
26
+ collectionAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
27
+ marketplaceType: 'shop',
28
+ salesContractAddress: '0x1234567890123456789012345678901234567890',
29
+ items: [],
30
+ quantityDecimals: 0,
31
+ quantityRemaining: 100,
32
+ salePrice: {
33
+ amount: '1000000000000000000',
34
+ currencyAddress: '0x0000000000000000000000000000000000000000',
35
+ },
36
+ })),
24
37
  }));
25
38
 
26
39
  const mockSalesContractAddress = '0x1234567890123456789012345678901234567890';
@@ -63,8 +76,6 @@ describe('getERC721SalePaymentParams', () => {
63
76
  targetContractAddress: mockSalesContractAddress,
64
77
  collectionAddress: mockCollectionAddress,
65
78
  recipientAddress: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
66
- enableMainCurrencyPayment: true,
67
- enableSwapPayments: true,
68
79
  creditCardProviders: [],
69
80
  });
70
81
 
@@ -1,10 +1,10 @@
1
1
  import { skipToken, useQuery } from '@tanstack/react-query';
2
2
  import type { Address } from 'viem';
3
+ import { useAccount } from 'wagmi';
3
4
  import {
4
5
  getMarketplaceClient,
5
6
  type MarketplaceKind,
6
7
  } from '../../../../_internal';
7
- import { useWallet } from '../../../../_internal/wallet/useWallet';
8
8
  import { useConfig } from '../../../../hooks';
9
9
  import { useMarketPlatformFee } from './useMarketPlatformFee';
10
10
 
@@ -19,7 +19,7 @@ export const useCheckoutOptions = (
19
19
  input: CheckoutOptionsParams | typeof skipToken,
20
20
  ) => {
21
21
  const config = useConfig();
22
- const { wallet } = useWallet();
22
+ const { address } = useAccount();
23
23
 
24
24
  // If input is skipToken, we don't want to calculate fees
25
25
  const fees = useMarketPlatformFee(
@@ -43,13 +43,13 @@ export const useCheckoutOptions = (
43
43
  ]
44
44
  : ['checkoutOptions', 'skip'],
45
45
  queryFn:
46
- wallet && input !== skipToken
46
+ address && input !== skipToken
47
47
  ? async () => {
48
48
  const marketplaceClient = getMarketplaceClient(config);
49
49
  const response = await marketplaceClient.checkoutOptionsMarketplace(
50
50
  {
51
51
  chainId: String(input.chainId),
52
- wallet: await wallet.address(),
52
+ wallet: address,
53
53
  orders: [
54
54
  {
55
55
  contractAddress: input.collectionAddress,
@@ -81,6 +81,6 @@ export const useCheckoutOptions = (
81
81
  };
82
82
  }
83
83
  : skipToken,
84
- enabled: !!wallet && input !== skipToken,
84
+ enabled: !!address && input !== skipToken,
85
85
  });
86
86
  };
@@ -9,6 +9,7 @@ import { getQueryClient } from '../../../../_internal';
9
9
  import {
10
10
  buyModalStore,
11
11
  useBuyAnalyticsId,
12
+ useBuyModalProps,
12
13
  useOnError,
13
14
  useOnSuccess,
14
15
  useQuantity,
@@ -43,9 +44,10 @@ export const useERC1155Checkout = ({
43
44
  const onError = useOnError();
44
45
  const saleAnalyticsId = useBuyAnalyticsId();
45
46
 
47
+ const buyModalProps = useBuyModalProps();
48
+
46
49
  const checkout = useERC1155SaleContractCheckout({
47
50
  chain: chainId,
48
- chainId: chainId.toString(),
49
51
  contractAddress: salesContractAddress,
50
52
  collectionAddress,
51
53
  items: [
@@ -65,7 +67,9 @@ export const useERC1155Checkout = ({
65
67
  },
66
68
  onClose: () => {
67
69
  const queryClient = getQueryClient();
68
- queryClient.invalidateQueries();
70
+ queryClient.invalidateQueries({
71
+ predicate: (query) => !query.meta?.persistent,
72
+ });
69
73
  buyModalStore.send({ type: 'close' });
70
74
  },
71
75
  customProviderCallback,
@@ -73,6 +77,7 @@ export const useERC1155Checkout = ({
73
77
  marketplaceType: 'shop',
74
78
  saleAnalyticsId,
75
79
  },
80
+ successActionButtons: buyModalProps.successActionButtons,
76
81
  });
77
82
 
78
83
  return {
@@ -9,10 +9,15 @@ import {
9
9
  } from 'viem';
10
10
  import { useAccount } from 'wagmi';
11
11
  import { BuyModalErrorFactory } from '../../../../../types/buyModalErrors';
12
- import { ERC721_SALE_ABI } from '../../../../../utils/abi/primary-sale/sequence-721-sales-contract';
12
+ import { ERC721_SALE_ABI_V0 } from '../../../../../utils/abi';
13
13
  import { getQueryClient } from '../../../../_internal';
14
- import type { ModalCallbacks } from '../../_internal/types';
15
- import { buyModalStore, useOnError, useOnSuccess } from '../store';
14
+ import type { ActionButton, ModalCallbacks } from '../../_internal/types';
15
+ import {
16
+ buyModalStore,
17
+ useBuyModalProps,
18
+ useOnError,
19
+ useOnSuccess,
20
+ } from '../store';
16
21
 
17
22
  interface ERC721MintArgs {
18
23
  to: Address;
@@ -34,7 +39,8 @@ const encodeERC721MintData = ({
34
39
  const totalPrice = price * amount;
35
40
 
36
41
  return encodeFunctionData({
37
- abi: ERC721_SALE_ABI,
42
+ // We get away with using V0 ABI because the mint functions are identical on V0 and V1
43
+ abi: ERC721_SALE_ABI_V0,
38
44
  functionName: 'mint',
39
45
  args: [to, amount, paymentToken, totalPrice, proof],
40
46
  });
@@ -53,6 +59,7 @@ interface GetERC721SalePaymentParams {
53
59
  nativeTokenAddress: string | undefined;
54
60
  checkoutProvider?: string;
55
61
  quantity: number;
62
+ successActionButtons?: ActionButton[];
56
63
  }
57
64
 
58
65
  export const getERC721SalePaymentParams = async ({
@@ -68,6 +75,7 @@ export const getERC721SalePaymentParams = async ({
68
75
  nativeTokenAddress,
69
76
  checkoutProvider,
70
77
  quantity,
78
+ successActionButtons,
71
79
  }: GetERC721SalePaymentParams) => {
72
80
  try {
73
81
  const purchaseTransactionData = encodeERC721MintData({
@@ -98,8 +106,6 @@ export const getERC721SalePaymentParams = async ({
98
106
  txData: purchaseTransactionData,
99
107
  collectionAddress,
100
108
  recipientAddress: address,
101
- enableMainCurrencyPayment: true,
102
- enableSwapPayments: true,
103
109
  creditCardProviders,
104
110
  onSuccess: (hash: string) => {
105
111
  callbacks?.onSuccess?.({ hash: hash as Hash });
@@ -107,7 +113,9 @@ export const getERC721SalePaymentParams = async ({
107
113
  onError: callbacks?.onError,
108
114
  onClose: () => {
109
115
  const queryClient = getQueryClient();
110
- queryClient.invalidateQueries();
116
+ queryClient.invalidateQueries({
117
+ predicate: (query) => !query.meta?.persistent,
118
+ });
111
119
  buyModalStore.send({ type: 'close' });
112
120
  },
113
121
  skipNativeBalanceCheck,
@@ -121,6 +129,7 @@ export const getERC721SalePaymentParams = async ({
121
129
  buyModalStore.send({ type: 'close' });
122
130
  },
123
131
  }),
132
+ successActionButtons,
124
133
  } satisfies SelectPaymentSettings;
125
134
  } catch (error) {
126
135
  // Convert to structured error for better debugging
@@ -160,6 +169,7 @@ export const useERC721SalePaymentParams = (
160
169
  const { address } = useAccount();
161
170
  const onSuccess = useOnSuccess();
162
171
  const onError = useOnError();
172
+ const buyModalProps = useBuyModalProps();
163
173
 
164
174
  const queryEnabled =
165
175
  enabled &&
@@ -190,6 +200,7 @@ export const useERC721SalePaymentParams = (
190
200
 
191
201
  checkoutProvider,
192
202
  quantity,
203
+ successActionButtons: buyModalProps.successActionButtons,
193
204
  })
194
205
  : skipToken,
195
206
  });
@@ -1,5 +1,5 @@
1
1
  import { skipToken } from '@tanstack/react-query';
2
- import { useWallet } from '../../../../_internal/wallet/useWallet';
2
+ import { useAccount } from 'wagmi';
3
3
  import {
4
4
  useCheckoutOptionsSalesContract,
5
5
  useCollectible,
@@ -17,11 +17,8 @@ export const useLoadData = () => {
17
17
  const isShop = isShopProps(props);
18
18
  const collectibleId = isMarket ? props.collectibleId : undefined;
19
19
 
20
- const {
21
- wallet,
22
- isLoading: walletLoading,
23
- isError: walletError,
24
- } = useWallet();
20
+ const { address, isConnecting, isReconnecting } = useAccount();
21
+ const walletIsLoading = isConnecting || isReconnecting;
25
22
 
26
23
  const {
27
24
  data: collection,
@@ -105,16 +102,15 @@ export const useLoadData = () => {
105
102
  currency,
106
103
  order: marketplaceCheckoutOptions?.order,
107
104
  checkoutOptions: marketplaceCheckoutOptions,
108
- wallet,
105
+ address,
109
106
  shopData,
110
107
  isLoading:
111
108
  collectionLoading ||
112
109
  collectableLoading ||
113
110
  (isMarket && marketplaceCheckoutOptionsLoading) ||
114
111
  (isShop && (currencyLoading || salesContractCheckoutOptionsLoading)) ||
115
- walletLoading,
112
+ walletIsLoading,
116
113
  isError:
117
- walletError ||
118
114
  collectionError ||
119
115
  collectableError ||
120
116
  currencyError ||
@@ -1,20 +1,19 @@
1
1
  import type { SelectPaymentSettings } from '@0xsequence/checkout';
2
2
  import type { TokenMetadata } from '@0xsequence/metadata';
3
3
  import { skipToken, useQuery } from '@tanstack/react-query';
4
- import type { Hash, Hex } from 'viem';
5
- import type { SdkConfig, Step } from '../../../../..';
4
+ import type { Address, Hash, Hex } from 'viem';
5
+ import type { CheckoutOptions, SdkConfig } from '../../../../../types';
6
6
  import { decodeERC20Approval } from '../../../../../utils/decode/erc20';
7
7
  import {
8
8
  type AdditionalFee,
9
- type CheckoutOptions,
10
9
  getMarketplaceClient,
11
10
  getQueryClient,
12
11
  getSequenceApiClient,
13
12
  type MarketplaceKind,
13
+ type Step,
14
14
  StepType,
15
15
  WalletKind,
16
16
  } from '../../../../_internal';
17
- import type { WalletInstance } from '../../../../_internal/wallet/wallet';
18
17
  import { useConfig } from '../../../../hooks';
19
18
  import type { ModalCallbacks } from '../../_internal/types';
20
19
  import {
@@ -30,7 +29,7 @@ import { useMarketPlatformFee } from './useMarketPlatformFee';
30
29
  interface GetBuyCollectableParams {
31
30
  chainId: number;
32
31
  config: SdkConfig;
33
- wallet: WalletInstance;
32
+ address: Address;
34
33
  collectionAddress: string;
35
34
  collectibleId: string;
36
35
  marketplace: MarketplaceKind;
@@ -55,7 +54,7 @@ export const getBuyCollectableParams = async ({
55
54
  priceCurrencyAddress,
56
55
  customCreditCardProviderCallback,
57
56
  config,
58
- wallet,
57
+ address,
59
58
  marketplace,
60
59
  orderId,
61
60
  quantity,
@@ -70,7 +69,7 @@ export const getBuyCollectableParams = async ({
70
69
  const { steps } = await marketplaceClient.generateBuyTransaction({
71
70
  chainId: String(chainId),
72
71
  collectionAddress,
73
- buyer: await wallet.address(),
72
+ buyer: address,
74
73
  marketplace: marketplace,
75
74
  ordersData: [
76
75
  {
@@ -130,9 +129,7 @@ export const getBuyCollectableParams = async ({
130
129
  approvedSpenderAddress,
131
130
  txData: buyStep.data as Hex,
132
131
  collectionAddress,
133
- recipientAddress: await wallet.address(),
134
- enableMainCurrencyPayment: true,
135
- enableSwapPayments: !!checkoutOptions.swap,
132
+ recipientAddress: address,
136
133
  creditCardProviders,
137
134
  onSuccess: (hash: string) => {
138
135
  callbacks?.onSuccess?.({ hash: hash as Hash });
@@ -146,7 +143,9 @@ export const getBuyCollectableParams = async ({
146
143
  onError: callbacks?.onError,
147
144
  onClose: () => {
148
145
  const queryClient = getQueryClient();
149
- queryClient.invalidateQueries();
146
+ queryClient.invalidateQueries({
147
+ predicate: (query) => !query.meta?.persistent,
148
+ });
150
149
  buyModalStore.send({ type: 'close' });
151
150
  },
152
151
  skipNativeBalanceCheck,
@@ -162,11 +161,12 @@ export const getBuyCollectableParams = async ({
162
161
  contractId: transakContractId,
163
162
  },
164
163
  }),
164
+ successActionButtons: callbacks?.successActionButtons,
165
165
  } satisfies SelectPaymentSettings;
166
166
  };
167
167
 
168
168
  interface usePaymentModalParams {
169
- wallet: WalletInstance | undefined | null;
169
+ address: Address | undefined;
170
170
  quantity: number | undefined;
171
171
  marketplace: MarketplaceKind | undefined;
172
172
  collectable: TokenMetadata | undefined;
@@ -177,7 +177,7 @@ interface usePaymentModalParams {
177
177
 
178
178
  export const usePaymentModalParams = (args: usePaymentModalParams) => {
179
179
  const {
180
- wallet,
180
+ address,
181
181
  marketplace,
182
182
  collectable,
183
183
  checkoutOptions,
@@ -217,7 +217,7 @@ export const usePaymentModalParams = (args: usePaymentModalParams) => {
217
217
  const buyAnalyticsId = useBuyAnalyticsId();
218
218
 
219
219
  const queryEnabled =
220
- !!wallet &&
220
+ !!address &&
221
221
  !!marketplace &&
222
222
  !!collectable &&
223
223
  !!checkoutOptions &&
@@ -232,7 +232,7 @@ export const usePaymentModalParams = (args: usePaymentModalParams) => {
232
232
  getBuyCollectableParams({
233
233
  chainId,
234
234
  config,
235
- wallet,
235
+ address,
236
236
  collectionAddress,
237
237
  collectibleId,
238
238
  marketplace,
@@ -245,6 +245,7 @@ export const usePaymentModalParams = (args: usePaymentModalParams) => {
245
245
  callbacks: {
246
246
  onSuccess: onSuccess,
247
247
  onError: onError,
248
+ successActionButtons: buyModalProps.successActionButtons,
248
249
  },
249
250
  customCreditCardProviderCallback,
250
251
  skipNativeBalanceCheck,
@@ -9,6 +9,7 @@ import type {
9
9
  } from '../../../_internal';
10
10
  import type { useAnalytics } from '../../../_internal/databeat';
11
11
  import { flattenAnalyticsArgs } from '../../../_internal/databeat/utils';
12
+ import type { ActionButton } from '../_internal/types';
12
13
 
13
14
  export type CheckoutOptionsSalesContractProps = {
14
15
  chainId: number;
@@ -36,6 +37,7 @@ export type BuyModalBaseProps = {
36
37
  nativeTokenAddress?: Address;
37
38
  marketplaceType?: MarketplaceType;
38
39
  customCreditCardProviderCallback?: PaymentModalProps['customCreditCardProviderCallback'];
40
+ successActionButtons?: ActionButton[];
39
41
  };
40
42
 
41
43
  // Shop type modal props