@0xsequence/marketplace-sdk 1.0.0 → 1.1.1

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 (477) hide show
  1. package/.changeset/honest-peas-arrive.md +5 -0
  2. package/.changeset/real-tips-stick.md +8 -0
  3. package/.changeset/tall-pandas-wear.md +8 -0
  4. package/.storybook/main.ts +1 -1
  5. package/.storybook/preview.tsx +0 -1
  6. package/CHANGELOG.md +84 -13
  7. package/dist/BellIcon-ByhygxBO.js +45 -0
  8. package/dist/BellIcon-ByhygxBO.js.map +1 -0
  9. package/dist/{BellIcon-Cb9YEUzJ.js → CartIcon-Bt3rQYGk.js} +10 -49
  10. package/dist/CartIcon-Bt3rQYGk.js.map +1 -0
  11. package/dist/CollectibleCard-CVpdgXA8.d.ts +8 -0
  12. package/dist/{_internal-DslqcNC1.js → _internal-DkS2VUn5.js} +1 -1
  13. package/dist/{_internal-DslqcNC1.js.map → _internal-DkS2VUn5.js.map} +1 -1
  14. package/dist/abi-fa-o9gH3.js +134 -0
  15. package/dist/abi-fa-o9gH3.js.map +1 -0
  16. package/dist/{alien_swap-DJ98gZQp.js → alien_swap-DoY6XfMA.js} +1 -1
  17. package/dist/{alien_swap-DJ98gZQp.js.map → alien_swap-DoY6XfMA.js.map} +1 -1
  18. package/dist/{api-BmEQfSQa.js → api-BoO0V5aJ.js} +11 -4
  19. package/dist/api-BoO0V5aJ.js.map +1 -0
  20. package/dist/{aqua-xyz-n1PcCCZ0.js → aqua-xyz-BBDxnG14.js} +1 -1
  21. package/dist/{aqua-xyz-n1PcCCZ0.js.map → aqua-xyz-BBDxnG14.js.map} +1 -1
  22. package/dist/{aura-Bevk_YkS.js → aura-DGx2zwvF.js} +1 -1
  23. package/dist/{aura-Bevk_YkS.js.map → aura-DGx2zwvF.js.map} +1 -1
  24. package/dist/{blur-B5sHErx5.js → blur-D8GKrRrq.js} +1 -1
  25. package/dist/{blur-B5sHErx5.js.map → blur-D8GKrRrq.js.map} +1 -1
  26. package/dist/builder-api-BFuZNOaN.js.map +1 -1
  27. package/dist/builder.gen-B9wR2nvF.js.map +1 -1
  28. package/dist/{coinbase-D30W-lxA.js → coinbase-DOry4PXY.js} +1 -1
  29. package/dist/{coinbase-D30W-lxA.js.map → coinbase-DOry4PXY.js.map} +1 -1
  30. package/dist/collectibles-C_H8jMGH.js +358 -0
  31. package/dist/collectibles-C_H8jMGH.js.map +1 -0
  32. package/dist/collections-CKummc-R.js +249 -0
  33. package/dist/collections-CKummc-R.js.map +1 -0
  34. package/dist/components-CosnX7F9.js +119 -0
  35. package/dist/components-CosnX7F9.js.map +1 -0
  36. package/dist/{contracts-DPHFT2TA.js → contracts-BP_0vX48.js} +4 -5
  37. package/dist/{contracts-DPHFT2TA.js.map → contracts-BP_0vX48.js.map} +1 -1
  38. package/dist/{create-config-6uynwTeb.js → create-config-CIfejoCk.js} +6 -11
  39. package/dist/create-config-CIfejoCk.js.map +1 -0
  40. package/dist/{create-config-lLSrnkbb.d.ts → create-config-ZOB7i4ZJ.d.ts} +135 -37
  41. package/dist/{element-C2NJexro.js → element-ciybd_VF.js} +1 -1
  42. package/dist/{element-C2NJexro.js.map → element-ciybd_VF.js.map} +1 -1
  43. package/dist/filters-V-V8Dn8f.d.ts +60 -0
  44. package/dist/{foundation-QgY1lvUj.js → foundation-Bq4lRz4x.js} +1 -1
  45. package/dist/{foundation-QgY1lvUj.js.map → foundation-Bq4lRz4x.js.map} +1 -1
  46. package/dist/index-BOiHR01C.d.ts +106 -0
  47. package/dist/index-BZIJTQT0.d.ts +121 -0
  48. package/dist/index-BeRV-7AX.d.ts +55 -0
  49. package/dist/{index-DonXiSg2.d.ts → index-Bsx6XsC2.d.ts} +117 -70
  50. package/dist/{index-BGJXqdg6.d.ts → index-BtWMBHeP.d.ts} +13 -9
  51. package/dist/{index-CtF7EE2z.d.ts → index-Bxzjy0d1.d.ts} +1 -1
  52. package/dist/{index-ChSKFOMx.d.ts → index-C-745li7.d.ts} +1 -1
  53. package/dist/{index-CY5UEX4h.d.ts → index-C4MUKshG.d.ts} +2 -2
  54. package/dist/{index-C7xKVIr4.d.ts → index-CPzvNmq9.d.ts} +37 -37
  55. package/dist/{index-ByW08-Z7.d.ts → index-CS65jqOq.d.ts} +2 -2
  56. package/dist/index-CZUtOTjh.d.ts +1 -0
  57. package/dist/index-CnEbXm_t.d.ts +130 -0
  58. package/dist/{index-ThUIs-Sy.d.ts → index-CxA34wP1.d.ts} +37 -23
  59. package/dist/{index-CIkpYltz.d.ts → index-CxpFwGvR.d.ts} +3 -3
  60. package/dist/{index-QxxS6f9r.d.ts → index-D9LPlmbC.d.ts} +1 -1
  61. package/dist/{index-CQnGIGb5.d.ts → index-DFEnA6Wa.d.ts} +44 -33
  62. package/dist/{index-PSPpUxCE.d.ts → index-DNNUeZEq.d.ts} +4 -4
  63. package/dist/{index-Dpyp7fQz.d.ts → index-DUXfvhxs.d.ts} +12 -12
  64. package/dist/index-DW3njUfb.d.ts +1 -0
  65. package/dist/index-DWt6yrIG.d.ts +64 -0
  66. package/dist/index-DewGsFz5.d.ts +1 -0
  67. package/dist/index-DmudgrsN.d.ts +495 -0
  68. package/dist/{index-DNU9xoGK.d.ts → index-DqXd1EeB.d.ts} +5 -5
  69. package/dist/{index-DX0Vm8HY.d.ts → index-DwKr18CI.d.ts} +1 -1
  70. package/dist/{index-D71J5Ghd.d.ts → index-NlPMNcqh.d.ts} +99 -99
  71. package/dist/index-Stm5u0I0.d.ts +53 -0
  72. package/dist/index-U-zp70of.d.ts +74 -0
  73. package/dist/index.d.ts +8 -8
  74. package/dist/index.js +13 -12
  75. package/dist/inventory-Dd7TazvZ.js +72 -0
  76. package/dist/inventory-Dd7TazvZ.js.map +1 -0
  77. package/dist/listBalances-BxpxBCvn.js +57 -0
  78. package/dist/listBalances-BxpxBCvn.js.map +1 -0
  79. package/dist/listCollectiblesPaginated-Cy2_qEZA.d.ts +327 -0
  80. package/dist/{listCollections-Bbzbz7qW.d.ts → listCollections-BB9FxKj2.d.ts} +264 -137
  81. package/dist/{looks-rare-CMVPny4v.js → looks-rare-6H--x3AM.js} +1 -1
  82. package/dist/{looks-rare-CMVPny4v.js.map → looks-rare-6H--x3AM.js.map} +1 -1
  83. package/dist/lowestListing-Cbsi6M1K.d.ts +465 -0
  84. package/dist/{magic-eden-IrWp2ZXk.js → magic-eden-BoxEQ1Li.js} +1 -1
  85. package/dist/{magic-eden-IrWp2ZXk.js.map → magic-eden-BoxEQ1Li.js.map} +1 -1
  86. package/dist/{manifold-DeOE-p2G.js → manifold-DycKsljb.js} +1 -1
  87. package/dist/{manifold-DeOE-p2G.js.map → manifold-DycKsljb.js.map} +1 -1
  88. package/dist/market-C3HV-awQ.js +209 -0
  89. package/dist/market-C3HV-awQ.js.map +1 -0
  90. package/dist/{marketCurrencies-CmOMCCOr.d.ts → marketCurrencies-Bpw1bIO0.d.ts} +46 -15
  91. package/dist/marketCurrencies-sKrTX0og.js +53 -0
  92. package/dist/marketCurrencies-sKrTX0og.js.map +1 -0
  93. package/dist/{marketplace-B5Z8G03R.js → marketplace-NQB-sEQL.js} +1 -1
  94. package/dist/{marketplace-B5Z8G03R.js.map → marketplace-NQB-sEQL.js.map} +1 -1
  95. package/dist/{marketplace-logos-D8t86gsW.js → marketplace-logos-D4dS1Foy.js} +21 -21
  96. package/dist/marketplace-logos-D4dS1Foy.js.map +1 -0
  97. package/dist/{marketplace.gen-JzNYpM0U.js → marketplace.gen-ksUafDqS.js} +56 -5
  98. package/dist/marketplace.gen-ksUafDqS.js.map +1 -0
  99. package/dist/{marketplaceConfig-sNh-MA5M.js → marketplaceConfig-UHQMM9fq.js} +9 -10
  100. package/dist/marketplaceConfig-UHQMM9fq.js.map +1 -0
  101. package/dist/{mintify-DG3GrljJ.js → mintify-Dyqyo8jQ.js} +1 -1
  102. package/dist/{mintify-DG3GrljJ.js.map → mintify-Dyqyo8jQ.js.map} +1 -1
  103. package/dist/{network-DnBEe1Ur.js → network-DtmiMhcg.js} +2 -2
  104. package/dist/network-DtmiMhcg.js.map +1 -0
  105. package/dist/networkconfigToWagmiChain-DbUf6HiO.js +15 -0
  106. package/dist/networkconfigToWagmiChain-DbUf6HiO.js.map +1 -0
  107. package/dist/{nftx-B3LH-ZYM.js → nftx-2LbFjj9Q.js} +1 -1
  108. package/dist/{nftx-B3LH-ZYM.js.map → nftx-2LbFjj9Q.js.map} +1 -1
  109. package/dist/{okx-CRFLrT3Z.js → okx-CBEWJNsR.js} +1 -1
  110. package/dist/{okx-CRFLrT3Z.js.map → okx-CBEWJNsR.js.map} +1 -1
  111. package/dist/{open-sea-cOpfl366.js → open-sea-Dxntz_PA.js} +1 -1
  112. package/dist/{open-sea-cOpfl366.js.map → open-sea-Dxntz_PA.js.map} +1 -1
  113. package/dist/orders-DnFfZAXV.js +462 -0
  114. package/dist/orders-DnFfZAXV.js.map +1 -0
  115. package/dist/{primary-sale-CLjXRrDj.js → primary-sale-1u4QlPdA.js} +1 -1
  116. package/dist/{primary-sale-CLjXRrDj.js.map → primary-sale-1u4QlPdA.js.map} +1 -1
  117. package/dist/primary-sales-Dmsi6bqj.js +114 -0
  118. package/dist/primary-sales-Dmsi6bqj.js.map +1 -0
  119. package/dist/{query-BTe7Wkrs.d.ts → query-BWbCsXLY.d.ts} +1 -1
  120. package/dist/{rarible-guwUx4cn.js → rarible-CS0SupHr.js} +1 -1
  121. package/dist/{rarible-guwUx4cn.js.map → rarible-CS0SupHr.js.map} +1 -1
  122. package/dist/react/_internal/api/index.d.ts +2 -2
  123. package/dist/react/_internal/api/index.js +5 -5
  124. package/dist/react/_internal/databeat/index.d.ts +1 -1
  125. package/dist/react/_internal/databeat/index.js +35 -21
  126. package/dist/react/_internal/index.d.ts +2 -2
  127. package/dist/react/_internal/index.js +9 -8
  128. package/dist/react/_internal/wagmi/index.d.ts +1 -1
  129. package/dist/react/_internal/wagmi/index.js +4 -3
  130. package/dist/react/hooks/config/index.d.ts +8 -8
  131. package/dist/react/hooks/config/index.js +35 -21
  132. package/dist/react/hooks/contracts/index.d.ts +6 -6
  133. package/dist/react/hooks/contracts/index.js +13 -12
  134. package/dist/react/hooks/data/collectibles/index.d.ts +10 -4
  135. package/dist/react/hooks/data/collectibles/index.js +35 -21
  136. package/dist/react/hooks/data/collections/index.d.ts +10 -10
  137. package/dist/react/hooks/data/collections/index.js +35 -21
  138. package/dist/react/hooks/data/index.d.ts +37 -29
  139. package/dist/react/hooks/data/index.js +36 -22
  140. package/dist/react/hooks/data/inventory/index.d.ts +36 -28
  141. package/dist/react/hooks/data/inventory/index.js +35 -21
  142. package/dist/react/hooks/data/market/index.d.ts +11 -11
  143. package/dist/react/hooks/data/market/index.js +35 -21
  144. package/dist/react/hooks/data/orders/index.d.ts +11 -11
  145. package/dist/react/hooks/data/orders/index.js +36 -22
  146. package/dist/react/hooks/data/primary-sales/index.d.ts +36 -28
  147. package/dist/react/hooks/data/primary-sales/index.js +35 -21
  148. package/dist/react/hooks/data/tokens/index.d.ts +4 -4
  149. package/dist/react/hooks/data/tokens/index.js +35 -21
  150. package/dist/react/hooks/index.d.ts +37 -29
  151. package/dist/react/hooks/index.js +36 -22
  152. package/dist/react/hooks/transactions/index.d.ts +2 -2
  153. package/dist/react/hooks/transactions/index.js +35 -21
  154. package/dist/react/hooks/ui/index.d.ts +4 -4
  155. package/dist/react/hooks/ui/index.js +35 -21
  156. package/dist/react/hooks/utils/index.d.ts +37 -29
  157. package/dist/react/hooks/utils/index.js +36 -22
  158. package/dist/react/index.d.ts +37 -29
  159. package/dist/react/index.js +36 -22
  160. package/dist/react/queries/collectibles/index.d.ts +11 -0
  161. package/dist/react/queries/collectibles/index.js +23 -0
  162. package/dist/react/queries/collections/index.d.ts +11 -0
  163. package/dist/react/queries/collections/index.js +20 -0
  164. package/dist/react/queries/index.d.ts +24 -16
  165. package/dist/react/queries/index.js +29 -17
  166. package/dist/react/queries/inventory/index.d.ts +3 -0
  167. package/dist/react/queries/inventory/index.js +22 -0
  168. package/dist/react/queries/market/index.d.ts +6 -0
  169. package/dist/react/queries/market/index.js +22 -0
  170. package/dist/react/queries/orders/index.d.ts +11 -0
  171. package/dist/react/queries/orders/index.js +13 -0
  172. package/dist/react/queries/primary-sales/index.d.ts +4 -0
  173. package/dist/react/queries/primary-sales/index.js +13 -0
  174. package/dist/react/queries/tokens/index.d.ts +5 -0
  175. package/dist/react/queries/tokens/index.js +14 -0
  176. package/dist/react/queries/utils/index.d.ts +4 -0
  177. package/dist/react/queries/utils/index.js +22 -0
  178. package/dist/react/ssr/index.d.ts +7 -7
  179. package/dist/react/ssr/index.js +9 -8
  180. package/dist/react/ssr/index.js.map +1 -1
  181. package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.d.ts +3 -0
  182. package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.js +22 -0
  183. package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.d.ts +54 -0
  184. package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.js +40 -0
  185. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +5 -5
  186. package/dist/react/ui/components/marketplace-collectible-card/index.js +35 -21
  187. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -2
  188. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +9 -8
  189. package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
  190. package/dist/react/ui/components/marketplace-logos/index.js +1 -1
  191. package/dist/react/ui/icons/index.js +13 -11
  192. package/dist/react/ui/index.d.ts +5 -5
  193. package/dist/react/ui/index.js +35 -21
  194. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +2 -2
  195. package/dist/react/ui/modals/_internal/components/actionModal/index.js +35 -21
  196. package/dist/react/utils/index.d.ts +3 -3
  197. package/dist/react/utils/index.js +5 -5
  198. package/dist/{react-Ceq8mamy.js → react-DE852KeT.js} +2111 -1002
  199. package/dist/react-DE852KeT.js.map +1 -0
  200. package/dist/{sequence-Dt2Xo7Fa.js → sequence-paCCener.js} +1 -1
  201. package/dist/{sequence-Dt2Xo7Fa.js.map → sequence-paCCener.js.map} +1 -1
  202. package/dist/styles/index.css +200 -24
  203. package/dist/{sudo-swap-CGoARONs.js → sudo-swap-9rH2EgfT.js} +1 -1
  204. package/dist/{sudo-swap-CGoARONs.js.map → sudo-swap-9rH2EgfT.js.map} +1 -1
  205. package/dist/{super-rare-NeQtZjcn.js → super-rare-DHIuWtRw.js} +1 -1
  206. package/dist/{super-rare-NeQtZjcn.js.map → super-rare-DHIuWtRw.js.map} +1 -1
  207. package/dist/{token-D9gZVqbX.js → token-Cv7l2ZaL.js} +1 -1
  208. package/dist/{token-D9gZVqbX.js.map → token-Cv7l2ZaL.js.map} +1 -1
  209. package/dist/tokenBalances-ibDerNmM.js +63 -0
  210. package/dist/tokenBalances-ibDerNmM.js.map +1 -0
  211. package/dist/tokenSupplies-Bfe8RHzI.d.ts +272 -0
  212. package/dist/tokens-cGxMadd8.js +194 -0
  213. package/dist/tokens-cGxMadd8.js.map +1 -0
  214. package/dist/{transaction-CC2KxNF6.js → transaction-DZUW5RHu.js} +2 -8
  215. package/dist/transaction-DZUW5RHu.js.map +1 -0
  216. package/dist/types/index.d.ts +2 -2
  217. package/dist/types/index.js +2 -2
  218. package/dist/{types-G2PWxiJR.js → types-B_-cnkcP.js} +1 -1
  219. package/dist/types-B_-cnkcP.js.map +1 -0
  220. package/dist/{types-BlCa0TVE.d.ts → types-D2TJ1dwv.d.ts} +19 -10
  221. package/dist/utils/abi/index.d.ts +5 -5
  222. package/dist/utils/abi/index.js +5 -5
  223. package/dist/utils/abi/marketplace/index.d.ts +1 -1
  224. package/dist/utils/abi/marketplace/index.js +1 -1
  225. package/dist/utils/abi/primary-sale/index.d.ts +1 -1
  226. package/dist/utils/abi/primary-sale/index.js +1 -1
  227. package/dist/utils/abi/token/index.d.ts +1 -1
  228. package/dist/utils/abi/token/index.js +1 -1
  229. package/dist/utils/index.d.ts +7 -7
  230. package/dist/utils/index.js +12 -11
  231. package/dist/utils-BCgNhBFR.js +112 -0
  232. package/dist/utils-BCgNhBFR.js.map +1 -0
  233. package/dist/{utils-CKJd-CRf.js → utils-BfpDVibN.js} +7 -24
  234. package/dist/utils-BfpDVibN.js.map +1 -0
  235. package/dist/{utils-wquIhK6T.js → utils-BqxcalL2.js} +2 -2
  236. package/dist/utils-BqxcalL2.js.map +1 -0
  237. package/dist/waitForTransactionReceipt-DieAnV52.js +25 -0
  238. package/dist/waitForTransactionReceipt-DieAnV52.js.map +1 -0
  239. package/dist/{x2y2-CQdg24VP.js → x2y2-45WDooeh.js} +1 -1
  240. package/dist/{x2y2-CQdg24VP.js.map → x2y2-45WDooeh.js.map} +1 -1
  241. package/dist/{zora-DdEydy4L.js → zora-CbeBoLvQ.js} +1 -1
  242. package/dist/{zora-DdEydy4L.js.map → zora-CbeBoLvQ.js.map} +1 -1
  243. package/package.json +43 -38
  244. package/src/react/_internal/api/__mocks__/marketplace.msw.ts +2 -0
  245. package/src/react/_internal/api/marketplace.gen.ts +1730 -2383
  246. package/src/react/_internal/api/query-keys.ts +16 -0
  247. package/src/react/_internal/api/services.ts +1 -1
  248. package/src/react/_internal/databeat/types.ts +1 -0
  249. package/src/react/_internal/types.ts +14 -0
  250. package/src/react/_internal/utils.ts +3 -0
  251. package/src/react/_internal/wagmi/__tests__/create-config.test.ts +19 -8
  252. package/src/react/_internal/wagmi/create-config.ts +6 -17
  253. package/src/react/hooks/config/__snapshots__/useMarketplaceConfig.test.tsx.snap +4 -4
  254. package/src/react/hooks/config/useMarketplaceConfig.tsx +1 -1
  255. package/src/react/hooks/data/collectibles/useBalanceOfCollectible.laos.test.tsx +2 -2
  256. package/src/react/hooks/data/collectibles/useBalanceOfCollectible.tsx +1 -1
  257. package/src/react/hooks/data/collectibles/useCollectible.tsx +1 -1
  258. package/src/react/hooks/data/collectibles/useCountOfCollectables.tsx +1 -1
  259. package/src/react/hooks/data/collectibles/useListCollectibleActivities.tsx +1 -1
  260. package/src/react/hooks/data/collectibles/useListCollectibles.tsx +1 -1
  261. package/src/react/hooks/data/collectibles/useListCollectiblesPaginated.tsx +1 -1
  262. package/src/react/hooks/data/collectibles/useTokenBalances.test.tsx +151 -0
  263. package/src/react/hooks/data/collectibles/useTokenBalances.tsx +47 -0
  264. package/src/react/hooks/data/collections/__snapshots__/useListCollections.test.tsx.snap +6 -6
  265. package/src/react/hooks/data/collections/useCollection.tsx +1 -1
  266. package/src/react/hooks/data/collections/useCollectionBalanceDetails.tsx +1 -1
  267. package/src/react/hooks/data/collections/useCollectionDetails.ts +1 -1
  268. package/src/react/hooks/data/collections/useListCollectionActivities.tsx +1 -1
  269. package/src/react/hooks/data/collections/useListCollections.tsx +1 -1
  270. package/src/react/hooks/data/inventory/useInventory.test.tsx +3 -98
  271. package/src/react/hooks/data/inventory/useInventory.tsx +3 -3
  272. package/src/react/hooks/data/market/useCurrency.tsx +1 -1
  273. package/src/react/hooks/data/market/useListMarketCardData.tsx +8 -1
  274. package/src/react/hooks/data/market/useMarketCurrencies.tsx +1 -1
  275. package/src/react/hooks/data/orders/index.ts +4 -0
  276. package/src/react/hooks/data/orders/useCountItemsOrdersForCollection.tsx +90 -0
  277. package/src/react/hooks/data/orders/useCountListingsForCollectible.tsx +1 -1
  278. package/src/react/hooks/data/orders/useCountOffersForCollectible.tsx +1 -1
  279. package/src/react/hooks/data/orders/useFloorOrder.tsx +1 -1
  280. package/src/react/hooks/data/orders/useGetCountOfFilteredOrders.tsx +39 -0
  281. package/src/react/hooks/data/orders/useHighestOffer.tsx +1 -1
  282. package/src/react/hooks/data/orders/useListItemsOrdersForCollection.tsx +93 -0
  283. package/src/react/hooks/data/orders/useListItemsOrdersForCollectionPaginated.tsx +108 -0
  284. package/src/react/hooks/data/orders/useListListingsForCollectible.tsx +1 -1
  285. package/src/react/hooks/data/orders/useListOffersForCollectible.tsx +70 -45
  286. package/src/react/hooks/data/orders/useLowestListing.tsx +1 -1
  287. package/src/react/hooks/data/primary-sales/useGetCountOfPrimarySaleItems.tsx +2 -2
  288. package/src/react/hooks/data/primary-sales/useList1155ShopCardData.tsx +21 -37
  289. package/src/react/hooks/data/primary-sales/useList721ShopCardData.tsx +14 -3
  290. package/src/react/hooks/data/primary-sales/useListPrimarySaleItems.tsx +1 -1
  291. package/src/react/hooks/data/tokens/useGetTokenRanges.tsx +2 -2
  292. package/src/react/hooks/data/tokens/useListBalances.tsx +2 -2
  293. package/src/react/hooks/data/tokens/useListTokenMetadata.tsx +1 -1
  294. package/src/react/hooks/data/tokens/useSearchTokenMetadata.tsx +5 -2
  295. package/src/react/hooks/data/tokens/useTokenSupplies.ts +1 -1
  296. package/src/react/hooks/transactions/useCancelOrder.test.tsx +7 -4
  297. package/src/react/hooks/transactions/useCancelOrder.tsx +2 -1
  298. package/src/react/hooks/transactions/useCancelTransactionSteps.tsx +2 -2
  299. package/src/react/hooks/transactions/useGenerateCancelTransaction.test.tsx +1 -0
  300. package/src/react/hooks/transactions/useGenerateListingTransaction.test.tsx +13 -0
  301. package/src/react/hooks/transactions/useGenerateOfferTransaction.test.tsx +1 -0
  302. package/src/react/hooks/transactions/useGenerateSellTransaction.test.tsx +6 -0
  303. package/src/react/hooks/transactions/useProcessStep.test.tsx +2 -2
  304. package/src/react/hooks/ui/useFilterState.tsx +72 -2
  305. package/src/react/hooks/ui/useFilters.tsx +1 -1
  306. package/src/react/hooks/utils/__tests__/useEnsureCorrectChain.test.tsx +75 -0
  307. package/src/react/hooks/utils/index.ts +0 -1
  308. package/src/react/hooks/utils/useCheckoutOptions.tsx +2 -2
  309. package/src/react/hooks/utils/useCheckoutOptionsSalesContract.tsx +1 -1
  310. package/src/react/hooks/utils/useComparePrices.tsx +1 -1
  311. package/src/react/hooks/utils/useConvertPriceToUSD.tsx +1 -1
  312. package/src/react/hooks/utils/useEnsureCorrectChain.ts +31 -34
  313. package/src/react/providers/analytics-provider.tsx +45 -0
  314. package/src/react/providers/index.tsx +33 -46
  315. package/src/react/providers/modal-provider.tsx +15 -4
  316. package/src/react/queries/{__tests__ → collectibles/__tests__}/balanceOfCollectible.laos.test.ts +4 -4
  317. package/src/react/queries/collectibles/__tests__/tokenBalances.laos.test.ts +123 -0
  318. package/src/react/queries/{balanceOfCollectible.ts → collectibles/balanceOfCollectible.ts} +26 -4
  319. package/src/react/queries/{collectible.ts → collectibles/collectible.ts} +20 -5
  320. package/src/react/queries/{countOfCollectables.ts → collectibles/countOfCollectables.ts} +32 -6
  321. package/src/react/queries/collectibles/index.ts +7 -0
  322. package/src/react/queries/{listCollectibleActivities.ts → collectibles/listCollectibleActivities.ts} +29 -5
  323. package/src/react/queries/{listCollectibles.ts → collectibles/listCollectibles.ts} +47 -54
  324. package/src/react/queries/{listCollectiblesPaginated.ts → collectibles/listCollectiblesPaginated.ts} +22 -5
  325. package/src/react/queries/collectibles/tokenBalances.ts +103 -0
  326. package/src/react/queries/{collection.ts → collections/collection.ts} +19 -5
  327. package/src/react/queries/{collectionBalanceDetails.ts → collections/collectionBalanceDetails.ts} +19 -4
  328. package/src/react/queries/{collectionDetails.ts → collections/collectionDetails.ts} +21 -6
  329. package/src/react/queries/collections/index.ts +5 -0
  330. package/src/react/queries/{listCollectionActivities.ts → collections/listCollectionActivities.ts} +28 -6
  331. package/src/react/queries/{listCollections.ts → collections/listCollections.ts} +26 -18
  332. package/src/react/queries/index.ts +7 -33
  333. package/src/react/queries/{__tests__ → inventory/__tests__}/inventory.laos.test.ts +10 -7
  334. package/src/react/queries/inventory/index.ts +1 -0
  335. package/src/react/queries/inventory/inventory.ts +169 -0
  336. package/src/react/queries/{checkoutOptions.ts → market/checkoutOptions.ts} +28 -6
  337. package/src/react/queries/{checkoutOptionsSalesContract.ts → market/checkoutOptionsSalesContract.ts} +24 -5
  338. package/src/react/queries/{currency.ts → market/currency.ts} +13 -4
  339. package/src/react/queries/{filters.ts → market/filters.ts} +48 -34
  340. package/src/react/queries/market/index.ts +6 -0
  341. package/src/react/queries/{marketCurrencies.ts → market/marketCurrencies.ts} +24 -5
  342. package/src/react/queries/{marketplaceConfig.ts → market/marketplaceConfig.ts} +11 -7
  343. package/src/react/queries/orders/countItemsOrdersForCollection.ts +86 -0
  344. package/src/react/queries/{countListingsForCollectible.ts → orders/countListingsForCollectible.ts} +23 -6
  345. package/src/react/queries/{countOffersForCollectible.ts → orders/countOffersForCollectible.ts} +23 -6
  346. package/src/react/queries/{floorOrder.ts → orders/floorOrder.ts} +15 -4
  347. package/src/react/queries/orders/getCountOfFilteredOrders.ts +88 -0
  348. package/src/react/queries/{highestOffer.ts → orders/highestOffer.ts} +16 -4
  349. package/src/react/queries/orders/index.ts +11 -0
  350. package/src/react/queries/orders/listItemsOrdersForCollection.ts +90 -0
  351. package/src/react/queries/orders/listItemsOrdersForCollectionPaginated.ts +90 -0
  352. package/src/react/queries/{listListingsForCollectible.ts → orders/listListingsForCollectible.ts} +20 -5
  353. package/src/react/queries/orders/listOffersForCollectible.ts +116 -0
  354. package/src/react/queries/{lowestListing.ts → orders/lowestListing.ts} +16 -4
  355. package/src/react/queries/{countOfPrimarySaleItems.ts → primary-sales/countOfPrimarySaleItems.ts} +17 -3
  356. package/src/react/queries/primary-sales/index.ts +3 -0
  357. package/src/react/queries/{primarySaleItems.ts → primary-sales/primarySaleItems.ts} +18 -4
  358. package/src/react/queries/{primarySaleItemsCount.ts → primary-sales/primarySaleItemsCount.ts} +19 -4
  359. package/src/react/queries/{getTokenRanges.ts → tokens/getTokenRanges.ts} +17 -4
  360. package/src/react/queries/tokens/index.ts +5 -0
  361. package/src/react/queries/{listBalances.ts → tokens/listBalances.ts} +18 -3
  362. package/src/react/queries/{listTokenMetadata.ts → tokens/listTokenMetadata.ts} +18 -4
  363. package/src/react/queries/{searchTokenMetadata.ts → tokens/searchTokenMetadata.ts} +18 -4
  364. package/src/react/queries/{tokenSupplies.ts → tokens/tokenSupplies.ts} +16 -4
  365. package/src/react/queries/{comparePrices.ts → utils/comparePrices.ts} +16 -4
  366. package/src/react/queries/{convertPriceToUSD.ts → utils/convertPriceToUSD.ts} +18 -5
  367. package/src/react/queries/utils/index.ts +2 -0
  368. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +4 -4
  369. package/src/react/ssr/create-ssr-client.ts +1 -1
  370. package/src/react/ui/components/_internals/ErrorLogBox.tsx +85 -0
  371. package/src/react/ui/components/_internals/action-button/ActionButton.stories.tsx +8 -8
  372. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +10 -9
  373. package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +4 -4
  374. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +10 -6
  375. package/src/react/ui/components/_internals/custom-select/__tests__/CustomSelect.test.tsx +1 -1
  376. package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +4 -3
  377. package/src/react/ui/components/marketplace-collectible-card/CollectibleCardSkeleton.tsx +13 -2
  378. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +7 -7
  379. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +14 -5
  380. package/src/react/ui/components/marketplace-collectible-card/components/footer/Footer.tsx +179 -0
  381. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/FooterName.tsx +103 -0
  382. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/PriceDisplay.tsx +80 -0
  383. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/SaleDetailsPill.tsx +29 -0
  384. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/TokenTypeBalancePill.tsx +30 -0
  385. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/index.ts +4 -0
  386. package/src/react/ui/components/marketplace-collectible-card/components/footer/index.ts +2 -0
  387. package/src/react/ui/components/marketplace-collectible-card/types.ts +19 -6
  388. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +14 -23
  389. package/src/react/ui/components/marketplace-collectible-card/variants/NonTradableInventoryCard.tsx +42 -0
  390. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +17 -12
  391. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +10 -10
  392. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +3 -3
  393. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx.bak +3 -3
  394. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +6 -6
  395. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +3 -3
  396. package/src/react/ui/modals/BuyModal/components/BuyModalRouter.tsx +5 -5
  397. package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +67 -5
  398. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +8 -8
  399. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +2 -2
  400. package/src/react/ui/modals/BuyModal/components/ERC721BuyModal.tsx +31 -0
  401. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC721SalePaymentParams.test.tsx +20 -1
  402. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +20 -4
  403. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +12 -3
  404. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +11 -2
  405. package/src/react/ui/modals/BuyModal/store.ts +9 -6
  406. package/src/react/ui/modals/CreateListingModal/Modal.tsx +63 -24
  407. package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +4 -0
  408. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +20 -13
  409. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +4 -1
  410. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +2 -1
  411. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +141 -96
  412. package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +10 -0
  413. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +4 -1
  414. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +17 -27
  415. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +2 -1
  416. package/src/react/ui/modals/SellModal/Modal.tsx +21 -3
  417. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +2 -0
  418. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +5 -2
  419. package/src/react/ui/modals/SellModal/hooks/useSell.tsx +15 -8
  420. package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +9 -0
  421. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +20 -9
  422. package/src/react/ui/modals/_internal/components/calendarDropdown/TimeSelector.tsx +105 -0
  423. package/src/react/ui/modals/_internal/components/calendarDropdown/index.tsx +45 -12
  424. package/src/react/ui/modals/_internal/components/calendarDropdown/overrides.css +39 -0
  425. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +31 -10
  426. package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +18 -9
  427. package/src/react/ui/modals/_internal/components/priceInput/index.tsx +53 -3
  428. package/src/react/ui/modals/_internal/components/switchChainErrorModal/__tests__/SwitchChainErrorModal.test.tsx +80 -0
  429. package/src/react/ui/modals/_internal/components/switchChainErrorModal/index.tsx +64 -0
  430. package/src/react/ui/modals/_internal/components/switchChainErrorModal/store.ts +42 -0
  431. package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +58 -10
  432. package/src/react/ui/modals/_internal/constants/opensea-currencies.ts +481 -0
  433. package/src/react/ui/modals/_internal/types.ts +0 -1
  434. package/src/react/utils/waitForTransactionReceipt.ts +26 -32
  435. package/src/styles/index.css +1 -0
  436. package/src/styles/styles.ts +201 -25
  437. package/src/types/index.ts +1 -1
  438. package/src/types/new-marketplace-types.ts +9 -18
  439. package/src/types/types.ts +1 -1
  440. package/src/utils/abi/index.ts +1 -0
  441. package/src/utils/abi/mainModule.ts +158 -0
  442. package/test/globalSetup.ts +1 -1
  443. package/test/test-utils.tsx +1 -0
  444. package/dist/BellIcon-Cb9YEUzJ.js.map +0 -1
  445. package/dist/CollectibleCard-CYyWzk6u.d.ts +0 -8
  446. package/dist/api-BmEQfSQa.js.map +0 -1
  447. package/dist/create-config-6uynwTeb.js.map +0 -1
  448. package/dist/filters-B8XS4tFH.d.ts +0 -31
  449. package/dist/index-BuY_NKSX.d.ts +0 -222
  450. package/dist/index-D2HohSwO.d.ts +0 -293
  451. package/dist/listCollectiblesPaginated--AgXjajA.d.ts +0 -166
  452. package/dist/lowestListing-BQHfQpfg.d.ts +0 -144
  453. package/dist/marketplace-logos-D8t86gsW.js.map +0 -1
  454. package/dist/marketplace.gen-JzNYpM0U.js.map +0 -1
  455. package/dist/marketplaceConfig-sNh-MA5M.js.map +0 -1
  456. package/dist/network-DnBEe1Ur.js.map +0 -1
  457. package/dist/queries-BYT4GJw3.js +0 -1478
  458. package/dist/queries-BYT4GJw3.js.map +0 -1
  459. package/dist/react-CbqXKOpt.css +0 -80
  460. package/dist/react-CbqXKOpt.css.map +0 -1
  461. package/dist/react-Ceq8mamy.js.map +0 -1
  462. package/dist/tokenSupplies-DXtkRYNO.d.ts +0 -147
  463. package/dist/transaction-CC2KxNF6.js.map +0 -1
  464. package/dist/types-G2PWxiJR.js.map +0 -1
  465. package/dist/utils-CKJd-CRf.js.map +0 -1
  466. package/dist/utils-wquIhK6T.js.map +0 -1
  467. package/dist/waitForTransactionReceipt-DZxAuR9N.js +0 -27
  468. package/dist/waitForTransactionReceipt-DZxAuR9N.js.map +0 -1
  469. package/src/react/hooks/utils/useSwitchChainWithModal.ts +0 -38
  470. package/src/react/queries/inventory.ts +0 -343
  471. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +0 -238
  472. package/src/react/ui/modals/_internal/components/switchChainModal/__tests__/SwitchChainModal.test.tsx +0 -117
  473. package/src/react/ui/modals/_internal/components/switchChainModal/index.tsx +0 -124
  474. package/src/react/ui/modals/_internal/components/switchChainModal/store.ts +0 -71
  475. /package/dist/{index-q7f-WDBS.d.ts → index-6wsMChsg.d.ts} +0 -0
  476. /package/dist/{abi-Wr_aTZFi.js → queries-KOcILNJO.js} +0 -0
  477. /package/dist/{wagmi-BhP3mdhP.js → wagmi-Bseovd6Q.js} +0 -0
