@0xsequence/marketplace-sdk 0.9.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 (539) hide show
  1. package/.storybook/ConnectionStatus.tsx +289 -0
  2. package/.storybook/main.ts +82 -0
  3. package/.storybook/preview.tsx +106 -0
  4. package/.storybook/vitest.setup.ts +6 -0
  5. package/CHANGELOG.md +135 -8
  6. package/compile-tailwind.js +54 -0
  7. package/dist/{CalendarIcon-DbQ7Vxcw.js → BellIcon-Cb9YEUzJ.js} +27 -27
  8. package/dist/BellIcon-Cb9YEUzJ.js.map +1 -0
  9. package/dist/CollectibleCard-CYyWzk6u.d.ts +8 -0
  10. package/dist/{_internal-BgWcRIak.js → _internal-DslqcNC1.js} +1 -1
  11. package/dist/{_internal-BgWcRIak.js.map → _internal-DslqcNC1.js.map} +1 -1
  12. package/dist/{alien_swap-B_76IMma.js → alien_swap-DJ98gZQp.js} +1 -1
  13. package/dist/{alien_swap-B_76IMma.js.map → alien_swap-DJ98gZQp.js.map} +1 -1
  14. package/dist/{api-DTIan01C.js → api-BmEQfSQa.js} +17 -14
  15. package/dist/api-BmEQfSQa.js.map +1 -0
  16. package/dist/{aqua-xyz-CMN_TFY5.js → aqua-xyz-n1PcCCZ0.js} +1 -1
  17. package/dist/{aqua-xyz-CMN_TFY5.js.map → aqua-xyz-n1PcCCZ0.js.map} +1 -1
  18. package/dist/{aura-Cye_TuHj.js → aura-Bevk_YkS.js} +1 -1
  19. package/dist/{aura-Cye_TuHj.js.map → aura-Bevk_YkS.js.map} +1 -1
  20. package/dist/{blur-DWDMyMpK.js → blur-B5sHErx5.js} +1 -1
  21. package/dist/{blur-DWDMyMpK.js.map → blur-B5sHErx5.js.map} +1 -1
  22. package/dist/builder-api-BFuZNOaN.js.map +1 -1
  23. package/dist/builder.gen-B9wR2nvF.js.map +1 -1
  24. package/dist/{coinbase-ByA_XRB0.js → coinbase-D30W-lxA.js} +1 -1
  25. package/dist/{coinbase-ByA_XRB0.js.map → coinbase-D30W-lxA.js.map} +1 -1
  26. package/dist/contracts-DPHFT2TA.js +97 -0
  27. package/dist/contracts-DPHFT2TA.js.map +1 -0
  28. package/dist/{wagmi-CDzEQbfk.js → create-config-6uynwTeb.js} +20 -10
  29. package/dist/create-config-6uynwTeb.js.map +1 -0
  30. package/dist/{new-marketplace-types-Bfis0U4J.d.ts → create-config-lLSrnkbb.d.ts} +554 -166
  31. package/dist/{element-b77CyXIZ.js → element-C2NJexro.js} +1 -1
  32. package/dist/{element-b77CyXIZ.js.map → element-C2NJexro.js.map} +1 -1
  33. package/dist/filters-B8XS4tFH.d.ts +31 -0
  34. package/dist/{foundation-DbOrKP9Y.js → foundation-QgY1lvUj.js} +1 -1
  35. package/dist/{foundation-DbOrKP9Y.js.map → foundation-QgY1lvUj.js.map} +1 -1
  36. package/dist/index-BGJXqdg6.d.ts +131 -0
  37. package/dist/index-BuY_NKSX.d.ts +222 -0
  38. package/dist/{index-21LE7OhL.d.ts → index-ByW08-Z7.d.ts} +6 -3
  39. package/dist/index-C7xKVIr4.d.ts +447 -0
  40. package/dist/index-CIkpYltz.d.ts +61 -0
  41. package/dist/index-CQnGIGb5.d.ts +346 -0
  42. package/dist/{index-DaE5ZNHb.d.ts → index-CY5UEX4h.d.ts} +5 -5
  43. package/dist/{index-DXMfTZ1F.d.ts → index-ChSKFOMx.d.ts} +1 -1
  44. package/dist/{index-D5v5iluA.d.ts → index-CtF7EE2z.d.ts} +1 -1
  45. package/dist/index-D2HohSwO.d.ts +293 -0
  46. package/dist/index-D71J5Ghd.d.ts +813 -0
  47. package/dist/{index-ByznONYE.d.ts → index-DNU9xoGK.d.ts} +28 -64
  48. package/dist/index-DX0Vm8HY.d.ts +2541 -0
  49. package/dist/index-DonXiSg2.d.ts +902 -0
  50. package/dist/index-Dpyp7fQz.d.ts +298 -0
  51. package/dist/index-PSPpUxCE.d.ts +18 -0
  52. package/dist/{index-BL9RUSEK.d.ts → index-QxxS6f9r.d.ts} +1 -1
  53. package/dist/index-ThUIs-Sy.d.ts +306 -0
  54. package/dist/index.d.ts +8 -10
  55. package/dist/index.js +12 -9
  56. package/dist/listCollectiblesPaginated--AgXjajA.d.ts +166 -0
  57. package/dist/listCollections-Bbzbz7qW.d.ts +624 -0
  58. package/dist/{looks-rare-C1VqNcSM.js → looks-rare-CMVPny4v.js} +1 -1
  59. package/dist/{looks-rare-C1VqNcSM.js.map → looks-rare-CMVPny4v.js.map} +1 -1
  60. package/dist/lowestListing-BQHfQpfg.d.ts +144 -0
  61. package/dist/{magic-eden-ea_AGCZr.js → magic-eden-IrWp2ZXk.js} +1 -1
  62. package/dist/{magic-eden-ea_AGCZr.js.map → magic-eden-IrWp2ZXk.js.map} +1 -1
  63. package/dist/{manifold-8y8J2sjT.js → manifold-DeOE-p2G.js} +1 -1
  64. package/dist/{manifold-8y8J2sjT.js.map → manifold-DeOE-p2G.js.map} +1 -1
  65. package/dist/marketCurrencies-CmOMCCOr.d.ts +122 -0
  66. package/dist/{marketplace-nwnZv9Cb.js → marketplace-B5Z8G03R.js} +1 -1
  67. package/dist/{marketplace-nwnZv9Cb.js.map → marketplace-B5Z8G03R.js.map} +1 -1
  68. package/dist/{marketplace-logos-CSeGcPW4.js → marketplace-logos-D8t86gsW.js} +21 -21
  69. package/dist/{marketplace-logos-CSeGcPW4.js.map → marketplace-logos-D8t86gsW.js.map} +1 -1
  70. package/dist/{marketplace.gen-BSDIX7NZ.js → marketplace.gen-JzNYpM0U.js} +3 -3
  71. package/dist/marketplace.gen-JzNYpM0U.js.map +1 -0
  72. package/dist/{marketplaceConfig-C6X1SUik.js → marketplaceConfig-sNh-MA5M.js} +15 -4
  73. package/dist/marketplaceConfig-sNh-MA5M.js.map +1 -0
  74. package/dist/{mintify-LA68TzWg.js → mintify-DG3GrljJ.js} +1 -1
  75. package/dist/{mintify-LA68TzWg.js.map → mintify-DG3GrljJ.js.map} +1 -1
  76. package/dist/network-DnBEe1Ur.js +15 -0
  77. package/dist/network-DnBEe1Ur.js.map +1 -0
  78. package/dist/{nftx-D3Tc8nzd.js → nftx-B3LH-ZYM.js} +1 -1
  79. package/dist/{nftx-D3Tc8nzd.js.map → nftx-B3LH-ZYM.js.map} +1 -1
  80. package/dist/{okx-hbqg6oIJ.js → okx-CRFLrT3Z.js} +1 -1
  81. package/dist/{okx-hbqg6oIJ.js.map → okx-CRFLrT3Z.js.map} +1 -1
  82. package/dist/{open-sea-BccuK8-t.js → open-sea-cOpfl366.js} +1 -1
  83. package/dist/{open-sea-BccuK8-t.js.map → open-sea-cOpfl366.js.map} +1 -1
  84. package/dist/primary-sale-CLjXRrDj.js +3048 -0
  85. package/dist/primary-sale-CLjXRrDj.js.map +1 -0
  86. package/dist/queries-BYT4GJw3.js +1478 -0
  87. package/dist/queries-BYT4GJw3.js.map +1 -0
  88. package/dist/query-BTe7Wkrs.d.ts +31 -0
  89. package/dist/{rarible-BgTwwj9g.js → rarible-guwUx4cn.js} +1 -1
  90. package/dist/{rarible-BgTwwj9g.js.map → rarible-guwUx4cn.js.map} +1 -1
  91. package/dist/react/_internal/api/index.d.ts +2 -4
  92. package/dist/react/_internal/api/index.js +5 -4
  93. package/dist/react/_internal/databeat/index.d.ts +2 -73
  94. package/dist/react/_internal/databeat/index.js +21 -18
  95. package/dist/react/_internal/index.d.ts +2 -7
  96. package/dist/react/_internal/index.js +8 -6
  97. package/dist/react/_internal/wagmi/index.d.ts +2 -4
  98. package/dist/react/_internal/wagmi/index.js +4 -3
  99. package/dist/react/hooks/config/index.d.ts +9 -0
  100. package/dist/react/hooks/config/index.js +26 -0
  101. package/dist/react/hooks/contracts/index.d.ts +7 -0
  102. package/dist/react/hooks/contracts/index.js +16 -0
  103. package/dist/react/hooks/data/collectibles/index.d.ts +5 -0
  104. package/dist/react/hooks/data/collectibles/index.js +26 -0
  105. package/dist/react/hooks/data/collections/index.d.ts +11 -0
  106. package/dist/react/hooks/data/collections/index.js +26 -0
  107. package/dist/react/hooks/data/index.d.ts +29 -0
  108. package/dist/react/hooks/data/index.js +26 -0
  109. package/dist/react/hooks/data/inventory/index.d.ts +29 -0
  110. package/dist/react/hooks/data/inventory/index.js +26 -0
  111. package/dist/react/hooks/data/market/index.d.ts +12 -0
  112. package/dist/react/hooks/data/market/index.js +26 -0
  113. package/dist/react/hooks/data/orders/index.d.ts +11 -0
  114. package/dist/react/hooks/data/orders/index.js +26 -0
  115. package/dist/react/hooks/data/primary-sales/index.d.ts +29 -0
  116. package/dist/react/hooks/data/primary-sales/index.js +26 -0
  117. package/dist/react/hooks/data/tokens/index.d.ts +5 -0
  118. package/dist/react/hooks/data/tokens/index.js +26 -0
  119. package/dist/react/hooks/index.d.ts +29 -18
  120. package/dist/react/hooks/index.js +22 -19
  121. package/dist/react/hooks/transactions/index.d.ts +3 -0
  122. package/dist/react/hooks/transactions/index.js +26 -0
  123. package/dist/react/hooks/ui/index.d.ts +5 -0
  124. package/dist/react/hooks/ui/index.js +26 -0
  125. package/dist/react/hooks/utils/index.d.ts +29 -0
  126. package/dist/react/hooks/utils/index.js +26 -0
  127. package/dist/react/index.d.ts +29 -18
  128. package/dist/react/index.js +22 -19
  129. package/dist/react/queries/index.d.ts +16 -8
  130. package/dist/react/queries/index.js +17 -15
  131. package/dist/react/ssr/index.d.ts +7 -9
  132. package/dist/react/ssr/index.js +8 -6
  133. package/dist/react/ssr/index.js.map +1 -1
  134. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +4 -8
  135. package/dist/react/ui/components/marketplace-collectible-card/index.js +21 -18
  136. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -7
  137. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +8 -6
  138. package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
  139. package/dist/react/ui/components/marketplace-logos/index.js +1 -1
  140. package/dist/react/ui/icons/index.js +11 -9
  141. package/dist/react/ui/index.d.ts +4 -8
  142. package/dist/react/ui/index.js +21 -18
  143. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +1 -25
  144. package/dist/react/ui/modals/_internal/components/actionModal/index.js +22 -19
  145. package/dist/react/utils/index.d.ts +19 -0
  146. package/dist/react/utils/index.js +9 -0
  147. package/dist/{react-BbHBl6gg.css → react-CbqXKOpt.css} +1 -1
  148. package/dist/{react-BbHBl6gg.css.map → react-CbqXKOpt.css.map} +1 -1
  149. package/dist/{react-DAIicQPT.js → react-Ceq8mamy.js} +11203 -7647
  150. package/dist/react-Ceq8mamy.js.map +1 -0
  151. package/dist/{sequence-Do3kzb4J.js → sequence-Dt2Xo7Fa.js} +1 -1
  152. package/dist/{sequence-Do3kzb4J.js.map → sequence-Dt2Xo7Fa.js.map} +1 -1
  153. package/dist/{index.css → styles/index.css} +679 -127
  154. package/dist/{sudo-swap-B6vPKxBz.js → sudo-swap-CGoARONs.js} +1 -1
  155. package/dist/{sudo-swap-B6vPKxBz.js.map → sudo-swap-CGoARONs.js.map} +1 -1
  156. package/dist/{super-rare-eCm1SE6O.js → super-rare-NeQtZjcn.js} +1 -1
  157. package/dist/{super-rare-eCm1SE6O.js.map → super-rare-NeQtZjcn.js.map} +1 -1
  158. package/dist/{token-Da4TdyUk.js → token-D9gZVqbX.js} +1 -1
  159. package/dist/{token-Da4TdyUk.js.map → token-D9gZVqbX.js.map} +1 -1
  160. package/dist/tokenSupplies-DXtkRYNO.d.ts +147 -0
  161. package/dist/{transaction-CcVViHEL.js → transaction-CC2KxNF6.js} +2 -17
  162. package/dist/transaction-CC2KxNF6.js.map +1 -0
  163. package/dist/types/index.d.ts +2 -3
  164. package/dist/types/index.js +2 -2
  165. package/dist/{CollectibleCard-C8Ae64Ab.d.ts → types-BlCa0TVE.d.ts} +9 -11
  166. package/dist/{types-DwWE6xOF.js → types-G2PWxiJR.js} +1 -1
  167. package/dist/{types-DwWE6xOF.js.map → types-G2PWxiJR.js.map} +1 -1
  168. package/dist/utils/abi/index.d.ts +5 -5
  169. package/dist/utils/abi/index.js +5 -5
  170. package/dist/utils/abi/marketplace/index.d.ts +1 -1
  171. package/dist/utils/abi/marketplace/index.js +1 -1
  172. package/dist/utils/abi/primary-sale/index.d.ts +2 -2
  173. package/dist/utils/abi/primary-sale/index.js +2 -2
  174. package/dist/utils/abi/token/index.d.ts +1 -1
  175. package/dist/utils/abi/token/index.js +1 -1
  176. package/dist/utils/index.d.ts +7 -8
  177. package/dist/utils/index.js +11 -9
  178. package/dist/{utils-CW2NA5KG.js → utils-CKJd-CRf.js} +4 -11
  179. package/dist/utils-CKJd-CRf.js.map +1 -0
  180. package/dist/{utils-BPYfgDSL.js → utils-wquIhK6T.js} +5 -6
  181. package/dist/utils-wquIhK6T.js.map +1 -0
  182. package/dist/waitForTransactionReceipt-DZxAuR9N.js +27 -0
  183. package/dist/waitForTransactionReceipt-DZxAuR9N.js.map +1 -0
  184. package/dist/{x2y2-DD17tT91.js → x2y2-CQdg24VP.js} +1 -1
  185. package/dist/{x2y2-DD17tT91.js.map → x2y2-CQdg24VP.js.map} +1 -1
  186. package/dist/{zora-BpSG9UzS.js → zora-DdEydy4L.js} +1 -1
  187. package/dist/{zora-BpSG9UzS.js.map → zora-DdEydy4L.js.map} +1 -1
  188. package/eslint.config.mjs +4 -0
  189. package/package.json +55 -39
  190. package/postcss.config.mjs +73 -0
  191. package/public/mockServiceWorker.js +344 -0
  192. package/src/index.ts +1 -0
  193. package/src/react/_internal/api/__mocks__/builder.msw.ts +6 -0
  194. package/src/react/_internal/api/__mocks__/indexer.msw.ts +16 -0
  195. package/src/react/_internal/api/__mocks__/laos.msw.ts +387 -0
  196. package/src/react/_internal/api/__mocks__/marketplace.msw.ts +2 -0
  197. package/src/react/_internal/api/__mocks__/metadata.msw.ts +12 -1
  198. package/src/react/_internal/api/__tests__/laos-api.test.ts +756 -0
  199. package/src/react/_internal/api/builder.gen.ts +11 -7
  200. package/src/react/_internal/api/laos-api.ts +3 -0
  201. package/src/react/_internal/api/marketplace.gen.ts +5 -3
  202. package/src/react/_internal/api/query-keys.ts +12 -4
  203. package/src/react/_internal/api/services.ts +2 -14
  204. package/src/react/_internal/databeat/index.ts +15 -14
  205. package/src/react/_internal/databeat/types.ts +23 -0
  206. package/src/react/_internal/databeat/utils.ts +26 -0
  207. package/src/react/_internal/query-meta.ts +3 -0
  208. package/src/react/_internal/utils.ts +6 -4
  209. package/src/react/_internal/wagmi/create-config.ts +29 -14
  210. package/src/react/_internal/wagmi/get-connectors.ts +1 -1
  211. package/src/react/hooks/{__tests__ → config}/__snapshots__/useMarketplaceConfig.test.tsx.snap +6 -0
  212. package/src/react/hooks/config/index.ts +3 -0
  213. package/src/react/hooks/{useConfig.tsx → config/useConfig.tsx} +2 -2
  214. package/src/react/hooks/config/useConnectorMetadata.tsx +16 -0
  215. package/src/react/hooks/{__tests__ → config}/useMarketplaceConfig.test.tsx +1 -1
  216. package/src/react/hooks/{useMarketplaceConfig.tsx → config/useMarketplaceConfig.tsx} +2 -2
  217. package/src/react/hooks/contracts/index.ts +1 -0
  218. package/src/react/hooks/contracts/useSalesContractABI.ts +174 -0
  219. package/src/react/hooks/data/collectibles/index.ts +6 -0
  220. package/src/react/hooks/data/collectibles/useBalanceOfCollectible.laos.test.tsx +367 -0
  221. package/src/react/hooks/{__tests__ → data/collectibles}/useBalanceOfCollectible.test.tsx +2 -2
  222. package/src/react/hooks/{useBalanceOfCollectible.tsx → data/collectibles/useBalanceOfCollectible.tsx} +4 -4
  223. package/src/react/hooks/{__tests__ → data/collectibles}/useCollectible.test.tsx +3 -3
  224. package/src/react/hooks/{useCollectible.tsx → data/collectibles/useCollectible.tsx} +3 -3
  225. package/src/react/hooks/{__tests__ → data/collectibles}/useCountOfCollectables.test.tsx +4 -4
  226. package/src/react/hooks/{useCountOfCollectables.tsx → data/collectibles/useCountOfCollectables.tsx} +3 -3
  227. package/src/react/hooks/{__tests__ → data/collectibles}/useListCollectibleActivities.test.tsx +3 -3
  228. package/src/react/hooks/{useListCollectibleActivities.tsx → data/collectibles/useListCollectibleActivities.tsx} +3 -3
  229. package/src/react/hooks/{__tests__ → data/collectibles}/useListCollectibles.test.tsx +5 -6
  230. package/src/react/hooks/{useListCollectibles.tsx → data/collectibles/useListCollectibles.tsx} +3 -3
  231. package/src/react/hooks/{__tests__ → data/collectibles}/useListCollectiblesPaginated.test.tsx +4 -4
  232. package/src/react/hooks/{useListCollectiblesPaginated.tsx → data/collectibles/useListCollectiblesPaginated.tsx} +3 -3
  233. package/src/react/hooks/{__tests__ → data/collections}/__snapshots__/useListCollections.test.tsx.snap +10 -0
  234. package/src/react/hooks/data/collections/index.ts +6 -0
  235. package/src/react/hooks/{__tests__ → data/collections}/useCollection.test.tsx +2 -3
  236. package/src/react/hooks/{useCollection.tsx → data/collections/useCollection.tsx} +3 -3
  237. package/src/react/hooks/{__tests__ → data/collections}/useCollectionBalanceDetails.test.tsx +19 -2
  238. package/src/react/hooks/data/collections/useCollectionBalanceDetails.tsx +106 -0
  239. package/src/react/hooks/{__tests__ → data/collections}/useCollectionDetails.test.tsx +2 -2
  240. package/src/react/hooks/{useCollectionDetails.ts → data/collections/useCollectionDetails.ts} +3 -3
  241. package/src/react/hooks/{__tests__ → data/collections}/useCollectionDetailsPolling.test.tsx +14 -6
  242. package/src/react/hooks/{useCollectionDetailsPolling.tsx → data/collections/useCollectionDetailsPolling.tsx} +5 -9
  243. package/src/react/hooks/{__tests__ → data/collections}/useListCollectionActivities.test.tsx +5 -5
  244. package/src/react/hooks/{useListCollectionActivities.tsx → data/collections/useListCollectionActivities.tsx} +3 -3
  245. package/src/react/hooks/{__tests__ → data/collections}/useListCollections.test.tsx +5 -4
  246. package/src/react/hooks/data/collections/useListCollections.tsx +80 -0
  247. package/src/react/hooks/data/index.ts +6 -0
  248. package/src/react/hooks/data/inventory/index.ts +1 -0
  249. package/src/react/hooks/{__tests__ → data/inventory}/useInventory.test.tsx +4 -4
  250. package/src/react/hooks/{useInventory.tsx → data/inventory/useInventory.tsx} +7 -4
  251. package/src/react/hooks/data/market/index.ts +3 -0
  252. package/src/react/hooks/{__tests__ → data/market}/useCurrency.test.tsx +4 -4
  253. package/src/react/hooks/{useCurrency.tsx → data/market/useCurrency.tsx} +3 -3
  254. package/src/react/hooks/{__tests__ → data/market}/useListMarketCardData.test.tsx +10 -14
  255. package/src/react/hooks/{useListMarketCardData.tsx → data/market/useListMarketCardData.tsx} +8 -7
  256. package/src/react/hooks/{__tests__ → data/market}/useMarketCurrencies.test.tsx +5 -5
  257. package/src/react/hooks/{useMarketCurrencies.tsx → data/market/useMarketCurrencies.tsx} +3 -3
  258. package/src/react/hooks/data/orders/index.ts +7 -0
  259. package/src/react/hooks/{__tests__ → data/orders}/useCountListingsForCollectible.test.tsx +2 -2
  260. package/src/react/hooks/{useCountListingsForCollectible.tsx → data/orders/useCountListingsForCollectible.tsx} +3 -3
  261. package/src/react/hooks/{__tests__ → data/orders}/useCountOffersForCollectible.test.tsx +2 -2
  262. package/src/react/hooks/{useCountOffersForCollectible.tsx → data/orders/useCountOffersForCollectible.tsx} +3 -3
  263. package/src/react/hooks/{__tests__ → data/orders}/useFloorOrder.test.tsx +3 -3
  264. package/src/react/hooks/{useFloorOrder.tsx → data/orders/useFloorOrder.tsx} +3 -3
  265. package/src/react/hooks/{__tests__ → data/orders}/useHighestOffer.test.tsx +3 -3
  266. package/src/react/hooks/{useHighestOffer.tsx → data/orders/useHighestOffer.tsx} +3 -3
  267. package/src/react/hooks/{__tests__ → data/orders}/useListListingsForCollectible.test.tsx +6 -6
  268. package/src/react/hooks/{useListListingsForCollectible.tsx → data/orders/useListListingsForCollectible.tsx} +3 -3
  269. package/src/react/hooks/{__tests__ → data/orders}/useListOffersForCollectible.test.tsx +5 -5
  270. package/src/react/hooks/{useListOffersForCollectible.tsx → data/orders/useListOffersForCollectible.tsx} +4 -4
  271. package/src/react/hooks/{__tests__ → data/orders}/useLowestListing.test.tsx +5 -5
  272. package/src/react/hooks/{useLowestListing.tsx → data/orders/useLowestListing.tsx} +3 -3
  273. package/src/react/hooks/data/primary-sales/index.ts +6 -0
  274. package/src/react/hooks/{useCountOfPrimarySaleItems.tsx → data/primary-sales/useCountOfPrimarySaleItems.tsx} +2 -2
  275. package/src/react/hooks/data/primary-sales/useErc721SalesData.tsx +184 -0
  276. package/src/react/hooks/data/primary-sales/useGetCountOfPrimarySaleItems.tsx +48 -0
  277. package/src/react/hooks/{useList1155ShopCardData.tsx → data/primary-sales/useList1155ShopCardData.tsx} +17 -8
  278. package/src/react/hooks/data/primary-sales/useList721ShopCardData.tsx +183 -0
  279. package/src/react/hooks/data/primary-sales/useListPrimarySaleItems.tsx +66 -0
  280. package/src/react/hooks/data/tokens/index.ts +5 -0
  281. package/src/react/hooks/{__tests__ → data/tokens}/useCurrencyBalance.test.tsx +9 -5
  282. package/src/react/hooks/data/tokens/useCurrencyBalance.tsx +137 -0
  283. package/src/react/hooks/data/tokens/useGetTokenRanges.test.tsx +111 -0
  284. package/src/react/hooks/data/tokens/useGetTokenRanges.tsx +94 -0
  285. package/src/react/hooks/{__tests__ → data/tokens}/useListBalances.test.tsx +2 -2
  286. package/src/react/hooks/{useListBalances.tsx → data/tokens/useListBalances.tsx} +5 -5
  287. package/src/react/hooks/data/tokens/useListTokenMetadata.test.tsx +137 -0
  288. package/src/react/hooks/{useListTokenMetadata.tsx → data/tokens/useListTokenMetadata.tsx} +3 -3
  289. package/src/react/hooks/data/tokens/useSearchTokenMetadata.test.tsx +284 -0
  290. package/src/react/hooks/data/tokens/useSearchTokenMetadata.tsx +186 -0
  291. package/src/react/hooks/data/tokens/useTokenSupplies.ts +81 -0
  292. package/src/react/hooks/index.ts +18 -50
  293. package/src/react/hooks/transactions/index.ts +9 -0
  294. package/src/react/hooks/{__tests__ → transactions}/useCancelOrder.test.tsx +53 -85
  295. package/src/react/hooks/{useCancelOrder.tsx → transactions/useCancelOrder.tsx} +4 -4
  296. package/src/react/hooks/{__tests__/useCancelTransactionSteps.test.tsx → transactions/useCancelTransactionSteps.test.tsx.bak} +3 -52
  297. package/src/react/hooks/transactions/useCancelTransactionSteps.tsx +193 -0
  298. package/src/react/hooks/{__tests__ → transactions}/useGenerateCancelTransaction.test.tsx +2 -2
  299. package/src/react/hooks/{useGenerateCancelTransaction.tsx → transactions/useGenerateCancelTransaction.tsx} +5 -5
  300. package/src/react/hooks/{__tests__ → transactions}/useGenerateListingTransaction.test.tsx +2 -2
  301. package/src/react/hooks/{useGenerateListingTransaction.tsx → transactions/useGenerateListingTransaction.tsx} +5 -5
  302. package/src/react/hooks/{__tests__ → transactions}/useGenerateOfferTransaction.test.tsx +7 -45
  303. package/src/react/hooks/{useGenerateOfferTransaction.tsx → transactions/useGenerateOfferTransaction.tsx} +7 -7
  304. package/src/react/hooks/{__tests__ → transactions}/useGenerateSellTransaction.test.tsx +3 -7
  305. package/src/react/hooks/{useGenerateSellTransaction.tsx → transactions/useGenerateSellTransaction.tsx} +4 -4
  306. package/src/react/hooks/transactions/useOrderSteps.tsx +189 -0
  307. package/src/react/hooks/transactions/useProcessStep.test.tsx +272 -0
  308. package/src/react/hooks/transactions/useProcessStep.ts +95 -0
  309. package/src/react/hooks/transactions/useTransferTokens.test.tsx +469 -0
  310. package/src/react/hooks/{useTransferTokens.tsx → transactions/useTransferTokens.tsx} +5 -5
  311. package/src/react/hooks/ui/index.ts +3 -0
  312. package/src/react/hooks/{useFilterState.tsx → ui/useFilterState.tsx} +1 -1
  313. package/src/react/hooks/{__tests__ → ui}/useFilters.test.tsx +2 -3
  314. package/src/react/hooks/ui/useFilters.tsx +178 -0
  315. package/src/react/hooks/ui/useOpenConnectModal.tsx +9 -0
  316. package/src/react/hooks/util/optimisticCancelUpdates.ts +1 -0
  317. package/src/react/hooks/utils/index.ts +9 -0
  318. package/src/react/hooks/{__tests__ → utils}/useAutoSelectFeeOption.test.tsx +7 -3
  319. package/src/react/hooks/{useAutoSelectFeeOption.tsx → utils/useAutoSelectFeeOption.tsx} +2 -2
  320. package/src/react/hooks/utils/useCheckoutOptions.test.tsx +162 -0
  321. package/src/react/hooks/utils/useCheckoutOptions.tsx +98 -0
  322. package/src/react/hooks/{__tests__ → utils}/useCheckoutOptionsSalesContract.test.tsx +42 -61
  323. package/src/react/hooks/utils/useCheckoutOptionsSalesContract.tsx +108 -0
  324. package/src/react/hooks/{__tests__ → utils}/useComparePrices.test.tsx +1 -1
  325. package/src/react/hooks/utils/useComparePrices.tsx +102 -0
  326. package/src/react/hooks/{__tests__ → utils}/useConvertPriceToUSD.test.tsx +4 -4
  327. package/src/react/hooks/utils/useConvertPriceToUSD.tsx +96 -0
  328. package/src/react/hooks/utils/useEnsureCorrectChain.ts +74 -0
  329. package/src/react/hooks/{__tests__ → utils}/useRoyalty.test.tsx +1 -1
  330. package/src/react/hooks/{useRoyalty.tsx → utils/useRoyalty.tsx} +3 -3
  331. package/src/react/hooks/utils/useSwitchChainWithModal.ts +38 -0
  332. package/src/react/index.ts +1 -2
  333. package/src/react/providers/index.tsx +110 -0
  334. package/src/react/providers/modal-provider.tsx +43 -0
  335. package/src/react/{__tests__ → providers}/provider.test.tsx +5 -4
  336. package/src/react/providers/shadow-root.tsx +63 -0
  337. package/src/react/providers/theme-provider.tsx +29 -0
  338. package/src/react/queries/__tests__/balanceOfCollectible.laos.test.ts +123 -0
  339. package/src/react/queries/__tests__/inventory.laos.test.ts +496 -0
  340. package/src/react/queries/balanceOfCollectible.ts +7 -4
  341. package/src/react/queries/checkoutOptions.ts +85 -0
  342. package/src/react/queries/checkoutOptionsSalesContract.ts +89 -0
  343. package/src/react/queries/collectionBalanceDetails.ts +92 -0
  344. package/src/react/queries/comparePrices.ts +108 -0
  345. package/src/react/queries/convertPriceToUSD.ts +92 -0
  346. package/src/react/{hooks/useFilters.tsx → queries/filters.ts} +51 -48
  347. package/src/react/queries/getTokenRanges.ts +62 -0
  348. package/src/react/queries/index.ts +22 -0
  349. package/src/react/queries/inventory.ts +6 -0
  350. package/src/react/queries/listBalances.ts +4 -3
  351. package/src/react/queries/listCollections.ts +7 -3
  352. package/src/react/queries/listTokenMetadata.ts +2 -2
  353. package/src/react/queries/marketplaceConfig.ts +11 -2
  354. package/src/react/queries/primarySaleItems.ts +80 -0
  355. package/src/react/queries/primarySaleItemsCount.ts +64 -0
  356. package/src/react/queries/searchTokenMetadata.ts +87 -0
  357. package/src/react/queries/tokenSupplies.ts +101 -0
  358. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +6 -0
  359. package/src/react/ssr/__tests__/create-ssr-client.test.ts +1 -1
  360. package/src/react/ui/components/_internals/action-button/ActionButton.stories.tsx +296 -0
  361. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +66 -66
  362. package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +56 -18
  363. package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +4 -11
  364. package/src/react/ui/components/_internals/action-button/__tests__/OwnerActions.test.tsx +5 -12
  365. package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +32 -16
  366. package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +7 -7
  367. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +4 -1
  368. package/src/react/ui/components/_internals/action-button/components/OwnerActions.tsx +4 -4
  369. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +15 -11
  370. package/src/react/ui/components/_internals/action-button/store.ts +44 -34
  371. package/src/react/ui/components/_internals/custom-select/CustomSelect.stories.tsx +582 -0
  372. package/src/react/ui/components/_internals/pill/Pill.stories.tsx +83 -0
  373. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +11 -4
  374. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +7 -4
  375. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +4 -3
  376. package/src/react/ui/components/marketplace-collectible-card/types.ts +7 -5
  377. package/src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts +4 -7
  378. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +1 -1
  379. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +11 -4
  380. package/src/react/ui/components/marketplace-logos/marketplace-logos.stories.tsx +199 -0
  381. package/src/react/ui/components/media/Media.stories.tsx +642 -0
  382. package/src/react/ui/components/media/Media.tsx +24 -19
  383. package/src/react/ui/components/media/types.ts +6 -0
  384. package/src/react/ui/index.ts +1 -1
  385. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +25 -25
  386. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +8 -2
  387. package/src/react/ui/modals/BuyModal/__tests__/ERC721ShopModal.test.tsx +1 -1
  388. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +7 -1
  389. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +9 -1
  390. package/src/react/ui/modals/BuyModal/components/BuyModalRouter.tsx +5 -5
  391. package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +8 -8
  392. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +44 -19
  393. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +3 -0
  394. package/src/react/ui/modals/BuyModal/components/ERC721BuyModal.tsx +4 -4
  395. package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +18 -30
  396. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +43 -27
  397. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC721SalePaymentParams.test.tsx +13 -2
  398. package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +7 -7
  399. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +17 -3
  400. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +19 -8
  401. package/src/react/ui/modals/BuyModal/hooks/useLoadData.ts +5 -9
  402. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +23 -15
  403. package/src/react/ui/modals/BuyModal/index.tsx +9 -1
  404. package/src/react/ui/modals/BuyModal/store.ts +28 -0
  405. package/src/react/ui/modals/CreateListingModal/Modal.tsx +39 -16
  406. package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +3 -24
  407. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +5 -9
  408. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +43 -83
  409. package/src/react/ui/modals/CreateListingModal/store.ts +3 -3
  410. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +34 -17
  411. package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +88 -62
  412. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +9 -7
  413. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +2 -2
  414. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +47 -84
  415. package/src/react/ui/modals/MakeOfferModal/store.ts +3 -3
  416. package/src/react/ui/modals/SellModal/Modal.tsx +18 -17
  417. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +8 -30
  418. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +7 -7
  419. package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +39 -65
  420. package/src/react/ui/modals/SellModal/store.ts +3 -3
  421. package/src/react/ui/modals/TransferModal/__tests__/__snapshots__/store.test.ts.snap +17 -0
  422. package/src/react/ui/modals/TransferModal/__tests__/store.test.ts +366 -0
  423. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/__tests__/useHandleTransfer.test.tsx +412 -0
  424. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +51 -48
  425. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TransferButton.tsx +54 -44
  426. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/WalletAddressInput.tsx +9 -8
  427. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +31 -35
  428. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/useHandleTransfer.tsx +22 -13
  429. package/src/react/ui/modals/TransferModal/index.tsx +36 -53
  430. package/src/react/ui/modals/TransferModal/messages.ts +1 -1
  431. package/src/react/ui/modals/TransferModal/store.ts +122 -0
  432. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +116 -136
  433. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +15 -44
  434. package/src/react/ui/modals/_internal/components/actionModal/index.ts +0 -1
  435. package/src/react/ui/modals/_internal/components/calendar/index.tsx +0 -1
  436. package/src/react/ui/modals/_internal/components/currencyImage/index.tsx +10 -14
  437. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +14 -5
  438. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +24 -18
  439. package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +10 -10
  440. package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +8 -8
  441. package/src/react/ui/modals/_internal/components/priceInput/__tests__/PriceInput.test.tsx +13 -5
  442. package/src/react/ui/modals/_internal/components/priceInput/index.tsx +42 -27
  443. package/src/react/ui/modals/_internal/components/quantityInput/__tests__/index.test.tsx +164 -65
  444. package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +174 -20
  445. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +341 -42
  446. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/index.tsx +95 -101
  447. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/store.ts +72 -14
  448. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +30 -14
  449. package/src/react/ui/modals/_internal/components/tokenPreview/index.tsx +2 -2
  450. package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +2 -2
  451. package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +88 -89
  452. package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +36 -10
  453. package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +25 -26
  454. package/src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx +35 -21
  455. package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +91 -62
  456. package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +62 -48
  457. package/src/react/ui/modals/_internal/hooks/useSelectWaasFeeOptions.ts +3 -5
  458. package/src/react/ui/modals/_internal/types.ts +8 -2
  459. package/src/react/utils/index.ts +1 -0
  460. package/src/react/utils/waitForTransactionReceipt.ts +49 -0
  461. package/src/{index.css → styles/index.css} +6 -5
  462. package/src/styles/styles.ts +3275 -0
  463. package/src/types/sdk-config.ts +8 -1
  464. package/src/utils/_internal/error/transaction.ts +0 -10
  465. package/src/utils/abi/primary-sale/index.ts +4 -2
  466. package/src/utils/abi/primary-sale/{sequence-1155-sales-contract.ts → sequence-1155-sales-contract-v0.ts} +67 -58
  467. package/src/utils/abi/primary-sale/sequence-1155-sales-contract-v1.ts +546 -0
  468. package/src/utils/abi/primary-sale/{sequence-721-sales-contract.ts → sequence-721-sales-contract-v0.ts} +1 -1
  469. package/src/utils/abi/primary-sale/sequence-721-sales-contract-v1.ts +394 -0
  470. package/src/utils/network.ts +15 -0
  471. package/test/const.ts +1 -1
  472. package/test/globalSetup.ts +39 -11
  473. package/test/handlers.ts +465 -0
  474. package/test/index.ts +1 -0
  475. package/test/server-setup.ts +23 -0
  476. package/test/setup.ts +1 -1
  477. package/test/test-utils.tsx +46 -36
  478. package/tsconfig.json +1 -1
  479. package/tsdown.config.ts +12 -7
  480. package/vitest.shims.d.ts +2 -0
  481. package/vitest.storybook.config.js +33 -0
  482. package/dist/CalendarIcon-DbQ7Vxcw.js.map +0 -1
  483. package/dist/api-DTIan01C.js.map +0 -1
  484. package/dist/builder-api-C_zj5mr3.d.ts +0 -12
  485. package/dist/index-BQsgAvtX.d.ts +0 -2938
  486. package/dist/index-BUVWziLP.d.ts +0 -60
  487. package/dist/index-CLy8y5hm.d.ts +0 -1057
  488. package/dist/index-COt10OgI.d.ts +0 -24
  489. package/dist/index-DPNWNa7t.d.ts +0 -414
  490. package/dist/index-DsfCs3-x.d.ts +0 -122
  491. package/dist/index-DvpBZgor.d.ts +0 -1
  492. package/dist/index-dUb6wb4Y.d.ts +0 -22
  493. package/dist/marketplace.gen-BSDIX7NZ.js.map +0 -1
  494. package/dist/marketplaceConfig-C6X1SUik.js.map +0 -1
  495. package/dist/primary-sale-C55ALnfQ.js +0 -1264
  496. package/dist/primary-sale-C55ALnfQ.js.map +0 -1
  497. package/dist/queries-CUU65uYZ.js +0 -599
  498. package/dist/queries-CUU65uYZ.js.map +0 -1
  499. package/dist/react/hooks/options/index.d.ts +0 -4
  500. package/dist/react/hooks/options/index.js +0 -11
  501. package/dist/react-DAIicQPT.js.map +0 -1
  502. package/dist/transaction-CcVViHEL.js.map +0 -1
  503. package/dist/utils-BPYfgDSL.js.map +0 -1
  504. package/dist/utils-CW2NA5KG.js.map +0 -1
  505. package/dist/wagmi-CDzEQbfk.js.map +0 -1
  506. package/src/react/_internal/wallet/__tests__/wallet.test.ts +0 -416
  507. package/src/react/_internal/wallet/useWallet.ts +0 -52
  508. package/src/react/_internal/wallet/wallet.ts +0 -313
  509. package/src/react/hooks/__tests__/useGetTokenSuppliesMap.test.tsx +0 -104
  510. package/src/react/hooks/__tests__/useListTokenMetadata.test.tsx +0 -111
  511. package/src/react/hooks/options/index.ts +0 -1
  512. package/src/react/hooks/useCancelTransactionSteps.tsx +0 -249
  513. package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +0 -67
  514. package/src/react/hooks/useCollectionBalanceDetails.tsx +0 -79
  515. package/src/react/hooks/useComparePrices.tsx +0 -96
  516. package/src/react/hooks/useConvertPriceToUSD.tsx +0 -82
  517. package/src/react/hooks/useCurrencyBalance.tsx +0 -51
  518. package/src/react/hooks/useERC721SaleMintedTokens.tsx +0 -67
  519. package/src/react/hooks/useGetTokenRanges.tsx +0 -31
  520. package/src/react/hooks/useGetTokenSuppliesMap.tsx +0 -73
  521. package/src/react/hooks/useList1155SaleSupplies.tsx +0 -62
  522. package/src/react/hooks/useList721ShopCardData.tsx +0 -160
  523. package/src/react/hooks/useListCollections.tsx +0 -80
  524. package/src/react/hooks/useListPrimarySaleItems.ts +0 -102
  525. package/src/react/hooks/useListShopCardData.tsx +0 -70
  526. package/src/react/hooks/useShopCollectibleSaleData.tsx +0 -349
  527. package/src/react/hooks/useTokenSaleDetailsBatch.tsx +0 -134
  528. package/src/react/provider.tsx +0 -43
  529. package/src/react/queries/getTokenSuppliesMap.ts +0 -77
  530. package/src/react/ui/modals/TransferModal/_store.ts +0 -66
  531. package/src/react/ui/modals/_internal/components/actionModal/store.ts +0 -57
  532. package/src/react/ui/modals/_internal/components/quantityInput/QuantityInputBase.tsx +0 -166
  533. package/src/react/ui/modals/_internal/stores/accountModal.ts +0 -3
  534. package/src/react/ui/modals/modal-provider.tsx +0 -25
  535. package/test/mocks/wallet.ts +0 -63
  536. /package/dist/{abi-BKyRjVcZ.js → abi-Wr_aTZFi.js} +0 -0
  537. /package/dist/{index-C39K_8SG.d.ts → index-q7f-WDBS.d.ts} +0 -0
  538. /package/dist/{options-B4QN7Xou.js → wagmi-BhP3mdhP.js} +0 -0
  539. /package/src/react/hooks/{useGetReceiptFromHash.tsx → utils/useGetReceiptFromHash.tsx} +0 -0
