@0xsequence/marketplace-sdk 1.0.0 → 1.1.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 (304) hide show
  1. package/.storybook/main.ts +1 -1
  2. package/.storybook/preview.tsx +0 -1
  3. package/CHANGELOG.md +62 -13
  4. package/dist/BellIcon-IpHHEy8h.js +45 -0
  5. package/dist/BellIcon-IpHHEy8h.js.map +1 -0
  6. package/dist/{BellIcon-Cb9YEUzJ.js → CartIcon-C8zbor8H.js} +10 -49
  7. package/dist/CartIcon-C8zbor8H.js.map +1 -0
  8. package/dist/CollectibleCard-C2EWF0zo.d.ts +8 -0
  9. package/dist/{_internal-DslqcNC1.js → _internal-DkS2VUn5.js} +1 -1
  10. package/dist/{_internal-DslqcNC1.js.map → _internal-DkS2VUn5.js.map} +1 -1
  11. package/dist/{alien_swap-DJ98gZQp.js → alien_swap-BTJ7mSR-.js} +1 -1
  12. package/dist/{alien_swap-DJ98gZQp.js.map → alien_swap-BTJ7mSR-.js.map} +1 -1
  13. package/dist/{api-BmEQfSQa.js → api-DuLKn__v.js} +5 -3
  14. package/dist/api-DuLKn__v.js.map +1 -0
  15. package/dist/{aqua-xyz-n1PcCCZ0.js → aqua-xyz-BYJ9WSP_.js} +1 -1
  16. package/dist/{aqua-xyz-n1PcCCZ0.js.map → aqua-xyz-BYJ9WSP_.js.map} +1 -1
  17. package/dist/{aura-Bevk_YkS.js → aura-D7SUjgro.js} +1 -1
  18. package/dist/{aura-Bevk_YkS.js.map → aura-D7SUjgro.js.map} +1 -1
  19. package/dist/{blur-B5sHErx5.js → blur-BcnRFCaV.js} +1 -1
  20. package/dist/{blur-B5sHErx5.js.map → blur-BcnRFCaV.js.map} +1 -1
  21. package/dist/builder-api-BFuZNOaN.js.map +1 -1
  22. package/dist/builder.gen-B9wR2nvF.js.map +1 -1
  23. package/dist/{coinbase-D30W-lxA.js → coinbase-ChoX9Hw2.js} +1 -1
  24. package/dist/{coinbase-D30W-lxA.js.map → coinbase-ChoX9Hw2.js.map} +1 -1
  25. package/dist/components-CUv-wQr8.js +119 -0
  26. package/dist/components-CUv-wQr8.js.map +1 -0
  27. package/dist/{contracts-DPHFT2TA.js → contracts-D72LBOX3.js} +4 -5
  28. package/dist/{contracts-DPHFT2TA.js.map → contracts-D72LBOX3.js.map} +1 -1
  29. package/dist/{create-config-6uynwTeb.js → create-config-CIfejoCk.js} +6 -11
  30. package/dist/create-config-CIfejoCk.js.map +1 -0
  31. package/dist/{create-config-lLSrnkbb.d.ts → create-config-DV_dtaLt.d.ts} +24 -31
  32. package/dist/{element-C2NJexro.js → element-Dbcv5qya.js} +1 -1
  33. package/dist/{element-C2NJexro.js.map → element-Dbcv5qya.js.map} +1 -1
  34. package/dist/{filters-B8XS4tFH.d.ts → filters-zkMJaPey.d.ts} +6 -6
  35. package/dist/{foundation-QgY1lvUj.js → foundation-QPhUEUy8.js} +1 -1
  36. package/dist/{foundation-QgY1lvUj.js.map → foundation-QPhUEUy8.js.map} +1 -1
  37. package/dist/{index-ChSKFOMx.d.ts → index-B6aSbaw2.d.ts} +1 -1
  38. package/dist/{index-PSPpUxCE.d.ts → index-B8vaT3_s.d.ts} +4 -4
  39. package/dist/{index-DonXiSg2.d.ts → index-BaytncQc.d.ts} +100 -56
  40. package/dist/{index-CY5UEX4h.d.ts → index-BoNNplSx.d.ts} +2 -2
  41. package/dist/{index-QxxS6f9r.d.ts → index-Bv5XVLjH.d.ts} +1 -1
  42. package/dist/{index-CIkpYltz.d.ts → index-C768pAfu.d.ts} +3 -3
  43. package/dist/{index-DX0Vm8HY.d.ts → index-CM0ZTePs.d.ts} +1 -1
  44. package/dist/index-CMPUveNz.d.ts +64 -0
  45. package/dist/{index-ThUIs-Sy.d.ts → index-CQecU53t.d.ts} +28 -23
  46. package/dist/{index-CtF7EE2z.d.ts → index-CT8ZorFd.d.ts} +1 -1
  47. package/dist/{index-Dpyp7fQz.d.ts → index-CXscCUg7.d.ts} +12 -12
  48. package/dist/{index-ByW08-Z7.d.ts → index-D-UXGo5d.d.ts} +2 -2
  49. package/dist/{index-D71J5Ghd.d.ts → index-D6YMj82n.d.ts} +79 -79
  50. package/dist/{index-CQnGIGb5.d.ts → index-DJG0kiII.d.ts} +33 -33
  51. package/dist/{index-D2HohSwO.d.ts → index-DLUjc7Bx.d.ts} +52 -29
  52. package/dist/{index-C7xKVIr4.d.ts → index-DMBMM16q.d.ts} +37 -37
  53. package/dist/{index-DNU9xoGK.d.ts → index-DpeWm_vF.d.ts} +5 -5
  54. package/dist/{index-BuY_NKSX.d.ts → index-Yobo6icm.d.ts} +40 -28
  55. package/dist/{index-BGJXqdg6.d.ts → index-jGgfEHfQ.d.ts} +8 -8
  56. package/dist/index.d.ts +8 -8
  57. package/dist/index.js +12 -11
  58. package/dist/{listCollectiblesPaginated--AgXjajA.d.ts → listCollectiblesPaginated-Bq0QSOjJ.d.ts} +28 -26
  59. package/dist/{listCollections-Bbzbz7qW.d.ts → listCollections-dTCq00l5.d.ts} +168 -123
  60. package/dist/{looks-rare-CMVPny4v.js → looks-rare-C7cQztTR.js} +1 -1
  61. package/dist/{looks-rare-CMVPny4v.js.map → looks-rare-C7cQztTR.js.map} +1 -1
  62. package/dist/{lowestListing-BQHfQpfg.d.ts → lowestListing-CB5Te-Q9.d.ts} +41 -17
  63. package/dist/{magic-eden-IrWp2ZXk.js → magic-eden-D3r7jiBG.js} +1 -1
  64. package/dist/{magic-eden-IrWp2ZXk.js.map → magic-eden-D3r7jiBG.js.map} +1 -1
  65. package/dist/{manifold-DeOE-p2G.js → manifold-DsX0CBP-.js} +1 -1
  66. package/dist/{manifold-DeOE-p2G.js.map → manifold-DsX0CBP-.js.map} +1 -1
  67. package/dist/{marketCurrencies-CmOMCCOr.d.ts → marketCurrencies-Bzj8X4TL.d.ts} +8 -8
  68. package/dist/{marketplace-B5Z8G03R.js → marketplace-BYY8OloA.js} +1 -1
  69. package/dist/{marketplace-B5Z8G03R.js.map → marketplace-BYY8OloA.js.map} +1 -1
  70. package/dist/{marketplace-logos-D8t86gsW.js → marketplace-logos-Csv2MBwf.js} +21 -21
  71. package/dist/marketplace-logos-Csv2MBwf.js.map +1 -0
  72. package/dist/{marketplace.gen-JzNYpM0U.js → marketplace.gen-w2YvbEEo.js} +2 -2
  73. package/dist/marketplace.gen-w2YvbEEo.js.map +1 -0
  74. package/dist/{marketplaceConfig-sNh-MA5M.js → marketplaceConfig-BTy75Mbf.js} +8 -9
  75. package/dist/marketplaceConfig-BTy75Mbf.js.map +1 -0
  76. package/dist/{mintify-DG3GrljJ.js → mintify-DiOoDmO1.js} +1 -1
  77. package/dist/{mintify-DG3GrljJ.js.map → mintify-DiOoDmO1.js.map} +1 -1
  78. package/dist/{network-DnBEe1Ur.js → network-DtmiMhcg.js} +2 -2
  79. package/dist/network-DtmiMhcg.js.map +1 -0
  80. package/dist/networkconfigToWagmiChain-DbUf6HiO.js +15 -0
  81. package/dist/networkconfigToWagmiChain-DbUf6HiO.js.map +1 -0
  82. package/dist/{nftx-B3LH-ZYM.js → nftx-CP82jNra.js} +1 -1
  83. package/dist/{nftx-B3LH-ZYM.js.map → nftx-CP82jNra.js.map} +1 -1
  84. package/dist/{okx-CRFLrT3Z.js → okx-p9-4xRjs.js} +1 -1
  85. package/dist/{okx-CRFLrT3Z.js.map → okx-p9-4xRjs.js.map} +1 -1
  86. package/dist/{open-sea-cOpfl366.js → open-sea-D2GwAmKS.js} +1 -1
  87. package/dist/{open-sea-cOpfl366.js.map → open-sea-D2GwAmKS.js.map} +1 -1
  88. package/dist/{primary-sale-CLjXRrDj.js → primary-sale-DOmNDq2P.js} +1 -1
  89. package/dist/{primary-sale-CLjXRrDj.js.map → primary-sale-DOmNDq2P.js.map} +1 -1
  90. package/dist/{queries-BYT4GJw3.js → queries-EMA5CcwY.js} +208 -287
  91. package/dist/queries-EMA5CcwY.js.map +1 -0
  92. package/dist/{query-BTe7Wkrs.d.ts → query-BG-MA1MB.d.ts} +1 -1
  93. package/dist/{rarible-guwUx4cn.js → rarible-DqiiW9ki.js} +1 -1
  94. package/dist/{rarible-guwUx4cn.js.map → rarible-DqiiW9ki.js.map} +1 -1
  95. package/dist/react/_internal/api/index.d.ts +1 -1
  96. package/dist/react/_internal/api/index.js +4 -4
  97. package/dist/react/_internal/databeat/index.d.ts +1 -1
  98. package/dist/react/_internal/databeat/index.js +24 -21
  99. package/dist/react/_internal/index.d.ts +1 -1
  100. package/dist/react/_internal/index.js +8 -7
  101. package/dist/react/_internal/wagmi/index.d.ts +1 -1
  102. package/dist/react/_internal/wagmi/index.js +4 -3
  103. package/dist/react/hooks/config/index.d.ts +8 -8
  104. package/dist/react/hooks/config/index.js +24 -21
  105. package/dist/react/hooks/contracts/index.d.ts +6 -6
  106. package/dist/react/hooks/contracts/index.js +13 -12
  107. package/dist/react/hooks/data/collectibles/index.d.ts +4 -4
  108. package/dist/react/hooks/data/collectibles/index.js +24 -21
  109. package/dist/react/hooks/data/collections/index.d.ts +10 -10
  110. package/dist/react/hooks/data/collections/index.js +24 -21
  111. package/dist/react/hooks/data/index.d.ts +29 -29
  112. package/dist/react/hooks/data/index.js +25 -22
  113. package/dist/react/hooks/data/inventory/index.d.ts +28 -28
  114. package/dist/react/hooks/data/inventory/index.js +24 -21
  115. package/dist/react/hooks/data/market/index.d.ts +5 -11
  116. package/dist/react/hooks/data/market/index.js +24 -21
  117. package/dist/react/hooks/data/orders/index.d.ts +5 -11
  118. package/dist/react/hooks/data/orders/index.js +25 -22
  119. package/dist/react/hooks/data/primary-sales/index.d.ts +28 -28
  120. package/dist/react/hooks/data/primary-sales/index.js +24 -21
  121. package/dist/react/hooks/data/tokens/index.d.ts +4 -4
  122. package/dist/react/hooks/data/tokens/index.js +24 -21
  123. package/dist/react/hooks/index.d.ts +29 -29
  124. package/dist/react/hooks/index.js +25 -22
  125. package/dist/react/hooks/transactions/index.d.ts +2 -2
  126. package/dist/react/hooks/transactions/index.js +24 -21
  127. package/dist/react/hooks/ui/index.d.ts +4 -4
  128. package/dist/react/hooks/ui/index.js +24 -21
  129. package/dist/react/hooks/utils/index.d.ts +29 -29
  130. package/dist/react/hooks/utils/index.js +25 -22
  131. package/dist/react/index.d.ts +29 -29
  132. package/dist/react/index.js +25 -22
  133. package/dist/react/queries/index.d.ts +16 -16
  134. package/dist/react/queries/index.js +18 -17
  135. package/dist/react/ssr/index.d.ts +7 -7
  136. package/dist/react/ssr/index.js +9 -8
  137. package/dist/react/ssr/index.js.map +1 -1
  138. package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.d.ts +3 -0
  139. package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.js +22 -0
  140. package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.d.ts +54 -0
  141. package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.js +29 -0
  142. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +5 -5
  143. package/dist/react/ui/components/marketplace-collectible-card/index.js +24 -21
  144. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -2
  145. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +9 -8
  146. package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
  147. package/dist/react/ui/components/marketplace-logos/index.js +1 -1
  148. package/dist/react/ui/icons/index.js +13 -11
  149. package/dist/react/ui/index.d.ts +5 -5
  150. package/dist/react/ui/index.js +24 -21
  151. package/dist/react/ui/modals/_internal/components/actionModal/index.js +24 -21
  152. package/dist/react/utils/index.d.ts +1 -1
  153. package/dist/react/utils/index.js +5 -5
  154. package/dist/{react-Ceq8mamy.js → react-BLJ4DkPx.js} +723 -807
  155. package/dist/react-BLJ4DkPx.js.map +1 -0
  156. package/dist/{react-CbqXKOpt.css → react-F03jPjPk.css} +1 -1
  157. package/dist/{react-CbqXKOpt.css.map → react-F03jPjPk.css.map} +1 -1
  158. package/dist/{sequence-Dt2Xo7Fa.js → sequence-Bbb-TFKg.js} +1 -1
  159. package/dist/{sequence-Dt2Xo7Fa.js.map → sequence-Bbb-TFKg.js.map} +1 -1
  160. package/dist/styles/index.css +46 -24
  161. package/dist/{sudo-swap-CGoARONs.js → sudo-swap-CEPIM3Js.js} +1 -1
  162. package/dist/{sudo-swap-CGoARONs.js.map → sudo-swap-CEPIM3Js.js.map} +1 -1
  163. package/dist/{super-rare-NeQtZjcn.js → super-rare-CMEn9PoO.js} +1 -1
  164. package/dist/{super-rare-NeQtZjcn.js.map → super-rare-CMEn9PoO.js.map} +1 -1
  165. package/dist/{token-D9gZVqbX.js → token-CcyLz8Z8.js} +1 -1
  166. package/dist/{token-D9gZVqbX.js.map → token-CcyLz8Z8.js.map} +1 -1
  167. package/dist/{tokenSupplies-DXtkRYNO.d.ts → tokenSupplies-C470zTT0.d.ts} +23 -23
  168. package/dist/{transaction-CC2KxNF6.js → transaction-DZUW5RHu.js} +2 -8
  169. package/dist/transaction-DZUW5RHu.js.map +1 -0
  170. package/dist/types/index.d.ts +2 -2
  171. package/dist/types/index.js +2 -2
  172. package/dist/{types-G2PWxiJR.js → types-B_-cnkcP.js} +1 -1
  173. package/dist/types-B_-cnkcP.js.map +1 -0
  174. package/dist/{types-BlCa0TVE.d.ts → types-D6LkVrF0.d.ts} +18 -10
  175. package/dist/utils/abi/index.d.ts +4 -4
  176. package/dist/utils/abi/index.js +4 -4
  177. package/dist/utils/abi/marketplace/index.d.ts +1 -1
  178. package/dist/utils/abi/marketplace/index.js +1 -1
  179. package/dist/utils/abi/primary-sale/index.d.ts +1 -1
  180. package/dist/utils/abi/primary-sale/index.js +1 -1
  181. package/dist/utils/abi/token/index.d.ts +1 -1
  182. package/dist/utils/abi/token/index.js +1 -1
  183. package/dist/utils/index.d.ts +6 -6
  184. package/dist/utils/index.js +11 -10
  185. package/dist/{utils-CKJd-CRf.js → utils-BZEkdqWK.js} +7 -24
  186. package/dist/utils-BZEkdqWK.js.map +1 -0
  187. package/dist/{utils-wquIhK6T.js → utils-oVZxdK0o.js} +2 -2
  188. package/dist/utils-oVZxdK0o.js.map +1 -0
  189. package/dist/{waitForTransactionReceipt-DZxAuR9N.js → waitForTransactionReceipt-B08YZiDY.js} +3 -4
  190. package/dist/{waitForTransactionReceipt-DZxAuR9N.js.map → waitForTransactionReceipt-B08YZiDY.js.map} +1 -1
  191. package/dist/{x2y2-CQdg24VP.js → x2y2-DNe6JgtG.js} +1 -1
  192. package/dist/{x2y2-CQdg24VP.js.map → x2y2-DNe6JgtG.js.map} +1 -1
  193. package/dist/{zora-DdEydy4L.js → zora-w0Zqxxs4.js} +1 -1
  194. package/dist/{zora-DdEydy4L.js.map → zora-w0Zqxxs4.js.map} +1 -1
  195. package/package.json +35 -35
  196. package/src/react/_internal/api/marketplace.gen.ts +1 -1
  197. package/src/react/_internal/api/query-keys.ts +2 -0
  198. package/src/react/_internal/wagmi/__tests__/create-config.test.ts +19 -8
  199. package/src/react/_internal/wagmi/create-config.ts +6 -17
  200. package/src/react/hooks/config/__snapshots__/useMarketplaceConfig.test.tsx.snap +4 -4
  201. package/src/react/hooks/data/collectibles/useBalanceOfCollectible.laos.test.tsx +2 -2
  202. package/src/react/hooks/data/collectibles/useTokenBalances.test.tsx +151 -0
  203. package/src/react/hooks/data/collectibles/useTokenBalances.tsx +47 -0
  204. package/src/react/hooks/data/collections/__snapshots__/useListCollections.test.tsx.snap +6 -6
  205. package/src/react/hooks/data/inventory/useInventory.test.tsx +3 -98
  206. package/src/react/hooks/data/inventory/useInventory.tsx +2 -2
  207. package/src/react/hooks/data/market/useListMarketCardData.tsx +1 -1
  208. package/src/react/hooks/data/orders/useListOffersForCollectible.tsx +70 -45
  209. package/src/react/hooks/data/primary-sales/useList1155ShopCardData.tsx +21 -37
  210. package/src/react/hooks/data/primary-sales/useList721ShopCardData.tsx +14 -3
  211. package/src/react/hooks/data/tokens/useSearchTokenMetadata.tsx +4 -1
  212. package/src/react/hooks/transactions/useCancelOrder.test.tsx +7 -4
  213. package/src/react/hooks/transactions/useCancelOrder.tsx +2 -1
  214. package/src/react/hooks/transactions/useCancelTransactionSteps.tsx +2 -2
  215. package/src/react/hooks/transactions/useProcessStep.test.tsx +2 -2
  216. package/src/react/hooks/utils/__tests__/useEnsureCorrectChain.test.tsx +75 -0
  217. package/src/react/hooks/utils/index.ts +0 -1
  218. package/src/react/hooks/utils/useEnsureCorrectChain.ts +31 -34
  219. package/src/react/providers/index.tsx +12 -14
  220. package/src/react/providers/modal-provider.tsx +2 -2
  221. package/src/react/queries/__tests__/balanceOfCollectible.laos.test.ts +3 -3
  222. package/src/react/queries/__tests__/inventory.laos.test.ts +6 -3
  223. package/src/react/queries/__tests__/tokenBalances.laos.test.ts +123 -0
  224. package/src/react/queries/balanceOfCollectible.ts +2 -1
  225. package/src/react/queries/filters.ts +23 -28
  226. package/src/react/queries/index.ts +1 -0
  227. package/src/react/queries/inventory.ts +63 -243
  228. package/src/react/queries/listCollectibles.ts +22 -48
  229. package/src/react/queries/listCollections.ts +10 -13
  230. package/src/react/queries/listOffersForCollectible.ts +101 -0
  231. package/src/react/queries/marketplaceConfig.ts +6 -2
  232. package/src/react/queries/tokenBalances.ts +85 -0
  233. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +4 -4
  234. package/src/react/ui/components/_internals/action-button/ActionButton.stories.tsx +8 -8
  235. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +6 -9
  236. package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +4 -4
  237. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +6 -6
  238. package/src/react/ui/components/_internals/custom-select/__tests__/CustomSelect.test.tsx +1 -1
  239. package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +4 -3
  240. package/src/react/ui/components/marketplace-collectible-card/CollectibleCardSkeleton.tsx +13 -2
  241. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +4 -7
  242. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +14 -5
  243. package/src/react/ui/components/marketplace-collectible-card/components/footer/Footer.tsx +179 -0
  244. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/FooterName.tsx +103 -0
  245. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/PriceDisplay.tsx +80 -0
  246. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/SaleDetailsPill.tsx +29 -0
  247. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/TokenTypeBalancePill.tsx +30 -0
  248. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/index.ts +4 -0
  249. package/src/react/ui/components/marketplace-collectible-card/components/footer/index.ts +2 -0
  250. package/src/react/ui/components/marketplace-collectible-card/types.ts +18 -6
  251. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +11 -23
  252. package/src/react/ui/components/marketplace-collectible-card/variants/NonTradableInventoryCard.tsx +42 -0
  253. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +15 -12
  254. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +10 -10
  255. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +3 -3
  256. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx.bak +3 -3
  257. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +6 -6
  258. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +3 -3
  259. package/src/react/ui/modals/BuyModal/components/BuyModalRouter.tsx +5 -5
  260. package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +2 -2
  261. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +8 -8
  262. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +2 -2
  263. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +13 -2
  264. package/src/react/ui/modals/BuyModal/store.ts +6 -6
  265. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +2 -1
  266. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +1 -1
  267. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +87 -89
  268. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +2 -1
  269. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +1 -1
  270. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +2 -1
  271. package/src/react/ui/modals/SellModal/hooks/useSell.tsx +2 -1
  272. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +20 -9
  273. package/src/react/ui/modals/_internal/components/priceInput/index.tsx +2 -2
  274. package/src/react/ui/modals/_internal/components/switchChainErrorModal/__tests__/SwitchChainErrorModal.test.tsx +80 -0
  275. package/src/react/ui/modals/_internal/components/switchChainErrorModal/index.tsx +64 -0
  276. package/src/react/ui/modals/_internal/components/switchChainErrorModal/store.ts +42 -0
  277. package/src/react/ui/modals/_internal/types.ts +0 -1
  278. package/src/styles/styles.ts +46 -24
  279. package/src/types/new-marketplace-types.ts +9 -18
  280. package/src/types/types.ts +1 -1
  281. package/test/globalSetup.ts +1 -1
  282. package/test/test-utils.tsx +1 -0
  283. package/dist/BellIcon-Cb9YEUzJ.js.map +0 -1
  284. package/dist/CollectibleCard-CYyWzk6u.d.ts +0 -8
  285. package/dist/api-BmEQfSQa.js.map +0 -1
  286. package/dist/create-config-6uynwTeb.js.map +0 -1
  287. package/dist/marketplace-logos-D8t86gsW.js.map +0 -1
  288. package/dist/marketplace.gen-JzNYpM0U.js.map +0 -1
  289. package/dist/marketplaceConfig-sNh-MA5M.js.map +0 -1
  290. package/dist/network-DnBEe1Ur.js.map +0 -1
  291. package/dist/queries-BYT4GJw3.js.map +0 -1
  292. package/dist/react-Ceq8mamy.js.map +0 -1
  293. package/dist/transaction-CC2KxNF6.js.map +0 -1
  294. package/dist/types-G2PWxiJR.js.map +0 -1
  295. package/dist/utils-CKJd-CRf.js.map +0 -1
  296. package/dist/utils-wquIhK6T.js.map +0 -1
  297. package/src/react/hooks/utils/useSwitchChainWithModal.ts +0 -38
  298. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +0 -238
  299. package/src/react/ui/modals/_internal/components/switchChainModal/__tests__/SwitchChainModal.test.tsx +0 -117
  300. package/src/react/ui/modals/_internal/components/switchChainModal/index.tsx +0 -124
  301. package/src/react/ui/modals/_internal/components/switchChainModal/store.ts +0 -71
  302. /package/dist/{abi-Wr_aTZFi.js → abi-DYsUABe6.js} +0 -0
  303. /package/dist/{index-q7f-WDBS.d.ts → index-Cg5cFzs-.d.ts} +0 -0
  304. /package/dist/{wagmi-BhP3mdhP.js → wagmi-Bseovd6Q.js} +0 -0
