@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
@@ -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
+ };
@@ -0,0 +1,82 @@
1
+ import type { StorybookConfig } from '@storybook/react-vite';
2
+ import tailwindcssPostcss from '@tailwindcss/postcss';
3
+ import path from 'path';
4
+
5
+ const config: StorybookConfig = {
6
+ stories: ['../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
7
+ addons: [
8
+ '@storybook/addon-docs',
9
+ '@storybook/addon-vitest',
10
+ 'msw-storybook-addon',
11
+ ],
12
+ framework: {
13
+ name: '@storybook/react-vite',
14
+ options: {},
15
+ },
16
+ staticDirs: ['../public'],
17
+ typescript: {
18
+ reactDocgen: 'react-docgen-typescript',
19
+ reactDocgenTypescriptOptions: {
20
+ shouldExtractLiteralValuesFromEnum: true,
21
+ shouldRemoveUndefinedFromOptional: true,
22
+ propFilter: (prop) => {
23
+ // Exclude props from generated files
24
+ if (prop.parent?.fileName.includes('.gen.ts')) {
25
+ return false;
26
+ }
27
+ // Exclude props from node_modules except for specific packages
28
+ if (prop.parent?.fileName.includes('node_modules')) {
29
+ return false;
30
+ }
31
+ return true;
32
+ },
33
+ },
34
+ },
35
+ async viteFinal(config) {
36
+ // Configure PostCSS for Tailwind CSS v4
37
+ config.css = config.css || {};
38
+ config.css.postcss = {
39
+ plugins: [tailwindcssPostcss()],
40
+ };
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
+
55
+ // Exclude generated files from react-docgen processing
56
+ if (config.plugins) {
57
+ for (const plugin of config.plugins) {
58
+ if (
59
+ plugin &&
60
+ typeof plugin === 'object' &&
61
+ 'name' in plugin &&
62
+ plugin.name === 'storybook:react-docgen-plugin'
63
+ ) {
64
+ const originalTransform = plugin.transform;
65
+ if (typeof originalTransform === 'function') {
66
+ plugin.transform = async function (code: string, id: string) {
67
+ // Skip generated files
68
+ if (id.includes('.gen.ts') || id.includes('_internal/api/')) {
69
+ return;
70
+ }
71
+ return originalTransform.call(this, code, id);
72
+ };
73
+ }
74
+ break;
75
+ }
76
+ }
77
+ }
78
+
79
+ return config;
80
+ },
81
+ };
82
+ export default config;
@@ -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;
@@ -0,0 +1,6 @@
1
+ import { setProjectAnnotations } from '@storybook/react-vite';
2
+ import * as projectAnnotations from './preview';
3
+
4
+ // This is an important step to apply the right configuration when testing your stories.
5
+ // More info at: https://storybook.js.org/docs/api/portable-stories/portable-stories-vitest#setprojectannotations
6
+ setProjectAnnotations([projectAnnotations]);
package/CHANGELOG.md CHANGED
@@ -1,5 +1,128 @@
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
+
61
+ ## 0.10.0
62
+
63
+ ### New Features
64
+
65
+ **Alternative Wallet integration Support**
66
+ - Added support for using any wallet connection library (e.g., Privy, Rainbowkit, Dynamic Labs etc.) instead of Sequence Connect
67
+ - You can now provide a custom `openConnectModal` function to the `MarketplaceProvider` to integrate with your preferred wallet connection flow.
68
+
69
+
70
+ Example with any wallet provider:
71
+ ```tsx
72
+ import { MarketplaceProvider } from '@0xsequence/marketplace-sdk/react';
73
+ import { useConnectModal } from '@my-wallet-provider/connect-modal';
74
+
75
+ function App() {
76
+ const { openConnectModal } = useConnectModal();
77
+
78
+ return (
79
+ <MarketplaceProvider
80
+ config={sdkConfig}
81
+ openConnectModal={openConnectModal}
82
+ >
83
+ {/* Your marketplace app */}
84
+ </MarketplaceProvider>
85
+ );
86
+ }
87
+ ```
88
+
89
+ See the [Alternative Wallet Integration Playground](https://github.com/0xsequence/marketplace-sdk/tree/master/playgrounds/alternative-wallets) for a complete example with Dynamic Labs
90
+
91
+ **Enhanced Media Component**
92
+ - Added `shouldListenForLoad` prop for controlling asset load event handling
93
+ - Introduced `mediaClassName` prop for controlling the inner media element
94
+ - Improved asset loading behavior with conditional handling
95
+
96
+ **Shop & Market Improvements**
97
+ - Added `ShopActions` component for handling collectible purchase interactions
98
+ - Enhanced `CollectibleDetails` to conditionally display information based on marketplace type
99
+ - Improved ERC1155 sale item handling - buy button now hidden when out of stock
100
+ - Added support for unlimited supply display in shop components
101
+
102
+ ### API Updates
103
+
104
+ **New Hooks & Queries**
105
+ - `useGetCountOfPrimarySaleItems` - Now uses `useQuery` instead of `useInfiniteQuery`
106
+ - Added `contractAddress` parameter to `TokenBalancesParams` for more precise balance queries
107
+
108
+ **Analytics & Tracking**
109
+ - Enhanced buy modal tracking to track cart abandonment
110
+
111
+ ### Developer Experience
112
+
113
+ **Testing & Documentation**
114
+ - Expanded test coverage for critical components
115
+ - Added JSDoc documentation improvements
116
+
117
+ **Build & Configuration**
118
+ - Fixed SSR issues with React Day Picker in React-Router V7
119
+
120
+ ### Bug Fixes
121
+
122
+ - Fixed ERC1155 quantity modal to use `maxUint256` for infinity value
123
+ - Resolved React state update issues in various components
124
+ - Fixed missing contract type errors
125
+
3
126
  ## 0.9.0
4
127
 
5
128
  ### Patch Changes
@@ -7,47 +130,51 @@
7
130
  **⚠️ Breaking Changes **
8
131
 
9
132
  **Hook Parameter Type Updates**
133
+
10
134
  - Updated hook parameter types for consistency:
11
- - `useCollection`: `UseCollectionArgs` → `UseCollectionParams`
135
+ - `useCollection`: `UseCollectionArgs` → `UseCollectionParams`
12
136
  - `useHighestOffer`: `UseHighestOfferArgs` → `UseHighestOfferParams`
13
137
  - `useLowestListing`: `UseLowestListingArgs` → `UseLowestListingParams`
14
138
  - `useFloorOrder`: `UseFloorOrderArgs` → `UseFloorOrderParams`
15
139
 
16
140
  **Count Hook Return Types**
141
+
17
142
  - All count hooks now consistently return `number` instead of `{ count: number }`
18
143
  - Affected hooks: `useCountListingsForCollectible`, `useCountOffersForCollectible`, `useCountOfCollectables`
19
144
  - Migration: Replace `data?.count` with `data` directly
20
145
 
21
-
22
146
  **Shop Integration & Primary Sales Enhancements**
147
+
23
148
  - Enhanced shop integration with improved primary sales support
24
149
  - Added `useCountOfPrimarySaleItems` hook for returning the total number of primary sale items
25
150
  - Added `useGetTokenRanges` hook for fetching token ID ranges from indexer
26
151
  - Improved 721 and 1155 sale controls with better quantity tracking
27
152
 
28
153
  **Hook System Overhaul**
154
+
29
155
  - Migrated 20+ hooks to new consistent fetching pattern
30
- - Exported all fetching function in a separate file, allowing them to be used with other loaders and during prerendering (SSR)
156
+ - Exported all fetching function in a separate file, allowing them to be used with other loaders and during prerendering (SSR)
31
157
  - Added comprehensive JSDoc documentation with usage examples
32
158
  - Enhanced TypeScript types and parameter validation across all hooks
33
159
  - Improved error handling and query optimization
34
160
  - Added support for most react query options https://tanstack.com/query/latest/docs/framework/react/reference/useQuery
35
161
 
36
- **API & Configuration Updates**
162
+ **API & Configuration Updates**
163
+
37
164
  - Support for granular service environment configurations with manual URL overrides
38
165
 
39
166
  **UI/UX Enhancements**
167
+
40
168
  - Fixed Safari detection in Media component for better SSR compatibility
41
- - Improved loading states across all components
169
+ - Improved loading states across all components
42
170
  - Enhanced collectible card rendering for both minted and unminted items
43
171
 
44
-
45
172
  **Misc**
173
+
46
174
  - Fixed grayed-out media display in collectible cards
47
175
  - Upgraded all dependencies to latest versions
48
176
  - Extensive code cleanup: removed unused exports, comments, and TODOs
49
177
 
50
-
51
178
  ### Patch Changes
52
179
 
53
180
  ## 0.8.12
@@ -365,4 +492,4 @@ SSR config do not require passing query client anymore, and leverages an interna
365
492
 
366
493
  ### Minor Changes
367
494
 
368
- - Buy flow cleanup, various fixes
495
+ - Buy flow cleanup, various fixes