@@ -1,249 +0,0 @@
1
- import type { Hex } from 'viem';
2
- import {
3
- ChainSwitchUserRejectedError,
4
- WalletInstanceNotFoundError,
5
- } from '../../utils/_internal/error/transaction';
6
- import {
7
- ExecuteType,
8
- getMarketplaceClient,
9
- getQueryClient,
10
- type MarketplaceKind,
11
- type Step,
12
- StepType,
13
- } from '../_internal';
14
- import type {
15
- SignatureStep,
16
- TransactionStep as walletTransactionStep,
17
- } from '../_internal/utils';
18
- import { useWallet } from '../_internal/wallet/useWallet';
19
- import { useSwitchChainModal } from '../ui/modals/_internal/components/switchChainModal';
20
- import type { ModalCallbacks } from '../ui/modals/_internal/types';
21
- import type { TransactionStep } from './useCancelOrder';
22
- import { useConfig } from './useConfig';
23
- import { useGenerateCancelTransaction } from './useGenerateCancelTransaction';
24
- import {
25
- invalidateQueriesOnCancel,
26
- updateQueriesOnCancel,
27
- } from './util/optimisticCancelUpdates';
28
-
29
- interface UseCancelTransactionStepsArgs {
30
- collectionAddress: string;
31
- chainId: number;
32
- callbacks?: ModalCallbacks;
33
- setSteps: React.Dispatch<React.SetStateAction<TransactionStep>>;
34
- onSuccess?: ({ hash, orderId }: { hash?: string; orderId?: string }) => void;
35
- onError?: (error: Error) => void;
36
- }
37
-
38
- export const useCancelTransactionSteps = ({
39
- collectionAddress,
40
- chainId,
41
- callbacks,
42
- setSteps,
43
- onSuccess,
44
- onError,
45
- }: UseCancelTransactionStepsArgs) => {
46
- const { show: showSwitchChainModal } = useSwitchChainModal();
47
- const { wallet, isLoading, isError } = useWallet();
48
- const walletIsInitialized = wallet && !isLoading && !isError;
49
- const sdkConfig = useConfig();
50
- const marketplaceClient = getMarketplaceClient(sdkConfig);
51
- const { generateCancelTransactionAsync } = useGenerateCancelTransaction({
52
- chainId,
53
- });
54
-
55
- const getWalletChainId = async () => {
56
- return await wallet?.getChainId();
57
- };
58
- const switchChain = async () => {
59
- await wallet?.switchChain(Number(chainId));
60
- };
61
- const checkAndSwitchChain = async () => {
62
- const walletChainId = await getWalletChainId();
63
- const isWaaS = wallet?.isWaaS;
64
- const chainIdMismatch = walletChainId !== Number(chainId);
65
-
66
- return new Promise((resolve, reject) => {
67
- if (chainIdMismatch) {
68
- if (isWaaS) {
69
- switchChain().then(resolve).catch(reject);
70
- } else {
71
- showSwitchChainModal({
72
- chainIdToSwitchTo: chainId,
73
- onSuccess: () => resolve({ chainId: chainId }),
74
- onError: (error) => reject(error),
75
- onClose: () => reject(new ChainSwitchUserRejectedError()),
76
- });
77
- }
78
- } else {
79
- resolve({ chainId: chainId });
80
- }
81
- });
82
- };
83
-
84
- const getCancelSteps = async ({
85
- orderId,
86
- marketplace,
87
- }: {
88
- orderId: string;
89
- marketplace: MarketplaceKind;
90
- }) => {
91
- try {
92
- const address = await wallet?.address();
93
-
94
- if (!address) {
95
- throw new Error('Wallet address not found');
96
- }
97
-
98
- const steps = await generateCancelTransactionAsync({
99
- chainId,
100
- collectionAddress,
101
- maker: address,
102
- marketplace,
103
- orderId,
104
- });
105
-
106
- return steps;
107
- } catch (error) {
108
- if (callbacks?.onError) {
109
- callbacks.onError(error as Error);
110
- } else {
111
- console.debug('onError callback not provided:', error);
112
- }
113
- }
114
- };
115
-
116
- const cancelOrder = async ({
117
- orderId,
118
- marketplace,
119
- }: {
120
- orderId: string;
121
- marketplace: MarketplaceKind;
122
- }) => {
123
- const queryClient = getQueryClient();
124
- if (!walletIsInitialized) {
125
- throw new WalletInstanceNotFoundError();
126
- }
127
-
128
- try {
129
- await checkAndSwitchChain();
130
-
131
- setSteps((prev) => ({
132
- ...prev,
133
- isExecuting: true,
134
- }));
135
-
136
- const cancelSteps = await getCancelSteps({
137
- orderId,
138
- marketplace,
139
- });
140
- const transactionStep = cancelSteps?.find(
141
- (step) => step.id === StepType.cancel,
142
- );
143
- const signatureStep = cancelSteps?.find(
144
- (step) => step.id === StepType.signEIP712,
145
- );
146
-
147
- console.debug('transactionStep', transactionStep);
148
- console.debug('signatureStep', signatureStep);
149
-
150
- if (!transactionStep && !signatureStep) {
151
- throw new Error('No transaction or signature step found');
152
- }
153
-
154
- let hash: Hex | undefined;
155
- let reservoirOrderId: string | undefined;
156
-
157
- if (transactionStep && wallet) {
158
- hash = await executeTransaction({ transactionStep });
159
-
160
- if (hash) {
161
- await wallet.handleConfirmTransactionStep(hash, Number(chainId));
162
-
163
- if (onSuccess && typeof onSuccess === 'function') {
164
- onSuccess({ hash });
165
-
166
- updateQueriesOnCancel({
167
- orderId,
168
- queryClient,
169
- });
170
- }
171
-
172
- setSteps((prev) => ({
173
- ...prev,
174
- isExecuting: false,
175
- }));
176
- }
177
- }
178
-
179
- if (signatureStep) {
180
- reservoirOrderId = await executeSignature({ signatureStep });
181
-
182
- if (onSuccess && typeof onSuccess === 'function') {
183
- onSuccess({ orderId: reservoirOrderId });
184
-
185
- updateQueriesOnCancel({
186
- orderId: reservoirOrderId,
187
- queryClient,
188
- });
189
- }
190
-
191
- setSteps((prev) => ({
192
- ...prev,
193
- isExecuting: false,
194
- }));
195
- }
196
- } catch (error) {
197
- invalidateQueriesOnCancel({
198
- queryClient,
199
- });
200
-
201
- setSteps((prev) => ({
202
- ...prev,
203
- isExecuting: false,
204
- }));
205
-
206
- if (onError && typeof onError === 'function') {
207
- onError(error as Error);
208
- }
209
- }
210
- };
211
-
212
- const executeTransaction = async ({
213
- transactionStep,
214
- }: {
215
- transactionStep: Step;
216
- }): Promise<Hex | undefined> => {
217
- const hash = await wallet?.handleSendTransactionStep(
218
- Number(chainId),
219
- transactionStep as walletTransactionStep,
220
- );
221
-
222
- return hash;
223
- };
224
-
225
- const executeSignature = async ({
226
- signatureStep,
227
- }: {
228
- signatureStep: Step;
229
- }) => {
230
- const signature = await wallet?.handleSignMessageStep(
231
- signatureStep as SignatureStep,
232
- );
233
-
234
- const result = await marketplaceClient.execute({
235
- chainId: String(chainId),
236
- signature: signature as string,
237
- method: signatureStep.post?.method as string,
238
- endpoint: signatureStep.post?.endpoint as string,
239
- body: signatureStep.post?.body,
240
- executeType: ExecuteType.order,
241
- });
242
-
243
- return result.orderId;
244
- };
245
-
246
- return {
247
- cancelOrder,
248
- };
249
- };
@@ -1,67 +0,0 @@
1
- import { queryOptions, skipToken, useQuery } from '@tanstack/react-query';
2
- import type { Hex } from 'viem';
3
- import { useAccount } from 'wagmi';
4
- import type { SdkConfig } from '../../types';
5
- import {
6
- type CheckoutOptionsSalesContractArgs,
7
- getMarketplaceClient,
8
- } from '../_internal';
9
- import { useConfig } from './useConfig';
10
-
11
- type UseCheckoutOptionsSalesContractArgs = Omit<
12
- CheckoutOptionsSalesContractArgs,
13
- 'wallet' | 'chainId'
14
- > & { chainId: number };
15
-
16
- const fetchCheckoutOptionsSalesContract = async (
17
- args: CheckoutOptionsSalesContractArgs,
18
- config: SdkConfig,
19
- ) => {
20
- const marketplaceClient = getMarketplaceClient(config);
21
- return marketplaceClient.checkoutOptionsSalesContract({
22
- chainId: args.chainId,
23
- wallet: args.wallet,
24
- contractAddress: args.contractAddress,
25
- collectionAddress: args.collectionAddress,
26
- items: args.items,
27
- });
28
- };
29
-
30
- export const checkoutOptionsSalesContractOptions = (
31
- args:
32
- | (UseCheckoutOptionsSalesContractArgs & { wallet?: Hex })
33
- | typeof skipToken,
34
- config: SdkConfig,
35
- ) => {
36
- return queryOptions({
37
- queryKey: ['checkoutOptionsSalesContract', args],
38
- queryFn:
39
- skipToken === args
40
- ? skipToken
41
- : () =>
42
- fetchCheckoutOptionsSalesContract(
43
- {
44
- chainId: String(args.chainId),
45
- // biome-ignore lint/style/noNonNullAssertion: wallet is guaranteed to exist when not skipToken
46
- wallet: args.wallet!,
47
- contractAddress: args.contractAddress,
48
- collectionAddress: args.collectionAddress,
49
- items: args.items,
50
- },
51
- config,
52
- ),
53
- });
54
- };
55
-
56
- export const useCheckoutOptionsSalesContract = (
57
- args: UseCheckoutOptionsSalesContractArgs | typeof skipToken,
58
- ) => {
59
- const { address } = useAccount();
60
- const config = useConfig();
61
- return useQuery(
62
- checkoutOptionsSalesContractOptions(
63
- skipToken === args ? skipToken : { ...args, wallet: address },
64
- config,
65
- ),
66
- );
67
- };
@@ -1,79 +0,0 @@
1
- import type { GetTokenBalancesDetailsReturn } from '@0xsequence/indexer';
2
- import { queryOptions, useQuery } from '@tanstack/react-query';
3
- import type { Address } from 'viem';
4
- import type { SdkConfig } from '../../types';
5
- import type { QueryArg } from '../_internal';
6
- import { balanceQueries, getIndexerClient } from '../_internal';
7
- import { useConfig } from './useConfig';
8
-
9
- export interface CollectionBalanceFilter {
10
- accountAddresses: Address[];
11
- contractWhitelist?: Address[];
12
- omitNativeBalances: boolean;
13
- }
14
-
15
- export interface UseCollectionBalanceDetailsArgs {
16
- chainId: number;
17
- filter: CollectionBalanceFilter;
18
- query?: QueryArg;
19
- }
20
-
21
- const fetchCollectionBalanceDetails = async (
22
- args: UseCollectionBalanceDetailsArgs,
23
- indexerClient: Awaited<ReturnType<typeof getIndexerClient>>,
24
- ) => {
25
- const promises = args.filter.accountAddresses.map((accountAddress) =>
26
- indexerClient.getTokenBalancesDetails({
27
- filter: {
28
- accountAddresses: [accountAddress],
29
- contractWhitelist: args.filter.contractWhitelist,
30
- omitNativeBalances: args.filter.omitNativeBalances,
31
- },
32
- }),
33
- );
34
-
35
- const responses = await Promise.all(promises);
36
- const mergedResponse = responses.reduce<GetTokenBalancesDetailsReturn>(
37
- (
38
- acc: GetTokenBalancesDetailsReturn,
39
- curr: GetTokenBalancesDetailsReturn | null,
40
- ) => {
41
- if (!curr) return acc;
42
- return {
43
- page: curr.page,
44
- nativeBalances: [
45
- ...(acc.nativeBalances || []),
46
- ...(curr.nativeBalances || []),
47
- ],
48
- balances: [...(acc.balances || []), ...(curr.balances || [])],
49
- };
50
- },
51
- { page: {}, nativeBalances: [], balances: [] },
52
- );
53
-
54
- if (!mergedResponse) {
55
- throw new Error('Failed to fetch collection balance details');
56
- }
57
-
58
- return mergedResponse;
59
- };
60
-
61
- export const collectionBalanceDetailsOptions = (
62
- args: UseCollectionBalanceDetailsArgs,
63
- config: SdkConfig,
64
- ) => {
65
- const indexerClient = getIndexerClient(args.chainId, config);
66
-
67
- return queryOptions({
68
- queryKey: [...balanceQueries.collectionBalanceDetails, args, config],
69
- queryFn: () => fetchCollectionBalanceDetails(args, indexerClient),
70
- ...(args.query || {}),
71
- });
72
- };
73
-
74
- export const useCollectionBalanceDetails = (
75
- args: UseCollectionBalanceDetailsArgs,
76
- ) => {
77
- const config = useConfig();
78
- return useQuery(collectionBalanceDetailsOptions(args, config));
79
- };
@@ -1,96 +0,0 @@
1
- import { queryOptions, useQuery } from '@tanstack/react-query';
2
- import type { Address } from 'viem';
3
- import type { SdkConfig } from '../../types';
4
- import { currencyKeys, type QueryArg } from '../_internal';
5
- import { useConfig } from './useConfig';
6
- import { convertPriceToUSD } from './useConvertPriceToUSD';
7
-
8
- export interface UseComparePricesArgs {
9
- chainId: number;
10
- // First price details
11
- priceAmountRaw: string;
12
- priceCurrencyAddress: Address;
13
- // Second price details (to compare against)
14
- compareToPriceAmountRaw: string;
15
- compareToPriceCurrencyAddress: Address;
16
- query: QueryArg;
17
- }
18
-
19
- export interface UseComparePricesReturn {
20
- percentageDifference: number;
21
- percentageDifferenceFormatted: string;
22
- status: 'above' | 'same' | 'below';
23
- }
24
-
25
- const comparePrices = async (
26
- args: UseComparePricesArgs,
27
- config: SdkConfig,
28
- ): Promise<UseComparePricesReturn> => {
29
- const [priceUSD, compareToPriceUSD] = await Promise.all([
30
- convertPriceToUSD(
31
- {
32
- chainId: args.chainId,
33
- currencyAddress: args.priceCurrencyAddress,
34
- amountRaw: args.priceAmountRaw,
35
- query: {},
36
- },
37
- config,
38
- ),
39
- convertPriceToUSD(
40
- {
41
- chainId: args.chainId,
42
- currencyAddress: args.compareToPriceCurrencyAddress,
43
- amountRaw: args.compareToPriceAmountRaw,
44
- query: {},
45
- },
46
- config,
47
- ),
48
- ]);
49
- const difference = priceUSD.usdAmount - compareToPriceUSD.usdAmount;
50
-
51
- if (compareToPriceUSD.usdAmount === 0) {
52
- throw new Error('Cannot compare to zero price');
53
- }
54
-
55
- const percentageDifference = (difference / compareToPriceUSD.usdAmount) * 100;
56
- const isAbove = percentageDifference > 0;
57
- const isSame = percentageDifference === 0;
58
-
59
- return {
60
- percentageDifference,
61
- percentageDifferenceFormatted: Math.abs(percentageDifference).toFixed(2),
62
- status: isAbove ? 'above' : isSame ? 'same' : 'below',
63
- };
64
- };
65
-
66
- export const comparePricesOptions = (
67
- args: UseComparePricesArgs,
68
- config: SdkConfig,
69
- ) => {
70
- return queryOptions({
71
- ...args.query,
72
- queryKey: [...currencyKeys.conversion, 'compare', args],
73
- queryFn: () => comparePrices(args, config),
74
- });
75
- };
76
-
77
- /**
78
- * Hook to compare prices between different currencies by converting both to USD
79
- * @param args - The arguments for the hook
80
- * @returns The percentage difference between the two prices
81
- * @example
82
- * ```ts
83
- * const { data } = useComparePrices({
84
- * chainId: 1,
85
- * priceAmountRaw: "1000000000000000000",
86
- * priceCurrencyAddress: "0x0000000000000000000000000000000000000000",
87
- * });
88
- *
89
- * console.log(data);
90
- * // { percentageDifference: 10, percentageDifferenceFormatted: "10.00", isAbove: true, isSame: false, isBelow: false }
91
- * ```
92
- */
93
- export const useComparePrices = (args: UseComparePricesArgs) => {
94
- const config = useConfig();
95
- return useQuery(comparePricesOptions(args, config));
96
- };
@@ -1,82 +0,0 @@
1
- import { queryOptions, useQuery } from '@tanstack/react-query';
2
- import { type Address, formatUnits } from 'viem';
3
- import type { SdkConfig } from '../../types';
4
- import { type Currency, currencyKeys, getQueryClient } from '../_internal';
5
- import { marketCurrenciesQueryOptions } from '../queries/marketCurrencies';
6
- import { useConfig } from './useConfig';
7
-
8
- export interface UseConvertPriceToUSDArgs {
9
- chainId: number;
10
- currencyAddress: Address;
11
- amountRaw: string;
12
- query?: {
13
- enabled?: boolean;
14
- };
15
- }
16
-
17
- export type UseConvertPriceToUSDReturn = {
18
- usdAmount: number;
19
- usdAmountFormatted: string;
20
- };
21
-
22
- export const convertPriceToUSD = async (
23
- args: UseConvertPriceToUSDArgs,
24
- config: SdkConfig,
25
- ): Promise<UseConvertPriceToUSDReturn> => {
26
- const queryClient = getQueryClient();
27
- const currencies = (await queryClient.fetchQuery(
28
- marketCurrenciesQueryOptions({
29
- chainId: args.chainId,
30
- config,
31
- }),
32
- )) as Currency[];
33
- const currencyDetails = currencies.find(
34
- (c: Currency) =>
35
- c.contractAddress.toLowerCase() === args.currencyAddress.toLowerCase(),
36
- );
37
-
38
- if (!currencyDetails) {
39
- throw new Error('Currency not found');
40
- }
41
-
42
- const amountDecimal = Number(
43
- formatUnits(BigInt(args.amountRaw), currencyDetails.decimals),
44
- );
45
- const usdAmount = amountDecimal * currencyDetails.exchangeRate;
46
-
47
- return {
48
- usdAmount,
49
- usdAmountFormatted: usdAmount.toFixed(2),
50
- };
51
- };
52
-
53
- export const convertPriceToUSDOptions = (
54
- args: UseConvertPriceToUSDArgs,
55
- config: SdkConfig,
56
- ) => {
57
- return queryOptions({
58
- ...args.query,
59
- queryKey: [...currencyKeys.conversion, args],
60
- queryFn: () => convertPriceToUSD(args, config),
61
- });
62
- };
63
-
64
- /**
65
- * Hook to convert a price amount from a specific currency to USD
66
- * @returns The price amount in USD and formatted USD amount
67
- * @example
68
- * ```ts
69
- * const { data } = useConvertPriceToUSD({
70
- * chainId: 1,
71
- * currencyAddress: "0x0000000000000000000000000000000000000000",
72
- * amountRaw: "1000000000000000000",
73
- * });
74
- *
75
- * console.log(data);
76
- * // { usdAmount: 1000, usdAmountFormatted: "1000.00" }
77
- * ```
78
- */
79
- export const useConvertPriceToUSD = (args: UseConvertPriceToUSDArgs) => {
80
- const config = useConfig();
81
- return useQuery(convertPriceToUSDOptions(args, config));
82
- };
@@ -1,51 +0,0 @@
1
- import { skipToken, useQuery } from '@tanstack/react-query';
2
- import { type Address, erc20Abi, formatUnits, zeroAddress } from 'viem';
3
- import { usePublicClient } from 'wagmi';
4
- export function useCurrencyBalance({
5
- currencyAddress,
6
- chainId,
7
- userAddress,
8
- }: {
9
- currencyAddress: Address | undefined;
10
- chainId: number | undefined;
11
- userAddress: Address | undefined;
12
- }) {
13
- const publicClient = usePublicClient({ chainId });
14
-
15
- return useQuery({
16
- queryKey: ['balance', currencyAddress, chainId, userAddress],
17
- queryFn:
18
- !!userAddress && !!chainId && !!currencyAddress && !!publicClient
19
- ? async () => {
20
- if (currencyAddress === zeroAddress) {
21
- const balance = await publicClient.getBalance({
22
- address: userAddress,
23
- });
24
- return {
25
- value: balance,
26
- formatted: formatUnits(balance, 18),
27
- };
28
- }
29
-
30
- const [balance, decimals] = await Promise.all([
31
- publicClient.readContract({
32
- address: currencyAddress,
33
- abi: erc20Abi,
34
- functionName: 'balanceOf',
35
- args: [userAddress],
36
- }),
37
- publicClient.readContract({
38
- address: currencyAddress,
39
- abi: erc20Abi,
40
- functionName: 'decimals',
41
- }),
42
- ]);
43
-
44
- return {
45
- value: balance,
46
- formatted: formatUnits(balance, decimals),
47
- };
48
- }
49
- : skipToken,
50
- });
51
- }
@@ -1,67 +0,0 @@
1
- import type { Address } from 'viem';
2
- import { useReadContract } from 'wagmi';
3
- import { ERC721_SALE_ABI } from '../../../../sdk/src';
4
- import { useGetTokenSuppliesMap } from './useGetTokenSuppliesMap';
5
-
6
- interface UseERC721SaleMintedTokensProps {
7
- chainId: number;
8
- contractAddress: Address;
9
- salesContractAddress: Address;
10
- enabled?: boolean;
11
- tokenIds: string[];
12
- }
13
-
14
- export function useERC721SaleMintedTokens({
15
- chainId,
16
- contractAddress,
17
- salesContractAddress,
18
- tokenIds,
19
- enabled = true,
20
- }: UseERC721SaleMintedTokensProps) {
21
- const {
22
- data: saleDetails,
23
- isLoading: saleDetailsLoading,
24
- error: saleDetailsError,
25
- } = useReadContract({
26
- chainId,
27
- address: salesContractAddress,
28
- abi: ERC721_SALE_ABI,
29
- functionName: 'saleDetails',
30
- query: {
31
- enabled,
32
- },
33
- });
34
-
35
- // Get token supplies for all potential tokens in the sale
36
- const { data: tokenSupplies, isLoading: tokenSuppliesLoading } =
37
- useGetTokenSuppliesMap({
38
- chainId,
39
- tokenIds,
40
- collectionAddress: contractAddress as Address,
41
- });
42
-
43
- const isLoading = saleDetailsLoading || tokenSuppliesLoading;
44
-
45
- // Count how many tokens have been minted/owned
46
- const ownedCount = tokenIds.reduce((count, tokenId) => {
47
- const supplies = tokenSupplies?.supplies[contractAddress];
48
- const supply = supplies?.find((s) => s.tokenID === tokenId);
49
- // If supply exists and is greater than 0, token exists and is owned
50
- const hasOwner = supply ? BigInt(supply.supply) > 0n : false;
51
- return count + (hasOwner ? 1 : 0);
52
- }, 0);
53
-
54
- const totalSupplyCap = saleDetails?.supplyCap
55
- ? Number(saleDetails.supplyCap)
56
- : 0;
57
- const remainingCount = Math.max(0, totalSupplyCap - ownedCount);
58
-
59
- return {
60
- ownedCount,
61
- totalSupplyCap,
62
- remainingCount,
63
- isLoading,
64
- error: saleDetailsError,
65
- saleDetails,
66
- };
67
- }