@0xsequence/marketplace-sdk 1.1.0 → 1.2.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 (447) hide show
  1. package/CHANGELOG.md +58 -5
  2. package/dist/{BellIcon-IpHHEy8h.js → BellIcon-DMKEumAz.js} +2 -2
  3. package/dist/BellIcon-DMKEumAz.js.map +1 -0
  4. package/dist/{CartIcon-C8zbor8H.js → CartIcon-UyB4NYKt.js} +3 -3
  5. package/dist/CartIcon-UyB4NYKt.js.map +1 -0
  6. package/dist/CollectibleCard-z05qWzKE.d.ts +8 -0
  7. package/dist/_internal-DkS2VUn5.js.map +1 -1
  8. package/dist/abi-fa-o9gH3.js +134 -0
  9. package/dist/abi-fa-o9gH3.js.map +1 -0
  10. package/dist/{alien_swap-BTJ7mSR-.js → alien_swap-Cq8LuElo.js} +1 -1
  11. package/dist/{alien_swap-BTJ7mSR-.js.map → alien_swap-Cq8LuElo.js.map} +1 -1
  12. package/dist/{api-DuLKn__v.js → api-GwTR0dBA.js} +13 -49
  13. package/dist/api-GwTR0dBA.js.map +1 -0
  14. package/dist/{aqua-xyz-BYJ9WSP_.js → aqua-xyz-0yye_c-Z.js} +1 -1
  15. package/dist/{aqua-xyz-BYJ9WSP_.js.map → aqua-xyz-0yye_c-Z.js.map} +1 -1
  16. package/dist/{aura-D7SUjgro.js → aura-TaxFvTFQ.js} +1 -1
  17. package/dist/{aura-D7SUjgro.js.map → aura-TaxFvTFQ.js.map} +1 -1
  18. package/dist/{blur-BcnRFCaV.js → blur-BupOTobO.js} +1 -1
  19. package/dist/{blur-BcnRFCaV.js.map → blur-BupOTobO.js.map} +1 -1
  20. package/dist/{builder-api-BFuZNOaN.js → builder-api-m4JAA6ee.js} +3 -3
  21. package/dist/builder-api-m4JAA6ee.js.map +1 -0
  22. package/dist/{builder.gen-B9wR2nvF.js → builder.gen--XD71cNL.js} +2 -2
  23. package/dist/builder.gen--XD71cNL.js.map +1 -0
  24. package/dist/{coinbase-ChoX9Hw2.js → coinbase-DTgZ4wDT.js} +1 -1
  25. package/dist/{coinbase-ChoX9Hw2.js.map → coinbase-DTgZ4wDT.js.map} +1 -1
  26. package/dist/collectibles-CZ6i8sXK.js +324 -0
  27. package/dist/collectibles-CZ6i8sXK.js.map +1 -0
  28. package/dist/collections-5NcU-7ZR.js +331 -0
  29. package/dist/collections-5NcU-7ZR.js.map +1 -0
  30. package/dist/{components-CUv-wQr8.js → components-CY8kx2kb.js} +13 -9
  31. package/dist/components-CY8kx2kb.js.map +1 -0
  32. package/dist/{contracts-D72LBOX3.js → contracts-DRJHF89h.js} +5 -4
  33. package/dist/{contracts-D72LBOX3.js.map → contracts-DRJHF89h.js.map} +1 -1
  34. package/dist/{create-config-CIfejoCk.js → create-config-BxyfYCEk.js} +6 -5
  35. package/dist/create-config-BxyfYCEk.js.map +1 -0
  36. package/dist/{create-config-DV_dtaLt.d.ts → create-config-CFBeD8CB.d.ts} +149 -57
  37. package/dist/{element-Dbcv5qya.js → element-D4dDznlu.js} +1 -1
  38. package/dist/{element-Dbcv5qya.js.map → element-D4dDznlu.js.map} +1 -1
  39. package/dist/filters-B5niI_fX.d.ts +60 -0
  40. package/dist/{foundation-QPhUEUy8.js → foundation-GHZOKAzN.js} +1 -1
  41. package/dist/{foundation-QPhUEUy8.js.map → foundation-GHZOKAzN.js.map} +1 -1
  42. package/dist/index-8scPf0CS.d.ts +55 -0
  43. package/dist/index-9qsplZ8r.d.ts +18 -0
  44. package/dist/index-BIuYTMc2.d.ts +122 -0
  45. package/dist/{index-BoNNplSx.d.ts → index-BNrz99xy.d.ts} +3 -3
  46. package/dist/{index-BaytncQc.d.ts → index-BYQOPS8e.d.ts} +108 -51
  47. package/dist/{index-CXscCUg7.d.ts → index-BkZ7SPLc.d.ts} +19 -29
  48. package/dist/{index-D6YMj82n.d.ts → index-BnUku_aF.d.ts} +109 -114
  49. package/dist/index-BtDAHMW_.d.ts +50 -0
  50. package/dist/index-C-c_M_sE.d.ts +107 -0
  51. package/dist/index-CKefEBrI.d.ts +1 -0
  52. package/dist/{index-CMPUveNz.d.ts → index-CNIiC8Z_.d.ts} +11 -8
  53. package/dist/{index-DLUjc7Bx.d.ts → index-CbERNN3s.d.ts} +201 -12
  54. package/dist/{index-C768pAfu.d.ts → index-CsfxsN0t.d.ts} +4 -4
  55. package/dist/{index-CQecU53t.d.ts → index-DASjaiJL.d.ts} +119 -24
  56. package/dist/{index-CT8ZorFd.d.ts → index-DD7Vc4cE.d.ts} +2 -2
  57. package/dist/{index-DpeWm_vF.d.ts → index-DIc8OqWV.d.ts} +7 -6
  58. package/dist/index-DVI_vggD.d.ts +171 -0
  59. package/dist/index-DgsCqh_P.d.ts +1 -0
  60. package/dist/{index-DMBMM16q.d.ts → index-DqxQeYT2.d.ts} +39 -36
  61. package/dist/{index-D-UXGo5d.d.ts → index-Dsf9FRtr.d.ts} +19 -3
  62. package/dist/{index-DJG0kiII.d.ts → index-DxAReMEO.d.ts} +45 -34
  63. package/dist/index-UXRoZmd_.d.ts +70 -0
  64. package/dist/{index-CM0ZTePs.d.ts → index-isFvc5gd.d.ts} +2 -2
  65. package/dist/{index-jGgfEHfQ.d.ts → index-j3nuJWyJ.d.ts} +18 -10
  66. package/dist/{index-B6aSbaw2.d.ts → index-nVb7o0hc.d.ts} +2 -2
  67. package/dist/{index-Bv5XVLjH.d.ts → index-pbE88Tt7.d.ts} +2 -2
  68. package/dist/index-xpO4AQyS.d.ts +1 -0
  69. package/dist/index.d.ts +8 -8
  70. package/dist/index.js +13 -13
  71. package/dist/inventory--t6Zu55O.js +75 -0
  72. package/dist/inventory--t6Zu55O.js.map +1 -0
  73. package/dist/listCollectiblesPaginated-BlE5mSzh.d.ts +327 -0
  74. package/dist/listCollections-DWyqFSQ3.d.ts +828 -0
  75. package/dist/{looks-rare-C7cQztTR.js → looks-rare-2HBhMpOf.js} +1 -1
  76. package/dist/{looks-rare-C7cQztTR.js.map → looks-rare-2HBhMpOf.js.map} +1 -1
  77. package/dist/lowestListing-DsunDO1c.d.ts +475 -0
  78. package/dist/{magic-eden-D3r7jiBG.js → magic-eden-BYdTp-uk.js} +1 -1
  79. package/dist/{magic-eden-D3r7jiBG.js.map → magic-eden-BYdTp-uk.js.map} +1 -1
  80. package/dist/{manifold-DsX0CBP-.js → manifold-yE0x6ZmO.js} +1 -1
  81. package/dist/{manifold-DsX0CBP-.js.map → manifold-yE0x6ZmO.js.map} +1 -1
  82. package/dist/market-DuBpFsDg.js +219 -0
  83. package/dist/market-DuBpFsDg.js.map +1 -0
  84. package/dist/{marketCurrencies-Bzj8X4TL.d.ts → marketCurrencies-BgwmbGFk.d.ts} +57 -15
  85. package/dist/marketCurrencies-Bolonndy.js +59 -0
  86. package/dist/marketCurrencies-Bolonndy.js.map +1 -0
  87. package/dist/{marketplace-BYY8OloA.js → marketplace-NQB-sEQL.js} +1 -1
  88. package/dist/{marketplace-BYY8OloA.js.map → marketplace-NQB-sEQL.js.map} +1 -1
  89. package/dist/{marketplace-logos-Csv2MBwf.js → marketplace-logos-Cz9RrtQo.js} +21 -21
  90. package/dist/marketplace-logos-Cz9RrtQo.js.map +1 -0
  91. package/dist/{marketplace.gen-w2YvbEEo.js → marketplace.gen-906FrJQJ.js} +75 -5
  92. package/dist/marketplace.gen-906FrJQJ.js.map +1 -0
  93. package/dist/{marketplaceConfig-BTy75Mbf.js → marketplaceConfig-Bqjo7NYO.js} +9 -5
  94. package/dist/marketplaceConfig-Bqjo7NYO.js.map +1 -0
  95. package/dist/{mintify-DiOoDmO1.js → mintify-BXQx3mZB.js} +1 -1
  96. package/dist/{mintify-DiOoDmO1.js.map → mintify-BXQx3mZB.js.map} +1 -1
  97. package/dist/{network-DtmiMhcg.js → network-DwdZ_5-7.js} +2 -2
  98. package/dist/network-DwdZ_5-7.js.map +1 -0
  99. package/dist/{networkconfigToWagmiChain-DbUf6HiO.js → networkconfigToWagmiChain-Ct-hGq8M.js} +4 -3
  100. package/dist/networkconfigToWagmiChain-Ct-hGq8M.js.map +1 -0
  101. package/dist/{nftx-CP82jNra.js → nftx-B929_3Ce.js} +1 -1
  102. package/dist/{nftx-CP82jNra.js.map → nftx-B929_3Ce.js.map} +1 -1
  103. package/dist/{okx-p9-4xRjs.js → okx-sZ0-Udny.js} +1 -1
  104. package/dist/{okx-p9-4xRjs.js.map → okx-sZ0-Udny.js.map} +1 -1
  105. package/dist/{open-sea-D2GwAmKS.js → open-sea-DO9PhTrz.js} +1 -1
  106. package/dist/{open-sea-D2GwAmKS.js.map → open-sea-DO9PhTrz.js.map} +1 -1
  107. package/dist/orders-DH76ym2e.js +469 -0
  108. package/dist/orders-DH76ym2e.js.map +1 -0
  109. package/dist/{primary-sale-DOmNDq2P.js → primary-sale-1u4QlPdA.js} +1 -1
  110. package/dist/{primary-sale-DOmNDq2P.js.map → primary-sale-1u4QlPdA.js.map} +1 -1
  111. package/dist/primary-sales-CECrqatg.js +156 -0
  112. package/dist/primary-sales-CECrqatg.js.map +1 -0
  113. package/dist/{query-BG-MA1MB.d.ts → query-brXxOcH0.d.ts} +1 -1
  114. package/dist/{rarible-DqiiW9ki.js → rarible-Ccb2hs7y.js} +1 -1
  115. package/dist/{rarible-DqiiW9ki.js.map → rarible-Ccb2hs7y.js.map} +1 -1
  116. package/dist/react/_internal/api/index.d.ts +2 -2
  117. package/dist/react/_internal/api/index.js +6 -6
  118. package/dist/react/_internal/databeat/index.d.ts +1 -1
  119. package/dist/react/_internal/databeat/index.js +32 -22
  120. package/dist/react/_internal/index.d.ts +2 -2
  121. package/dist/react/_internal/index.js +8 -8
  122. package/dist/react/_internal/wagmi/index.d.ts +1 -1
  123. package/dist/react/_internal/wagmi/index.js +3 -3
  124. package/dist/react/hooks/config/index.d.ts +8 -8
  125. package/dist/react/hooks/config/index.js +32 -22
  126. package/dist/react/hooks/contracts/index.d.ts +6 -6
  127. package/dist/react/hooks/contracts/index.js +12 -12
  128. package/dist/react/hooks/data/collectibles/index.d.ts +10 -4
  129. package/dist/react/hooks/data/collectibles/index.js +32 -22
  130. package/dist/react/hooks/data/collections/index.d.ts +11 -11
  131. package/dist/react/hooks/data/collections/index.js +33 -23
  132. package/dist/react/hooks/data/index.d.ts +37 -29
  133. package/dist/react/hooks/data/index.js +33 -23
  134. package/dist/react/hooks/data/inventory/index.d.ts +36 -28
  135. package/dist/react/hooks/data/inventory/index.js +32 -22
  136. package/dist/react/hooks/data/market/index.d.ts +11 -5
  137. package/dist/react/hooks/data/market/index.js +32 -22
  138. package/dist/react/hooks/data/orders/index.d.ts +11 -5
  139. package/dist/react/hooks/data/orders/index.js +33 -23
  140. package/dist/react/hooks/data/primary-sales/index.d.ts +37 -29
  141. package/dist/react/hooks/data/primary-sales/index.js +33 -23
  142. package/dist/react/hooks/data/tokens/index.d.ts +4 -4
  143. package/dist/react/hooks/data/tokens/index.js +32 -22
  144. package/dist/react/hooks/index.d.ts +37 -29
  145. package/dist/react/hooks/index.js +33 -23
  146. package/dist/react/hooks/transactions/index.d.ts +2 -2
  147. package/dist/react/hooks/transactions/index.js +32 -22
  148. package/dist/react/hooks/ui/index.d.ts +4 -4
  149. package/dist/react/hooks/ui/index.js +32 -22
  150. package/dist/react/hooks/utils/index.d.ts +36 -28
  151. package/dist/react/hooks/utils/index.js +32 -22
  152. package/dist/react/index.d.ts +37 -29
  153. package/dist/react/index.js +33 -23
  154. package/dist/react/queries/collectibles/index.d.ts +11 -0
  155. package/dist/react/queries/collectibles/index.js +22 -0
  156. package/dist/react/queries/collections/index.d.ts +11 -0
  157. package/dist/react/queries/collections/index.js +20 -0
  158. package/dist/react/queries/index.d.ts +24 -16
  159. package/dist/react/queries/index.js +26 -16
  160. package/dist/react/queries/inventory/index.d.ts +3 -0
  161. package/dist/react/queries/inventory/index.js +22 -0
  162. package/dist/react/queries/market/index.d.ts +6 -0
  163. package/dist/react/queries/market/index.js +22 -0
  164. package/dist/react/queries/orders/index.d.ts +11 -0
  165. package/dist/react/queries/orders/index.js +13 -0
  166. package/dist/react/queries/primary-sales/index.d.ts +4 -0
  167. package/dist/react/queries/primary-sales/index.js +13 -0
  168. package/dist/react/queries/tokens/index.d.ts +5 -0
  169. package/dist/react/queries/tokens/index.js +13 -0
  170. package/dist/react/queries/utils/index.d.ts +4 -0
  171. package/dist/react/queries/utils/index.js +22 -0
  172. package/dist/react/ssr/index.d.ts +7 -7
  173. package/dist/react/ssr/index.js +8 -8
  174. package/dist/react/ssr/index.js.map +1 -1
  175. package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.d.ts +2 -2
  176. package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.js +16 -16
  177. package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.d.ts +7 -10
  178. package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.js +32 -22
  179. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +4 -4
  180. package/dist/react/ui/components/marketplace-collectible-card/index.js +32 -22
  181. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -2
  182. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +8 -8
  183. package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
  184. package/dist/react/ui/components/marketplace-logos/index.js +1 -1
  185. package/dist/react/ui/icons/index.js +12 -12
  186. package/dist/react/ui/index.d.ts +4 -4
  187. package/dist/react/ui/index.js +32 -22
  188. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +2 -2
  189. package/dist/react/ui/modals/_internal/components/actionModal/index.js +32 -22
  190. package/dist/react/utils/index.d.ts +3 -3
  191. package/dist/react/utils/index.js +6 -6
  192. package/dist/{react-BLJ4DkPx.js → react-CBsgOdVP.js} +1540 -474
  193. package/dist/react-CBsgOdVP.js.map +1 -0
  194. package/dist/{sequence-Bbb-TFKg.js → sequence-CRdb1yEs.js} +1 -1
  195. package/dist/{sequence-Bbb-TFKg.js.map → sequence-CRdb1yEs.js.map} +1 -1
  196. package/dist/styles/index.css +155 -1
  197. package/dist/{sudo-swap-CEPIM3Js.js → sudo-swap-BIklG2gq.js} +1 -1
  198. package/dist/{sudo-swap-CEPIM3Js.js.map → sudo-swap-BIklG2gq.js.map} +1 -1
  199. package/dist/{super-rare-CMEn9PoO.js → super-rare-h8645_5E.js} +1 -1
  200. package/dist/{super-rare-CMEn9PoO.js.map → super-rare-h8645_5E.js.map} +1 -1
  201. package/dist/{token-CcyLz8Z8.js → token-Cv7l2ZaL.js} +1 -1
  202. package/dist/{token-CcyLz8Z8.js.map → token-Cv7l2ZaL.js.map} +1 -1
  203. package/dist/tokenBalances-CouzNX4j.js +57 -0
  204. package/dist/tokenBalances-CouzNX4j.js.map +1 -0
  205. package/dist/tokenSupplies-C3zJll0M.d.ts +265 -0
  206. package/dist/tokens-BvIRUCGG.js +225 -0
  207. package/dist/tokens-BvIRUCGG.js.map +1 -0
  208. package/dist/transaction-DZUW5RHu.js.map +1 -1
  209. package/dist/types/index.d.ts +1 -1
  210. package/dist/types/index.js +2 -2
  211. package/dist/types-B_-cnkcP.js.map +1 -1
  212. package/dist/{types-D6LkVrF0.d.ts → types-CMDwfhfR.d.ts} +6 -5
  213. package/dist/utils/abi/index.d.ts +5 -5
  214. package/dist/utils/abi/index.js +5 -5
  215. package/dist/utils/abi/marketplace/index.d.ts +1 -1
  216. package/dist/utils/abi/marketplace/index.js +1 -1
  217. package/dist/utils/abi/primary-sale/index.d.ts +1 -1
  218. package/dist/utils/abi/primary-sale/index.js +1 -1
  219. package/dist/utils/abi/token/index.d.ts +1 -1
  220. package/dist/utils/abi/token/index.js +1 -1
  221. package/dist/utils/index.d.ts +7 -7
  222. package/dist/utils/index.js +11 -11
  223. package/dist/{utils-BZEkdqWK.js → utils-9ToOvt-c.js} +50 -7
  224. package/dist/utils-9ToOvt-c.js.map +1 -0
  225. package/dist/{utils-oVZxdK0o.js → utils-B6di6O-C.js} +2 -2
  226. package/dist/utils-B6di6O-C.js.map +1 -0
  227. package/dist/utils-BCYTEOvy.js +122 -0
  228. package/dist/utils-BCYTEOvy.js.map +1 -0
  229. package/dist/waitForTransactionReceipt-CbSeUSXe.js +26 -0
  230. package/dist/waitForTransactionReceipt-CbSeUSXe.js.map +1 -0
  231. package/dist/{x2y2-DNe6JgtG.js → x2y2-OvF__ugj.js} +1 -1
  232. package/dist/{x2y2-DNe6JgtG.js.map → x2y2-OvF__ugj.js.map} +1 -1
  233. package/dist/{zora-w0Zqxxs4.js → zora-DzCeu-eE.js} +1 -1
  234. package/dist/{zora-w0Zqxxs4.js.map → zora-DzCeu-eE.js.map} +1 -1
  235. package/package.json +46 -41
  236. package/src/react/_internal/api/__mocks__/marketplace.msw.ts +15 -0
  237. package/src/react/_internal/api/index.ts +0 -1
  238. package/src/react/_internal/api/marketplace.gen.ts +1774 -2383
  239. package/src/react/_internal/api/query-keys.ts +23 -0
  240. package/src/react/_internal/api/services.ts +1 -1
  241. package/src/react/_internal/databeat/types.ts +1 -0
  242. package/src/react/_internal/types.ts +14 -0
  243. package/src/react/_internal/utils.ts +3 -0
  244. package/src/react/hooks/config/useMarketplaceConfig.tsx +1 -1
  245. package/src/react/hooks/data/collectibles/useBalanceOfCollectible.tsx +1 -10
  246. package/src/react/hooks/data/collectibles/useCollectible.tsx +1 -1
  247. package/src/react/hooks/data/collectibles/useCountOfCollectables.tsx +1 -1
  248. package/src/react/hooks/data/collectibles/useListCollectibleActivities.tsx +1 -1
  249. package/src/react/hooks/data/collectibles/useListCollectibles.tsx +2 -17
  250. package/src/react/hooks/data/collectibles/useListCollectiblesPaginated.tsx +1 -1
  251. package/src/react/hooks/data/collectibles/useTokenBalances.tsx +1 -10
  252. package/src/react/hooks/data/collections/index.ts +2 -0
  253. package/src/react/hooks/data/collections/useCollection.tsx +1 -1
  254. package/src/react/hooks/data/collections/useCollectionActiveListingsCurrencies.test.tsx +112 -0
  255. package/src/react/hooks/data/collections/useCollectionActiveListingsCurrencies.tsx +74 -0
  256. package/src/react/hooks/data/collections/useCollectionActiveOffersCurrencies.test.tsx +110 -0
  257. package/src/react/hooks/data/collections/useCollectionActiveOffersCurrencies.tsx +74 -0
  258. package/src/react/hooks/data/collections/useCollectionBalanceDetails.tsx +1 -1
  259. package/src/react/hooks/data/collections/useCollectionDetails.ts +1 -1
  260. package/src/react/hooks/data/collections/useListCollectionActivities.tsx +1 -1
  261. package/src/react/hooks/data/collections/useListCollections.tsx +1 -1
  262. package/src/react/hooks/data/inventory/useInventory.tsx +2 -11
  263. package/src/react/hooks/data/market/useCurrency.tsx +1 -1
  264. package/src/react/hooks/data/market/useListMarketCardData.tsx +7 -0
  265. package/src/react/hooks/data/market/useMarketCurrencies.test.tsx +31 -2
  266. package/src/react/hooks/data/market/useMarketCurrencies.tsx +1 -1
  267. package/src/react/hooks/data/orders/index.ts +4 -0
  268. package/src/react/hooks/data/orders/useCountItemsOrdersForCollection.tsx +90 -0
  269. package/src/react/hooks/data/orders/useCountListingsForCollectible.tsx +1 -1
  270. package/src/react/hooks/data/orders/useCountOffersForCollectible.tsx +1 -1
  271. package/src/react/hooks/data/orders/useFloorOrder.tsx +1 -1
  272. package/src/react/hooks/data/orders/useGetCountOfFilteredOrders.tsx +39 -0
  273. package/src/react/hooks/data/orders/useHighestOffer.tsx +1 -1
  274. package/src/react/hooks/data/orders/useListItemsOrdersForCollection.tsx +93 -0
  275. package/src/react/hooks/data/orders/useListItemsOrdersForCollectionPaginated.tsx +108 -0
  276. package/src/react/hooks/data/orders/useListListingsForCollectible.tsx +1 -1
  277. package/src/react/hooks/data/orders/useListOffersForCollectible.tsx +1 -1
  278. package/src/react/hooks/data/orders/useLowestListing.tsx +1 -1
  279. package/src/react/hooks/data/primary-sales/index.ts +1 -0
  280. package/src/react/hooks/data/primary-sales/useGetCountOfPrimarySaleItems.tsx +2 -2
  281. package/src/react/hooks/data/primary-sales/useListPrimarySaleItems.tsx +1 -1
  282. package/src/react/hooks/data/primary-sales/usePrimarySaleItem.tsx +71 -0
  283. package/src/react/hooks/data/tokens/useGetTokenRanges.tsx +2 -2
  284. package/src/react/hooks/data/tokens/useListBalances.tsx +3 -12
  285. package/src/react/hooks/data/tokens/useListTokenMetadata.tsx +1 -1
  286. package/src/react/hooks/data/tokens/useSearchTokenMetadata.tsx +1 -1
  287. package/src/react/hooks/data/tokens/useTokenSupplies.ts +2 -14
  288. package/src/react/hooks/transactions/useGenerateCancelTransaction.test.tsx +1 -0
  289. package/src/react/hooks/transactions/useGenerateListingTransaction.test.tsx +13 -0
  290. package/src/react/hooks/transactions/useGenerateOfferTransaction.test.tsx +3 -0
  291. package/src/react/hooks/transactions/useGenerateSellTransaction.test.tsx +6 -0
  292. package/src/react/hooks/transactions/useProcessStep.test.tsx +8 -6
  293. package/src/react/hooks/transactions/useProcessStep.ts +8 -6
  294. package/src/react/hooks/ui/useFilterState.tsx +72 -2
  295. package/src/react/hooks/ui/useFilters.tsx +1 -1
  296. package/src/react/hooks/utils/useCheckoutOptions.tsx +2 -2
  297. package/src/react/hooks/utils/useCheckoutOptionsSalesContract.tsx +1 -1
  298. package/src/react/hooks/utils/useComparePrices.test.tsx +1 -1
  299. package/src/react/hooks/utils/useComparePrices.tsx +1 -1
  300. package/src/react/hooks/utils/useConvertPriceToUSD.tsx +1 -1
  301. package/src/react/providers/analytics-provider.tsx +45 -0
  302. package/src/react/providers/index.tsx +30 -41
  303. package/src/react/providers/modal-provider.tsx +14 -2
  304. package/src/react/queries/{balanceOfCollectible.ts → collectibles/balanceOfCollectible.ts} +23 -16
  305. package/src/react/queries/{collectible.ts → collectibles/collectible.ts} +20 -5
  306. package/src/react/queries/{countOfCollectables.ts → collectibles/countOfCollectables.ts} +32 -6
  307. package/src/react/queries/collectibles/index.ts +7 -0
  308. package/src/react/queries/{listCollectibleActivities.ts → collectibles/listCollectibleActivities.ts} +29 -5
  309. package/src/react/queries/{listCollectibles.ts → collectibles/listCollectibles.ts} +22 -56
  310. package/src/react/queries/{listCollectiblesPaginated.ts → collectibles/listCollectiblesPaginated.ts} +22 -5
  311. package/src/react/queries/{tokenBalances.ts → collectibles/tokenBalances.ts} +20 -16
  312. package/src/react/queries/collections/activeListingsCurrencies.ts +84 -0
  313. package/src/react/queries/collections/activeOffersCurrencies.ts +84 -0
  314. package/src/react/queries/{collection.ts → collections/collection.ts} +19 -5
  315. package/src/react/queries/{collectionBalanceDetails.ts → collections/collectionBalanceDetails.ts} +19 -4
  316. package/src/react/queries/{collectionDetails.ts → collections/collectionDetails.ts} +21 -6
  317. package/src/react/queries/collections/index.ts +7 -0
  318. package/src/react/queries/{listCollectionActivities.ts → collections/listCollectionActivities.ts} +28 -6
  319. package/src/react/queries/{listCollections.ts → collections/listCollections.ts} +17 -6
  320. package/src/react/queries/index.ts +7 -34
  321. package/src/react/queries/inventory/index.ts +1 -0
  322. package/src/react/queries/{inventory.ts → inventory/inventory.ts} +13 -14
  323. package/src/react/queries/{checkoutOptions.ts → market/checkoutOptions.ts} +28 -6
  324. package/src/react/queries/{checkoutOptionsSalesContract.ts → market/checkoutOptionsSalesContract.ts} +24 -5
  325. package/src/react/queries/{currency.ts → market/currency.ts} +13 -4
  326. package/src/react/queries/{filters.ts → market/filters.ts} +25 -6
  327. package/src/react/queries/market/index.ts +6 -0
  328. package/src/react/queries/{marketCurrencies.ts → market/marketCurrencies.ts} +32 -6
  329. package/src/react/queries/{marketplaceConfig.ts → market/marketplaceConfig.ts} +5 -5
  330. package/src/react/queries/orders/countItemsOrdersForCollection.ts +86 -0
  331. package/src/react/queries/{countListingsForCollectible.ts → orders/countListingsForCollectible.ts} +23 -6
  332. package/src/react/queries/{countOffersForCollectible.ts → orders/countOffersForCollectible.ts} +23 -6
  333. package/src/react/queries/{floorOrder.ts → orders/floorOrder.ts} +15 -4
  334. package/src/react/queries/orders/getCountOfFilteredOrders.ts +88 -0
  335. package/src/react/queries/{highestOffer.ts → orders/highestOffer.ts} +16 -4
  336. package/src/react/queries/orders/index.ts +11 -0
  337. package/src/react/queries/orders/listItemsOrdersForCollection.ts +90 -0
  338. package/src/react/queries/orders/listItemsOrdersForCollectionPaginated.ts +90 -0
  339. package/src/react/queries/{listListingsForCollectible.ts → orders/listListingsForCollectible.ts} +20 -5
  340. package/src/react/queries/{listOffersForCollectible.ts → orders/listOffersForCollectible.ts} +20 -5
  341. package/src/react/queries/{lowestListing.ts → orders/lowestListing.ts} +16 -4
  342. package/src/react/queries/{countOfPrimarySaleItems.ts → primary-sales/countOfPrimarySaleItems.ts} +17 -3
  343. package/src/react/queries/primary-sales/index.ts +4 -0
  344. package/src/react/queries/primary-sales/primarySaleItem.ts +80 -0
  345. package/src/react/queries/{primarySaleItems.ts → primary-sales/primarySaleItems.ts} +18 -4
  346. package/src/react/queries/{primarySaleItemsCount.ts → primary-sales/primarySaleItemsCount.ts} +19 -4
  347. package/src/react/queries/{getTokenRanges.ts → tokens/getTokenRanges.ts} +17 -4
  348. package/src/react/queries/tokens/index.ts +5 -0
  349. package/src/react/queries/{listBalances.ts → tokens/listBalances.ts} +17 -22
  350. package/src/react/queries/{listTokenMetadata.ts → tokens/listTokenMetadata.ts} +18 -4
  351. package/src/react/queries/{searchTokenMetadata.ts → tokens/searchTokenMetadata.ts} +18 -4
  352. package/src/react/queries/{tokenSupplies.ts → tokens/tokenSupplies.ts} +17 -34
  353. package/src/react/queries/{comparePrices.ts → utils/comparePrices.ts} +29 -5
  354. package/src/react/queries/{convertPriceToUSD.ts → utils/convertPriceToUSD.ts} +18 -5
  355. package/src/react/queries/utils/index.ts +2 -0
  356. package/src/react/ssr/create-ssr-client.ts +1 -1
  357. package/src/react/ui/components/_internals/ErrorLogBox.tsx +85 -0
  358. package/src/react/ui/components/_internals/action-button/ActionButton.stories.tsx +2 -0
  359. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +4 -0
  360. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +4 -0
  361. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +3 -0
  362. package/src/react/ui/components/marketplace-collectible-card/components/footer/Footer.tsx +4 -18
  363. package/src/react/ui/components/marketplace-collectible-card/types.ts +1 -0
  364. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +5 -2
  365. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +2 -2
  366. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +3 -0
  367. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +1 -0
  368. package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +65 -3
  369. package/src/react/ui/modals/BuyModal/components/ERC721BuyModal.tsx +31 -0
  370. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC721SalePaymentParams.test.tsx +20 -1
  371. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +7 -2
  372. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +12 -3
  373. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +11 -25
  374. package/src/react/ui/modals/BuyModal/store.ts +3 -0
  375. package/src/react/ui/modals/CreateListingModal/Modal.tsx +63 -24
  376. package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +4 -0
  377. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +18 -12
  378. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +4 -1
  379. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +1 -0
  380. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +77 -10
  381. package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +12 -0
  382. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +6 -1
  383. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +15 -26
  384. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +3 -0
  385. package/src/react/ui/modals/SellModal/Modal.tsx +21 -3
  386. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +2 -0
  387. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +3 -1
  388. package/src/react/ui/modals/SellModal/hooks/useSell.tsx +13 -7
  389. package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +9 -0
  390. package/src/react/ui/modals/_internal/components/calendarDropdown/TimeSelector.tsx +105 -0
  391. package/src/react/ui/modals/_internal/components/calendarDropdown/index.tsx +45 -12
  392. package/src/react/ui/modals/_internal/components/calendarDropdown/overrides.css +39 -0
  393. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +34 -10
  394. package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +18 -9
  395. package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +2 -0
  396. package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +1 -1
  397. package/src/react/ui/modals/_internal/components/priceInput/index.tsx +198 -11
  398. package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +58 -10
  399. package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/utils.test.ts +2 -0
  400. package/src/react/utils/waitForTransactionReceipt.ts +26 -32
  401. package/src/styles/index.css +1 -0
  402. package/src/styles/styles.ts +156 -2
  403. package/src/types/index.ts +1 -1
  404. package/src/utils/abi/index.ts +1 -0
  405. package/src/utils/abi/mainModule.ts +158 -0
  406. package/src/utils/networkconfigToWagmiChain.ts +7 -0
  407. package/src/utils/price.ts +58 -0
  408. package/test/const.ts +2 -0
  409. package/test/server-setup.ts +0 -2
  410. package/dist/BellIcon-IpHHEy8h.js.map +0 -1
  411. package/dist/CartIcon-C8zbor8H.js.map +0 -1
  412. package/dist/CollectibleCard-C2EWF0zo.d.ts +0 -8
  413. package/dist/api-DuLKn__v.js.map +0 -1
  414. package/dist/builder-api-BFuZNOaN.js.map +0 -1
  415. package/dist/builder.gen-B9wR2nvF.js.map +0 -1
  416. package/dist/components-CUv-wQr8.js.map +0 -1
  417. package/dist/create-config-CIfejoCk.js.map +0 -1
  418. package/dist/filters-zkMJaPey.d.ts +0 -31
  419. package/dist/index-B8vaT3_s.d.ts +0 -18
  420. package/dist/index-Yobo6icm.d.ts +0 -234
  421. package/dist/listCollectiblesPaginated-Bq0QSOjJ.d.ts +0 -168
  422. package/dist/listCollections-dTCq00l5.d.ts +0 -669
  423. package/dist/lowestListing-CB5Te-Q9.d.ts +0 -168
  424. package/dist/marketplace-logos-Csv2MBwf.js.map +0 -1
  425. package/dist/marketplace.gen-w2YvbEEo.js.map +0 -1
  426. package/dist/marketplaceConfig-BTy75Mbf.js.map +0 -1
  427. package/dist/network-DtmiMhcg.js.map +0 -1
  428. package/dist/networkconfigToWagmiChain-DbUf6HiO.js.map +0 -1
  429. package/dist/queries-EMA5CcwY.js +0 -1399
  430. package/dist/queries-EMA5CcwY.js.map +0 -1
  431. package/dist/react-BLJ4DkPx.js.map +0 -1
  432. package/dist/react-F03jPjPk.css +0 -80
  433. package/dist/react-F03jPjPk.css.map +0 -1
  434. package/dist/tokenSupplies-C470zTT0.d.ts +0 -147
  435. package/dist/utils-BZEkdqWK.js.map +0 -1
  436. package/dist/utils-oVZxdK0o.js.map +0 -1
  437. package/dist/waitForTransactionReceipt-B08YZiDY.js +0 -26
  438. package/dist/waitForTransactionReceipt-B08YZiDY.js.map +0 -1
  439. package/src/react/_internal/api/__mocks__/laos.msw.ts +0 -387
  440. package/src/react/_internal/api/__tests__/laos-api.test.ts +0 -756
  441. package/src/react/_internal/api/laos-api.ts +0 -106
  442. package/src/react/hooks/data/collectibles/useBalanceOfCollectible.laos.test.tsx +0 -367
  443. package/src/react/queries/__tests__/balanceOfCollectible.laos.test.ts +0 -123
  444. package/src/react/queries/__tests__/inventory.laos.test.ts +0 -499
  445. package/src/react/queries/__tests__/tokenBalances.laos.test.ts +0 -123
  446. /package/dist/{index-Cg5cFzs-.d.ts → index-CCggO_hw.d.ts} +0 -0
  447. /package/dist/{abi-DYsUABe6.js → queries-CyajGg_O.js} +0 -0