@@ -1,16 +1,18 @@
1
1
  import type {
2
2
  Filter,
3
3
  Page,
4
+ SearchTokenMetadataArgs,
4
5
  SearchTokenMetadataReturn,
5
6
  } from '@0xsequence/metadata';
6
7
  import { infiniteQueryOptions } from '@tanstack/react-query';
7
- import type { SdkConfig } from '../../types';
8
+ import type { SdkConfig } from '../../../types';
8
9
  import {
9
10
  getMetadataClient,
11
+ type QueryKeyArgs,
10
12
  tokenKeys,
11
13
  type ValuesOptional,
12
- } from '../_internal';
13
- import type { StandardQueryOptions } from '../types/query';
14
+ } from '../../_internal';
15
+ import type { StandardQueryOptions } from '../../types/query';
14
16
 
15
17
  export interface FetchSearchTokenMetadataParams {
16
18
  chainId: number;
@@ -47,6 +49,18 @@ export type SearchTokenMetadataQueryOptions =
47
49
  query?: StandardQueryOptions;
48
50
  };
49
51
 
52
+ export function getSearchTokenMetadataQueryKey(
53
+ params: SearchTokenMetadataQueryOptions,
54
+ ) {
55
+ const apiArgs = {
56
+ chainID: String(params.chainId!),
57
+ contractAddress: params.collectionAddress!,
58
+ filter: params.filter,
59
+ } satisfies QueryKeyArgs<Omit<SearchTokenMetadataArgs, 'page'>>;
60
+
61
+ return [...tokenKeys.metadata, 'search', apiArgs] as const;
62
+ }
63
+
50
64
  export function searchTokenMetadataQueryOptions(
51
65
  params: SearchTokenMetadataQueryOptions,
52
66
  ) {
@@ -60,7 +74,7 @@ export function searchTokenMetadataQueryOptions(
60
74
  const initialPageParam = { page: 1, pageSize: 30 };
61
75
 
62
76
  return infiniteQueryOptions({
63
- queryKey: [...tokenKeys.metadata, 'search', params],
77
+ queryKey: getSearchTokenMetadataQueryKey(params),
64
78
  queryFn: ({ pageParam = initialPageParam }) =>
65
79
  fetchSearchTokenMetadata({
66
80
  // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
@@ -1,13 +1,13 @@
1
1
  import type { GetTokenSuppliesArgs, Page } from '@0xsequence/indexer';
2
2
  import { infiniteQueryOptions } from '@tanstack/react-query';
3
- import type { SdkConfig } from '../../types';
3
+ import type { SdkConfig } from '../../../types';
4
4
  import {
5
5
  getIndexerClient,
6
6
  LaosAPI,
7
7
  tokenKeys,
8
8
  type ValuesOptional,
9
- } from '../_internal';
10
- import type { StandardInfiniteQueryOptions } from '../types/query';
9
+ } from '../../_internal';
10
+ import type { StandardInfiniteQueryOptions } from '../../types/query';
11
11
 
12
12
  export interface FetchTokenSuppliesParams
13
13
  extends Omit<GetTokenSuppliesArgs, 'contractAddress'> {
@@ -65,6 +65,18 @@ export type TokenSuppliesQueryOptions =
65
65
  query?: StandardInfiniteQueryOptions;
66
66
  };
67
67
 
68
+ export function getTokenSuppliesQueryKey(params: TokenSuppliesQueryOptions) {
69
+ const apiArgs = {
70
+ chainId: params.chainId!,
71
+ contractAddress: params.collectionAddress!,
72
+ includeMetadata: params.includeMetadata,
73
+ metadataOptions: params.metadataOptions,
74
+ isLaos721: params.isLaos721,
75
+ };
76
+
77
+ return [...tokenKeys.supplies, apiArgs] as const;
78
+ }
79
+
68
80
  export function tokenSuppliesQueryOptions(params: TokenSuppliesQueryOptions) {
69
81
  const enabled = Boolean(
70
82
  params.chainId &&
@@ -90,7 +102,7 @@ export function tokenSuppliesQueryOptions(params: TokenSuppliesQueryOptions) {
90
102
  });
91
103
 
92
104
  return infiniteQueryOptions({
93
- queryKey: [...tokenKeys.supplies, params],
105
+ queryKey: getTokenSuppliesQueryKey(params),
94
106
  queryFn,
95
107
  initialPageParam,
96
108
  getNextPageParam: (lastPage) =>
@@ -1,8 +1,8 @@
1
1
  import { queryOptions } from '@tanstack/react-query';
2
2
  import type { Address } from 'viem';
3
- import type { SdkConfig } from '../../types';
4
- import type { ValuesOptional } from '../_internal';
5
- import type { StandardQueryOptions } from '../types/query';
3
+ import type { SdkConfig } from '../../../types';
4
+ import { currencyKeys, type ValuesOptional } from '../../_internal';
5
+ import type { StandardQueryOptions } from '../../types/query';
6
6
  import { fetchConvertPriceToUSD } from './convertPriceToUSD';
7
7
 
8
8
  export interface FetchComparePricesParams {
@@ -74,6 +74,18 @@ export type ComparePricesQueryOptions =
74
74
  query?: StandardQueryOptions;
75
75
  };
76
76
 
77
+ export function getComparePricesQueryKey(params: ComparePricesQueryOptions) {
78
+ const apiArgs = {
79
+ chainId: params.chainId!,
80
+ priceAmountRaw: params.priceAmountRaw!,
81
+ priceCurrencyAddress: params.priceCurrencyAddress!,
82
+ compareToPriceAmountRaw: params.compareToPriceAmountRaw!,
83
+ compareToPriceCurrencyAddress: params.compareToPriceCurrencyAddress!,
84
+ };
85
+
86
+ return [...currencyKeys.conversion, 'compare', apiArgs] as const;
87
+ }
88
+
77
89
  export function comparePricesQueryOptions(params: ComparePricesQueryOptions) {
78
90
  const enabled = Boolean(
79
91
  params.chainId &&
@@ -86,7 +98,7 @@ export function comparePricesQueryOptions(params: ComparePricesQueryOptions) {
86
98
  );
87
99
 
88
100
  return queryOptions({
89
- queryKey: ['currency', 'conversion', 'compare', params],
101
+ queryKey: getComparePricesQueryKey(params),
90
102
  queryFn: () =>
91
103
  fetchComparePrices({
92
104
  // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
@@ -1,13 +1,14 @@
1
1
  import { queryOptions } from '@tanstack/react-query';
2
2
  import { type Address, formatUnits } from 'viem';
3
- import type { SdkConfig } from '../../types';
3
+ import type { SdkConfig } from '../../../types';
4
4
  import {
5
5
  type Currency,
6
+ currencyKeys,
6
7
  getQueryClient,
7
8
  type ValuesOptional,
8
- } from '../_internal';
9
- import type { StandardQueryOptions } from '../types/query';
10
- import { marketCurrenciesQueryOptions } from './marketCurrencies';
9
+ } from '../../_internal';
10
+ import type { StandardQueryOptions } from '../../types/query';
11
+ import { marketCurrenciesQueryOptions } from '../market/marketCurrencies';
11
12
 
12
13
  export interface FetchConvertPriceToUSDParams {
13
14
  chainId: number;
@@ -62,6 +63,18 @@ export type ConvertPriceToUSDQueryOptions =
62
63
  query?: StandardQueryOptions;
63
64
  };
64
65
 
66
+ export function getConvertPriceToUSDQueryKey(
67
+ params: ConvertPriceToUSDQueryOptions,
68
+ ) {
69
+ const apiArgs = {
70
+ chainId: params.chainId!,
71
+ currencyAddress: params.currencyAddress!,
72
+ amountRaw: params.amountRaw!,
73
+ };
74
+
75
+ return [...currencyKeys.conversion, 'usd', apiArgs] as const;
76
+ }
77
+
65
78
  export function convertPriceToUSDQueryOptions(
66
79
  params: ConvertPriceToUSDQueryOptions,
67
80
  ) {
@@ -74,7 +87,7 @@ export function convertPriceToUSDQueryOptions(
74
87
  );
75
88
 
76
89
  return queryOptions({
77
- queryKey: ['currency', 'convertPriceToUSD', params],
90
+ queryKey: getConvertPriceToUSDQueryKey(params),
78
91
  queryFn: () =>
79
92
  fetchConvertPriceToUSD({
80
93
  // biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
@@ -0,0 +1,2 @@
1
+ export * from './comparePrices';
2
+ export * from './convertPriceToUSD';
@@ -7,6 +7,7 @@ exports[`createSSRClient > should fetch marketplace config successfully 1`] = `
7
7
  "collections": [
8
8
  {
9
9
  "bannerUrl": "https://example.com/market-banner.png",
10
+ "cardType": "market",
10
11
  "chainId": 1,
11
12
  "contractType": "ERC721",
12
13
  "createdAt": "2025-03-16T13:04:16.098Z",
@@ -31,13 +32,13 @@ exports[`createSSRClient > should fetch marketplace config successfully 1`] = `
31
32
  },
32
33
  "id": 1,
33
34
  "itemsAddress": "0x0000000000000000000000000000000000000000",
34
- "marketplaceType": "market",
35
35
  "private": false,
36
36
  "projectId": 1,
37
37
  "updatedAt": "2025-03-16T13:04:16.098Z",
38
38
  },
39
39
  {
40
40
  "bannerUrl": "https://example.com/collection-banner.png",
41
+ "cardType": "market",
41
42
  "chainId": 137,
42
43
  "contractType": "ERC1155",
43
44
  "createdAt": "2025-03-16T13:04:16.098Z",
@@ -66,7 +67,6 @@ exports[`createSSRClient > should fetch marketplace config successfully 1`] = `
66
67
  },
67
68
  "id": 2,
68
69
  "itemsAddress": "0x1234567890123456789012345678901234567890",
69
- "marketplaceType": "market",
70
70
  "private": false,
71
71
  "projectId": 1,
72
72
  "updatedAt": "2025-03-16T13:04:16.098Z",
@@ -105,12 +105,12 @@ exports[`createSSRClient > should fetch marketplace config successfully 1`] = `
105
105
  "collections": [
106
106
  {
107
107
  "bannerUrl": "https://example.com/shop-banner.png",
108
+ "cardType": "shop",
108
109
  "chainId": 1,
109
110
  "createdAt": "2025-03-16T13:04:16.098Z",
110
111
  "customTokenIds": [],
111
112
  "id": 1,
112
113
  "itemsAddress": "0x0000000000000000000000000000000000000000",
113
- "marketplaceType": "shop",
114
114
  "name": "Mock Shop Collection",
115
115
  "private": false,
116
116
  "projectId": 1,
@@ -125,12 +125,12 @@ exports[`createSSRClient > should fetch marketplace config successfully 1`] = `
125
125
  },
126
126
  {
127
127
  "bannerUrl": "https://example.com/polygon-shop-banner.png",
128
+ "cardType": "shop",
128
129
  "chainId": 137,
129
130
  "createdAt": "2025-03-16T13:04:16.098Z",
130
131
  "customTokenIds": [],
131
132
  "id": 2,
132
133
  "itemsAddress": "0x1234567890123456789012345678901234567890",
133
- "marketplaceType": "shop",
134
134
  "name": "Polygon Shop Collection",
135
135
  "private": false,
136
136
  "projectId": 1,
@@ -2,7 +2,7 @@ import { cookieToInitialState, type State } from 'wagmi';
2
2
  import type { SdkConfig } from '../../types/sdk-config';
3
3
  import { getQueryClient } from '../_internal/api/get-query-client';
4
4
  import { createWagmiConfig } from '../_internal/wagmi/create-config';
5
- import { marketplaceConfigOptions } from '../queries/marketplaceConfig';
5
+ import { marketplaceConfigOptions } from '../queries/market/marketplaceConfig';
6
6
 
7
7
  type InitSSRClientArgs = {
8
8
  cookie: string;
@@ -0,0 +1,85 @@
1
+ 'use client';
2
+
3
+ import {
4
+ ChevronDownIcon,
5
+ ChevronUpIcon,
6
+ CloseIcon,
7
+ Text,
8
+ WarningIcon,
9
+ } from '@0xsequence/design-system';
10
+ import { useState } from 'react';
11
+
12
+ export interface ErrorLogBoxProps {
13
+ title: string;
14
+ message: string;
15
+ error?: Error;
16
+ onDismiss?: () => void;
17
+ }
18
+
19
+ export const ErrorLogBox = ({
20
+ title,
21
+ message,
22
+ error,
23
+ onDismiss,
24
+ }: ErrorLogBoxProps) => {
25
+ const [showFullError, setShowFullError] = useState(false);
26
+
27
+ const toggleFullError = () => {
28
+ setShowFullError(!showFullError);
29
+ };
30
+
31
+ return (
32
+ <div className="relative max-h-96 w-full overflow-y-auto rounded-lg border border-red-900 bg-[#2b0000] p-3">
33
+ <div className="flex items-start gap-3">
34
+ <WarningIcon
35
+ className="absolute mt-0.5 flex-shrink-0 text-red-500"
36
+ size="sm"
37
+ />
38
+ <div className="min-w-0 flex-1">
39
+ <div className="relative ml-10 flex flex-col">
40
+ <Text className="font-bold text-red-400 text-sm">{title}</Text>
41
+ <Text className="mt-1 text-red-300 text-xs">{message}</Text>
42
+ </div>
43
+
44
+ {error && (
45
+ <div className="mt-2">
46
+ <button
47
+ onClick={toggleFullError}
48
+ className="flex items-center gap-1 text-red-400 text-xs transition-colors hover:text-red-300"
49
+ type="button"
50
+ >
51
+ {showFullError ? 'Hide full error' : 'Show full error'}
52
+ {showFullError ? (
53
+ <ChevronUpIcon className="h-3 w-3" />
54
+ ) : (
55
+ <ChevronDownIcon className="h-3 w-3" />
56
+ )}
57
+ </button>
58
+
59
+ {showFullError && <div className="mt-2 h-px bg-red-900" />}
60
+
61
+ {showFullError && (
62
+ <div className="mt-2 overflow-auto rounded-md bg-red-950 p-2">
63
+ <Text className="whitespace-pre-wrap break-words font-mono text-red-100 text-xs">
64
+ {JSON.stringify(error, null, 2)}
65
+ </Text>
66
+ </div>
67
+ )}
68
+ </div>
69
+ )}
70
+ </div>
71
+
72
+ {onDismiss && (
73
+ <button
74
+ onClick={onDismiss}
75
+ className="absolute right-4 flex-shrink-0 text-red-400 transition-colors hover:text-red-300"
76
+ type="button"
77
+ aria-label="Dismiss error"
78
+ >
79
+ <CloseIcon className="h-3 w-3" />
80
+ </button>
81
+ )}
82
+ </div>
83
+ </div>
84
+ );
85
+ };
@@ -66,9 +66,9 @@ All stories now use Mock Service Worker (MSW) to mock API requests, ensuring the
66
66
  control: 'boolean',
67
67
  description: 'Whether the user owns this collectible',
68
68
  },
69
- marketplaceType: {
69
+ cardType: {
70
70
  control: 'select',
71
- options: ['market', 'shop'],
71
+ options: ['market', 'shop', 'inventory-non-tradable'],
72
72
  description: 'Type of marketplace (market or shop)',
73
73
  },
74
74
  onCannotPerformAction: {
@@ -133,7 +133,7 @@ export const OfferAction: Story = {
133
133
  tokenId: '123',
134
134
  action: CollectibleCardAction.OFFER,
135
135
  owned: false,
136
- marketplaceType: 'market',
136
+ cardType: 'market',
137
137
  orderbookKind: OrderbookKind.sequence_marketplace_v1,
138
138
  onCannotPerformAction: fn(),
139
139
  },
@@ -159,7 +159,7 @@ export const SellAction: Story = {
159
159
  tokenId: '123',
160
160
  action: CollectibleCardAction.SELL,
161
161
  owned: true,
162
- marketplaceType: 'market',
162
+ cardType: 'market',
163
163
  highestOffer: {
164
164
  ...MOCK_ORDER,
165
165
  side: OrderSide.offer,
@@ -189,7 +189,7 @@ export const ListAction: Story = {
189
189
  tokenId: '123',
190
190
  action: CollectibleCardAction.LIST,
191
191
  owned: true,
192
- marketplaceType: 'market',
192
+ cardType: 'market',
193
193
  orderbookKind: OrderbookKind.sequence_marketplace_v1,
194
194
  },
195
195
  play: async ({ canvasElement }) => {
@@ -214,7 +214,7 @@ export const TransferAction: Story = {
214
214
  tokenId: '123',
215
215
  action: CollectibleCardAction.TRANSFER,
216
216
  owned: true,
217
- marketplaceType: 'market',
217
+ cardType: 'market',
218
218
  },
219
219
  play: async ({ canvasElement }) => {
220
220
  const canvas = within(canvasElement);
@@ -238,7 +238,7 @@ export const ShopBuyAction: Story = {
238
238
  tokenId: '123',
239
239
  action: CollectibleCardAction.BUY,
240
240
  owned: false,
241
- marketplaceType: 'shop',
241
+ cardType: 'shop',
242
242
  salesContractAddress: MOCK_ADDRESS,
243
243
  salePrice: {
244
244
  amount: '1000000000000000000',
@@ -271,7 +271,7 @@ export const MarketBuyAction: Story = {
271
271
  tokenId: '123',
272
272
  action: CollectibleCardAction.BUY,
273
273
  owned: false,
274
- marketplaceType: 'market',
274
+ cardType: 'market',
275
275
  lowestListing: {
276
276
  ...MOCK_ORDER,
277
277
  side: OrderSide.listing,
@@ -1,10 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import type { Address } from 'viem';
4
- import type {
5
- CollectibleCardAction,
6
- MarketplaceType,
7
- } from '../../../../../types';
4
+ import type { CardType, CollectibleCardAction } from '../../../../../types';
8
5
  import type { Order, OrderbookKind } from '../../../../_internal';
9
6
  import { NonOwnerActions } from './components/NonOwnerActions';
10
7
  import { OwnerActions } from './components/OwnerActions';
@@ -23,7 +20,7 @@ type ActionButtonProps = {
23
20
  onCannotPerformAction?: (
24
21
  action: CollectibleCardAction.BUY | CollectibleCardAction.OFFER,
25
22
  ) => void;
26
- marketplaceType: MarketplaceType;
23
+ cardType: CardType;
27
24
  salesContractAddress?: Address;
28
25
  prioritizeOwnerActions?: boolean;
29
26
  salePrice?: {
@@ -33,6 +30,7 @@ type ActionButtonProps = {
33
30
  quantityDecimals?: number;
34
31
  quantityRemaining?: number;
35
32
  unlimitedSupply?: boolean;
33
+ hideQuantitySelector?: boolean;
36
34
  };
37
35
 
38
36
  export function ActionButton({
@@ -45,13 +43,14 @@ export function ActionButton({
45
43
  highestOffer,
46
44
  lowestListing,
47
45
  onCannotPerformAction,
48
- marketplaceType,
46
+ cardType,
49
47
  salesContractAddress,
50
48
  prioritizeOwnerActions,
51
49
  salePrice,
52
50
  quantityDecimals,
53
51
  quantityRemaining,
54
52
  unlimitedSupply,
53
+ hideQuantitySelector,
55
54
  }: ActionButtonProps) {
56
55
  const { shouldShowAction, isOwnerAction } = useActionButtonLogic({
57
56
  tokenId,
@@ -78,9 +77,9 @@ export function ActionButton({
78
77
  }
79
78
 
80
79
  const nonOwnerProps =
81
- marketplaceType === 'shop' && salesContractAddress && salePrice
80
+ cardType === 'shop' && salesContractAddress && salePrice
82
81
  ? {
83
- marketplaceType: 'shop' as const,
82
+ cardType: 'shop' as const,
84
83
  salesContractAddress,
85
84
  salePrice,
86
85
  action,
@@ -90,9 +89,10 @@ export function ActionButton({
90
89
  quantityDecimals,
91
90
  quantityRemaining,
92
91
  unlimitedSupply,
92
+ hideQuantitySelector,
93
93
  }
94
94
  : {
95
- marketplaceType: 'market' as const,
95
+ cardType: 'market' as const,
96
96
  orderbookKind,
97
97
  lowestListing,
98
98
  action,
@@ -101,6 +101,7 @@ export function ActionButton({
101
101
  chainId,
102
102
  quantityDecimals,
103
103
  quantityRemaining,
104
+ hideQuantitySelector,
104
105
  };
105
106
 
106
107
  return <NonOwnerActions {...nonOwnerProps} />;
@@ -19,7 +19,7 @@ describe('NonOwnerActions', () => {
19
19
 
20
20
  const marketProps = {
21
21
  ...baseProps,
22
- marketplaceType: 'market' as const,
22
+ cardType: 'market' as const,
23
23
  lowestListing: { ...mockOrder, side: OrderSide.listing },
24
24
  };
25
25
 
@@ -38,7 +38,7 @@ describe('NonOwnerActions', () => {
38
38
  render(
39
39
  <NonOwnerActions
40
40
  {...baseProps}
41
- marketplaceType="shop"
41
+ cardType="shop"
42
42
  salesContractAddress="0x123"
43
43
  salePrice={{ amount: '0.1', currencyAddress: zeroAddress }}
44
44
  />,
@@ -48,7 +48,7 @@ describe('NonOwnerActions', () => {
48
48
 
49
49
  it('throws error when lowestListing is missing for BUY action in MARKET marketplace type', () => {
50
50
  expect(() => {
51
- render(<NonOwnerActions {...baseProps} marketplaceType="market" />);
51
+ render(<NonOwnerActions {...baseProps} cardType="market" />);
52
52
  }).toThrow('lowestListing is required for BUY action and MARKET card type');
53
53
  });
54
54
 
@@ -56,7 +56,7 @@ describe('NonOwnerActions', () => {
56
56
  render(
57
57
  <NonOwnerActions
58
58
  {...baseProps}
59
- marketplaceType="market"
59
+ cardType="market"
60
60
  action={CollectibleCardAction.OFFER}
61
61
  />,
62
62
  );
@@ -16,10 +16,11 @@ type NonOwnerActionsBaseProps = {
16
16
  quantityDecimals?: number;
17
17
  quantityRemaining?: number;
18
18
  unlimitedSupply?: boolean;
19
+ hideQuantitySelector?: boolean;
19
20
  };
20
21
 
21
22
  type ShopNonOwnerActionsProps = NonOwnerActionsBaseProps & {
22
- marketplaceType: 'shop';
23
+ cardType: 'shop';
23
24
  salesContractAddress: Address;
24
25
  salePrice: {
25
26
  amount: string;
@@ -30,7 +31,7 @@ type ShopNonOwnerActionsProps = NonOwnerActionsBaseProps & {
30
31
  };
31
32
 
32
33
  type MarketNonOwnerActionsProps = NonOwnerActionsBaseProps & {
33
- marketplaceType: 'market';
34
+ cardType: 'market';
34
35
  lowestListing?: Order;
35
36
  orderbookKind?: OrderbookKind;
36
37
  salesContractAddress?: never;
@@ -50,13 +51,14 @@ export function NonOwnerActions(props: NonOwnerActionsProps) {
50
51
  quantityDecimals,
51
52
  quantityRemaining,
52
53
  unlimitedSupply,
53
- marketplaceType,
54
+ cardType,
55
+ hideQuantitySelector,
54
56
  } = props;
55
57
 
56
58
  const { show: showBuyModal } = useBuyModal();
57
59
  const { show: showMakeOfferModal } = useMakeOfferModal();
58
60
 
59
- if (marketplaceType === 'shop') {
61
+ if (cardType === 'shop') {
60
62
  const { salesContractAddress, salePrice } = props;
61
63
 
62
64
  return (
@@ -75,7 +77,7 @@ export function NonOwnerActions(props: NonOwnerActionsProps) {
75
77
  quantity: '1',
76
78
  },
77
79
  ],
78
- marketplaceType: 'shop',
80
+ cardType: 'shop',
79
81
  salePrice: {
80
82
  amount: salePrice.amount,
81
83
  currencyAddress: salePrice.currencyAddress,
@@ -83,6 +85,7 @@ export function NonOwnerActions(props: NonOwnerActionsProps) {
83
85
  quantityDecimals: quantityDecimals ?? 0,
84
86
  quantityRemaining: quantityRemaining ?? 0,
85
87
  unlimitedSupply,
88
+ hideQuantitySelector,
86
89
  })
87
90
  }
88
91
  icon={SvgCartIcon}
@@ -110,7 +113,8 @@ export function NonOwnerActions(props: NonOwnerActionsProps) {
110
113
  collectibleId: tokenId,
111
114
  orderId: lowestListing.orderId,
112
115
  marketplace: lowestListing.marketplace,
113
- marketplaceType: 'market',
116
+ cardType: 'market',
117
+ hideQuantitySelector,
114
118
  })
115
119
  }
116
120
  icon={SvgCartIcon}
@@ -31,7 +31,7 @@ vi.mock('@0xsequence/design-system', async (importOriginal) => {
31
31
 
32
32
  // Create a mock implementation that renders all dropdown content immediately
33
33
  return {
34
- // @ts-ignore - ignore spread type error
34
+ // @ts-expect-error - ignore spread type error
35
35
  ...actual,
36
36
  DropdownMenuRoot: ({ children }: { children: ReactNode }) => (
37
37
  <div>{children}</div>
@@ -2,16 +2,17 @@
2
2
 
3
3
  import type { CollectibleCardProps } from './types';
4
4
  import { MarketCard } from './variants/MarketCard';
5
+ import { NonTradableInventoryCard } from './variants/NonTradableInventoryCard';
5
6
 
6
7
  import { ShopCard } from './variants/ShopCard';
7
8
 
8
9
  export function CollectibleCard(props: CollectibleCardProps) {
9
- switch (props.marketplaceType) {
10
+ switch (props.cardType) {
10
11
  case 'shop':
11
12
  return <ShopCard {...props} />;
12
- // biome-ignore lint/complexity/noUselessSwitchCase: explicit case makes code clearer and future-proof
13
13
  case 'market':
14
- default:
15
14
  return <MarketCard {...props} />;
15
+ case 'inventory-non-tradable':
16
+ return <NonTradableInventoryCard {...props} />;
16
17
  }
17
18
  }
@@ -1,6 +1,13 @@
1
1
  import { Skeleton } from '@0xsequence/design-system';
2
+ import { ContractType } from '../../../_internal';
2
3
 
3
- export function MarketplaceCollectibleCardSkeleton() {
4
+ export function MarketplaceCollectibleCardSkeleton({
5
+ contractType,
6
+ isShop,
7
+ }: {
8
+ contractType: ContractType;
9
+ isShop: boolean;
10
+ }) {
4
11
  return (
5
12
  <div
6
13
  data-testid="collectible-card-skeleton"
@@ -17,7 +24,11 @@ export function MarketplaceCollectibleCardSkeleton() {
17
24
  </div>
18
25
  <div className="mt-2 flex flex-col gap-2 px-4 pb-4">
19
26
  <Skeleton size="lg" className="animate-shimmer" />
20
- <Skeleton size="sm" className="animate-shimmer" />
27
+ <Skeleton size="sm" className="h-5 w-16 animate-shimmer" />
28
+
29
+ {isShop && contractType === ContractType.ERC1155 && (
30
+ <Skeleton size="lg" className="h-6 w-20 animate-shimmer" />
31
+ )}
21
32
  </div>
22
33
  </div>
23
34
  );