@@ -1,4 +1,5 @@
1
1
  import { queryOptions } from '@tanstack/react-query';
2
+ import type { Address } from 'viem';
2
3
  import type { ContractType, OrderbookKind, SdkConfig } from '../../types';
3
4
  import type {
4
5
  MarketCollection,
@@ -37,7 +38,8 @@ export const fetchMarketplaceConfig = async ({
37
38
  contractType: collection.contractType as ContractType,
38
39
  destinationMarketplace:
39
40
  collection.destinationMarketplace as OrderbookKind,
40
- marketplaceType: 'market',
41
+ itemsAddress: collection.itemsAddress as Address,
42
+ cardType: 'market',
41
43
  } satisfies MarketCollection;
42
44
  });
43
45
 
@@ -45,7 +47,9 @@ export const fetchMarketplaceConfig = async ({
45
47
  (collection) => {
46
48
  return {
47
49
  ...collection,
48
- marketplaceType: 'shop',
50
+ itemsAddress: collection.itemsAddress as Address,
51
+ saleAddress: collection.saleAddress as Address,
52
+ cardType: 'shop',
49
53
  } satisfies ShopCollection;
50
54
  },
51
55
  );
@@ -0,0 +1,85 @@
1
+ import { queryOptions, skipToken } from '@tanstack/react-query';
2
+ import type { Address } from 'viem';
3
+ import type { UseQueryParameters } from 'wagmi/query';
4
+ import type { SdkConfig } from '../../types';
5
+ import { collectableKeys, getIndexerClient, LaosAPI } from '../_internal';
6
+
7
+ export type UseTokenBalancesArgs = {
8
+ collectionAddress: Address;
9
+ userAddress: Address | undefined;
10
+ chainId: number;
11
+ isLaos721?: boolean;
12
+ includeMetadata?: boolean;
13
+ query?: UseQueryParameters;
14
+ };
15
+
16
+ /**
17
+ * Fetches the token balances for a user
18
+ *
19
+ * @param args - Arguments for the API call
20
+ * @param config - SDK configuration
21
+ * @returns The balance data
22
+ */
23
+ export async function fetchTokenBalances(
24
+ args: Omit<UseTokenBalancesArgs, 'userAddress'> & {
25
+ userAddress: Address;
26
+ },
27
+ config: SdkConfig,
28
+ ) {
29
+ if (args.isLaos721) {
30
+ const laosApi = new LaosAPI();
31
+ const response = await laosApi.getTokenBalances({
32
+ chainId: args.chainId.toString(),
33
+ contractAddress: args.collectionAddress,
34
+ accountAddress: args.userAddress,
35
+ includeMetadata: true,
36
+ });
37
+
38
+ return response.balances || [];
39
+ }
40
+
41
+ const indexerClient = getIndexerClient(args.chainId, config);
42
+ return indexerClient
43
+ .getTokenBalances({
44
+ accountAddress: args.userAddress,
45
+ contractAddress: args.collectionAddress,
46
+ includeMetadata: args.includeMetadata ?? false,
47
+ metadataOptions: {
48
+ verifiedOnly: true,
49
+ includeContracts: [args.collectionAddress],
50
+ },
51
+ })
52
+ .then((res) => res.balances || []);
53
+ }
54
+
55
+ /**
56
+ * Creates a tanstack query options object for the token balances query
57
+ *
58
+ * @param args - The query arguments
59
+ * @param config - SDK configuration
60
+ * @returns Query options configuration
61
+ */
62
+ export function tokenBalancesOptions(
63
+ args: UseTokenBalancesArgs,
64
+ config: SdkConfig,
65
+ ) {
66
+ const enabled =
67
+ !!args.userAddress &&
68
+ !!args.collectionAddress &&
69
+ (args.query?.enabled ?? true);
70
+
71
+ return queryOptions({
72
+ queryKey: [...collectableKeys.userBalances, args],
73
+ queryFn: enabled
74
+ ? () =>
75
+ fetchTokenBalances(
76
+ {
77
+ ...args,
78
+ // biome-ignore lint/style/noNonNullAssertion: this is guaranteed by the userAddress check above
79
+ userAddress: args.userAddress!,
80
+ },
81
+ config,
82
+ )
83
+ : skipToken,
84
+ });
85
+ }
@@ -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,
@@ -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?: {
@@ -45,7 +42,7 @@ export function ActionButton({
45
42
  highestOffer,
46
43
  lowestListing,
47
44
  onCannotPerformAction,
48
- marketplaceType,
45
+ cardType,
49
46
  salesContractAddress,
50
47
  prioritizeOwnerActions,
51
48
  salePrice,
@@ -78,9 +75,9 @@ export function ActionButton({
78
75
  }
79
76
 
80
77
  const nonOwnerProps =
81
- marketplaceType === 'shop' && salesContractAddress && salePrice
78
+ cardType === 'shop' && salesContractAddress && salePrice
82
79
  ? {
83
- marketplaceType: 'shop' as const,
80
+ cardType: 'shop' as const,
84
81
  salesContractAddress,
85
82
  salePrice,
86
83
  action,
@@ -92,7 +89,7 @@ export function ActionButton({
92
89
  unlimitedSupply,
93
90
  }
94
91
  : {
95
- marketplaceType: 'market' as const,
92
+ cardType: 'market' as const,
96
93
  orderbookKind,
97
94
  lowestListing,
98
95
  action,
@@ -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
  );
@@ -19,7 +19,7 @@ type NonOwnerActionsBaseProps = {
19
19
  };
20
20
 
21
21
  type ShopNonOwnerActionsProps = NonOwnerActionsBaseProps & {
22
- marketplaceType: 'shop';
22
+ cardType: 'shop';
23
23
  salesContractAddress: Address;
24
24
  salePrice: {
25
25
  amount: string;
@@ -30,7 +30,7 @@ type ShopNonOwnerActionsProps = NonOwnerActionsBaseProps & {
30
30
  };
31
31
 
32
32
  type MarketNonOwnerActionsProps = NonOwnerActionsBaseProps & {
33
- marketplaceType: 'market';
33
+ cardType: 'market';
34
34
  lowestListing?: Order;
35
35
  orderbookKind?: OrderbookKind;
36
36
  salesContractAddress?: never;
@@ -50,13 +50,13 @@ export function NonOwnerActions(props: NonOwnerActionsProps) {
50
50
  quantityDecimals,
51
51
  quantityRemaining,
52
52
  unlimitedSupply,
53
- marketplaceType,
53
+ cardType,
54
54
  } = props;
55
55
 
56
56
  const { show: showBuyModal } = useBuyModal();
57
57
  const { show: showMakeOfferModal } = useMakeOfferModal();
58
58
 
59
- if (marketplaceType === 'shop') {
59
+ if (cardType === 'shop') {
60
60
  const { salesContractAddress, salePrice } = props;
61
61
 
62
62
  return (
@@ -75,7 +75,7 @@ export function NonOwnerActions(props: NonOwnerActionsProps) {
75
75
  quantity: '1',
76
76
  },
77
77
  ],
78
- marketplaceType: 'shop',
78
+ cardType: 'shop',
79
79
  salePrice: {
80
80
  amount: salePrice.amount,
81
81
  currencyAddress: salePrice.currencyAddress,
@@ -110,7 +110,7 @@ export function NonOwnerActions(props: NonOwnerActionsProps) {
110
110
  collectibleId: tokenId,
111
111
  orderId: lowestListing.orderId,
112
112
  marketplace: lowestListing.marketplace,
113
- marketplaceType: 'market',
113
+ cardType: 'market',
114
114
  })
115
115
  }
116
116
  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
  );
@@ -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 { ActionButton } from '../../_internals/action-button/ActionButton';
10
7
 
@@ -21,7 +18,7 @@ interface ActionButtonWrapperProps {
21
18
  onCannotPerformAction?: (
22
19
  action: CollectibleCardAction.BUY | CollectibleCardAction.OFFER,
23
20
  ) => void;
24
- marketplaceType: MarketplaceType;
21
+ cardType: CardType;
25
22
  salesContractAddress?: Address;
26
23
  prioritizeOwnerActions?: boolean;
27
24
  salePrice?: {
@@ -44,7 +41,7 @@ export function ActionButtonWrapper({
44
41
  lowestListing,
45
42
  owned,
46
43
  onCannotPerformAction,
47
- marketplaceType,
44
+ cardType,
48
45
  salesContractAddress,
49
46
  prioritizeOwnerActions,
50
47
  salePrice,
@@ -66,7 +63,7 @@ export function ActionButtonWrapper({
66
63
  lowestListing={lowestListing}
67
64
  owned={owned}
68
65
  onCannotPerformAction={onCannotPerformAction}
69
- marketplaceType={marketplaceType}
66
+ cardType={cardType}
70
67
  salesContractAddress={salesContractAddress}
71
68
  prioritizeOwnerActions={prioritizeOwnerActions}
72
69
  salePrice={salePrice}
@@ -1,12 +1,12 @@
1
1
  'use client';
2
2
 
3
3
  import { cn } from '@0xsequence/design-system';
4
+ import type { ContractType } from '../../../../_internal';
4
5
  import { Media } from '../../media/Media';
5
6
  import { MarketplaceCollectibleCardSkeleton } from '../CollectibleCardSkeleton';
6
7
  import type { MarketplaceCardBaseProps } from '../types';
7
-
8
8
  export interface BaseCardProps extends MarketplaceCardBaseProps {
9
- isLoading: boolean;
9
+ cardLoading: boolean;
10
10
  name: string;
11
11
  image?: string;
12
12
  video?: string;
@@ -15,10 +15,11 @@ export interface BaseCardProps extends MarketplaceCardBaseProps {
15
15
  onKeyDown?: (e: React.KeyboardEvent) => void;
16
16
  children: React.ReactNode;
17
17
  mediaClassName?: string;
18
+ contractType: ContractType;
19
+ isShop: boolean;
18
20
  }
19
21
 
20
22
  export function BaseCard({
21
- isLoading,
22
23
  name,
23
24
  image,
24
25
  video,
@@ -28,9 +29,17 @@ export function BaseCard({
28
29
  assetSrcPrefixUrl,
29
30
  children,
30
31
  mediaClassName,
32
+ cardLoading,
33
+ contractType,
34
+ isShop,
31
35
  }: BaseCardProps) {
32
- if (isLoading) {
33
- return <MarketplaceCollectibleCardSkeleton />;
36
+ if (cardLoading) {
37
+ return (
38
+ <MarketplaceCollectibleCardSkeleton
39
+ contractType={contractType}
40
+ isShop={isShop}
41
+ />
42
+ );
34
43
  }
35
44
 
36
45
  return (