@@ -63,8 +63,10 @@ export const useERC1155Checkout = ({
63
63
  wallet: accountAddress ?? '',
64
64
  // Pass checkout options if available
65
65
  ...(checkoutOptions && { checkoutOptions }),
66
- onSuccess: (hash: string) => {
67
- onSuccess({ hash: hash as Hash });
66
+ onSuccess: (txHash?: string) => {
67
+ if (txHash) {
68
+ onSuccess({ hash: txHash as Hash });
69
+ }
68
70
  },
69
71
  onError: (error: Error) => {
70
72
  onError(error);
@@ -89,6 +91,9 @@ export const useERC1155Checkout = ({
89
91
  saleAnalyticsId,
90
92
  },
91
93
  successActionButtons: buyModalProps.successActionButtons,
94
+ ...(buyModalProps.onRampProvider && {
95
+ onRampProvider: buyModalProps.onRampProvider,
96
+ }),
92
97
  });
93
98
 
94
99
  return {
@@ -10,7 +10,10 @@ import {
10
10
  import { useAccount } from 'wagmi';
11
11
  import { BuyModalErrorFactory } from '../../../../../types/buyModalErrors';
12
12
  import { ERC721_SALE_ABI_V0 } from '../../../../../utils/abi';
13
- import { getQueryClient } from '../../../../_internal';
13
+ import {
14
+ getQueryClient,
15
+ type TransactionOnRampProvider,
16
+ } from '../../../../_internal';
14
17
  import type { ActionButton, ModalCallbacks } from '../../_internal/types';
15
18
  import {
16
19
  buyModalStore,
@@ -60,6 +63,7 @@ interface GetERC721SalePaymentParams {
60
63
  checkoutProvider?: string;
61
64
  quantity: number;
62
65
  successActionButtons?: ActionButton[];
66
+ onRampProvider: TransactionOnRampProvider | undefined;
63
67
  }
64
68
 
65
69
  export const getERC721SalePaymentParams = async ({
@@ -76,6 +80,7 @@ export const getERC721SalePaymentParams = async ({
76
80
  checkoutProvider,
77
81
  quantity,
78
82
  successActionButtons,
83
+ onRampProvider,
79
84
  }: GetERC721SalePaymentParams) => {
80
85
  try {
81
86
  const purchaseTransactionData = encodeERC721MintData({
@@ -107,8 +112,10 @@ export const getERC721SalePaymentParams = async ({
107
112
  collectionAddress,
108
113
  recipientAddress: address,
109
114
  creditCardProviders,
110
- onSuccess: (hash: string) => {
111
- callbacks?.onSuccess?.({ hash: hash as Hash });
115
+ onSuccess: (txHash?: string) => {
116
+ if (txHash) {
117
+ callbacks?.onSuccess?.({ hash: txHash as Hash });
118
+ }
112
119
  },
113
120
  onError: callbacks?.onError,
114
121
  onClose: () => {
@@ -130,6 +137,7 @@ export const getERC721SalePaymentParams = async ({
130
137
  },
131
138
  }),
132
139
  successActionButtons,
140
+ onRampProvider,
133
141
  } satisfies SelectPaymentSettings;
134
142
  } catch (error) {
135
143
  // Convert to structured error for better debugging
@@ -201,6 +209,7 @@ export const useERC721SalePaymentParams = (
201
209
  checkoutProvider,
202
210
  quantity,
203
211
  successActionButtons: buyModalProps.successActionButtons,
212
+ onRampProvider: buyModalProps.onRampProvider,
204
213
  })
205
214
  : skipToken,
206
215
  });
@@ -8,10 +8,10 @@ import {
8
8
  type AdditionalFee,
9
9
  getMarketplaceClient,
10
10
  getQueryClient,
11
- getSequenceApiClient,
12
11
  type MarketplaceKind,
13
12
  type Step,
14
13
  StepType,
14
+ type TransactionOnRampProvider,
15
15
  WalletKind,
16
16
  } from '../../../../_internal';
17
17
  import { useConfig } from '../../../../hooks';
@@ -44,6 +44,7 @@ interface GetBuyCollectableParams {
44
44
  skipNativeBalanceCheck: boolean | undefined;
45
45
  nativeTokenAddress: string | undefined;
46
46
  buyAnalyticsId: string;
47
+ onRampProvider: TransactionOnRampProvider | undefined;
47
48
  }
48
49
 
49
50
  export const getBuyCollectableParams = async ({
@@ -64,6 +65,7 @@ export const getBuyCollectableParams = async ({
64
65
  skipNativeBalanceCheck,
65
66
  nativeTokenAddress,
66
67
  buyAnalyticsId,
68
+ onRampProvider,
67
69
  }: GetBuyCollectableParams) => {
68
70
  const marketplaceClient = getMarketplaceClient(config);
69
71
  const { steps } = await marketplaceClient.generateBuyTransaction({
@@ -97,23 +99,6 @@ export const getBuyCollectableParams = async ({
97
99
  ? ['custom']
98
100
  : checkoutOptions.nftCheckout || [];
99
101
 
100
- const isTransakSupported = creditCardProviders.includes('transak');
101
-
102
- let transakContractId: string | undefined;
103
-
104
- if (isTransakSupported) {
105
- const sequenceApiClient = getSequenceApiClient(config);
106
- const transakContractIdResponse =
107
- await sequenceApiClient.checkoutOptionsGetTransakContractID({
108
- chainId,
109
- contractAddress: buyStep.to,
110
- });
111
-
112
- if (transakContractIdResponse.contractId !== '') {
113
- transakContractId = transakContractIdResponse.contractId;
114
- }
115
- }
116
-
117
102
  return {
118
103
  chain: chainId,
119
104
  collectibles: [
@@ -131,8 +116,10 @@ export const getBuyCollectableParams = async ({
131
116
  collectionAddress,
132
117
  recipientAddress: address,
133
118
  creditCardProviders,
134
- onSuccess: (hash: string) => {
135
- callbacks?.onSuccess?.({ hash: hash as Hash });
119
+ onSuccess: (txHash?: string) => {
120
+ if (txHash) {
121
+ callbacks?.onSuccess?.({ hash: txHash as Hash });
122
+ }
136
123
  },
137
124
  supplementaryAnalyticsInfo: {
138
125
  requestId: orderId,
@@ -156,11 +143,7 @@ export const getBuyCollectableParams = async ({
156
143
  buyModalStore.send({ type: 'close' });
157
144
  },
158
145
  }),
159
- ...(transakContractId && {
160
- transakConfig: {
161
- contractId: transakContractId,
162
- },
163
- }),
146
+ onRampProvider,
164
147
  successActionButtons: callbacks?.successActionButtons,
165
148
  } satisfies SelectPaymentSettings;
166
149
  };
@@ -192,6 +175,7 @@ export const usePaymentModalParams = (args: usePaymentModalParams) => {
192
175
  collectionAddress,
193
176
  skipNativeBalanceCheck,
194
177
  nativeTokenAddress,
178
+ onRampProvider,
195
179
  } = buyModalProps;
196
180
 
197
181
  // Extract Marketplace-specific properties using type guard
@@ -251,7 +235,9 @@ export const usePaymentModalParams = (args: usePaymentModalParams) => {
251
235
  skipNativeBalanceCheck,
252
236
  nativeTokenAddress,
253
237
  buyAnalyticsId,
238
+ onRampProvider,
254
239
  })
255
240
  : skipToken,
241
+ retry: false,
256
242
  });
257
243
  };
@@ -6,6 +6,7 @@ import type {
6
6
  CheckoutOptionsItem,
7
7
  MarketplaceKind,
8
8
  Step,
9
+ TransactionOnRampProvider,
9
10
  } from '../../../_internal';
10
11
  import type { useAnalytics } from '../../../_internal/databeat';
11
12
  import { flattenAnalyticsArgs } from '../../../_internal/databeat/utils';
@@ -38,6 +39,8 @@ export type BuyModalBaseProps = {
38
39
  cardType?: CardType;
39
40
  customCreditCardProviderCallback?: PaymentModalProps['customCreditCardProviderCallback'];
40
41
  successActionButtons?: ActionButton[];
42
+ hideQuantitySelector?: boolean;
43
+ onRampProvider?: TransactionOnRampProvider;
41
44
  };
42
45
 
43
46
  // Shop type modal props
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { observer, Show, use$ } from '@legendapp/state/react';
4
4
  import * as dnum from 'dnum';
5
+ import { useState } from 'react';
5
6
  import { parseUnits } from 'viem';
6
7
  import { useAccount } from 'wagmi';
7
8
  import type { FeeOption } from '../../../../types/waas-types';
@@ -12,8 +13,10 @@ import {
12
13
  useCollectible,
13
14
  useCollection,
14
15
  useMarketCurrencies,
16
+ useMarketplaceConfig,
15
17
  } from '../../../hooks';
16
18
  import { useConnectorMetadata } from '../../../hooks/config/useConnectorMetadata';
19
+ import { ErrorLogBox } from '../../components/_internals/ErrorLogBox';
17
20
  import {
18
21
  ActionModal,
19
22
  type ActionModalProps,
@@ -45,10 +48,18 @@ const Modal = observer(() => {
45
48
  chainId,
46
49
  listingPrice,
47
50
  collectibleId,
48
- orderbookKind,
51
+ orderbookKind: orderbookKindProp,
49
52
  callbacks,
50
53
  listingIsBeingProcessed,
51
54
  } = state;
55
+ const { data: marketplaceConfig } = useMarketplaceConfig();
56
+ const [error, setError] = useState<Error | undefined>(undefined);
57
+
58
+ const collectionConfig = marketplaceConfig?.market.collections.find(
59
+ (c) => c.itemsAddress === collectionAddress,
60
+ );
61
+ const orderbookKind =
62
+ orderbookKindProp ?? collectionConfig?.destinationMarketplace;
52
63
  const steps$ = createListingModal$.steps;
53
64
  const { isWaaS } = useConnectorMetadata();
54
65
  const { isVisible: feeOptionsVisible, selectedFeeOption } =
@@ -107,30 +118,40 @@ const Modal = observer(() => {
107
118
  )
108
119
  : 0;
109
120
 
110
- const { isLoading, executeApproval, createListing, tokenApprovalIsLoading } =
111
- useCreateListing({
112
- listingInput: {
113
- contractType: collection?.type as ContractType,
114
- listing: {
115
- tokenId: collectibleId,
116
- quantity: parseUnits(
117
- createListingModal$.quantity.get(),
118
- collectible?.decimals || 0,
119
- ).toString(),
120
- expiry: dateToUnixTime(createListingModal$.expiry.get()),
121
- currencyAddress: listingPrice.currency.contractAddress,
122
- pricePerToken: listingPrice.amountRaw,
123
- },
121
+ const {
122
+ isLoading,
123
+ executeApproval,
124
+ createListing,
125
+ tokenApprovalIsLoading,
126
+ isError: tokenApprovalIsError,
127
+ } = useCreateListing({
128
+ listingInput: {
129
+ contractType: collection?.type as ContractType,
130
+ listing: {
131
+ tokenId: collectibleId,
132
+ quantity: parseUnits(
133
+ createListingModal$.quantity.get(),
134
+ collectible?.decimals || 0,
135
+ ).toString(),
136
+ expiry: dateToUnixTime(createListingModal$.expiry.get()),
137
+ currencyAddress: listingPrice.currency.contractAddress,
138
+ pricePerToken: listingPrice.amountRaw,
124
139
  },
125
- chainId,
126
- collectionAddress,
127
- orderbookKind,
128
- callbacks,
129
- closeMainModal: () => createListingModal$.close(),
130
- steps$: steps$,
131
- });
140
+ },
141
+ chainId,
142
+ collectionAddress,
143
+ orderbookKind,
144
+ callbacks,
145
+ closeMainModal: () => createListingModal$.close(),
146
+ steps$: steps$,
147
+ });
132
148
 
133
- if (collectableIsError || collectionIsError || currenciesIsError) {
149
+ if (
150
+ collectableIsError ||
151
+ collectionIsError ||
152
+ currenciesIsError ||
153
+ tokenApprovalIsError
154
+ ) {
134
155
  return (
135
156
  <ErrorModal
136
157
  isOpen={createListingModal$.isOpen.get()}
@@ -166,18 +187,26 @@ const Modal = observer(() => {
166
187
  });
167
188
  } catch (error) {
168
189
  console.error('Create listing failed:', error);
190
+ setError(error as Error);
169
191
  } finally {
170
192
  createListingModal$.listingIsBeingProcessed.set(false);
171
193
  steps$.transaction.isExecuting.set(false);
172
194
  }
173
195
  };
174
196
 
197
+ const handleApproveToken = async () => {
198
+ await executeApproval().catch((error) => {
199
+ console.error('Approve TOKEN failed:', error);
200
+ setError(error as Error);
201
+ });
202
+ };
203
+
175
204
  const listCtaLabel = getActionLabel('List item for sale');
176
205
 
177
206
  const ctas = [
178
207
  {
179
208
  label: 'Approve TOKEN',
180
- onClick: async () => await executeApproval(),
209
+ onClick: handleApproveToken,
181
210
  hidden: !steps$.approval.exist.get(),
182
211
  pending: steps$?.approval.isExecuting.get(),
183
212
  variant: 'glass' as const,
@@ -237,6 +266,8 @@ const Modal = observer(() => {
237
266
  createListingModal$.listingPrice.currency.set(newCurrency);
238
267
  }}
239
268
  disabled={shouldHideListButton}
269
+ orderbookKind={orderbookKind}
270
+ modalType="listing"
240
271
  />
241
272
 
242
273
  {listingPrice.amountRaw !== '0' && (
@@ -287,6 +318,14 @@ const Modal = observer(() => {
287
318
  titleOnConfirm="Processing listing..."
288
319
  />
289
320
  )}
321
+
322
+ {error && (
323
+ <ErrorLogBox
324
+ title="An error occurred while listing"
325
+ message="Please try again"
326
+ error={error}
327
+ />
328
+ )}
290
329
  </ActionModal>
291
330
  );
292
331
  });
@@ -34,6 +34,8 @@ describe('MakeOfferModal', () => {
34
34
  },
35
35
  isLoading: false,
36
36
  isSuccess: true,
37
+ isError: false,
38
+ error: null,
37
39
  });
38
40
 
39
41
  // Render the modal
@@ -64,6 +66,8 @@ describe('MakeOfferModal', () => {
64
66
  },
65
67
  isLoading: false,
66
68
  isSuccess: true,
69
+ isError: false,
70
+ error: null,
67
71
  });
68
72
 
69
73
  // Render the modal
@@ -52,18 +52,22 @@ export const useCreateListing = ({
52
52
  collectionConfig?.destinationMarketplace ??
53
53
  OrderbookKind.sequence_marketplace_v2;
54
54
 
55
- const { data: tokenApproval, isLoading: tokenApprovalIsLoading } =
56
- useGetTokenApprovalData({
57
- chainId,
58
- tokenId: listingInput.listing.tokenId,
59
- collectionAddress,
60
- currencyAddress: listingInput.listing.currencyAddress,
61
- contractType: listingInput.contractType,
62
- orderbook: orderbookKind,
63
- query: {
64
- enabled: !marketplaceIsLoading,
65
- },
66
- });
55
+ const {
56
+ data: tokenApproval,
57
+ isLoading: tokenApprovalIsLoading,
58
+ isError,
59
+ error,
60
+ } = useGetTokenApprovalData({
61
+ chainId,
62
+ tokenId: listingInput.listing.tokenId,
63
+ collectionAddress,
64
+ currencyAddress: listingInput.listing.currencyAddress,
65
+ contractType: listingInput.contractType,
66
+ orderbook: orderbookKind,
67
+ query: {
68
+ enabled: !marketplaceIsLoading,
69
+ },
70
+ });
67
71
 
68
72
  useEffect(() => {
69
73
  if (tokenApproval?.step && !tokenApprovalIsLoading) {
@@ -88,5 +92,7 @@ export const useCreateListing = ({
88
92
  createListing,
89
93
  tokenApprovalStepExists: tokenApproval?.step !== null,
90
94
  tokenApprovalIsLoading,
95
+ isError,
96
+ error,
91
97
  };
92
98
  };
@@ -43,7 +43,7 @@ export const useGetTokenApprovalData = (
43
43
  const isEnabled =
44
44
  address && (params.query?.enabled ?? true) && !!params.currencyAddress;
45
45
 
46
- const { data, isLoading, isSuccess } = useQuery({
46
+ const { data, isLoading, isSuccess, isError, error } = useQuery({
47
47
  queryKey: ['token-approval-data', params, address],
48
48
  queryFn: isEnabled
49
49
  ? async () => {
@@ -55,6 +55,7 @@ export const useGetTokenApprovalData = (
55
55
  contractType: params.contractType,
56
56
  orderbook: params.orderbook,
57
57
  listing,
58
+ additionalFees: [],
58
59
  } satisfies GenerateListingTransactionArgs;
59
60
  const steps = await marketplaceClient
60
61
  .generateListingTransaction(args)
@@ -80,5 +81,7 @@ export const useGetTokenApprovalData = (
80
81
  data,
81
82
  isLoading,
82
83
  isSuccess,
84
+ isError,
85
+ error,
83
86
  };
84
87
  };
@@ -78,6 +78,7 @@ export const useTransactionSteps = ({
78
78
  ...listingInput.listing,
79
79
  expiry: new Date(Number(listingInput.listing.expiry) * 1000),
80
80
  },
81
+ additionalFees: [],
81
82
  });
82
83
 
83
84
  return steps;
@@ -7,14 +7,17 @@ import { parseUnits } from 'viem';
7
7
  import type { FeeOption } from '../../../../types/waas-types';
8
8
  import { dateToUnixTime } from '../../../../utils/date';
9
9
  import { getNetwork } from '../../../../utils/network';
10
- import { ContractType } from '../../../_internal';
10
+ import { ContractType, OrderbookKind } from '../../../_internal';
11
11
  import {
12
12
  useCollectible,
13
13
  useCollection,
14
14
  useLowestListing,
15
15
  useMarketCurrencies,
16
+ useMarketplaceConfig,
16
17
  } from '../../../hooks';
17
18
  import { useConnectorMetadata } from '../../../hooks/config/useConnectorMetadata';
19
+ import { useRoyalty } from '../../../hooks/utils/useRoyalty';
20
+ import { ErrorLogBox } from '../../components/_internals/ErrorLogBox';
18
21
  import { ActionModal } from '../_internal/components/actionModal/ActionModal';
19
22
  import { ErrorModal } from '../_internal/components/actionModal/ErrorModal';
20
23
  import ExpirationDateSelect from '../_internal/components/expirationDateSelect';
@@ -45,11 +48,21 @@ const Modal = observer(() => {
45
48
  offerPriceChanged,
46
49
  invalidQuantity,
47
50
  collectibleId,
48
- orderbookKind,
51
+ orderbookKind: orderbookKindProp,
49
52
  callbacks,
50
53
  } = state;
54
+ const { data: marketplaceConfig } = useMarketplaceConfig();
55
+ const [error, setError] = useState<Error | undefined>(undefined);
56
+
57
+ const collectionConfig = marketplaceConfig?.market.collections.find(
58
+ (c) => c.itemsAddress === collectionAddress,
59
+ );
60
+ const orderbookKind =
61
+ orderbookKindProp ?? collectionConfig?.destinationMarketplace;
51
62
  const steps$ = makeOfferModal$.steps;
52
63
  const [insufficientBalance, setInsufficientBalance] = useState(false);
64
+ const [openseaLowestPriceCriteriaMet, setOpenseaLowestPriceCriteriaMet] =
65
+ useState(true);
53
66
  const {
54
67
  data: collectible,
55
68
  isLoading: collectableIsLoading,
@@ -88,12 +101,28 @@ const Modal = observer(() => {
88
101
  isError: currenciesIsError,
89
102
  } = useMarketCurrencies({
90
103
  chainId,
104
+ collectionAddress,
91
105
  includeNativeCurrency: false,
92
106
  });
107
+
108
+ const { data: royalty, isLoading: royaltyLoading } = useRoyalty({
109
+ chainId,
110
+ collectionAddress,
111
+ collectibleId,
112
+ });
113
+
93
114
  const modalLoading =
94
- collectableIsLoading || collectionIsLoading || currenciesLoading;
115
+ collectableIsLoading ||
116
+ collectionIsLoading ||
117
+ currenciesLoading ||
118
+ royaltyLoading;
95
119
 
96
- const { isLoading, executeApproval, makeOffer } = useMakeOffer({
120
+ const {
121
+ isLoading,
122
+ executeApproval,
123
+ makeOffer,
124
+ isError: approvalIsError,
125
+ } = useMakeOffer({
97
126
  offerInput: {
98
127
  contractType: collection?.type as ContractType,
99
128
  offer: {
@@ -109,8 +138,8 @@ const Modal = observer(() => {
109
138
  },
110
139
  chainId,
111
140
  collectionAddress,
112
- orderbookKind,
113
141
  callbacks,
142
+ orderbookKind,
114
143
  closeMainModal: () => makeOfferModal$.close(),
115
144
  steps$: steps$,
116
145
  });
@@ -126,7 +155,12 @@ const Modal = observer(() => {
126
155
  },
127
156
  });
128
157
 
129
- if (collectableIsError || collectionIsError || currenciesIsError) {
158
+ if (
159
+ collectableIsError ||
160
+ collectionIsError ||
161
+ currenciesIsError ||
162
+ approvalIsError
163
+ ) {
130
164
  return (
131
165
  <ErrorModal
132
166
  isOpen={makeOfferModal$.isOpen.get()}
@@ -137,7 +171,12 @@ const Modal = observer(() => {
137
171
  );
138
172
  }
139
173
 
140
- if (!modalLoading && (!currencies || currencies.length === 0)) {
174
+ const shouldShowNoERC20Error =
175
+ !currenciesLoading &&
176
+ !currenciesIsError &&
177
+ (!currencies || currencies.length === 0);
178
+
179
+ if (shouldShowNoERC20Error) {
141
180
  return (
142
181
  <ErrorModal
143
182
  isOpen={makeOfferModal$.isOpen.get()}
@@ -164,18 +203,26 @@ const Modal = observer(() => {
164
203
  });
165
204
  } catch (error) {
166
205
  console.error('Make offer failed:', error);
206
+ setError(error as Error);
167
207
  } finally {
168
208
  makeOfferModal$.offerIsBeingProcessed.set(false);
169
209
  steps$.transaction.isExecuting.set(false);
170
210
  }
171
211
  };
172
212
 
213
+ const handleApproveToken = async () => {
214
+ await executeApproval().catch((error) => {
215
+ console.error('Approve TOKEN failed:', error);
216
+ setError(error as Error);
217
+ });
218
+ };
219
+
173
220
  const offerCtaLabel = getActionLabel('Make offer');
174
221
 
175
222
  const ctas = [
176
223
  {
177
224
  label: 'Approve TOKEN',
178
- onClick: async () => await executeApproval(),
225
+ onClick: handleApproveToken,
179
226
  hidden: !steps$.approval.exist.get(),
180
227
  pending: steps$.approval.isExecuting.get(),
181
228
  variant: 'glass' as const,
@@ -184,7 +231,9 @@ const Modal = observer(() => {
184
231
  isLoading ||
185
232
  insufficientBalance ||
186
233
  offerPrice.amountRaw === '0' ||
187
- !offerPriceChanged,
234
+ !offerPriceChanged ||
235
+ (orderbookKind === OrderbookKind.opensea &&
236
+ !openseaLowestPriceCriteriaMet),
188
237
  },
189
238
  {
190
239
  label: offerCtaLabel,
@@ -198,7 +247,9 @@ const Modal = observer(() => {
198
247
  offerPrice.amountRaw === '0' ||
199
248
  insufficientBalance ||
200
249
  isLoading ||
201
- invalidQuantity,
250
+ invalidQuantity ||
251
+ (orderbookKind === OrderbookKind.opensea &&
252
+ !openseaLowestPriceCriteriaMet),
202
253
  },
203
254
  ];
204
255
 
@@ -240,7 +291,15 @@ const Modal = observer(() => {
240
291
  enabled: true,
241
292
  callback: (state) => setInsufficientBalance(state),
242
293
  }}
294
+ setOpenseaLowestPriceCriteriaMet={(state) =>
295
+ setOpenseaLowestPriceCriteriaMet(state)
296
+ }
297
+ orderbookKind={orderbookKind}
298
+ modalType="offer"
243
299
  disabled={shouldHideOfferButton}
300
+ feeData={{
301
+ royaltyPercentage: royalty ? Number(royalty.percentage) : 0,
302
+ }}
244
303
  />
245
304
 
246
305
  {collection?.type === ContractType.ERC1155 && (
@@ -298,6 +357,14 @@ const Modal = observer(() => {
298
357
  titleOnConfirm="Processing offer..."
299
358
  />
300
359
  )}
360
+
361
+ {error && (
362
+ <ErrorLogBox
363
+ title="An error occurred while making an offer"
364
+ message="Please try again"
365
+ error={error}
366
+ />
367
+ )}
301
368
  </ActionModal>
302
369
  );
303
370
  });
@@ -31,6 +31,8 @@ const mockCurrency = {
31
31
  nativeCurrency: false,
32
32
  createdAt: new Date().toISOString(),
33
33
  updatedAt: new Date().toISOString(),
34
+ openseaListing: true,
35
+ openseaOffer: true,
34
36
  };
35
37
 
36
38
  describe('MakeOfferModal', () => {
@@ -45,6 +47,8 @@ describe('MakeOfferModal', () => {
45
47
  data: { step: null }, // No approval needed by default
46
48
  isLoading: false,
47
49
  isSuccess: true,
50
+ isError: false,
51
+ error: null,
48
52
  });
49
53
  });
50
54
 
@@ -80,6 +84,8 @@ describe('MakeOfferModal', () => {
80
84
  }, // Approval needed
81
85
  isLoading: false,
82
86
  isSuccess: true,
87
+ isError: false,
88
+ error: null,
83
89
  });
84
90
 
85
91
  // Render the modal
@@ -107,6 +113,8 @@ describe('MakeOfferModal', () => {
107
113
  data: { step: null },
108
114
  isLoading: false,
109
115
  isSuccess: true,
116
+ isError: false,
117
+ error: null,
110
118
  });
111
119
  });
112
120
 
@@ -123,6 +131,8 @@ describe('MakeOfferModal', () => {
123
131
  }, // Approval needed
124
132
  isLoading: false,
125
133
  isSuccess: true,
134
+ isError: false,
135
+ error: null,
126
136
  });
127
137
 
128
138
  makeOfferModal$.open(defaultArgs);
@@ -150,6 +160,8 @@ describe('MakeOfferModal', () => {
150
160
  data: { step: null }, // No approval needed
151
161
  isLoading: false,
152
162
  isSuccess: true,
163
+ isError: false,
164
+ error: null,
153
165
  });
154
166
 
155
167
  makeOfferModal$.open(defaultArgs);