@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,34 +1,40 @@
1
- import { useCallback } from 'react';
1
+ import { useCallback, useEffect } from 'react';
2
2
  import { useAccount, useSwitchChain } from 'wagmi';
3
- import { ChainSwitchUserRejectedError } from '../../../utils/_internal/error/transaction';
4
- import { useSwitchChainModal } from '../../ui/modals/_internal/components/switchChainModal';
3
+ import { useSwitchChainErrorModal } from '../../ui/modals/_internal/components/switchChainErrorModal';
4
+ import { useChainIdToSwitchTo } from '../../ui/modals/_internal/components/switchChainErrorModal/store';
5
5
  import { useConnectorMetadata } from '../config/useConnectorMetadata';
6
6
 
7
7
  export const useEnsureCorrectChain = () => {
8
8
  const { chainId: currentChainId } = useAccount();
9
9
  const { switchChain, switchChainAsync } = useSwitchChain();
10
- const { show: showSwitchChainModal } = useSwitchChainModal();
10
+ const { show: showSwitchChainErrorModal, close: closeSwitchChainErrorModal } =
11
+ useSwitchChainErrorModal();
12
+ const chainIdToSwitchTo = useChainIdToSwitchTo();
11
13
  const { isWaaS } = useConnectorMetadata();
12
14
 
15
+ // Close the switch chain error modal when user successfully switches to the target chain
16
+ useEffect(() => {
17
+ if (
18
+ currentChainId &&
19
+ chainIdToSwitchTo &&
20
+ currentChainId === chainIdToSwitchTo
21
+ ) {
22
+ closeSwitchChainErrorModal();
23
+ }
24
+ }, [currentChainId, chainIdToSwitchTo, closeSwitchChainErrorModal]);
25
+
13
26
  const ensureCorrectChainAsync = useCallback(
14
27
  async (targetChainId: number) => {
15
28
  if (currentChainId === targetChainId) {
16
29
  return Promise.resolve();
17
30
  }
18
- if (isWaaS) {
19
- return switchChainAsync({ chainId: targetChainId });
20
- }
21
-
22
- return new Promise((resolve, reject) => {
23
- showSwitchChainModal({
31
+ return switchChainAsync({ chainId: targetChainId }).catch(() => {
32
+ showSwitchChainErrorModal({
24
33
  chainIdToSwitchTo: targetChainId,
25
- onSuccess: () => resolve(targetChainId),
26
- onError: (error) => reject(error),
27
- onClose: () => reject(new ChainSwitchUserRejectedError()),
28
34
  });
29
35
  });
30
36
  },
31
- [currentChainId, isWaaS, switchChainAsync, showSwitchChainModal],
37
+ [currentChainId, isWaaS, switchChainAsync, showSwitchChainErrorModal],
32
38
  );
33
39
 
34
40
  const ensureCorrectChain = useCallback(
@@ -36,8 +42,6 @@ export const useEnsureCorrectChain = () => {
36
42
  targetChainId: number,
37
43
  callbacks?: {
38
44
  onSuccess?: () => void;
39
- onError?: (error: Error) => void;
40
- onClose?: () => void;
41
45
  },
42
46
  ) => {
43
47
  if (currentChainId === targetChainId) {
@@ -45,25 +49,18 @@ export const useEnsureCorrectChain = () => {
45
49
  return;
46
50
  }
47
51
 
48
- if (isWaaS) {
49
- switchChain(
50
- { chainId: targetChainId },
51
- {
52
- onSuccess: callbacks?.onSuccess,
53
- onError: callbacks?.onError,
54
- },
55
- );
56
- return;
57
- }
58
-
59
- showSwitchChainModal({
60
- chainIdToSwitchTo: targetChainId,
61
- onSuccess: callbacks?.onSuccess,
62
- onError: callbacks?.onError,
63
- onClose: callbacks?.onClose,
64
- });
52
+ switchChain(
53
+ { chainId: targetChainId },
54
+ {
55
+ onSuccess: callbacks?.onSuccess,
56
+ onError: () =>
57
+ showSwitchChainErrorModal({
58
+ chainIdToSwitchTo: targetChainId,
59
+ }),
60
+ },
61
+ );
65
62
  },
66
- [currentChainId, isWaaS, switchChain, showSwitchChainModal],
63
+ [currentChainId, isWaaS, switchChain, showSwitchChainErrorModal],
67
64
  );
68
65
 
69
66
  return {
@@ -33,6 +33,8 @@ export function MarketplaceProvider({
33
33
  throw new InvalidProjectAccessKeyError(config.projectAccessKey);
34
34
  }
35
35
 
36
+ const isWindowDefined = typeof window !== 'undefined';
37
+
36
38
  const analytics = useMemo(() => {
37
39
  const server = 'https://nodes.sequence.app';
38
40
  const auth: Auth = {};
@@ -42,11 +44,11 @@ export function MarketplaceProvider({
42
44
  defaultEnabled: true,
43
45
  initProps: () => {
44
46
  return {
45
- origin: typeof window !== 'undefined' ? window.location.origin : '',
47
+ origin: isWindowDefined ? window.location.origin : '',
46
48
  };
47
49
  },
48
50
  });
49
- }, [config.projectAccessKey, window]);
51
+ }, [config.projectAccessKey, isWindowDefined]);
50
52
 
51
53
  if (openConnectModal) {
52
54
  const context: MarketplaceSdkContextType = {
@@ -56,13 +58,11 @@ export function MarketplaceProvider({
56
58
  };
57
59
 
58
60
  return (
59
- <MarketplaceQueryClientProvider>
60
- <MarketplaceSdkContext.Provider value={context}>
61
- <ThemeProvider>
62
- <div id={PROVIDER_ID}>{children}</div>
63
- </ThemeProvider>
64
- </MarketplaceSdkContext.Provider>
65
- </MarketplaceQueryClientProvider>
61
+ <MarketplaceSdkContext.Provider value={context}>
62
+ <ThemeProvider>
63
+ <div id={PROVIDER_ID}>{children}</div>
64
+ </ThemeProvider>
65
+ </MarketplaceSdkContext.Provider>
66
66
  );
67
67
  }
68
68
 
@@ -101,10 +101,8 @@ function MarketplaceProviderWithSequenceConnect({
101
101
  };
102
102
 
103
103
  return (
104
- <MarketplaceQueryClientProvider>
105
- <MarketplaceSdkContext.Provider value={context}>
106
- <div id={PROVIDER_ID}>{children}</div>
107
- </MarketplaceSdkContext.Provider>
108
- </MarketplaceQueryClientProvider>
104
+ <MarketplaceSdkContext.Provider value={context}>
105
+ <div id={PROVIDER_ID}>{children}</div>
106
+ </MarketplaceSdkContext.Provider>
109
107
  );
110
108
  }
@@ -2,7 +2,7 @@ import { SequenceCheckoutProvider } from '@0xsequence/checkout';
2
2
  import { observer } from '@legendapp/state/react';
3
3
  import type { ReactNode } from 'react';
4
4
  import { useConfig } from '../hooks';
5
- import SwitchChainModal from '../ui/modals/_internal/components/switchChainModal';
5
+ import SwitchChainErrorModal from '../ui/modals/_internal/components/switchChainErrorModal';
6
6
  import TransactionStatusModal from '../ui/modals/_internal/components/transactionStatusModal';
7
7
  import { BuyModal } from '../ui/modals/BuyModal/components/Modal';
8
8
  import { CreateListingModal } from '../ui/modals/CreateListingModal/Modal';
@@ -34,7 +34,7 @@ export const ModalProvider = observer(({ children }: ModalProviderProps) => {
34
34
  <BuyModal />
35
35
  <SuccessfulPurchaseModal />
36
36
  {/* Helper modals */}
37
- <SwitchChainModal />
37
+ <SwitchChainErrorModal />
38
38
  <TransactionStatusModal />
39
39
  </ShadowRoot>
40
40
  </SequenceCheckoutProvider>
@@ -33,7 +33,7 @@ describe('fetchBalanceOfCollectible with LAOS', () => {
33
33
  mockConfig,
34
34
  );
35
35
 
36
- // Should return first balance from LAOS API response
36
+ // Should return array of balances from LAOS API response
37
37
  expect(result).toEqual(mockTokenBalancesResponse.balances[0]);
38
38
  expect(result?.balance).toBe('5');
39
39
  expect(result?.contractInfo?.type).toBe('LAOS-ERC-721');
@@ -71,7 +71,7 @@ describe('fetchBalanceOfCollectible with LAOS', () => {
71
71
  mockConfig,
72
72
  );
73
73
 
74
- expect(result).toBeNull();
74
+ expect(result).toEqual(null);
75
75
  });
76
76
 
77
77
  it('should include metadata in LAOS response', async () => {
@@ -116,7 +116,7 @@ describe('fetchBalanceOfCollectible with LAOS', () => {
116
116
  mockConfig,
117
117
  );
118
118
 
119
- // Should return first balance regardless of sort order
119
+ // Should return array of balances regardless of sort order
120
120
  expect(result).toBeDefined();
121
121
  expect(result?.balance).toBeDefined();
122
122
  });
@@ -5,7 +5,7 @@ import { ContractType } from '../../_internal';
5
5
  import { mockIndexerEndpoint } from '../../_internal/api/__mocks__/indexer.msw';
6
6
  import { laosHandlers } from '../../_internal/api/__mocks__/laos.msw';
7
7
  import { mockMarketplaceEndpoint } from '../../_internal/api/__mocks__/marketplace.msw';
8
- import { clearInventoryState, fetchInventory } from '../inventory';
8
+ import { fetchInventory } from '../inventory';
9
9
 
10
10
  describe('fetchInventory with LAOS', () => {
11
11
  const mockConfig = {
@@ -27,7 +27,6 @@ describe('fetchInventory with LAOS', () => {
27
27
 
28
28
  afterEach(() => {
29
29
  server.resetHandlers();
30
- clearInventoryState();
31
30
  });
32
31
 
33
32
  it('should fetch LAOS inventory using LAOS API', async () => {
@@ -270,7 +269,11 @@ describe('fetchInventory with LAOS', () => {
270
269
 
271
270
  expect(result).toBeDefined();
272
271
  expect(result.collectibles).toEqual([]);
273
- expect(result.page.more).toBe(false);
272
+ // Page structure has changed, no more 'more' property
273
+ expect(result.page).toEqual({
274
+ page: 1,
275
+ pageSize: 10,
276
+ });
274
277
  });
275
278
 
276
279
  it('should include LAOS metadata in inventory items', async () => {
@@ -0,0 +1,123 @@
1
+ import { server } from '@test';
2
+ import { afterEach, describe, expect, it } from 'vitest';
3
+ import {
4
+ laosHandlers,
5
+ mockTokenBalancesResponse,
6
+ } from '../../_internal/api/__mocks__/laos.msw';
7
+ import { fetchTokenBalances } from '../tokenBalances';
8
+
9
+ describe('fetchTokenBalances with LAOS', () => {
10
+ const mockConfig = {
11
+ projectAccessKey: 'test-key',
12
+ projectId: '1',
13
+ chainId: 11155111,
14
+ apiUrl: 'https://marketplace-api.sequence.app',
15
+ isDev: false,
16
+ };
17
+
18
+ afterEach(() => {
19
+ server.resetHandlers();
20
+ });
21
+
22
+ it('should use LAOS API when isLaos721=true', async () => {
23
+ server.use(...laosHandlers);
24
+
25
+ const result = await fetchTokenBalances(
26
+ {
27
+ collectionAddress: '0x1234567890123456789012345678901234567890',
28
+ userAddress: '0xuser1234567890123456789012345678901234567890',
29
+ chainId: 11155111,
30
+ isLaos721: true,
31
+ },
32
+ mockConfig,
33
+ );
34
+
35
+ // Should return array of balances from LAOS API response
36
+ expect(result).toEqual(mockTokenBalancesResponse.balances);
37
+ expect(result[0]?.balance).toBe('5');
38
+ expect(result[0]?.contractInfo?.type).toBe('LAOS-ERC-721');
39
+ expect(result[0]?.tokenMetadata?.name).toBe('Test Token 1');
40
+ });
41
+
42
+ it('should handle LAOS API errors', async () => {
43
+ server.use(...laosHandlers);
44
+
45
+ await expect(
46
+ fetchTokenBalances(
47
+ {
48
+ collectionAddress: '0x1234567890123456789012345678901234567890',
49
+ userAddress: '0x0000000000000000000000000000000000000001', // Special address for 500 error
50
+ chainId: 11155111,
51
+ isLaos721: true,
52
+ },
53
+ mockConfig,
54
+ ),
55
+ ).rejects.toThrow('Failed to get token balances: Internal Server Error');
56
+ });
57
+
58
+ it('should return empty array when LAOS API returns empty balances', async () => {
59
+ server.use(...laosHandlers);
60
+
61
+ const result = await fetchTokenBalances(
62
+ {
63
+ collectionAddress: '0x1234567890123456789012345678901234567890',
64
+ userAddress: '0x0000000000000000000000000000000000000003', // Special address for empty response
65
+ chainId: 11155111,
66
+ isLaos721: true,
67
+ },
68
+ mockConfig,
69
+ );
70
+
71
+ expect(result).toEqual([]);
72
+ });
73
+
74
+ it('should include metadata in LAOS response', async () => {
75
+ server.use(...laosHandlers);
76
+
77
+ const result = await fetchTokenBalances(
78
+ {
79
+ collectionAddress: '0x1234567890123456789012345678901234567890',
80
+ userAddress: '0xuser1234567890123456789012345678901234567890',
81
+ chainId: 11155111,
82
+ isLaos721: true,
83
+ },
84
+ mockConfig,
85
+ );
86
+
87
+ expect(result[0]?.tokenMetadata).toBeDefined();
88
+ expect(result[0]?.tokenMetadata?.name).toBe('Test Token 1');
89
+ expect(result[0]?.tokenMetadata?.description).toBe(
90
+ 'A test token for LAOS testing',
91
+ );
92
+ expect(result[0]?.tokenMetadata?.image).toBe(
93
+ 'https://example.com/token1.png',
94
+ );
95
+ expect(result[0]?.tokenMetadata?.attributes).toEqual([
96
+ {
97
+ trait_type: 'Rarity',
98
+ value: 'Common',
99
+ },
100
+ ]);
101
+ });
102
+
103
+ it('should handle different pagination orders', async () => {
104
+ server.use(...laosHandlers);
105
+
106
+ const result = await fetchTokenBalances(
107
+ {
108
+ collectionAddress: '0x1234567890123456789012345678901234567890',
109
+ userAddress: '0xuser1234567890123456789012345678901234567890',
110
+ chainId: 11155111,
111
+ isLaos721: true,
112
+ },
113
+ mockConfig,
114
+ );
115
+
116
+ // Should return array of balances regardless of sort order
117
+ expect(result).toBeDefined();
118
+ expect(Array.isArray(result)).toBe(true);
119
+ expect(result.every((balance) => typeof balance.balance === 'string')).toBe(
120
+ true,
121
+ );
122
+ });
123
+ });
@@ -10,6 +10,7 @@ export type UseBalanceOfCollectibleArgs = {
10
10
  userAddress: Address | undefined;
11
11
  chainId: number;
12
12
  isLaos721?: boolean;
13
+ includeMetadata?: boolean;
13
14
  query?: UseQueryParameters;
14
15
  };
15
16
 
@@ -44,7 +45,7 @@ export async function fetchBalanceOfCollectible(
44
45
  accountAddress: args.userAddress,
45
46
  contractAddress: args.collectionAddress,
46
47
  tokenID: args.collectableId,
47
- includeMetadata: false,
48
+ includeMetadata: args.includeMetadata ?? false,
48
49
  metadataOptions: {
49
50
  verifiedOnly: true,
50
51
  includeContracts: [args.collectionAddress],
@@ -53,30 +53,26 @@ export async function fetchFilters(
53
53
  compareAddress(c.itemsAddress, collectionAddress),
54
54
  )?.filterSettings;
55
55
 
56
- if (
57
- !collectionFilters?.exclusions ||
58
- collectionFilters.exclusions.length === 0 ||
59
- !collectionFilters.filterOrder ||
60
- collectionFilters.filterOrder.length === 0
61
- )
62
- return filters;
63
-
64
- const { filterOrder, exclusions } = collectionFilters;
65
-
66
- const sortedFilters = filters.toSorted((a, b) => {
67
- const aIndex =
68
- filterOrder.indexOf(a.name) > -1
69
- ? filterOrder.indexOf(a.name)
70
- : filterOrder.length;
71
- const bIndex =
72
- filterOrder.indexOf(b.name) > -1
73
- ? filterOrder.indexOf(b.name)
74
- : filterOrder.length;
75
- return aIndex - bIndex;
76
- });
77
-
78
- const filteredResults = sortedFilters.reduce<PropertyFilter[]>(
79
- (acc, filter) => {
56
+ const filterOrder = collectionFilters?.filterOrder;
57
+ const exclusions = collectionFilters?.exclusions;
58
+ let sortedFilters = filters;
59
+
60
+ if (filterOrder) {
61
+ sortedFilters = filters.toSorted((a, b) => {
62
+ const aIndex =
63
+ filterOrder.indexOf(a.name) > -1
64
+ ? filterOrder.indexOf(a.name)
65
+ : filterOrder.length;
66
+ const bIndex =
67
+ filterOrder.indexOf(b.name) > -1
68
+ ? filterOrder.indexOf(b.name)
69
+ : filterOrder.length;
70
+ return aIndex - bIndex;
71
+ });
72
+ }
73
+
74
+ if (exclusions) {
75
+ sortedFilters = sortedFilters.reduce<PropertyFilter[]>((acc, filter) => {
80
76
  const exclusionRule = exclusions.find((rule) => rule.key === filter.name);
81
77
 
82
78
  if (!exclusionRule) {
@@ -100,11 +96,10 @@ export async function fetchFilters(
100
96
  }
101
97
 
102
98
  return acc;
103
- },
104
- [],
105
- );
99
+ }, []);
100
+ }
106
101
 
107
- return filteredResults;
102
+ return sortedFilters;
108
103
  }
109
104
 
110
105
  export type FiltersQueryOptions = ValuesOptional<FetchFiltersParams> & {
@@ -24,6 +24,7 @@ export * from './listCollectiblesPaginated';
24
24
  export * from './listCollectionActivities';
25
25
  export * from './listCollections';
26
26
  export * from './listListingsForCollectible';
27
+ export * from './listOffersForCollectible';
27
28
  export * from './listTokenMetadata';
28
29
  export * from './lowestListing';
29
30
  export * from './marketCurrencies';