@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
@@ -0,0 +1,289 @@
1
+ 'use client';
2
+
3
+ import type React from 'react';
4
+ import { useEffect, useState } from 'react';
5
+ import { useAccount, useConnect, useDisconnect } from 'wagmi';
6
+ import { useConnectorMetadata } from '../src/react/hooks/config/useConnectorMetadata';
7
+ import { TEST_ACCOUNTS } from '../test/const';
8
+
9
+ type ConnectorType = 'mock' | 'waas' | 'sequence' | 'auto';
10
+
11
+ export const ConnectionStatus: React.FC = () => {
12
+ const {
13
+ connect,
14
+ connectors,
15
+ error: connectError,
16
+ isPending: isConnecting,
17
+ } = useConnect();
18
+ const { disconnect } = useDisconnect();
19
+ const {
20
+ isConnected: wagmiConnected,
21
+ address: walletAddress,
22
+ chainId: walletChainId,
23
+ isConnecting: isReconnecting,
24
+ } = useAccount();
25
+ const { isWaaS, walletKind } = useConnectorMetadata();
26
+ const [debugInfo, setDebugInfo] = useState<string>('');
27
+ const [preferredConnector, setPreferredConnector] =
28
+ useState<ConnectorType>('auto');
29
+ const [manuallyDisconnected, setManuallyDisconnected] =
30
+ useState<boolean>(false);
31
+
32
+ const walletLoading = isConnecting || isReconnecting;
33
+ const walletError = false; // wagmi handles errors differently
34
+
35
+ useEffect(() => {
36
+ const storedConnector = localStorage.getItem(
37
+ 'storybook-connector',
38
+ ) as ConnectorType;
39
+ const defaultConnector = storedConnector || 'auto';
40
+ setPreferredConnector(defaultConnector);
41
+ }, []);
42
+
43
+ useEffect(() => {
44
+ if (preferredConnector !== 'auto') {
45
+ localStorage.setItem('storybook-connector', preferredConnector);
46
+ }
47
+ }, [preferredConnector]);
48
+
49
+ useEffect(() => {
50
+ if (wagmiConnected) {
51
+ setManuallyDisconnected(false);
52
+ }
53
+ }, [wagmiConnected]);
54
+
55
+ useEffect(() => {
56
+ if (connectors.length > 0) {
57
+ const connectorInfo = connectors
58
+ .map((c) => `${c.name || 'unnamed'} (${c.id || 'no-id'})`)
59
+ .join(', ');
60
+ setDebugInfo(`Available: ${connectorInfo}`);
61
+ }
62
+
63
+ // Only try to connect if not connected and not connecting and not manually disconnected
64
+ if (
65
+ !wagmiConnected &&
66
+ !isConnecting &&
67
+ !manuallyDisconnected &&
68
+ connectors.length > 0
69
+ ) {
70
+ let targetConnector: (typeof connectors)[0] | undefined;
71
+
72
+ if (preferredConnector === 'auto') {
73
+ targetConnector = connectors[0];
74
+ } else {
75
+ targetConnector = connectors.find((c) => c.id === preferredConnector);
76
+
77
+ // Fallback to any connector with the preferred type in name
78
+ if (!targetConnector) {
79
+ targetConnector = connectors.find(
80
+ (c) =>
81
+ c.name?.toLowerCase().includes(preferredConnector) ||
82
+ c.id?.toLowerCase().includes(preferredConnector),
83
+ );
84
+ }
85
+ }
86
+
87
+ // Final fallback to first available connector
88
+ if (!targetConnector && connectors.length > 0) {
89
+ targetConnector = connectors[0];
90
+ }
91
+
92
+ if (targetConnector) {
93
+ console.log(
94
+ `Auto-connecting to ${preferredConnector} connector:`,
95
+ targetConnector.name || 'unnamed',
96
+ targetConnector.id || 'no-id',
97
+ );
98
+ try {
99
+ connect({ connector: targetConnector });
100
+ } catch (error) {
101
+ console.error('Failed to connect to connector:', error);
102
+ setDebugInfo(
103
+ `Connection failed: ${error instanceof Error ? error.message : 'Unknown error'}`,
104
+ );
105
+ }
106
+ }
107
+ }
108
+ }, [
109
+ wagmiConnected,
110
+ isConnecting,
111
+ manuallyDisconnected,
112
+ connectors,
113
+ connect,
114
+ preferredConnector,
115
+ ]);
116
+
117
+ const getConnectionStatus = () => {
118
+ if (isConnecting || walletLoading) {
119
+ return { status: 'Connecting to Anvil...', color: '#f59e0b' };
120
+ }
121
+
122
+ if (walletAddress && wagmiConnected) {
123
+ const accountIndex = TEST_ACCOUNTS.findIndex(
124
+ (acc) => acc.toLowerCase() === walletAddress.toLowerCase(),
125
+ );
126
+ const accountLabel =
127
+ accountIndex >= 0 ? `Account ${accountIndex}` : 'Custom';
128
+
129
+ return {
130
+ status: `${walletAddress.slice(0, 6)}...${walletAddress.slice(-4)} (${accountLabel})`,
131
+ color: '#10b981',
132
+ };
133
+ }
134
+
135
+ if (walletError || connectError) {
136
+ return {
137
+ status: `Error: ${connectError?.message || 'Connection failed'}`,
138
+ color: '#ef4444',
139
+ };
140
+ }
141
+
142
+ return { status: 'Disconnected from Anvil', color: '#ef4444' };
143
+ };
144
+
145
+ const { status, color } = getConnectionStatus();
146
+
147
+ const getWalletInfo = () => {
148
+ if (!wagmiConnected) return null;
149
+
150
+ const walletType = isWaaS ? 'WaaS' : 'External';
151
+ const kind = walletKind || 'Unknown';
152
+ return `${walletType} (${kind})`;
153
+ };
154
+
155
+ const getAnvilInfo = () => {
156
+ if (!walletChainId && !wagmiConnected) return null;
157
+
158
+ const displayChainId = walletChainId || 'Unknown';
159
+ return `Anvil Chain: ${displayChainId}`;
160
+ };
161
+
162
+ const handleConnectorChange = (newConnector: ConnectorType) => {
163
+ setPreferredConnector(newConnector);
164
+ setManuallyDisconnected(false);
165
+ if (wagmiConnected) {
166
+ disconnect();
167
+ }
168
+ };
169
+
170
+ const handleDisconnect = () => {
171
+ setManuallyDisconnected(true);
172
+ disconnect();
173
+ };
174
+
175
+ return (
176
+ <div
177
+ style={{
178
+ position: 'fixed',
179
+ top: '16px',
180
+ right: '16px',
181
+ zIndex: 9999,
182
+ backgroundColor: '#1f2937',
183
+ color: 'white',
184
+ padding: '8px 12px',
185
+ borderRadius: '8px',
186
+ fontSize: '12px',
187
+ fontFamily: 'monospace',
188
+ border: `2px solid ${color}`,
189
+ boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)',
190
+ display: 'flex',
191
+ flexDirection: 'column',
192
+ alignItems: 'flex-start',
193
+ gap: '4px',
194
+ maxWidth: '320px',
195
+ }}
196
+ >
197
+ <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>
198
+ <div
199
+ style={{
200
+ width: '8px',
201
+ height: '8px',
202
+ borderRadius: '50%',
203
+ backgroundColor: color,
204
+ }}
205
+ />
206
+ <span>{status}</span>
207
+ </div>
208
+
209
+ <div
210
+ style={{
211
+ display: 'flex',
212
+ alignItems: 'center',
213
+ gap: '8px',
214
+ width: '100%',
215
+ }}
216
+ >
217
+ <span style={{ fontSize: '10px', color: '#9ca3af' }}>Connector:</span>
218
+ <select
219
+ value={preferredConnector}
220
+ onChange={(e) =>
221
+ handleConnectorChange(e.target.value as ConnectorType)
222
+ }
223
+ style={{
224
+ background: '#374151',
225
+ color: 'white',
226
+ border: '1px solid #4b5563',
227
+ borderRadius: '4px',
228
+ fontSize: '10px',
229
+ padding: '2px 4px',
230
+ flex: 1,
231
+ }}
232
+ >
233
+ <option value="auto">Auto</option>
234
+ <option value="mock">Mock</option>
235
+ <option value="waas">WaaS</option>
236
+ <option value="sequence">Sequence</option>
237
+ </select>
238
+ </div>
239
+
240
+ {wagmiConnected && (
241
+ <button
242
+ type="button"
243
+ onClick={handleDisconnect}
244
+ style={{
245
+ background: '#dc2626',
246
+ color: 'white',
247
+ border: 'none',
248
+ borderRadius: '4px',
249
+ fontSize: '10px',
250
+ padding: '4px 8px',
251
+ cursor: 'pointer',
252
+ width: '100%',
253
+ marginTop: '4px',
254
+ }}
255
+ >
256
+ Disconnect
257
+ </button>
258
+ )}
259
+
260
+ {getWalletInfo() && (
261
+ <div style={{ fontSize: '10px', color: '#9ca3af' }}>
262
+ Type: {getWalletInfo()}
263
+ </div>
264
+ )}
265
+
266
+ {getAnvilInfo() && (
267
+ <div style={{ fontSize: '10px', color: '#9ca3af' }}>
268
+ {getAnvilInfo()}
269
+ </div>
270
+ )}
271
+
272
+ {debugInfo && (
273
+ <div style={{ fontSize: '10px', color: '#9ca3af' }}>{debugInfo}</div>
274
+ )}
275
+
276
+ {(walletError || connectError) && (
277
+ <div
278
+ style={{
279
+ fontSize: '10px',
280
+ color: '#ef4444',
281
+ wordBreak: 'break-word',
282
+ }}
283
+ >
284
+ {connectError?.message || 'Wallet connection failed'}
285
+ </div>
286
+ )}
287
+ </div>
288
+ );
289
+ };
@@ -1,13 +1,19 @@
1
1
  import type { StorybookConfig } from '@storybook/react-vite';
2
2
  import tailwindcssPostcss from '@tailwindcss/postcss';
3
+ import path from 'path';
3
4
 
4
5
  const config: StorybookConfig = {
5
6
  stories: ['../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
6
- addons: ['@storybook/addon-docs', '@storybook/addon-vitest'],
7
+ addons: [
8
+ '@storybook/addon-docs',
9
+ '@storybook/addon-vitest',
10
+ 'msw-storybook-addon',
11
+ ],
7
12
  framework: {
8
13
  name: '@storybook/react-vite',
9
14
  options: {},
10
15
  },
16
+ staticDirs: ['../public'],
11
17
  typescript: {
12
18
  reactDocgen: 'react-docgen-typescript',
13
19
  reactDocgenTypescriptOptions: {
@@ -33,6 +39,19 @@ const config: StorybookConfig = {
33
39
  plugins: [tailwindcssPostcss()],
34
40
  };
35
41
 
42
+ // Set unique cache directory to prevent conflicts
43
+ config.cacheDir = path.join(
44
+ __dirname,
45
+ '../node_modules/.vite-storybook-sdk',
46
+ );
47
+
48
+ // Configure path aliases to match tsconfig.json
49
+ config.resolve = config.resolve || {};
50
+ config.resolve.alias = {
51
+ ...config.resolve.alias,
52
+ '@test': path.resolve(__dirname, '../test'),
53
+ };
54
+
36
55
  // Exclude generated files from react-docgen processing
37
56
  if (config.plugins) {
38
57
  for (const plugin of config.plugins) {
@@ -0,0 +1,106 @@
1
+ import { SequenceConnectProvider } from '@0xsequence/connect';
2
+ import type { Preview } from '@storybook/react-vite';
3
+ import { QueryClientProvider } from '@tanstack/react-query';
4
+
5
+ import React from 'react';
6
+ import { WagmiProvider } from 'wagmi';
7
+ import { MarketplaceProvider } from '../src/react/provider';
8
+ import { ModalProvider } from '../src/react/ui/modals/modal-provider';
9
+ import '../src/index.css';
10
+ import { initialize, mswLoader } from 'msw-storybook-addon';
11
+ import {
12
+ createTestQueryClient,
13
+ sequenceConnectConfig,
14
+ wagmiConfig,
15
+ wagmiConfigEmbedded,
16
+ wagmiConfigSequence,
17
+ } from '../test/test-utils';
18
+ import { ConnectionStatus } from './ConnectionStatus';
19
+
20
+ const testQueryClient = createTestQueryClient();
21
+
22
+ // Initialize MSW
23
+ initialize({
24
+ onUnhandledRequest: ({ url, method }) => {
25
+ // Only warn about unhandled requests to our specific API paths
26
+ const pathname = new URL(url).pathname;
27
+ if (pathname.startsWith('/rpc/')) {
28
+ console.warn(`Unhandled ${method} request to ${url}.`);
29
+ }
30
+ // Bypass all other requests (fonts, static assets, etc.)
31
+ },
32
+ });
33
+
34
+ // Mock marketplace SDK config for Storybook
35
+ const mockSdkConfig = {
36
+ projectAccessKey: 'storybook-test-key',
37
+ projectId: '1',
38
+ };
39
+
40
+ // Get wagmi config based on localStorage
41
+ const getWagmiConfig = () => {
42
+ if (typeof window === 'undefined') {
43
+ return wagmiConfig; // Default for SSR
44
+ }
45
+
46
+ const storedConnector = localStorage.getItem('storybook-connector');
47
+ const connectorType = storedConnector || 'auto';
48
+
49
+ switch (connectorType) {
50
+ case 'waas':
51
+ console.log('Using WaaS connector configuration');
52
+ return wagmiConfigEmbedded;
53
+ case 'sequence':
54
+ console.log('Using Sequence connector configuration');
55
+ return wagmiConfigSequence;
56
+ default:
57
+ console.log('Using standard mock connector configuration');
58
+ return wagmiConfig;
59
+ }
60
+ };
61
+
62
+ const preview: Preview = {
63
+ parameters: {
64
+ backgrounds: {
65
+ options: {
66
+ dark: { name: 'Dark', value: '#333' },
67
+ light: { name: 'Light', value: '#F7F9F2' },
68
+ },
69
+ },
70
+ controls: {
71
+ matchers: {
72
+ color: /(background|color)$/i,
73
+ date: /Date$/i,
74
+ },
75
+ },
76
+ },
77
+ initialGlobals: {
78
+ backgrounds: { value: 'dark' },
79
+ },
80
+ loaders: [mswLoader],
81
+ decorators: [
82
+ (Story) => {
83
+ const currentWagmiConfig = getWagmiConfig();
84
+
85
+ return (
86
+ <WagmiProvider config={currentWagmiConfig}>
87
+ <QueryClientProvider client={testQueryClient}>
88
+ <SequenceConnectProvider
89
+ config={sequenceConnectConfig.connectConfig}
90
+ >
91
+ <MarketplaceProvider config={mockSdkConfig}>
92
+ <ConnectionStatus />
93
+ <div style={{ padding: '1rem', minHeight: '100vh' }}>
94
+ <Story />
95
+ </div>
96
+ <ModalProvider />
97
+ </MarketplaceProvider>
98
+ </SequenceConnectProvider>
99
+ </QueryClientProvider>
100
+ </WagmiProvider>
101
+ );
102
+ },
103
+ ],
104
+ };
105
+
106
+ export default preview;
package/CHANGELOG.md CHANGED
@@ -1,5 +1,63 @@
1
1
  # @0xsequence/marketplace-sdk
2
2
 
3
+ ## 1.0.0
4
+
5
+ 🎉 **Production Release** - Sequence Marketplace SDK 1.0! 🎉
6
+
7
+ #### Complete Marketplace Solution
8
+ - **Primary Sales (Shop)**: Full support for Sequence sales contracts (ERC721 v0 and ERC1155 v0 and v1)
9
+ - **Secondary Sales (Market)**: Comprehensive listing and offer management
10
+
11
+ ### 🚀 New features
12
+ - Support for Sequence sales contracts (ERC721 v0 and ERC1155 v0 and v1)
13
+ - **New `useProcessStep` hook**: For transaction marketplace api transaction step handling
14
+ - **New buy checkout flow UI**: New checkout flow for buying collectibles, from @0xsequence/checkout
15
+ - Custom wallet class replaced with wagmi hooks and new hooks for wallet operations (useEnsureCorrectChain, useConnectorMetadata, useProcessStep), see breaking changes below
16
+ - All fetching hooks now have a separated query function that can be used with other data fetching libraries or SSR/SSG frameworks
17
+ - All fetching hooks only fetch data when all required parameters are provided
18
+ - Modal style isolation with shadow DOM, preventing global styles from leaking into the document body
19
+ - useSearchTokenMetadata now have an option to only return token metadata for minted tokens `onlyMinted: true`
20
+ - MarketplaceConfig is by now by default never invalidated, allow fetching only serverside
21
+
22
+ - **UI/UX Improvements**:
23
+ - Added optional action buttons to buy flow success modal
24
+ - Fixed ERC1155 quantity modal decimal precision handling
25
+ - Fixed collectible card image opacity issues
26
+ - Improved media display with object-contain for collectible cards
27
+
28
+ ### ⚠️ Breaking Changes
29
+ By default, the SDK now uses shadow DOM for all modals. To disable this, you can set the `useShadowDOM` flag to `false` in the `SdkConfig`. Other components (media, collectible card etc) are rendered to the document body and requires Tailwind.
30
+ `useShopCollectibleSaleData` hook has been removed. Instead, use `useErc721SaleDetails` and `useErc1155SaleDetails` hooks leveraging marketplace-api
31
+ - **Wallet**: Complete removal of custom wallet client in favor of wagmi hooks
32
+ - Replace `wallet.address` with `useAccount()` hook from wagmi
33
+ - Replace `wallet.isWaaS` with `useConnectorMetadata().isWaaS`
34
+ - Replace `wallet.kind` with `useConnectorMetadata().walletKind`
35
+ - Replace `wallet.switchChain` with `useEnsureCorrectChain` hook
36
+ - Replace `wallet.signTransactionStep` and `wallet.transferStep` with `useProcessStep` hook
37
+
38
+
39
+ ### 🐛 Bug Fixes
40
+ - Fixed ERC1155 quantity modal decimal handling with proper min/max calculations
41
+ - Fixed pagination issues with minted ERC721 sale tokens
42
+ - Resolved potential state management race conditions in action modals
43
+ - Fixed decimal handling in quantity inputs
44
+ - Fixed collectible card image opacity issues
45
+ - Fixed ERC721 sale contract quantity tracking for V1 contracts
46
+ - Fixed negative remaining supply display in shop cards
47
+ - Improved error handling when quantity values are 0
48
+ - Fixed token approval reset when transaction steps don't exist
49
+ - Auto fee selection for embedded wallets bug fix, now only applies for cancelling orders
50
+
51
+
52
+ ### 🔧 Internal Improvements
53
+
54
+ #### Code Organization
55
+ - Reorganized hooks into logical subdirectories (data, transactions, ui, config)
56
+ - Removed duplicate hooks and consolidated functionality
57
+ - Increased test coverage
58
+ - Some internal hooks have been renamed for consistency
59
+
60
+
3
61
  ## 0.10.0
4
62
 
5
63
  ### New Features
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env node
2
+ import fs from 'node:fs/promises';
3
+ import { dirname, join } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import postcss from 'postcss';
6
+ import postcssConfig from './postcss.config.mjs';
7
+
8
+ const __dirname = dirname(fileURLToPath(import.meta.url));
9
+
10
+ /**
11
+ * @param {Object} options
12
+ * @param {boolean} options.copyCSS - Whether to copy CSS to dist
13
+ */
14
+ export async function generateStyles(options = {}) {
15
+ const copyCSS = options.copyCSS ?? false;
16
+
17
+ const sdkPath = join(__dirname, './');
18
+ const inputCSSRelative = 'src/styles/index.css';
19
+ const outputTSPath = join(sdkPath, 'src/styles/styles.ts');
20
+ const outputCSSDir = join(sdkPath, 'dist/styles');
21
+ const outputCSSPath = join(outputCSSDir, 'index.css');
22
+
23
+ try {
24
+ const inputCSSPath = join(sdkPath, inputCSSRelative);
25
+ const cssContent = await fs.readFile(inputCSSPath, 'utf-8');
26
+
27
+ const result = await postcss(postcssConfig.plugins).process(cssContent, {
28
+ from: inputCSSPath,
29
+ });
30
+
31
+ const css = `/* Modified Tailwind CSS, to avoid issues with shadow DOM, see Marketplace SDK - compile-tailwind.js and postcss.config.mjs */
32
+ ${result.css}`;
33
+
34
+ const tsContent = `export const styles = String.raw\`${css}\`;`;
35
+
36
+ await fs.writeFile(outputTSPath, tsContent);
37
+
38
+ if (copyCSS) {
39
+ await fs.mkdir(outputCSSDir, { recursive: true });
40
+ await fs.writeFile(outputCSSPath, css);
41
+ }
42
+
43
+ console.log('✅ Styles compiled successfully');
44
+ return { css, tsContent };
45
+ } catch (error) {
46
+ console.error('❌ Failed to compile styles:', error.message);
47
+ throw error;
48
+ }
49
+ }
50
+
51
+ // Execute, if run as standalone script
52
+ if (import.meta.url === `file://${process.argv[1]}`) {
53
+ generateStyles();
54
+ }