@0xsequence/marketplace-sdk 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (477) hide show
  1. package/.changeset/honest-peas-arrive.md +5 -0
  2. package/.changeset/real-tips-stick.md +8 -0
  3. package/.changeset/tall-pandas-wear.md +8 -0
  4. package/.storybook/main.ts +1 -1
  5. package/.storybook/preview.tsx +0 -1
  6. package/CHANGELOG.md +84 -13
  7. package/dist/BellIcon-ByhygxBO.js +45 -0
  8. package/dist/BellIcon-ByhygxBO.js.map +1 -0
  9. package/dist/{BellIcon-Cb9YEUzJ.js → CartIcon-Bt3rQYGk.js} +10 -49
  10. package/dist/CartIcon-Bt3rQYGk.js.map +1 -0
  11. package/dist/CollectibleCard-CVpdgXA8.d.ts +8 -0
  12. package/dist/{_internal-DslqcNC1.js → _internal-DkS2VUn5.js} +1 -1
  13. package/dist/{_internal-DslqcNC1.js.map → _internal-DkS2VUn5.js.map} +1 -1
  14. package/dist/abi-fa-o9gH3.js +134 -0
  15. package/dist/abi-fa-o9gH3.js.map +1 -0
  16. package/dist/{alien_swap-DJ98gZQp.js → alien_swap-DoY6XfMA.js} +1 -1
  17. package/dist/{alien_swap-DJ98gZQp.js.map → alien_swap-DoY6XfMA.js.map} +1 -1
  18. package/dist/{api-BmEQfSQa.js → api-BoO0V5aJ.js} +11 -4
  19. package/dist/api-BoO0V5aJ.js.map +1 -0
  20. package/dist/{aqua-xyz-n1PcCCZ0.js → aqua-xyz-BBDxnG14.js} +1 -1
  21. package/dist/{aqua-xyz-n1PcCCZ0.js.map → aqua-xyz-BBDxnG14.js.map} +1 -1
  22. package/dist/{aura-Bevk_YkS.js → aura-DGx2zwvF.js} +1 -1
  23. package/dist/{aura-Bevk_YkS.js.map → aura-DGx2zwvF.js.map} +1 -1
  24. package/dist/{blur-B5sHErx5.js → blur-D8GKrRrq.js} +1 -1
  25. package/dist/{blur-B5sHErx5.js.map → blur-D8GKrRrq.js.map} +1 -1
  26. package/dist/builder-api-BFuZNOaN.js.map +1 -1
  27. package/dist/builder.gen-B9wR2nvF.js.map +1 -1
  28. package/dist/{coinbase-D30W-lxA.js → coinbase-DOry4PXY.js} +1 -1
  29. package/dist/{coinbase-D30W-lxA.js.map → coinbase-DOry4PXY.js.map} +1 -1
  30. package/dist/collectibles-C_H8jMGH.js +358 -0
  31. package/dist/collectibles-C_H8jMGH.js.map +1 -0
  32. package/dist/collections-CKummc-R.js +249 -0
  33. package/dist/collections-CKummc-R.js.map +1 -0
  34. package/dist/components-CosnX7F9.js +119 -0
  35. package/dist/components-CosnX7F9.js.map +1 -0
  36. package/dist/{contracts-DPHFT2TA.js → contracts-BP_0vX48.js} +4 -5
  37. package/dist/{contracts-DPHFT2TA.js.map → contracts-BP_0vX48.js.map} +1 -1
  38. package/dist/{create-config-6uynwTeb.js → create-config-CIfejoCk.js} +6 -11
  39. package/dist/create-config-CIfejoCk.js.map +1 -0
  40. package/dist/{create-config-lLSrnkbb.d.ts → create-config-ZOB7i4ZJ.d.ts} +135 -37
  41. package/dist/{element-C2NJexro.js → element-ciybd_VF.js} +1 -1
  42. package/dist/{element-C2NJexro.js.map → element-ciybd_VF.js.map} +1 -1
  43. package/dist/filters-V-V8Dn8f.d.ts +60 -0
  44. package/dist/{foundation-QgY1lvUj.js → foundation-Bq4lRz4x.js} +1 -1
  45. package/dist/{foundation-QgY1lvUj.js.map → foundation-Bq4lRz4x.js.map} +1 -1
  46. package/dist/index-BOiHR01C.d.ts +106 -0
  47. package/dist/index-BZIJTQT0.d.ts +121 -0
  48. package/dist/index-BeRV-7AX.d.ts +55 -0
  49. package/dist/{index-DonXiSg2.d.ts → index-Bsx6XsC2.d.ts} +117 -70
  50. package/dist/{index-BGJXqdg6.d.ts → index-BtWMBHeP.d.ts} +13 -9
  51. package/dist/{index-CtF7EE2z.d.ts → index-Bxzjy0d1.d.ts} +1 -1
  52. package/dist/{index-ChSKFOMx.d.ts → index-C-745li7.d.ts} +1 -1
  53. package/dist/{index-CY5UEX4h.d.ts → index-C4MUKshG.d.ts} +2 -2
  54. package/dist/{index-C7xKVIr4.d.ts → index-CPzvNmq9.d.ts} +37 -37
  55. package/dist/{index-ByW08-Z7.d.ts → index-CS65jqOq.d.ts} +2 -2
  56. package/dist/index-CZUtOTjh.d.ts +1 -0
  57. package/dist/index-CnEbXm_t.d.ts +130 -0
  58. package/dist/{index-ThUIs-Sy.d.ts → index-CxA34wP1.d.ts} +37 -23
  59. package/dist/{index-CIkpYltz.d.ts → index-CxpFwGvR.d.ts} +3 -3
  60. package/dist/{index-QxxS6f9r.d.ts → index-D9LPlmbC.d.ts} +1 -1
  61. package/dist/{index-CQnGIGb5.d.ts → index-DFEnA6Wa.d.ts} +44 -33
  62. package/dist/{index-PSPpUxCE.d.ts → index-DNNUeZEq.d.ts} +4 -4
  63. package/dist/{index-Dpyp7fQz.d.ts → index-DUXfvhxs.d.ts} +12 -12
  64. package/dist/index-DW3njUfb.d.ts +1 -0
  65. package/dist/index-DWt6yrIG.d.ts +64 -0
  66. package/dist/index-DewGsFz5.d.ts +1 -0
  67. package/dist/index-DmudgrsN.d.ts +495 -0
  68. package/dist/{index-DNU9xoGK.d.ts → index-DqXd1EeB.d.ts} +5 -5
  69. package/dist/{index-DX0Vm8HY.d.ts → index-DwKr18CI.d.ts} +1 -1
  70. package/dist/{index-D71J5Ghd.d.ts → index-NlPMNcqh.d.ts} +99 -99
  71. package/dist/index-Stm5u0I0.d.ts +53 -0
  72. package/dist/index-U-zp70of.d.ts +74 -0
  73. package/dist/index.d.ts +8 -8
  74. package/dist/index.js +13 -12
  75. package/dist/inventory-Dd7TazvZ.js +72 -0
  76. package/dist/inventory-Dd7TazvZ.js.map +1 -0
  77. package/dist/listBalances-BxpxBCvn.js +57 -0
  78. package/dist/listBalances-BxpxBCvn.js.map +1 -0
  79. package/dist/listCollectiblesPaginated-Cy2_qEZA.d.ts +327 -0
  80. package/dist/{listCollections-Bbzbz7qW.d.ts → listCollections-BB9FxKj2.d.ts} +264 -137
  81. package/dist/{looks-rare-CMVPny4v.js → looks-rare-6H--x3AM.js} +1 -1
  82. package/dist/{looks-rare-CMVPny4v.js.map → looks-rare-6H--x3AM.js.map} +1 -1
  83. package/dist/lowestListing-Cbsi6M1K.d.ts +465 -0
  84. package/dist/{magic-eden-IrWp2ZXk.js → magic-eden-BoxEQ1Li.js} +1 -1
  85. package/dist/{magic-eden-IrWp2ZXk.js.map → magic-eden-BoxEQ1Li.js.map} +1 -1
  86. package/dist/{manifold-DeOE-p2G.js → manifold-DycKsljb.js} +1 -1
  87. package/dist/{manifold-DeOE-p2G.js.map → manifold-DycKsljb.js.map} +1 -1
  88. package/dist/market-C3HV-awQ.js +209 -0
  89. package/dist/market-C3HV-awQ.js.map +1 -0
  90. package/dist/{marketCurrencies-CmOMCCOr.d.ts → marketCurrencies-Bpw1bIO0.d.ts} +46 -15
  91. package/dist/marketCurrencies-sKrTX0og.js +53 -0
  92. package/dist/marketCurrencies-sKrTX0og.js.map +1 -0
  93. package/dist/{marketplace-B5Z8G03R.js → marketplace-NQB-sEQL.js} +1 -1
  94. package/dist/{marketplace-B5Z8G03R.js.map → marketplace-NQB-sEQL.js.map} +1 -1
  95. package/dist/{marketplace-logos-D8t86gsW.js → marketplace-logos-D4dS1Foy.js} +21 -21
  96. package/dist/marketplace-logos-D4dS1Foy.js.map +1 -0
  97. package/dist/{marketplace.gen-JzNYpM0U.js → marketplace.gen-ksUafDqS.js} +56 -5
  98. package/dist/marketplace.gen-ksUafDqS.js.map +1 -0
  99. package/dist/{marketplaceConfig-sNh-MA5M.js → marketplaceConfig-UHQMM9fq.js} +9 -10
  100. package/dist/marketplaceConfig-UHQMM9fq.js.map +1 -0
  101. package/dist/{mintify-DG3GrljJ.js → mintify-Dyqyo8jQ.js} +1 -1
  102. package/dist/{mintify-DG3GrljJ.js.map → mintify-Dyqyo8jQ.js.map} +1 -1
  103. package/dist/{network-DnBEe1Ur.js → network-DtmiMhcg.js} +2 -2
  104. package/dist/network-DtmiMhcg.js.map +1 -0
  105. package/dist/networkconfigToWagmiChain-DbUf6HiO.js +15 -0
  106. package/dist/networkconfigToWagmiChain-DbUf6HiO.js.map +1 -0
  107. package/dist/{nftx-B3LH-ZYM.js → nftx-2LbFjj9Q.js} +1 -1
  108. package/dist/{nftx-B3LH-ZYM.js.map → nftx-2LbFjj9Q.js.map} +1 -1
  109. package/dist/{okx-CRFLrT3Z.js → okx-CBEWJNsR.js} +1 -1
  110. package/dist/{okx-CRFLrT3Z.js.map → okx-CBEWJNsR.js.map} +1 -1
  111. package/dist/{open-sea-cOpfl366.js → open-sea-Dxntz_PA.js} +1 -1
  112. package/dist/{open-sea-cOpfl366.js.map → open-sea-Dxntz_PA.js.map} +1 -1
  113. package/dist/orders-DnFfZAXV.js +462 -0
  114. package/dist/orders-DnFfZAXV.js.map +1 -0
  115. package/dist/{primary-sale-CLjXRrDj.js → primary-sale-1u4QlPdA.js} +1 -1
  116. package/dist/{primary-sale-CLjXRrDj.js.map → primary-sale-1u4QlPdA.js.map} +1 -1
  117. package/dist/primary-sales-Dmsi6bqj.js +114 -0
  118. package/dist/primary-sales-Dmsi6bqj.js.map +1 -0
  119. package/dist/{query-BTe7Wkrs.d.ts → query-BWbCsXLY.d.ts} +1 -1
  120. package/dist/{rarible-guwUx4cn.js → rarible-CS0SupHr.js} +1 -1
  121. package/dist/{rarible-guwUx4cn.js.map → rarible-CS0SupHr.js.map} +1 -1
  122. package/dist/react/_internal/api/index.d.ts +2 -2
  123. package/dist/react/_internal/api/index.js +5 -5
  124. package/dist/react/_internal/databeat/index.d.ts +1 -1
  125. package/dist/react/_internal/databeat/index.js +35 -21
  126. package/dist/react/_internal/index.d.ts +2 -2
  127. package/dist/react/_internal/index.js +9 -8
  128. package/dist/react/_internal/wagmi/index.d.ts +1 -1
  129. package/dist/react/_internal/wagmi/index.js +4 -3
  130. package/dist/react/hooks/config/index.d.ts +8 -8
  131. package/dist/react/hooks/config/index.js +35 -21
  132. package/dist/react/hooks/contracts/index.d.ts +6 -6
  133. package/dist/react/hooks/contracts/index.js +13 -12
  134. package/dist/react/hooks/data/collectibles/index.d.ts +10 -4
  135. package/dist/react/hooks/data/collectibles/index.js +35 -21
  136. package/dist/react/hooks/data/collections/index.d.ts +10 -10
  137. package/dist/react/hooks/data/collections/index.js +35 -21
  138. package/dist/react/hooks/data/index.d.ts +37 -29
  139. package/dist/react/hooks/data/index.js +36 -22
  140. package/dist/react/hooks/data/inventory/index.d.ts +36 -28
  141. package/dist/react/hooks/data/inventory/index.js +35 -21
  142. package/dist/react/hooks/data/market/index.d.ts +11 -11
  143. package/dist/react/hooks/data/market/index.js +35 -21
  144. package/dist/react/hooks/data/orders/index.d.ts +11 -11
  145. package/dist/react/hooks/data/orders/index.js +36 -22
  146. package/dist/react/hooks/data/primary-sales/index.d.ts +36 -28
  147. package/dist/react/hooks/data/primary-sales/index.js +35 -21
  148. package/dist/react/hooks/data/tokens/index.d.ts +4 -4
  149. package/dist/react/hooks/data/tokens/index.js +35 -21
  150. package/dist/react/hooks/index.d.ts +37 -29
  151. package/dist/react/hooks/index.js +36 -22
  152. package/dist/react/hooks/transactions/index.d.ts +2 -2
  153. package/dist/react/hooks/transactions/index.js +35 -21
  154. package/dist/react/hooks/ui/index.d.ts +4 -4
  155. package/dist/react/hooks/ui/index.js +35 -21
  156. package/dist/react/hooks/utils/index.d.ts +37 -29
  157. package/dist/react/hooks/utils/index.js +36 -22
  158. package/dist/react/index.d.ts +37 -29
  159. package/dist/react/index.js +36 -22
  160. package/dist/react/queries/collectibles/index.d.ts +11 -0
  161. package/dist/react/queries/collectibles/index.js +23 -0
  162. package/dist/react/queries/collections/index.d.ts +11 -0
  163. package/dist/react/queries/collections/index.js +20 -0
  164. package/dist/react/queries/index.d.ts +24 -16
  165. package/dist/react/queries/index.js +29 -17
  166. package/dist/react/queries/inventory/index.d.ts +3 -0
  167. package/dist/react/queries/inventory/index.js +22 -0
  168. package/dist/react/queries/market/index.d.ts +6 -0
  169. package/dist/react/queries/market/index.js +22 -0
  170. package/dist/react/queries/orders/index.d.ts +11 -0
  171. package/dist/react/queries/orders/index.js +13 -0
  172. package/dist/react/queries/primary-sales/index.d.ts +4 -0
  173. package/dist/react/queries/primary-sales/index.js +13 -0
  174. package/dist/react/queries/tokens/index.d.ts +5 -0
  175. package/dist/react/queries/tokens/index.js +14 -0
  176. package/dist/react/queries/utils/index.d.ts +4 -0
  177. package/dist/react/queries/utils/index.js +22 -0
  178. package/dist/react/ssr/index.d.ts +7 -7
  179. package/dist/react/ssr/index.js +9 -8
  180. package/dist/react/ssr/index.js.map +1 -1
  181. package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.d.ts +3 -0
  182. package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.js +22 -0
  183. package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.d.ts +54 -0
  184. package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.js +40 -0
  185. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +5 -5
  186. package/dist/react/ui/components/marketplace-collectible-card/index.js +35 -21
  187. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -2
  188. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +9 -8
  189. package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
  190. package/dist/react/ui/components/marketplace-logos/index.js +1 -1
  191. package/dist/react/ui/icons/index.js +13 -11
  192. package/dist/react/ui/index.d.ts +5 -5
  193. package/dist/react/ui/index.js +35 -21
  194. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +2 -2
  195. package/dist/react/ui/modals/_internal/components/actionModal/index.js +35 -21
  196. package/dist/react/utils/index.d.ts +3 -3
  197. package/dist/react/utils/index.js +5 -5
  198. package/dist/{react-Ceq8mamy.js → react-DE852KeT.js} +2111 -1002
  199. package/dist/react-DE852KeT.js.map +1 -0
  200. package/dist/{sequence-Dt2Xo7Fa.js → sequence-paCCener.js} +1 -1
  201. package/dist/{sequence-Dt2Xo7Fa.js.map → sequence-paCCener.js.map} +1 -1
  202. package/dist/styles/index.css +200 -24
  203. package/dist/{sudo-swap-CGoARONs.js → sudo-swap-9rH2EgfT.js} +1 -1
  204. package/dist/{sudo-swap-CGoARONs.js.map → sudo-swap-9rH2EgfT.js.map} +1 -1
  205. package/dist/{super-rare-NeQtZjcn.js → super-rare-DHIuWtRw.js} +1 -1
  206. package/dist/{super-rare-NeQtZjcn.js.map → super-rare-DHIuWtRw.js.map} +1 -1
  207. package/dist/{token-D9gZVqbX.js → token-Cv7l2ZaL.js} +1 -1
  208. package/dist/{token-D9gZVqbX.js.map → token-Cv7l2ZaL.js.map} +1 -1
  209. package/dist/tokenBalances-ibDerNmM.js +63 -0
  210. package/dist/tokenBalances-ibDerNmM.js.map +1 -0
  211. package/dist/tokenSupplies-Bfe8RHzI.d.ts +272 -0
  212. package/dist/tokens-cGxMadd8.js +194 -0
  213. package/dist/tokens-cGxMadd8.js.map +1 -0
  214. package/dist/{transaction-CC2KxNF6.js → transaction-DZUW5RHu.js} +2 -8
  215. package/dist/transaction-DZUW5RHu.js.map +1 -0
  216. package/dist/types/index.d.ts +2 -2
  217. package/dist/types/index.js +2 -2
  218. package/dist/{types-G2PWxiJR.js → types-B_-cnkcP.js} +1 -1
  219. package/dist/types-B_-cnkcP.js.map +1 -0
  220. package/dist/{types-BlCa0TVE.d.ts → types-D2TJ1dwv.d.ts} +19 -10
  221. package/dist/utils/abi/index.d.ts +5 -5
  222. package/dist/utils/abi/index.js +5 -5
  223. package/dist/utils/abi/marketplace/index.d.ts +1 -1
  224. package/dist/utils/abi/marketplace/index.js +1 -1
  225. package/dist/utils/abi/primary-sale/index.d.ts +1 -1
  226. package/dist/utils/abi/primary-sale/index.js +1 -1
  227. package/dist/utils/abi/token/index.d.ts +1 -1
  228. package/dist/utils/abi/token/index.js +1 -1
  229. package/dist/utils/index.d.ts +7 -7
  230. package/dist/utils/index.js +12 -11
  231. package/dist/utils-BCgNhBFR.js +112 -0
  232. package/dist/utils-BCgNhBFR.js.map +1 -0
  233. package/dist/{utils-CKJd-CRf.js → utils-BfpDVibN.js} +7 -24
  234. package/dist/utils-BfpDVibN.js.map +1 -0
  235. package/dist/{utils-wquIhK6T.js → utils-BqxcalL2.js} +2 -2
  236. package/dist/utils-BqxcalL2.js.map +1 -0
  237. package/dist/waitForTransactionReceipt-DieAnV52.js +25 -0
  238. package/dist/waitForTransactionReceipt-DieAnV52.js.map +1 -0
  239. package/dist/{x2y2-CQdg24VP.js → x2y2-45WDooeh.js} +1 -1
  240. package/dist/{x2y2-CQdg24VP.js.map → x2y2-45WDooeh.js.map} +1 -1
  241. package/dist/{zora-DdEydy4L.js → zora-CbeBoLvQ.js} +1 -1
  242. package/dist/{zora-DdEydy4L.js.map → zora-CbeBoLvQ.js.map} +1 -1
  243. package/package.json +43 -38
  244. package/src/react/_internal/api/__mocks__/marketplace.msw.ts +2 -0
  245. package/src/react/_internal/api/marketplace.gen.ts +1730 -2383
  246. package/src/react/_internal/api/query-keys.ts +16 -0
  247. package/src/react/_internal/api/services.ts +1 -1
  248. package/src/react/_internal/databeat/types.ts +1 -0
  249. package/src/react/_internal/types.ts +14 -0
  250. package/src/react/_internal/utils.ts +3 -0
  251. package/src/react/_internal/wagmi/__tests__/create-config.test.ts +19 -8
  252. package/src/react/_internal/wagmi/create-config.ts +6 -17
  253. package/src/react/hooks/config/__snapshots__/useMarketplaceConfig.test.tsx.snap +4 -4
  254. package/src/react/hooks/config/useMarketplaceConfig.tsx +1 -1
  255. package/src/react/hooks/data/collectibles/useBalanceOfCollectible.laos.test.tsx +2 -2
  256. package/src/react/hooks/data/collectibles/useBalanceOfCollectible.tsx +1 -1
  257. package/src/react/hooks/data/collectibles/useCollectible.tsx +1 -1
  258. package/src/react/hooks/data/collectibles/useCountOfCollectables.tsx +1 -1
  259. package/src/react/hooks/data/collectibles/useListCollectibleActivities.tsx +1 -1
  260. package/src/react/hooks/data/collectibles/useListCollectibles.tsx +1 -1
  261. package/src/react/hooks/data/collectibles/useListCollectiblesPaginated.tsx +1 -1
  262. package/src/react/hooks/data/collectibles/useTokenBalances.test.tsx +151 -0
  263. package/src/react/hooks/data/collectibles/useTokenBalances.tsx +47 -0
  264. package/src/react/hooks/data/collections/__snapshots__/useListCollections.test.tsx.snap +6 -6
  265. package/src/react/hooks/data/collections/useCollection.tsx +1 -1
  266. package/src/react/hooks/data/collections/useCollectionBalanceDetails.tsx +1 -1
  267. package/src/react/hooks/data/collections/useCollectionDetails.ts +1 -1
  268. package/src/react/hooks/data/collections/useListCollectionActivities.tsx +1 -1
  269. package/src/react/hooks/data/collections/useListCollections.tsx +1 -1
  270. package/src/react/hooks/data/inventory/useInventory.test.tsx +3 -98
  271. package/src/react/hooks/data/inventory/useInventory.tsx +3 -3
  272. package/src/react/hooks/data/market/useCurrency.tsx +1 -1
  273. package/src/react/hooks/data/market/useListMarketCardData.tsx +8 -1
  274. package/src/react/hooks/data/market/useMarketCurrencies.tsx +1 -1
  275. package/src/react/hooks/data/orders/index.ts +4 -0
  276. package/src/react/hooks/data/orders/useCountItemsOrdersForCollection.tsx +90 -0
  277. package/src/react/hooks/data/orders/useCountListingsForCollectible.tsx +1 -1
  278. package/src/react/hooks/data/orders/useCountOffersForCollectible.tsx +1 -1
  279. package/src/react/hooks/data/orders/useFloorOrder.tsx +1 -1
  280. package/src/react/hooks/data/orders/useGetCountOfFilteredOrders.tsx +39 -0
  281. package/src/react/hooks/data/orders/useHighestOffer.tsx +1 -1
  282. package/src/react/hooks/data/orders/useListItemsOrdersForCollection.tsx +93 -0
  283. package/src/react/hooks/data/orders/useListItemsOrdersForCollectionPaginated.tsx +108 -0
  284. package/src/react/hooks/data/orders/useListListingsForCollectible.tsx +1 -1
  285. package/src/react/hooks/data/orders/useListOffersForCollectible.tsx +70 -45
  286. package/src/react/hooks/data/orders/useLowestListing.tsx +1 -1
  287. package/src/react/hooks/data/primary-sales/useGetCountOfPrimarySaleItems.tsx +2 -2
  288. package/src/react/hooks/data/primary-sales/useList1155ShopCardData.tsx +21 -37
  289. package/src/react/hooks/data/primary-sales/useList721ShopCardData.tsx +14 -3
  290. package/src/react/hooks/data/primary-sales/useListPrimarySaleItems.tsx +1 -1
  291. package/src/react/hooks/data/tokens/useGetTokenRanges.tsx +2 -2
  292. package/src/react/hooks/data/tokens/useListBalances.tsx +2 -2
  293. package/src/react/hooks/data/tokens/useListTokenMetadata.tsx +1 -1
  294. package/src/react/hooks/data/tokens/useSearchTokenMetadata.tsx +5 -2
  295. package/src/react/hooks/data/tokens/useTokenSupplies.ts +1 -1
  296. package/src/react/hooks/transactions/useCancelOrder.test.tsx +7 -4
  297. package/src/react/hooks/transactions/useCancelOrder.tsx +2 -1
  298. package/src/react/hooks/transactions/useCancelTransactionSteps.tsx +2 -2
  299. package/src/react/hooks/transactions/useGenerateCancelTransaction.test.tsx +1 -0
  300. package/src/react/hooks/transactions/useGenerateListingTransaction.test.tsx +13 -0
  301. package/src/react/hooks/transactions/useGenerateOfferTransaction.test.tsx +1 -0
  302. package/src/react/hooks/transactions/useGenerateSellTransaction.test.tsx +6 -0
  303. package/src/react/hooks/transactions/useProcessStep.test.tsx +2 -2
  304. package/src/react/hooks/ui/useFilterState.tsx +72 -2
  305. package/src/react/hooks/ui/useFilters.tsx +1 -1
  306. package/src/react/hooks/utils/__tests__/useEnsureCorrectChain.test.tsx +75 -0
  307. package/src/react/hooks/utils/index.ts +0 -1
  308. package/src/react/hooks/utils/useCheckoutOptions.tsx +2 -2
  309. package/src/react/hooks/utils/useCheckoutOptionsSalesContract.tsx +1 -1
  310. package/src/react/hooks/utils/useComparePrices.tsx +1 -1
  311. package/src/react/hooks/utils/useConvertPriceToUSD.tsx +1 -1
  312. package/src/react/hooks/utils/useEnsureCorrectChain.ts +31 -34
  313. package/src/react/providers/analytics-provider.tsx +45 -0
  314. package/src/react/providers/index.tsx +33 -46
  315. package/src/react/providers/modal-provider.tsx +15 -4
  316. package/src/react/queries/{__tests__ → collectibles/__tests__}/balanceOfCollectible.laos.test.ts +4 -4
  317. package/src/react/queries/collectibles/__tests__/tokenBalances.laos.test.ts +123 -0
  318. package/src/react/queries/{balanceOfCollectible.ts → collectibles/balanceOfCollectible.ts} +26 -4
  319. package/src/react/queries/{collectible.ts → collectibles/collectible.ts} +20 -5
  320. package/src/react/queries/{countOfCollectables.ts → collectibles/countOfCollectables.ts} +32 -6
  321. package/src/react/queries/collectibles/index.ts +7 -0
  322. package/src/react/queries/{listCollectibleActivities.ts → collectibles/listCollectibleActivities.ts} +29 -5
  323. package/src/react/queries/{listCollectibles.ts → collectibles/listCollectibles.ts} +47 -54
  324. package/src/react/queries/{listCollectiblesPaginated.ts → collectibles/listCollectiblesPaginated.ts} +22 -5
  325. package/src/react/queries/collectibles/tokenBalances.ts +103 -0
  326. package/src/react/queries/{collection.ts → collections/collection.ts} +19 -5
  327. package/src/react/queries/{collectionBalanceDetails.ts → collections/collectionBalanceDetails.ts} +19 -4
  328. package/src/react/queries/{collectionDetails.ts → collections/collectionDetails.ts} +21 -6
  329. package/src/react/queries/collections/index.ts +5 -0
  330. package/src/react/queries/{listCollectionActivities.ts → collections/listCollectionActivities.ts} +28 -6
  331. package/src/react/queries/{listCollections.ts → collections/listCollections.ts} +26 -18
  332. package/src/react/queries/index.ts +7 -33
  333. package/src/react/queries/{__tests__ → inventory/__tests__}/inventory.laos.test.ts +10 -7
  334. package/src/react/queries/inventory/index.ts +1 -0
  335. package/src/react/queries/inventory/inventory.ts +169 -0
  336. package/src/react/queries/{checkoutOptions.ts → market/checkoutOptions.ts} +28 -6
  337. package/src/react/queries/{checkoutOptionsSalesContract.ts → market/checkoutOptionsSalesContract.ts} +24 -5
  338. package/src/react/queries/{currency.ts → market/currency.ts} +13 -4
  339. package/src/react/queries/{filters.ts → market/filters.ts} +48 -34
  340. package/src/react/queries/market/index.ts +6 -0
  341. package/src/react/queries/{marketCurrencies.ts → market/marketCurrencies.ts} +24 -5
  342. package/src/react/queries/{marketplaceConfig.ts → market/marketplaceConfig.ts} +11 -7
  343. package/src/react/queries/orders/countItemsOrdersForCollection.ts +86 -0
  344. package/src/react/queries/{countListingsForCollectible.ts → orders/countListingsForCollectible.ts} +23 -6
  345. package/src/react/queries/{countOffersForCollectible.ts → orders/countOffersForCollectible.ts} +23 -6
  346. package/src/react/queries/{floorOrder.ts → orders/floorOrder.ts} +15 -4
  347. package/src/react/queries/orders/getCountOfFilteredOrders.ts +88 -0
  348. package/src/react/queries/{highestOffer.ts → orders/highestOffer.ts} +16 -4
  349. package/src/react/queries/orders/index.ts +11 -0
  350. package/src/react/queries/orders/listItemsOrdersForCollection.ts +90 -0
  351. package/src/react/queries/orders/listItemsOrdersForCollectionPaginated.ts +90 -0
  352. package/src/react/queries/{listListingsForCollectible.ts → orders/listListingsForCollectible.ts} +20 -5
  353. package/src/react/queries/orders/listOffersForCollectible.ts +116 -0
  354. package/src/react/queries/{lowestListing.ts → orders/lowestListing.ts} +16 -4
  355. package/src/react/queries/{countOfPrimarySaleItems.ts → primary-sales/countOfPrimarySaleItems.ts} +17 -3
  356. package/src/react/queries/primary-sales/index.ts +3 -0
  357. package/src/react/queries/{primarySaleItems.ts → primary-sales/primarySaleItems.ts} +18 -4
  358. package/src/react/queries/{primarySaleItemsCount.ts → primary-sales/primarySaleItemsCount.ts} +19 -4
  359. package/src/react/queries/{getTokenRanges.ts → tokens/getTokenRanges.ts} +17 -4
  360. package/src/react/queries/tokens/index.ts +5 -0
  361. package/src/react/queries/{listBalances.ts → tokens/listBalances.ts} +18 -3
  362. package/src/react/queries/{listTokenMetadata.ts → tokens/listTokenMetadata.ts} +18 -4
  363. package/src/react/queries/{searchTokenMetadata.ts → tokens/searchTokenMetadata.ts} +18 -4
  364. package/src/react/queries/{tokenSupplies.ts → tokens/tokenSupplies.ts} +16 -4
  365. package/src/react/queries/{comparePrices.ts → utils/comparePrices.ts} +16 -4
  366. package/src/react/queries/{convertPriceToUSD.ts → utils/convertPriceToUSD.ts} +18 -5
  367. package/src/react/queries/utils/index.ts +2 -0
  368. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +4 -4
  369. package/src/react/ssr/create-ssr-client.ts +1 -1
  370. package/src/react/ui/components/_internals/ErrorLogBox.tsx +85 -0
  371. package/src/react/ui/components/_internals/action-button/ActionButton.stories.tsx +8 -8
  372. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +10 -9
  373. package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +4 -4
  374. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +10 -6
  375. package/src/react/ui/components/_internals/custom-select/__tests__/CustomSelect.test.tsx +1 -1
  376. package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +4 -3
  377. package/src/react/ui/components/marketplace-collectible-card/CollectibleCardSkeleton.tsx +13 -2
  378. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +7 -7
  379. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +14 -5
  380. package/src/react/ui/components/marketplace-collectible-card/components/footer/Footer.tsx +179 -0
  381. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/FooterName.tsx +103 -0
  382. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/PriceDisplay.tsx +80 -0
  383. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/SaleDetailsPill.tsx +29 -0
  384. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/TokenTypeBalancePill.tsx +30 -0
  385. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/index.ts +4 -0
  386. package/src/react/ui/components/marketplace-collectible-card/components/footer/index.ts +2 -0
  387. package/src/react/ui/components/marketplace-collectible-card/types.ts +19 -6
  388. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +14 -23
  389. package/src/react/ui/components/marketplace-collectible-card/variants/NonTradableInventoryCard.tsx +42 -0
  390. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +17 -12
  391. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +10 -10
  392. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +3 -3
  393. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx.bak +3 -3
  394. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +6 -6
  395. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +3 -3
  396. package/src/react/ui/modals/BuyModal/components/BuyModalRouter.tsx +5 -5
  397. package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +67 -5
  398. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +8 -8
  399. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +2 -2
  400. package/src/react/ui/modals/BuyModal/components/ERC721BuyModal.tsx +31 -0
  401. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC721SalePaymentParams.test.tsx +20 -1
  402. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +20 -4
  403. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +12 -3
  404. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +11 -2
  405. package/src/react/ui/modals/BuyModal/store.ts +9 -6
  406. package/src/react/ui/modals/CreateListingModal/Modal.tsx +63 -24
  407. package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +4 -0
  408. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +20 -13
  409. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +4 -1
  410. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +2 -1
  411. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +141 -96
  412. package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +10 -0
  413. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +4 -1
  414. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +17 -27
  415. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +2 -1
  416. package/src/react/ui/modals/SellModal/Modal.tsx +21 -3
  417. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +2 -0
  418. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +5 -2
  419. package/src/react/ui/modals/SellModal/hooks/useSell.tsx +15 -8
  420. package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +9 -0
  421. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +20 -9
  422. package/src/react/ui/modals/_internal/components/calendarDropdown/TimeSelector.tsx +105 -0
  423. package/src/react/ui/modals/_internal/components/calendarDropdown/index.tsx +45 -12
  424. package/src/react/ui/modals/_internal/components/calendarDropdown/overrides.css +39 -0
  425. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +31 -10
  426. package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +18 -9
  427. package/src/react/ui/modals/_internal/components/priceInput/index.tsx +53 -3
  428. package/src/react/ui/modals/_internal/components/switchChainErrorModal/__tests__/SwitchChainErrorModal.test.tsx +80 -0
  429. package/src/react/ui/modals/_internal/components/switchChainErrorModal/index.tsx +64 -0
  430. package/src/react/ui/modals/_internal/components/switchChainErrorModal/store.ts +42 -0
  431. package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +58 -10
  432. package/src/react/ui/modals/_internal/constants/opensea-currencies.ts +481 -0
  433. package/src/react/ui/modals/_internal/types.ts +0 -1
  434. package/src/react/utils/waitForTransactionReceipt.ts +26 -32
  435. package/src/styles/index.css +1 -0
  436. package/src/styles/styles.ts +201 -25
  437. package/src/types/index.ts +1 -1
  438. package/src/types/new-marketplace-types.ts +9 -18
  439. package/src/types/types.ts +1 -1
  440. package/src/utils/abi/index.ts +1 -0
  441. package/src/utils/abi/mainModule.ts +158 -0
  442. package/test/globalSetup.ts +1 -1
  443. package/test/test-utils.tsx +1 -0
  444. package/dist/BellIcon-Cb9YEUzJ.js.map +0 -1
  445. package/dist/CollectibleCard-CYyWzk6u.d.ts +0 -8
  446. package/dist/api-BmEQfSQa.js.map +0 -1
  447. package/dist/create-config-6uynwTeb.js.map +0 -1
  448. package/dist/filters-B8XS4tFH.d.ts +0 -31
  449. package/dist/index-BuY_NKSX.d.ts +0 -222
  450. package/dist/index-D2HohSwO.d.ts +0 -293
  451. package/dist/listCollectiblesPaginated--AgXjajA.d.ts +0 -166
  452. package/dist/lowestListing-BQHfQpfg.d.ts +0 -144
  453. package/dist/marketplace-logos-D8t86gsW.js.map +0 -1
  454. package/dist/marketplace.gen-JzNYpM0U.js.map +0 -1
  455. package/dist/marketplaceConfig-sNh-MA5M.js.map +0 -1
  456. package/dist/network-DnBEe1Ur.js.map +0 -1
  457. package/dist/queries-BYT4GJw3.js +0 -1478
  458. package/dist/queries-BYT4GJw3.js.map +0 -1
  459. package/dist/react-CbqXKOpt.css +0 -80
  460. package/dist/react-CbqXKOpt.css.map +0 -1
  461. package/dist/react-Ceq8mamy.js.map +0 -1
  462. package/dist/tokenSupplies-DXtkRYNO.d.ts +0 -147
  463. package/dist/transaction-CC2KxNF6.js.map +0 -1
  464. package/dist/types-G2PWxiJR.js.map +0 -1
  465. package/dist/utils-CKJd-CRf.js.map +0 -1
  466. package/dist/utils-wquIhK6T.js.map +0 -1
  467. package/dist/waitForTransactionReceipt-DZxAuR9N.js +0 -27
  468. package/dist/waitForTransactionReceipt-DZxAuR9N.js.map +0 -1
  469. package/src/react/hooks/utils/useSwitchChainWithModal.ts +0 -38
  470. package/src/react/queries/inventory.ts +0 -343
  471. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +0 -238
  472. package/src/react/ui/modals/_internal/components/switchChainModal/__tests__/SwitchChainModal.test.tsx +0 -117
  473. package/src/react/ui/modals/_internal/components/switchChainModal/index.tsx +0 -124
  474. package/src/react/ui/modals/_internal/components/switchChainModal/store.ts +0 -71
  475. /package/dist/{index-q7f-WDBS.d.ts → index-6wsMChsg.d.ts} +0 -0
  476. /package/dist/{abi-Wr_aTZFi.js → queries-KOcILNJO.js} +0 -0
  477. /package/dist/{wagmi-BhP3mdhP.js → wagmi-Bseovd6Q.js} +0 -0
@@ -0,0 +1,249 @@
1
+ import { balanceQueries, collectionKeys, getIndexerClient, getMarketplaceClient, getMetadataClient } from "./api-BoO0V5aJ.js";
2
+ import { compareAddress } from "./utils-BfpDVibN.js";
3
+ import { queryOptions, skipToken } from "@tanstack/react-query";
4
+
5
+ //#region src/react/queries/collections/collection.ts
6
+ /**
7
+ * Fetches collection information from the metadata API
8
+ */
9
+ async function fetchCollection(params) {
10
+ const { collectionAddress, chainId, config } = params;
11
+ return (await getMetadataClient(config).getContractInfo({
12
+ chainID: chainId.toString(),
13
+ contractAddress: collectionAddress
14
+ })).contractInfo;
15
+ }
16
+ function getCollectionQueryKey(params) {
17
+ const apiArgs = {
18
+ chainID: String(params.chainId),
19
+ contractAddress: params.collectionAddress
20
+ };
21
+ return [...collectionKeys.detail, apiArgs];
22
+ }
23
+ function collectionQueryOptions(params) {
24
+ const enabled = Boolean(params.collectionAddress && params.chainId && params.config && (params.query?.enabled ?? true));
25
+ return queryOptions({
26
+ queryKey: getCollectionQueryKey(params),
27
+ queryFn: () => fetchCollection({
28
+ chainId: params.chainId,
29
+ collectionAddress: params.collectionAddress,
30
+ config: params.config
31
+ }),
32
+ ...params.query,
33
+ enabled
34
+ });
35
+ }
36
+
37
+ //#endregion
38
+ //#region src/react/queries/collections/collectionBalanceDetails.ts
39
+ /**
40
+ * Fetches detailed balance information for multiple accounts from the Indexer API
41
+ */
42
+ async function fetchCollectionBalanceDetails(params) {
43
+ const { chainId, filter, config } = params;
44
+ const indexerClient = getIndexerClient(chainId, config);
45
+ const promises = filter.accountAddresses.map((accountAddress) => indexerClient.getTokenBalancesDetails({ filter: {
46
+ accountAddresses: [accountAddress],
47
+ contractWhitelist: filter.contractWhitelist,
48
+ omitNativeBalances: filter.omitNativeBalances
49
+ } }));
50
+ const mergedResponse = (await Promise.all(promises)).reduce((acc, curr) => {
51
+ if (!curr) return acc;
52
+ return {
53
+ page: curr.page,
54
+ nativeBalances: [...acc.nativeBalances || [], ...curr.nativeBalances || []],
55
+ balances: [...acc.balances || [], ...curr.balances || []]
56
+ };
57
+ }, {
58
+ page: {},
59
+ nativeBalances: [],
60
+ balances: []
61
+ });
62
+ if (!mergedResponse) throw new Error("Failed to fetch collection balance details");
63
+ return mergedResponse;
64
+ }
65
+ function getCollectionBalanceDetailsQueryKey(params) {
66
+ const apiArgs = {
67
+ chainId: params.chainId,
68
+ filter: params.filter
69
+ };
70
+ return [...balanceQueries.collectionBalanceDetails, apiArgs];
71
+ }
72
+ function collectionBalanceDetailsQueryOptions(params) {
73
+ const enabled = Boolean(params.chainId && params.filter?.accountAddresses?.length && params.config && (params.query?.enabled ?? true));
74
+ return queryOptions({
75
+ queryKey: getCollectionBalanceDetailsQueryKey(params),
76
+ queryFn: () => fetchCollectionBalanceDetails({
77
+ chainId: params.chainId,
78
+ filter: params.filter,
79
+ config: params.config
80
+ }),
81
+ ...params.query,
82
+ enabled
83
+ });
84
+ }
85
+
86
+ //#endregion
87
+ //#region src/react/queries/collections/collectionDetails.ts
88
+ /**
89
+ * Fetches collection details from the marketplace API
90
+ */
91
+ async function fetchCollectionDetails(params) {
92
+ const { collectionAddress, chainId, config,...additionalApiParams } = params;
93
+ const marketplaceClient = getMarketplaceClient(config);
94
+ const apiArgs = {
95
+ contractAddress: collectionAddress,
96
+ chainId: String(chainId),
97
+ ...additionalApiParams
98
+ };
99
+ return (await marketplaceClient.getCollectionDetail(apiArgs)).collection;
100
+ }
101
+ function getCollectionDetailsQueryKey(params) {
102
+ const apiArgs = {
103
+ chainId: String(params.chainId),
104
+ contractAddress: params.collectionAddress
105
+ };
106
+ return [...collectionKeys.detail, apiArgs];
107
+ }
108
+ function collectionDetailsQueryOptions(params) {
109
+ const enabled = Boolean(params.collectionAddress && params.chainId && params.config && (params.query?.enabled ?? true));
110
+ return queryOptions({
111
+ queryKey: getCollectionDetailsQueryKey(params),
112
+ queryFn: () => fetchCollectionDetails({
113
+ chainId: params.chainId,
114
+ collectionAddress: params.collectionAddress,
115
+ config: params.config
116
+ }),
117
+ ...params.query,
118
+ enabled
119
+ });
120
+ }
121
+
122
+ //#endregion
123
+ //#region src/react/queries/collections/listCollectionActivities.ts
124
+ /**
125
+ * Fetches collection activities from the Marketplace API
126
+ */
127
+ async function fetchListCollectionActivities(params) {
128
+ const { collectionAddress, chainId, config, page, pageSize, sort,...additionalApiParams } = params;
129
+ const marketplaceClient = getMarketplaceClient(config);
130
+ const pageParams = page || pageSize || sort ? {
131
+ page: page ?? 1,
132
+ pageSize: pageSize ?? 10,
133
+ sort
134
+ } : void 0;
135
+ const apiArgs = {
136
+ contractAddress: collectionAddress,
137
+ chainId: String(chainId),
138
+ page: pageParams,
139
+ ...additionalApiParams
140
+ };
141
+ return await marketplaceClient.listCollectionActivities(apiArgs);
142
+ }
143
+ function getListCollectionActivitiesQueryKey(params) {
144
+ const page = params.page || params.pageSize || params.sort ? {
145
+ page: params.page ?? 1,
146
+ pageSize: params.pageSize ?? 10,
147
+ sort: params.sort
148
+ } : void 0;
149
+ const apiArgs = {
150
+ chainId: String(params.chainId),
151
+ contractAddress: params.collectionAddress,
152
+ page
153
+ };
154
+ return [...collectionKeys.collectionActivities, apiArgs];
155
+ }
156
+ function listCollectionActivitiesQueryOptions(params) {
157
+ const enabled = Boolean(params.collectionAddress && params.chainId && params.config && (params.query?.enabled ?? true));
158
+ return queryOptions({
159
+ queryKey: getListCollectionActivitiesQueryKey(params),
160
+ queryFn: () => fetchListCollectionActivities({
161
+ chainId: params.chainId,
162
+ collectionAddress: params.collectionAddress,
163
+ config: params.config,
164
+ page: params.page,
165
+ pageSize: params.pageSize,
166
+ sort: params.sort
167
+ }),
168
+ ...params.query,
169
+ enabled
170
+ });
171
+ }
172
+
173
+ //#endregion
174
+ //#region src/react/queries/collections/listCollections.ts
175
+ const allCollections = (marketplaceConfig) => {
176
+ return [...marketplaceConfig.market.collections, ...marketplaceConfig.shop.collections];
177
+ };
178
+ /**
179
+ * Fetches collections from the metadata API with marketplace config filtering
180
+ */
181
+ async function fetchListCollections(params) {
182
+ const { cardType, marketplaceConfig, config } = params;
183
+ const metadataClient = getMetadataClient(config);
184
+ let collections = allCollections(marketplaceConfig);
185
+ if (!collections?.length) return [];
186
+ if (cardType) collections = collections.filter((collection) => collection.cardType === cardType);
187
+ const collectionsByChain = collections.reduce((acc, curr) => {
188
+ const { chainId, itemsAddress } = curr;
189
+ if (!acc[chainId]) acc[chainId] = [];
190
+ acc[chainId].push(itemsAddress);
191
+ return acc;
192
+ }, {});
193
+ const promises = Object.entries(collectionsByChain).map(([chainId, addresses]) => metadataClient.getContractInfoBatch({
194
+ chainID: chainId,
195
+ contractAddresses: addresses
196
+ }).then((resp) => Object.values(resp.contractInfoMap)));
197
+ const settled = await Promise.allSettled(promises);
198
+ if (settled.every((result) => result.status === "rejected")) throw settled[0].reason;
199
+ const results = settled.filter((r) => r.status === "fulfilled").flatMap((r) => r.value);
200
+ return collections.map((collection) => {
201
+ const metadata = results.find((result) => compareAddress(result.address, collection.itemsAddress));
202
+ return {
203
+ collection,
204
+ metadata
205
+ };
206
+ }).filter((item) => item.metadata !== void 0).map(({ collection, metadata }) => ({
207
+ ...collection,
208
+ ...metadata
209
+ }));
210
+ }
211
+ function getListCollectionsQueryKey(params) {
212
+ const queryKeyParams = {
213
+ cardType: params.cardType,
214
+ marketplaceConfig: params.marketplaceConfig
215
+ };
216
+ return [...collectionKeys.list, queryKeyParams];
217
+ }
218
+ function listCollectionsQueryOptions(params) {
219
+ const enabled = Boolean(params.marketplaceConfig && params.config && (params.query?.enabled ?? true));
220
+ return queryOptions({
221
+ queryKey: getListCollectionsQueryKey(params),
222
+ queryFn: enabled ? () => fetchListCollections({
223
+ marketplaceConfig: params.marketplaceConfig,
224
+ config: params.config,
225
+ cardType: params.cardType
226
+ }) : skipToken,
227
+ ...params.query,
228
+ enabled
229
+ });
230
+ }
231
+ const listCollectionsOptions = ({ cardType, marketplaceConfig, config }) => {
232
+ return queryOptions({
233
+ queryKey: [...collectionKeys.list, {
234
+ cardType,
235
+ marketplaceConfig,
236
+ config
237
+ }],
238
+ queryFn: marketplaceConfig ? () => fetchListCollections({
239
+ marketplaceConfig,
240
+ config,
241
+ cardType
242
+ }) : skipToken,
243
+ enabled: Boolean(marketplaceConfig)
244
+ });
245
+ };
246
+
247
+ //#endregion
248
+ export { collectionBalanceDetailsQueryOptions, collectionDetailsQueryOptions, collectionQueryOptions, fetchCollection, fetchCollectionBalanceDetails, fetchCollectionDetails, fetchListCollectionActivities, fetchListCollections, getCollectionBalanceDetailsQueryKey, getCollectionDetailsQueryKey, getCollectionQueryKey, getListCollectionActivitiesQueryKey, getListCollectionsQueryKey, listCollectionActivitiesQueryOptions, listCollectionsOptions, listCollectionsQueryOptions };
249
+ //# sourceMappingURL=collections-CKummc-R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collections-CKummc-R.js","names":["apiArgs: GetCollectionDetailArgs","pageParams: Page | undefined","apiArgs: ListCollectionActivitiesArgs"],"sources":["../src/react/queries/collections/collection.ts","../src/react/queries/collections/collectionBalanceDetails.ts","../src/react/queries/collections/collectionDetails.ts","../src/react/queries/collections/listCollectionActivities.ts","../src/react/queries/collections/listCollections.ts"],"sourcesContent":["import type { GetContractInfoArgs } from '@0xsequence/metadata';\nimport { queryOptions } from '@tanstack/react-query';\nimport type { SdkConfig } from '../../../types';\nimport {\n\tgetMetadataClient,\n\ttype QueryKeyArgs,\n\ttype ValuesOptional,\n} from '../../_internal';\nimport { collectionKeys } from '../../_internal/api/query-keys';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface FetchCollectionParams {\n\tchainId: number;\n\tcollectionAddress: string;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches collection information from the metadata API\n */\nexport async function fetchCollection(params: FetchCollectionParams) {\n\tconst { collectionAddress, chainId, config } = params;\n\n\tconst metadataClient = getMetadataClient(config);\n\n\tconst result = await metadataClient.getContractInfo({\n\t\tchainID: chainId.toString(),\n\t\tcontractAddress: collectionAddress,\n\t});\n\n\treturn result.contractInfo;\n}\n\nexport type CollectionQueryOptions = ValuesOptional<FetchCollectionParams> & {\n\tquery?: StandardQueryOptions;\n};\n\nexport function getCollectionQueryKey(params: CollectionQueryOptions) {\n\tconst apiArgs = {\n\t\tchainID: String(params.chainId),\n\t\tcontractAddress: params.collectionAddress,\n\t} satisfies QueryKeyArgs<GetContractInfoArgs>;\n\n\treturn [...collectionKeys.detail, apiArgs] as const;\n}\n\nexport function collectionQueryOptions(params: CollectionQueryOptions) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: getCollectionQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchCollection({\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tchainId: params.chainId!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcollectionAddress: params.collectionAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tconfig: params.config!,\n\t\t\t}),\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import type { GetTokenBalancesDetailsReturn } from '@0xsequence/indexer';\nimport { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { SdkConfig } from '../../../types';\nimport {\n\tbalanceQueries,\n\tgetIndexerClient,\n\ttype ValuesOptional,\n} from '../../_internal';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface CollectionBalanceFilter {\n\taccountAddresses: Array<Address>;\n\tcontractWhitelist?: Array<Address>;\n\tomitNativeBalances: boolean;\n}\n\nexport interface FetchCollectionBalanceDetailsParams {\n\tchainId: number;\n\tfilter: CollectionBalanceFilter;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches detailed balance information for multiple accounts from the Indexer API\n */\nexport async function fetchCollectionBalanceDetails(\n\tparams: FetchCollectionBalanceDetailsParams,\n): Promise<GetTokenBalancesDetailsReturn> {\n\tconst { chainId, filter, config } = params;\n\n\tconst indexerClient = getIndexerClient(chainId, config);\n\n\tconst promises = filter.accountAddresses.map((accountAddress) =>\n\t\tindexerClient.getTokenBalancesDetails({\n\t\t\tfilter: {\n\t\t\t\taccountAddresses: [accountAddress],\n\t\t\t\tcontractWhitelist: filter.contractWhitelist,\n\t\t\t\tomitNativeBalances: filter.omitNativeBalances,\n\t\t\t},\n\t\t}),\n\t);\n\n\tconst responses = await Promise.all(promises);\n\tconst mergedResponse = responses.reduce<GetTokenBalancesDetailsReturn>(\n\t\t(acc, curr) => {\n\t\t\tif (!curr) return acc;\n\t\t\treturn {\n\t\t\t\tpage: curr.page,\n\t\t\t\tnativeBalances: [\n\t\t\t\t\t...(acc.nativeBalances || []),\n\t\t\t\t\t...(curr.nativeBalances || []),\n\t\t\t\t],\n\t\t\t\tbalances: [...(acc.balances || []), ...(curr.balances || [])],\n\t\t\t};\n\t\t},\n\t\t{ page: {}, nativeBalances: [], balances: [] },\n\t);\n\n\tif (!mergedResponse) {\n\t\tthrow new Error('Failed to fetch collection balance details');\n\t}\n\n\treturn mergedResponse;\n}\n\nexport type CollectionBalanceDetailsQueryOptions =\n\tValuesOptional<FetchCollectionBalanceDetailsParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function getCollectionBalanceDetailsQueryKey(\n\tparams: CollectionBalanceDetailsQueryOptions,\n) {\n\tconst apiArgs = {\n\t\tchainId: params.chainId!,\n\t\tfilter: params.filter!,\n\t};\n\n\treturn [...balanceQueries.collectionBalanceDetails, apiArgs] as const;\n}\n\nexport function collectionBalanceDetailsQueryOptions(\n\tparams: CollectionBalanceDetailsQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.chainId &&\n\t\t\tparams.filter?.accountAddresses?.length &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: getCollectionBalanceDetailsQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchCollectionBalanceDetails({\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tchainId: params.chainId!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tfilter: params.filter!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tconfig: params.config!,\n\t\t\t}),\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { SdkConfig } from '../../../types';\nimport {\n\tgetMarketplaceClient,\n\ttype QueryKeyArgs,\n\ttype ValuesOptional,\n} from '../../_internal';\nimport type { GetCollectionDetailArgs } from '../../_internal/api/marketplace.gen';\nimport { collectionKeys } from '../../_internal/api/query-keys';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface FetchCollectionDetailsParams\n\textends Omit<GetCollectionDetailArgs, 'chainId' | 'contractAddress'> {\n\tchainId: number;\n\tcollectionAddress: string;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches collection details from the marketplace API\n */\nexport async function fetchCollectionDetails(\n\tparams: FetchCollectionDetailsParams,\n) {\n\tconst { collectionAddress, chainId, config, ...additionalApiParams } = params;\n\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst apiArgs: GetCollectionDetailArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\t...additionalApiParams,\n\t};\n\n\tconst result = await marketplaceClient.getCollectionDetail(apiArgs);\n\treturn result.collection;\n}\n\nexport type CollectionDetailsQueryOptions =\n\tValuesOptional<FetchCollectionDetailsParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function getCollectionDetailsQueryKey(\n\tparams: CollectionDetailsQueryOptions,\n) {\n\tconst apiArgs = {\n\t\tchainId: String(params.chainId),\n\t\tcontractAddress: params.collectionAddress,\n\t} satisfies QueryKeyArgs<GetCollectionDetailArgs>;\n\n\treturn [...collectionKeys.detail, apiArgs] as const;\n}\n\nexport function collectionDetailsQueryOptions(\n\tparams: CollectionDetailsQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: getCollectionDetailsQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchCollectionDetails({\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tchainId: params.chainId!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcollectionAddress: params.collectionAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tconfig: params.config!,\n\t\t\t}),\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { Page, SdkConfig } from '../../../types';\nimport type {\n\tListCollectionActivitiesArgs,\n\tListCollectionActivitiesReturn,\n\tQueryKeyArgs,\n\tSortBy,\n\tValuesOptional,\n} from '../../_internal';\nimport { getMarketplaceClient } from '../../_internal';\nimport { collectionKeys } from '../../_internal/api';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface FetchListCollectionActivitiesParams\n\textends Omit<\n\t\tListCollectionActivitiesArgs,\n\t\t'chainId' | 'contractAddress' | 'page'\n\t> {\n\tchainId: number;\n\tcollectionAddress: Address;\n\tpage?: number;\n\tpageSize?: number;\n\tsort?: SortBy[];\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches collection activities from the Marketplace API\n */\nexport async function fetchListCollectionActivities(\n\tparams: FetchListCollectionActivitiesParams,\n): Promise<ListCollectionActivitiesReturn> {\n\tconst {\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tconfig,\n\t\tpage,\n\t\tpageSize,\n\t\tsort,\n\t\t...additionalApiParams\n\t} = params;\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst pageParams: Page | undefined =\n\t\tpage || pageSize || sort\n\t\t\t? {\n\t\t\t\t\tpage: page ?? 1,\n\t\t\t\t\tpageSize: pageSize ?? 10,\n\t\t\t\t\tsort,\n\t\t\t\t}\n\t\t\t: undefined;\n\n\tconst apiArgs: ListCollectionActivitiesArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\tpage: pageParams,\n\t\t...additionalApiParams,\n\t};\n\n\treturn await marketplaceClient.listCollectionActivities(apiArgs);\n}\n\nexport type ListCollectionActivitiesQueryOptions =\n\tValuesOptional<FetchListCollectionActivitiesParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function getListCollectionActivitiesQueryKey(\n\tparams: ListCollectionActivitiesQueryOptions,\n) {\n\tconst page =\n\t\tparams.page || params.pageSize || params.sort\n\t\t\t? {\n\t\t\t\t\tpage: params.page ?? 1,\n\t\t\t\t\tpageSize: params.pageSize ?? 10,\n\t\t\t\t\tsort: params.sort,\n\t\t\t\t}\n\t\t\t: undefined;\n\n\tconst apiArgs = {\n\t\tchainId: String(params.chainId),\n\t\tcontractAddress: params.collectionAddress,\n\t\tpage: page,\n\t} satisfies QueryKeyArgs<ListCollectionActivitiesArgs>;\n\n\treturn [...collectionKeys.collectionActivities, apiArgs] as const;\n}\n\nexport function listCollectionActivitiesQueryOptions(\n\tparams: ListCollectionActivitiesQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: getListCollectionActivitiesQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchListCollectionActivities({\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tchainId: params.chainId!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcollectionAddress: params.collectionAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tconfig: params.config!,\n\t\t\t\tpage: params.page,\n\t\t\t\tpageSize: params.pageSize,\n\t\t\t\tsort: params.sort,\n\t\t\t}),\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import type { ContractInfo } from '@0xsequence/metadata';\nimport { queryOptions, skipToken } from '@tanstack/react-query';\nimport type { CardType, SdkConfig } from '../../../types';\nimport type {\n\tMarketCollection,\n\tMarketplaceConfig,\n\tShopCollection,\n} from '../../../types/new-marketplace-types';\nimport { compareAddress } from '../../../utils';\nimport {\n\tcollectionKeys,\n\tgetMetadataClient,\n\ttype ValuesOptional,\n} from '../../_internal';\nimport type { StandardQueryOptions } from '../../types/query';\n\nconst allCollections = (marketplaceConfig: MarketplaceConfig) => {\n\treturn [\n\t\t...marketplaceConfig.market.collections,\n\t\t...marketplaceConfig.shop.collections,\n\t];\n};\n\nexport interface FetchListCollectionsParams {\n\tcardType?: CardType;\n\tmarketplaceConfig: MarketplaceConfig;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches collections from the metadata API with marketplace config filtering\n */\nexport async function fetchListCollections(params: FetchListCollectionsParams) {\n\tconst { cardType, marketplaceConfig, config } = params;\n\tconst metadataClient = getMetadataClient(config);\n\n\tlet collections = allCollections(marketplaceConfig);\n\n\tif (!collections?.length) {\n\t\treturn [];\n\t}\n\n\tif (cardType) {\n\t\tcollections = collections.filter(\n\t\t\t(collection) => collection.cardType === cardType,\n\t\t);\n\t}\n\n\t// Group collections by chainId\n\tconst collectionsByChain = collections.reduce<Record<string, string[]>>(\n\t\t(acc, curr) => {\n\t\t\tconst { chainId, itemsAddress } = curr;\n\t\t\tif (!acc[chainId]) {\n\t\t\t\tacc[chainId] = [];\n\t\t\t}\n\t\t\tacc[chainId].push(itemsAddress);\n\t\t\treturn acc;\n\t\t},\n\t\t{},\n\t);\n\n\t// Fetch collections for each chain\n\tconst promises = Object.entries(collectionsByChain).map(\n\t\t([chainId, addresses]) =>\n\t\t\tmetadataClient\n\t\t\t\t.getContractInfoBatch({\n\t\t\t\t\tchainID: chainId,\n\t\t\t\t\tcontractAddresses: addresses,\n\t\t\t\t})\n\t\t\t\t.then((resp) => Object.values(resp.contractInfoMap)),\n\t);\n\n\tconst settled = await Promise.allSettled(promises);\n\n\t// If all promises failed, throw the first error\n\tif (settled.every((result) => result.status === 'rejected')) {\n\t\tconst firstError = settled[0] as PromiseRejectedResult;\n\t\tthrow firstError.reason;\n\t}\n\n\tconst results = settled\n\t\t.filter(\n\t\t\t(r): r is PromiseFulfilledResult<ContractInfo[]> =>\n\t\t\t\tr.status === 'fulfilled',\n\t\t)\n\t\t.flatMap((r) => r.value);\n\n\tconst collectionsWithMetadata = collections\n\t\t.map((collection) => {\n\t\t\tconst metadata = results.find((result) =>\n\t\t\t\tcompareAddress(result.address, collection.itemsAddress),\n\t\t\t);\n\t\t\treturn { collection, metadata };\n\t\t})\n\t\t.filter(\n\t\t\t(\n\t\t\t\titem,\n\t\t\t): item is {\n\t\t\t\tcollection: MarketCollection | ShopCollection;\n\t\t\t\tmetadata: ContractInfo;\n\t\t\t} => item.metadata !== undefined,\n\t\t)\n\t\t.map(({ collection, metadata }) => ({\n\t\t\t...collection,\n\t\t\t...metadata,\n\t\t}));\n\n\treturn collectionsWithMetadata;\n}\n\nexport type ListCollectionsQueryOptions =\n\tValuesOptional<FetchListCollectionsParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function getListCollectionsQueryKey(\n\tparams: ListCollectionsQueryOptions,\n) {\n\tconst queryKeyParams = {\n\t\tcardType: params.cardType,\n\t\tmarketplaceConfig: params.marketplaceConfig,\n\t} as const;\n\n\treturn [...collectionKeys.list, queryKeyParams] as const;\n}\n\nexport function listCollectionsQueryOptions(\n\tparams: ListCollectionsQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.marketplaceConfig &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: getListCollectionsQueryKey(params),\n\t\tqueryFn: enabled\n\t\t\t? () =>\n\t\t\t\t\tfetchListCollections({\n\t\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\t\tmarketplaceConfig: params.marketplaceConfig!,\n\t\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\t\tconfig: params.config!,\n\t\t\t\t\t\tcardType: params.cardType,\n\t\t\t\t\t})\n\t\t\t: skipToken,\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n\n// Keep old function for backward compatibility during migration\nexport const listCollectionsOptions = ({\n\tcardType,\n\tmarketplaceConfig,\n\tconfig,\n}: {\n\tcardType?: CardType;\n\tmarketplaceConfig: MarketplaceConfig | undefined;\n\tconfig: SdkConfig;\n}) => {\n\treturn queryOptions({\n\t\tqueryKey: [...collectionKeys.list, { cardType, marketplaceConfig, config }],\n\t\tqueryFn: marketplaceConfig\n\t\t\t? () =>\n\t\t\t\t\tfetchListCollections({\n\t\t\t\t\t\tmarketplaceConfig,\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tcardType,\n\t\t\t\t\t})\n\t\t\t: skipToken,\n\t\tenabled: Boolean(marketplaceConfig),\n\t});\n};\n"],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import { ContractType } from "./marketplace.gen-ksUafDqS.js";
2
+ import { compareAddress } from "./utils-BfpDVibN.js";
3
+ import { BellIcon_default } from "./BellIcon-ByhygxBO.js";
4
+ import { formatPriceNumber, getSupplyStatusText } from "./utils-BqxcalL2.js";
5
+ import { useAccount } from "wagmi";
6
+ import { ChevronLeftIcon, ChevronRightIcon, IconButton, Image, Text, cn } from "@0xsequence/design-system";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { formatUnits } from "viem";
9
+
10
+ //#region src/react/ui/components/marketplace-collectible-card/components/footer/components/FooterName.tsx
11
+ const FooterName = ({ name, isShop, highestOffer, onOfferClick, quantityInitial, quantityRemaining, balance }) => {
12
+ const { address: currentUserAddress } = useAccount();
13
+ const displayName = (() => {
14
+ if (name.length > 15 && highestOffer && !isShop) return `${name.substring(0, 13)}...`;
15
+ if (name.length > 17 && !highestOffer && !isShop) return `${name.substring(0, 17)}...`;
16
+ if (name.length > 17) return `${name.substring(0, 17)}...`;
17
+ return name;
18
+ })();
19
+ return /* @__PURE__ */ jsxs("div", {
20
+ className: "relative flex w-full items-center justify-between",
21
+ children: [/* @__PURE__ */ jsx(Text, {
22
+ className: cn("overflow-hidden text-ellipsis text-left font-body font-bold text-sm text-text-100", isShop && (quantityInitial === void 0 || quantityRemaining === void 0) && "text-text-50"),
23
+ children: displayName || "Untitled"
24
+ }), highestOffer && onOfferClick && !isShop && (() => {
25
+ const canAcceptOffer = !(currentUserAddress && highestOffer.createdBy && compareAddress(highestOffer.createdBy, currentUserAddress)) && balance && Number(balance) > 0;
26
+ return /* @__PURE__ */ jsx(IconButton, {
27
+ className: `absolute top-0 right-0 z-10 h-[22px] w-[22px] ${!canAcceptOffer ? "opacity-50 hover:animate-none hover:opacity-50" : "hover:animate-bell-ring"}`,
28
+ size: "xs",
29
+ variant: "primary",
30
+ onClick: (e) => {
31
+ if (!canAcceptOffer) return;
32
+ e.stopPropagation();
33
+ e.preventDefault();
34
+ onOfferClick?.(e);
35
+ },
36
+ onMouseEnter: (e) => {
37
+ if (canAcceptOffer) e.stopPropagation();
38
+ },
39
+ icon: (props) => /* @__PURE__ */ jsx(BellIcon_default, {
40
+ ...props,
41
+ size: "xs"
42
+ })
43
+ });
44
+ })()]
45
+ });
46
+ };
47
+
48
+ //#endregion
49
+ //#region src/react/ui/components/marketplace-collectible-card/components/footer/components/PriceDisplay.tsx
50
+ const formatPrice = (amount, currency) => {
51
+ const { formattedNumber, isUnderflow, isOverflow } = formatPriceNumber(amount, currency.decimals);
52
+ if (amount === "0") return /* @__PURE__ */ jsx(Text, {
53
+ className: "font-bold text-sm text-text-100",
54
+ children: "Free"
55
+ });
56
+ if (isUnderflow) return /* @__PURE__ */ jsxs("div", {
57
+ className: "flex items-center",
58
+ children: [/* @__PURE__ */ jsx(ChevronLeftIcon, { className: "h-3 w-3 text-text-100" }), /* @__PURE__ */ jsx(Text, {
59
+ className: "font-bold text-sm text-text-100",
60
+ children: `${formattedNumber} ${currency.symbol}`
61
+ })]
62
+ });
63
+ if (isOverflow) return /* @__PURE__ */ jsxs("div", {
64
+ className: "flex items-center",
65
+ children: [/* @__PURE__ */ jsx(ChevronRightIcon, { className: "h-3 w-3 text-text-100" }), /* @__PURE__ */ jsx(Text, {
66
+ className: "font-bold text-sm text-text-100",
67
+ children: `${formattedNumber} ${currency.symbol}`
68
+ })]
69
+ });
70
+ return /* @__PURE__ */ jsxs(Text, {
71
+ className: "font-bold text-sm text-text-100",
72
+ children: [
73
+ formattedNumber,
74
+ " ",
75
+ currency.symbol
76
+ ]
77
+ });
78
+ };
79
+ const PriceDisplay = ({ amount, currency, showCurrencyIcon = true, className }) => {
80
+ return /* @__PURE__ */ jsxs("div", {
81
+ className: cn("flex items-center gap-1", className),
82
+ children: [showCurrencyIcon && currency.imageUrl && /* @__PURE__ */ jsx(Image, {
83
+ alt: currency.symbol,
84
+ className: "h-3 w-3",
85
+ src: currency.imageUrl,
86
+ onError: (e) => {
87
+ e.currentTarget.style.display = "none";
88
+ }
89
+ }), formatPrice(amount, currency)]
90
+ });
91
+ };
92
+
93
+ //#endregion
94
+ //#region src/react/ui/components/marketplace-collectible-card/components/footer/components/SaleDetailsPill.tsx
95
+ const SaleDetailsPill = ({ quantityRemaining, collectionType, unlimitedSupply }) => {
96
+ const supplyText = getSupplyStatusText({
97
+ quantityRemaining,
98
+ collectionType,
99
+ unlimitedSupply
100
+ });
101
+ return /* @__PURE__ */ jsx(Text, {
102
+ className: "rounded-lg bg-background-secondary px-2 py-1 text-left font-medium text-text-80 text-xs",
103
+ children: supplyText
104
+ });
105
+ };
106
+
107
+ //#endregion
108
+ //#region src/react/ui/components/marketplace-collectible-card/components/footer/components/TokenTypeBalancePill.tsx
109
+ const TokenTypeBalancePill = ({ balance, type, decimals }) => {
110
+ const displayText = type === ContractType.ERC1155 ? balance ? `Owned: ${formatUnits(BigInt(balance), decimals ?? 0)}` : "ERC-1155" : "ERC-721";
111
+ return /* @__PURE__ */ jsx(Text, {
112
+ className: "rounded-lg bg-background-secondary px-2 py-1 text-left font-medium text-text-80 text-xs",
113
+ children: displayText
114
+ });
115
+ };
116
+
117
+ //#endregion
118
+ export { FooterName, PriceDisplay, SaleDetailsPill, TokenTypeBalancePill, formatPrice };
119
+ //# sourceMappingURL=components-CosnX7F9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-CosnX7F9.js","names":["SvgBellIcon"],"sources":["../src/react/ui/components/marketplace-collectible-card/components/footer/components/FooterName.tsx","../src/react/ui/components/marketplace-collectible-card/components/footer/components/PriceDisplay.tsx","../src/react/ui/components/marketplace-collectible-card/components/footer/components/SaleDetailsPill.tsx","../src/react/ui/components/marketplace-collectible-card/components/footer/components/TokenTypeBalancePill.tsx"],"sourcesContent":["'use client';\n\nimport { cn, IconButton, Text } from '@0xsequence/design-system';\nimport { useAccount } from 'wagmi';\nimport { compareAddress } from '../../../../../../../utils/address';\nimport type { Order } from '../../../../../../_internal';\nimport SvgBellIcon from '../../../../../icons/BellIcon';\n\ninterface FooterNameProps {\n\tname: string;\n\tisShop?: boolean;\n\thighestOffer?: Order;\n\tonOfferClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n\tquantityInitial?: string;\n\tquantityRemaining?: string;\n\tbalance?: string;\n}\n\nexport const FooterName = ({\n\tname,\n\tisShop,\n\thighestOffer,\n\tonOfferClick,\n\tquantityInitial,\n\tquantityRemaining,\n\tbalance,\n}: FooterNameProps) => {\n\tconst { address: currentUserAddress } = useAccount();\n\tconst displayName = (() => {\n\t\tif (name.length > 15 && highestOffer && !isShop) {\n\t\t\treturn `${name.substring(0, 13)}...`;\n\t\t}\n\t\tif (name.length > 17 && !highestOffer && !isShop) {\n\t\t\treturn `${name.substring(0, 17)}...`;\n\t\t}\n\t\tif (name.length > 17) {\n\t\t\treturn `${name.substring(0, 17)}...`;\n\t\t}\n\t\treturn name;\n\t})();\n\n\treturn (\n\t\t<div className=\"relative flex w-full items-center justify-between\">\n\t\t\t<Text\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'overflow-hidden text-ellipsis text-left font-body font-bold text-sm text-text-100',\n\t\t\t\t\tisShop &&\n\t\t\t\t\t\t(quantityInitial === undefined ||\n\t\t\t\t\t\t\tquantityRemaining === undefined) &&\n\t\t\t\t\t\t'text-text-50',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{displayName || 'Untitled'}\n\t\t\t</Text>\n\n\t\t\t{highestOffer &&\n\t\t\t\tonOfferClick &&\n\t\t\t\t!isShop &&\n\t\t\t\t(() => {\n\t\t\t\t\t// Check if the current user made the offer\n\t\t\t\t\tconst isOfferMadeBySelf =\n\t\t\t\t\t\tcurrentUserAddress &&\n\t\t\t\t\t\thighestOffer.createdBy &&\n\t\t\t\t\t\tcompareAddress(highestOffer.createdBy, currentUserAddress);\n\n\t\t\t\t\t// Check if user owns the token (has balance > 0)\n\t\t\t\t\tconst userOwnsToken = balance && Number(balance) > 0;\n\n\t\t\t\t\t// Can accept offer: didn't make the offer AND owns the token\n\t\t\t\t\tconst canAcceptOffer = !isOfferMadeBySelf && userOwnsToken;\n\n\t\t\t\t\t// Should show disabled styling: can't accept offer\n\t\t\t\t\tconst shouldDisable = !canAcceptOffer;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName={`absolute top-0 right-0 z-10 h-[22px] w-[22px] ${shouldDisable ? 'opacity-50 hover:animate-none hover:opacity-50' : 'hover:animate-bell-ring'}`}\n\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\tif (!canAcceptOffer) {\n\t\t\t\t\t\t\t\t\t// For cases where user can't accept offer (offer maker or non-owner), allow normal wrapper behavior\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Only stop propagation and open offer modal if user can accept the offer\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\tonOfferClick?.(e);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\tif (canAcceptOffer) {\n\t\t\t\t\t\t\t\t\t// Only prevent parent hover effects when user can accept offer\n\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\ticon={(props) => <SvgBellIcon {...props} size=\"xs\" />}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})()}\n\t\t</div>\n\t);\n};\n","'use client';\n\nimport {\n\tChevronLeftIcon,\n\tChevronRightIcon,\n\tcn,\n\tImage,\n\tText,\n} from '@0xsequence/design-system';\nimport type { Currency } from '../../../../../../_internal';\nimport { formatPriceNumber } from '../../../utils';\n\ninterface PriceDisplayProps {\n\tamount: string;\n\tcurrency: Currency;\n\tshowCurrencyIcon?: boolean;\n\tclassName?: string;\n}\n\nexport const formatPrice = (\n\tamount: string,\n\tcurrency: Currency,\n): React.ReactNode => {\n\tconst { formattedNumber, isUnderflow, isOverflow } = formatPriceNumber(\n\t\tamount,\n\t\tcurrency.decimals,\n\t);\n\tconst isFree = amount === '0';\n\n\tif (isFree) {\n\t\treturn <Text className=\"font-bold text-sm text-text-100\">Free</Text>;\n\t}\n\n\tif (isUnderflow) {\n\t\treturn (\n\t\t\t<div className=\"flex items-center\">\n\t\t\t\t<ChevronLeftIcon className=\"h-3 w-3 text-text-100\" />\n\t\t\t\t<Text className=\"font-bold text-sm text-text-100\">{`${formattedNumber} ${currency.symbol}`}</Text>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (isOverflow) {\n\t\treturn (\n\t\t\t<div className=\"flex items-center\">\n\t\t\t\t<ChevronRightIcon className=\"h-3 w-3 text-text-100\" />\n\t\t\t\t<Text className=\"font-bold text-sm text-text-100\">{`${formattedNumber} ${currency.symbol}`}</Text>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text className=\"font-bold text-sm text-text-100\">\n\t\t\t{formattedNumber} {currency.symbol}\n\t\t</Text>\n\t);\n};\n\nexport const PriceDisplay = ({\n\tamount,\n\tcurrency,\n\tshowCurrencyIcon = true,\n\tclassName,\n}: PriceDisplayProps) => {\n\treturn (\n\t\t<div className={cn('flex items-center gap-1', className)}>\n\t\t\t{showCurrencyIcon && currency.imageUrl && (\n\t\t\t\t<Image\n\t\t\t\t\talt={currency.symbol}\n\t\t\t\t\tclassName=\"h-3 w-3\"\n\t\t\t\t\tsrc={currency.imageUrl}\n\t\t\t\t\tonError={(e) => {\n\t\t\t\t\t\te.currentTarget.style.display = 'none';\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{formatPrice(amount, currency)}\n\t\t</div>\n\t);\n};\n","'use client';\n\nimport { Text } from '@0xsequence/design-system';\nimport type { ContractType } from '../../../../../../_internal';\nimport { getSupplyStatusText } from '../../../utils';\n\ninterface SaleDetailsPillProps {\n\tquantityRemaining: string | undefined;\n\tcollectionType: ContractType;\n\tunlimitedSupply?: boolean;\n}\n\nexport const SaleDetailsPill = ({\n\tquantityRemaining,\n\tcollectionType,\n\tunlimitedSupply,\n}: SaleDetailsPillProps) => {\n\tconst supplyText = getSupplyStatusText({\n\t\tquantityRemaining,\n\t\tcollectionType,\n\t\tunlimitedSupply,\n\t});\n\n\treturn (\n\t\t<Text className=\"rounded-lg bg-background-secondary px-2 py-1 text-left font-medium text-text-80 text-xs\">\n\t\t\t{supplyText}\n\t\t</Text>\n\t);\n};\n","'use client';\n\nimport { Text } from '@0xsequence/design-system';\nimport { formatUnits } from 'viem';\nimport { ContractType } from '../../../../../../_internal';\n\ninterface TokenTypeBalancePillProps {\n\tbalance?: string;\n\ttype: ContractType;\n\tdecimals?: number;\n}\n\nexport const TokenTypeBalancePill = ({\n\tbalance,\n\ttype,\n\tdecimals,\n}: TokenTypeBalancePillProps) => {\n\tconst displayText =\n\t\ttype === ContractType.ERC1155\n\t\t\t? balance\n\t\t\t\t? `Owned: ${formatUnits(BigInt(balance), decimals ?? 0)}`\n\t\t\t\t: 'ERC-1155'\n\t\t\t: 'ERC-721';\n\n\treturn (\n\t\t<Text className=\"rounded-lg bg-background-secondary px-2 py-1 text-left font-medium text-text-80 text-xs\">\n\t\t\t{displayText}\n\t\t</Text>\n\t);\n};\n"],"mappings":";;;;;;;;;;AAkBA,MAAa,cAAc,EAC1B,MACA,QACA,cACA,cACA,iBACA,mBACA,cACsB;CACtB,MAAM,EAAE,SAAS,uBAAuB,YAAY;CACpD,MAAM,qBAAqB;AAC1B,MAAI,KAAK,SAAS,MAAM,gBAAgB,CAAC,OACxC,QAAO,GAAG,KAAK,UAAU,GAAG,GAAG,CAAC;AAEjC,MAAI,KAAK,SAAS,MAAM,CAAC,gBAAgB,CAAC,OACzC,QAAO,GAAG,KAAK,UAAU,GAAG,GAAG,CAAC;AAEjC,MAAI,KAAK,SAAS,GACjB,QAAO,GAAG,KAAK,UAAU,GAAG,GAAG,CAAC;AAEjC,SAAO;KACJ;AAEJ,QACC,qBAAC;EAAI,WAAU;aACd,oBAAC;GACA,WAAW,GACV,qFACA,WACE,oBAAoB,UACpB,sBAAsB,WACvB,eACD;aAEA,eAAe;IACV,EAEN,gBACA,gBACA,CAAC,iBACM;GAWN,MAAM,iBAAiB,EARtB,sBACA,aAAa,aACb,eAAe,aAAa,WAAW,mBAAmB,KAGrC,WAAW,OAAO,QAAQ,GAAG;AAQnD,UACC,oBAAC;IACA,WAAW,iDAJS,CAAC,iBAIuD,mDAAmD;IAC/H,MAAK;IACL,SAAQ;IACR,UAAU,MAAM;AACf,SAAI,CAAC,eAEJ;AAID,OAAE,iBAAiB;AACnB,OAAE,gBAAgB;AAClB,oBAAe,EAAE;;IAElB,eAAe,MAAM;AACpB,SAAI,eAEH,GAAE,iBAAiB;;IAGrB,OAAO,UAAU,oBAACA;KAAY,GAAI;KAAO,MAAK;MAAO;KACpD;MAEA;GACA;;;;;ACjFR,MAAa,eACZ,QACA,aACqB;CACrB,MAAM,EAAE,iBAAiB,aAAa,eAAe,kBACpD,QACA,SAAS,SACT;AAGD,KAFe,WAAW,IAGzB,QAAO,oBAAC;EAAK,WAAU;YAAkC;GAAW;AAGrE,KAAI,YACH,QACC,qBAAC;EAAI,WAAU;aACd,oBAAC,mBAAgB,WAAU,0BAA0B,EACrD,oBAAC;GAAK,WAAU;aAAmC,GAAG,gBAAgB,GAAG,SAAS;IAAgB;GAC7F;AAIR,KAAI,WACH,QACC,qBAAC;EAAI,WAAU;aACd,oBAAC,oBAAiB,WAAU,0BAA0B,EACtD,oBAAC;GAAK,WAAU;aAAmC,GAAG,gBAAgB,GAAG,SAAS;IAAgB;GAC7F;AAIR,QACC,qBAAC;EAAK,WAAU;;GACd;GAAgB;GAAE,SAAS;;GACtB;;AAIT,MAAa,gBAAgB,EAC5B,QACA,UACA,mBAAmB,MACnB,gBACwB;AACxB,QACC,qBAAC;EAAI,WAAW,GAAG,2BAA2B,UAAU;aACtD,oBAAoB,SAAS,YAC7B,oBAAC;GACA,KAAK,SAAS;GACd,WAAU;GACV,KAAK,SAAS;GACd,UAAU,MAAM;AACf,MAAE,cAAc,MAAM,UAAU;;IAEhC,EAEF,YAAY,QAAQ,SAAS;GACzB;;;;;ACjER,MAAa,mBAAmB,EAC/B,mBACA,gBACA,sBAC2B;CAC3B,MAAM,aAAa,oBAAoB;EACtC;EACA;EACA;EACA,CAAC;AAEF,QACC,oBAAC;EAAK,WAAU;YACd;GACK;;;;;ACdT,MAAa,wBAAwB,EACpC,SACA,MACA,eACgC;CAChC,MAAM,cACL,SAAS,aAAa,UACnB,UACC,UAAU,YAAY,OAAO,QAAQ,EAAE,YAAY,EAAE,KACrD,aACD;AAEJ,QACC,oBAAC;EAAK,WAAU;YACd;GACK"}
@@ -1,5 +1,5 @@
1
- import { ContractType } from "./marketplace.gen-JzNYpM0U.js";
2
- import { ERC1155_SALES_CONTRACT_ABI_V0, ERC1155_SALES_CONTRACT_ABI_V1, ERC721_SALE_ABI_V0, ERC721_SALE_ABI_V1 } from "./primary-sale-CLjXRrDj.js";
1
+ import { ContractType } from "./marketplace.gen-ksUafDqS.js";
2
+ import { ERC1155_SALES_CONTRACT_ABI_V0, ERC1155_SALES_CONTRACT_ABI_V1, ERC721_SALE_ABI_V0, ERC721_SALE_ABI_V1 } from "./primary-sale-1u4QlPdA.js";
3
3
  import { useReadContract } from "wagmi";
4
4
  import { useMemo } from "react";
5
5
 
@@ -73,13 +73,12 @@ function useSalesContractABI({ contractAddress, contractType, chainId, enabled =
73
73
  error: null
74
74
  };
75
75
  }
76
- const error = v0Error || v1Error;
77
76
  return {
78
77
  version: null,
79
78
  abi: null,
80
79
  contractType: null,
81
80
  isLoading: false,
82
- error
81
+ error: v0Error || v1Error
83
82
  };
84
83
  }, [
85
84
  v1Data,
@@ -94,4 +93,4 @@ function useSalesContractABI({ contractAddress, contractType, chainId, enabled =
94
93
 
95
94
  //#endregion
96
95
  export { SalesContractVersion, useSalesContractABI };
97
- //# sourceMappingURL=contracts-DPHFT2TA.js.map
96
+ //# sourceMappingURL=contracts-BP_0vX48.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contracts-DPHFT2TA.js","names":[],"sources":["../src/react/hooks/contracts/useSalesContractABI.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport type { Address } from 'viem';\nimport { useReadContract } from 'wagmi';\nimport {\n\tERC721_SALE_ABI_V0,\n\tERC721_SALE_ABI_V1,\n\tERC1155_SALES_CONTRACT_ABI_V0,\n\tERC1155_SALES_CONTRACT_ABI_V1,\n} from '../../../utils/abi';\nimport { ContractType } from '../../_internal';\n\nexport enum SalesContractVersion {\n\tV0 = 'v0',\n\tV1 = 'v1',\n}\n\ninterface UseSalesContractABIProps {\n\tcontractAddress: Address;\n\tcontractType: ContractType.ERC721 | ContractType.ERC1155;\n\tchainId: number;\n\tenabled?: boolean;\n}\n\ntype UseSalesContractABIResult =\n\t| {\n\t\t\tversion: null;\n\t\t\tabi: null;\n\t\t\tcontractType: null;\n\t\t\tisLoading: true;\n\t\t\terror: null;\n\t }\n\t| {\n\t\t\tversion: SalesContractVersion.V0;\n\t\t\tabi: typeof ERC721_SALE_ABI_V0;\n\t\t\tcontractType: ContractType.ERC721;\n\t\t\tisLoading: false;\n\t\t\terror: null;\n\t }\n\t| {\n\t\t\tversion: SalesContractVersion.V0;\n\t\t\tabi: typeof ERC1155_SALES_CONTRACT_ABI_V0;\n\t\t\tcontractType: ContractType.ERC1155;\n\t\t\tisLoading: false;\n\t\t\terror: null;\n\t }\n\t| {\n\t\t\tversion: SalesContractVersion.V1;\n\t\t\tabi: typeof ERC721_SALE_ABI_V1;\n\t\t\tcontractType: ContractType.ERC721;\n\t\t\tisLoading: false;\n\t\t\terror: null;\n\t }\n\t| {\n\t\t\tversion: SalesContractVersion.V1;\n\t\t\tabi: typeof ERC1155_SALES_CONTRACT_ABI_V1;\n\t\t\tcontractType: ContractType.ERC1155;\n\t\t\tisLoading: false;\n\t\t\terror: null;\n\t }\n\t| {\n\t\t\tversion: null;\n\t\t\tabi: null;\n\t\t\tcontractType: null;\n\t\t\tisLoading: false;\n\t\t\terror: Error;\n\t };\n\nexport function useSalesContractABI({\n\tcontractAddress,\n\tcontractType,\n\tchainId,\n\tenabled = true,\n}: UseSalesContractABIProps): UseSalesContractABIResult {\n\tconst functionName =\n\t\tcontractType === ContractType.ERC721 ? 'saleDetails' : 'tokenSaleDetails';\n\n\tconst {\n\t\tdata: v1Data,\n\t\tisLoading: v1Loading,\n\t\terror: v1Error,\n\t} = useReadContract({\n\t\taddress: contractAddress,\n\t\tabi:\n\t\t\tcontractType === ContractType.ERC721\n\t\t\t\t? ERC721_SALE_ABI_V1\n\t\t\t\t: ERC1155_SALES_CONTRACT_ABI_V1,\n\t\tfunctionName,\n\t\targs: contractType === ContractType.ERC1155 ? [0n] : undefined,\n\t\tchainId,\n\t\tquery: {\n\t\t\tenabled,\n\t\t\tretry: false,\n\t\t},\n\t});\n\n\t// If V1 fails, try with V0 ABI, see enabled query\n\tconst {\n\t\tdata: v0Data,\n\t\tisLoading: v0Loading,\n\t\terror: v0Error,\n\t} = useReadContract({\n\t\taddress: contractAddress,\n\t\tabi:\n\t\t\tcontractType === ContractType.ERC721\n\t\t\t\t? ERC721_SALE_ABI_V0\n\t\t\t\t: ERC1155_SALES_CONTRACT_ABI_V0,\n\t\tfunctionName,\n\t\targs: contractType === ContractType.ERC1155 ? [0n] : undefined,\n\t\tchainId,\n\t\tquery: {\n\t\t\tenabled: enabled && !!v1Error && !v1Loading, // Only try V0 if V1 failed\n\t\t\tretry: false,\n\t\t},\n\t});\n\n\treturn useMemo(() => {\n\t\tif (v1Loading || (v1Error && v0Loading)) {\n\t\t\treturn {\n\t\t\t\tversion: null,\n\t\t\t\tabi: null,\n\t\t\t\tcontractType: null,\n\t\t\t\tisLoading: true,\n\t\t\t\terror: null,\n\t\t\t};\n\t\t}\n\n\t\tif (v1Data && !v1Error) {\n\t\t\tif (contractType === ContractType.ERC721) {\n\t\t\t\treturn {\n\t\t\t\t\tversion: SalesContractVersion.V1,\n\t\t\t\t\tabi: ERC721_SALE_ABI_V1,\n\t\t\t\t\tcontractType: ContractType.ERC721,\n\t\t\t\t\tisLoading: false,\n\t\t\t\t\terror: null,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tversion: SalesContractVersion.V1,\n\t\t\t\tabi: ERC1155_SALES_CONTRACT_ABI_V1,\n\t\t\t\tcontractType: ContractType.ERC1155,\n\t\t\t\tisLoading: false,\n\t\t\t\terror: null,\n\t\t\t};\n\t\t}\n\n\t\tif (v0Data && !v0Error) {\n\t\t\tif (contractType === ContractType.ERC721) {\n\t\t\t\treturn {\n\t\t\t\t\tversion: SalesContractVersion.V0,\n\t\t\t\t\tabi: ERC721_SALE_ABI_V0,\n\t\t\t\t\tcontractType: ContractType.ERC721,\n\t\t\t\t\tisLoading: false,\n\t\t\t\t\terror: null,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tversion: SalesContractVersion.V0,\n\t\t\t\tabi: ERC1155_SALES_CONTRACT_ABI_V0,\n\t\t\t\tcontractType: ContractType.ERC1155,\n\t\t\t\tisLoading: false,\n\t\t\t\terror: null,\n\t\t\t};\n\t\t}\n\n\t\tconst error = v0Error || v1Error;\n\t\treturn {\n\t\t\tversion: null,\n\t\t\tabi: null,\n\t\t\tcontractType: null,\n\t\t\tisLoading: false,\n\t\t\terror: error as Error,\n\t\t};\n\t}, [v1Data, v1Error, v1Loading, v0Data, v0Error, v0Loading, contractType]);\n}\n"],"mappings":";;;;;;AAWA,IAAY,wEAAL;;;;AAGN;AAqDD,SAAgB,oBAAoB,EACnC,iBACA,cACA,SACA,UAAU,MACgB,EAA6B;CACvD,MAAM,eACL,iBAAiB,aAAa,SAAS,gBAAgB;CAExD,MAAM,EACL,MAAM,QACN,WAAW,WACX,OAAO,SACP,GAAG,gBAAgB;EACnB,SAAS;EACT,KACC,iBAAiB,aAAa,SAC3B,qBACA;EACJ;EACA,MAAM,iBAAiB,aAAa,UAAU,CAAC,EAAG,IAAG;EACrD;EACA,OAAO;GACN;GACA,OAAO;EACP;CACD,EAAC;CAGF,MAAM,EACL,MAAM,QACN,WAAW,WACX,OAAO,SACP,GAAG,gBAAgB;EACnB,SAAS;EACT,KACC,iBAAiB,aAAa,SAC3B,qBACA;EACJ;EACA,MAAM,iBAAiB,aAAa,UAAU,CAAC,EAAG,IAAG;EACrD;EACA,OAAO;GACN,SAAS,WAAW,CAAC,CAAC,WAAW,CAAC;GAClC,OAAO;EACP;CACD,EAAC;AAEF,QAAO,QAAQ,MAAM;AACpB,MAAI,aAAc,WAAW,UAC5B,QAAO;GACN,SAAS;GACT,KAAK;GACL,cAAc;GACd,WAAW;GACX,OAAO;EACP;AAGF,MAAI,UAAU,CAAC,SAAS;AACvB,OAAI,iBAAiB,aAAa,OACjC,QAAO;IACN,SAAS,qBAAqB;IAC9B,KAAK;IACL,cAAc,aAAa;IAC3B,WAAW;IACX,OAAO;GACP;AAEF,UAAO;IACN,SAAS,qBAAqB;IAC9B,KAAK;IACL,cAAc,aAAa;IAC3B,WAAW;IACX,OAAO;GACP;EACD;AAED,MAAI,UAAU,CAAC,SAAS;AACvB,OAAI,iBAAiB,aAAa,OACjC,QAAO;IACN,SAAS,qBAAqB;IAC9B,KAAK;IACL,cAAc,aAAa;IAC3B,WAAW;IACX,OAAO;GACP;AAEF,UAAO;IACN,SAAS,qBAAqB;IAC9B,KAAK;IACL,cAAc,aAAa;IAC3B,WAAW;IACX,OAAO;GACP;EACD;EAED,MAAM,QAAQ,WAAW;AACzB,SAAO;GACN,SAAS;GACT,KAAK;GACL,cAAc;GACd,WAAW;GACJ;EACP;CACD,GAAE;EAAC;EAAQ;EAAS;EAAW;EAAQ;EAAS;EAAW;CAAa,EAAC;AAC1E"}
1
+ {"version":3,"file":"contracts-BP_0vX48.js","names":[],"sources":["../src/react/hooks/contracts/useSalesContractABI.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport type { Address } from 'viem';\nimport { useReadContract } from 'wagmi';\nimport {\n\tERC721_SALE_ABI_V0,\n\tERC721_SALE_ABI_V1,\n\tERC1155_SALES_CONTRACT_ABI_V0,\n\tERC1155_SALES_CONTRACT_ABI_V1,\n} from '../../../utils/abi';\nimport { ContractType } from '../../_internal';\n\nexport enum SalesContractVersion {\n\tV0 = 'v0',\n\tV1 = 'v1',\n}\n\ninterface UseSalesContractABIProps {\n\tcontractAddress: Address;\n\tcontractType: ContractType.ERC721 | ContractType.ERC1155;\n\tchainId: number;\n\tenabled?: boolean;\n}\n\ntype UseSalesContractABIResult =\n\t| {\n\t\t\tversion: null;\n\t\t\tabi: null;\n\t\t\tcontractType: null;\n\t\t\tisLoading: true;\n\t\t\terror: null;\n\t }\n\t| {\n\t\t\tversion: SalesContractVersion.V0;\n\t\t\tabi: typeof ERC721_SALE_ABI_V0;\n\t\t\tcontractType: ContractType.ERC721;\n\t\t\tisLoading: false;\n\t\t\terror: null;\n\t }\n\t| {\n\t\t\tversion: SalesContractVersion.V0;\n\t\t\tabi: typeof ERC1155_SALES_CONTRACT_ABI_V0;\n\t\t\tcontractType: ContractType.ERC1155;\n\t\t\tisLoading: false;\n\t\t\terror: null;\n\t }\n\t| {\n\t\t\tversion: SalesContractVersion.V1;\n\t\t\tabi: typeof ERC721_SALE_ABI_V1;\n\t\t\tcontractType: ContractType.ERC721;\n\t\t\tisLoading: false;\n\t\t\terror: null;\n\t }\n\t| {\n\t\t\tversion: SalesContractVersion.V1;\n\t\t\tabi: typeof ERC1155_SALES_CONTRACT_ABI_V1;\n\t\t\tcontractType: ContractType.ERC1155;\n\t\t\tisLoading: false;\n\t\t\terror: null;\n\t }\n\t| {\n\t\t\tversion: null;\n\t\t\tabi: null;\n\t\t\tcontractType: null;\n\t\t\tisLoading: false;\n\t\t\terror: Error;\n\t };\n\nexport function useSalesContractABI({\n\tcontractAddress,\n\tcontractType,\n\tchainId,\n\tenabled = true,\n}: UseSalesContractABIProps): UseSalesContractABIResult {\n\tconst functionName =\n\t\tcontractType === ContractType.ERC721 ? 'saleDetails' : 'tokenSaleDetails';\n\n\tconst {\n\t\tdata: v1Data,\n\t\tisLoading: v1Loading,\n\t\terror: v1Error,\n\t} = useReadContract({\n\t\taddress: contractAddress,\n\t\tabi:\n\t\t\tcontractType === ContractType.ERC721\n\t\t\t\t? ERC721_SALE_ABI_V1\n\t\t\t\t: ERC1155_SALES_CONTRACT_ABI_V1,\n\t\tfunctionName,\n\t\targs: contractType === ContractType.ERC1155 ? [0n] : undefined,\n\t\tchainId,\n\t\tquery: {\n\t\t\tenabled,\n\t\t\tretry: false,\n\t\t},\n\t});\n\n\t// If V1 fails, try with V0 ABI, see enabled query\n\tconst {\n\t\tdata: v0Data,\n\t\tisLoading: v0Loading,\n\t\terror: v0Error,\n\t} = useReadContract({\n\t\taddress: contractAddress,\n\t\tabi:\n\t\t\tcontractType === ContractType.ERC721\n\t\t\t\t? ERC721_SALE_ABI_V0\n\t\t\t\t: ERC1155_SALES_CONTRACT_ABI_V0,\n\t\tfunctionName,\n\t\targs: contractType === ContractType.ERC1155 ? [0n] : undefined,\n\t\tchainId,\n\t\tquery: {\n\t\t\tenabled: enabled && !!v1Error && !v1Loading, // Only try V0 if V1 failed\n\t\t\tretry: false,\n\t\t},\n\t});\n\n\treturn useMemo(() => {\n\t\tif (v1Loading || (v1Error && v0Loading)) {\n\t\t\treturn {\n\t\t\t\tversion: null,\n\t\t\t\tabi: null,\n\t\t\t\tcontractType: null,\n\t\t\t\tisLoading: true,\n\t\t\t\terror: null,\n\t\t\t};\n\t\t}\n\n\t\tif (v1Data && !v1Error) {\n\t\t\tif (contractType === ContractType.ERC721) {\n\t\t\t\treturn {\n\t\t\t\t\tversion: SalesContractVersion.V1,\n\t\t\t\t\tabi: ERC721_SALE_ABI_V1,\n\t\t\t\t\tcontractType: ContractType.ERC721,\n\t\t\t\t\tisLoading: false,\n\t\t\t\t\terror: null,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tversion: SalesContractVersion.V1,\n\t\t\t\tabi: ERC1155_SALES_CONTRACT_ABI_V1,\n\t\t\t\tcontractType: ContractType.ERC1155,\n\t\t\t\tisLoading: false,\n\t\t\t\terror: null,\n\t\t\t};\n\t\t}\n\n\t\tif (v0Data && !v0Error) {\n\t\t\tif (contractType === ContractType.ERC721) {\n\t\t\t\treturn {\n\t\t\t\t\tversion: SalesContractVersion.V0,\n\t\t\t\t\tabi: ERC721_SALE_ABI_V0,\n\t\t\t\t\tcontractType: ContractType.ERC721,\n\t\t\t\t\tisLoading: false,\n\t\t\t\t\terror: null,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tversion: SalesContractVersion.V0,\n\t\t\t\tabi: ERC1155_SALES_CONTRACT_ABI_V0,\n\t\t\t\tcontractType: ContractType.ERC1155,\n\t\t\t\tisLoading: false,\n\t\t\t\terror: null,\n\t\t\t};\n\t\t}\n\n\t\tconst error = v0Error || v1Error;\n\t\treturn {\n\t\t\tversion: null,\n\t\t\tabi: null,\n\t\t\tcontractType: null,\n\t\t\tisLoading: false,\n\t\t\terror: error as Error,\n\t\t};\n\t}, [v1Data, v1Error, v1Loading, v0Data, v0Error, v0Loading, contractType]);\n}\n"],"mappings":";;;;;;AAWA,IAAY,wEAAL;AACN;AACA;;;AAsDD,SAAgB,oBAAoB,EACnC,iBACA,cACA,SACA,UAAU,QAC6C;CACvD,MAAM,eACL,iBAAiB,aAAa,SAAS,gBAAgB;CAExD,MAAM,EACL,MAAM,QACN,WAAW,WACX,OAAO,YACJ,gBAAgB;EACnB,SAAS;EACT,KACC,iBAAiB,aAAa,SAC3B,qBACA;EACJ;EACA,MAAM,iBAAiB,aAAa,UAAU,CAAC,GAAG,GAAG;EACrD;EACA,OAAO;GACN;GACA,OAAO;GACP;EACD,CAAC;CAGF,MAAM,EACL,MAAM,QACN,WAAW,WACX,OAAO,YACJ,gBAAgB;EACnB,SAAS;EACT,KACC,iBAAiB,aAAa,SAC3B,qBACA;EACJ;EACA,MAAM,iBAAiB,aAAa,UAAU,CAAC,GAAG,GAAG;EACrD;EACA,OAAO;GACN,SAAS,WAAW,CAAC,CAAC,WAAW,CAAC;GAClC,OAAO;GACP;EACD,CAAC;AAEF,QAAO,cAAc;AACpB,MAAI,aAAc,WAAW,UAC5B,QAAO;GACN,SAAS;GACT,KAAK;GACL,cAAc;GACd,WAAW;GACX,OAAO;GACP;AAGF,MAAI,UAAU,CAAC,SAAS;AACvB,OAAI,iBAAiB,aAAa,OACjC,QAAO;IACN,SAAS,qBAAqB;IAC9B,KAAK;IACL,cAAc,aAAa;IAC3B,WAAW;IACX,OAAO;IACP;AAEF,UAAO;IACN,SAAS,qBAAqB;IAC9B,KAAK;IACL,cAAc,aAAa;IAC3B,WAAW;IACX,OAAO;IACP;;AAGF,MAAI,UAAU,CAAC,SAAS;AACvB,OAAI,iBAAiB,aAAa,OACjC,QAAO;IACN,SAAS,qBAAqB;IAC9B,KAAK;IACL,cAAc,aAAa;IAC3B,WAAW;IACX,OAAO;IACP;AAEF,UAAO;IACN,SAAS,qBAAqB;IAC9B,KAAK;IACL,cAAc,aAAa;IAC3B,WAAW;IACX,OAAO;IACP;;AAIF,SAAO;GACN,SAAS;GACT,KAAK;GACL,cAAc;GACd,WAAW;GACX,OANa,WAAW;GAOxB;IACC;EAAC;EAAQ;EAAS;EAAW;EAAQ;EAAS;EAAW;EAAa,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { MarketplaceWalletType } from "./builder.gen-B9wR2nvF.js";
2
- import { MissingConfigError } from "./transaction-CC2KxNF6.js";
3
- import { apple, appleWaas, coinbaseWallet, ecosystemWallet, email, emailWaas, facebook, getConnectWallets, getDefaultChains, google, googleWaas, sequence, twitch, walletConnect } from "@0xsequence/connect";
2
+ import { networkToWagmiChain } from "./networkconfigToWagmiChain-DbUf6HiO.js";
3
+ import { MissingConfigError } from "./transaction-DZUW5RHu.js";
4
4
  import { allNetworks, findNetworkConfig } from "@0xsequence/network";
5
5
  import { cookieStorage, createConfig, createStorage, http } from "wagmi";
6
+ import { apple, appleWaas, coinbaseWallet, ecosystemWallet, email, emailWaas, facebook, getConnectWallets, google, googleWaas, sequence, twitch, walletConnect } from "@0xsequence/connect";
6
7
  import React from "react";
7
8
 
8
9
  //#region src/react/_internal/consts.ts
@@ -145,14 +146,8 @@ function getWagmiChainsAndTransports({ marketplaceConfig, sdkConfig }) {
145
146
  transports
146
147
  };
147
148
  }
148
- function getAllCollections(marketConfig) {
149
- return [...marketConfig.market.collections, ...marketConfig.shop.collections];
150
- }
151
- function getChainConfigs(marketConfig) {
152
- const supportedChainIds = new Set(getAllCollections(marketConfig).map((c) => c.chainId));
153
- if (supportedChainIds.size === 0) supportedChainIds.add(DEFAULT_NETWORK);
154
- const chains = getDefaultChains([...supportedChainIds]);
155
- return chains;
149
+ function getChainConfigs(_marketConfig) {
150
+ return Object.values(allNetworks).map(networkToWagmiChain);
156
151
  }
157
152
  function getTransportConfigs(chains, projectAccessKey, nodeGatewayEnv, nodeGatewayUrl) {
158
153
  return chains.reduce((acc, chain) => {
@@ -173,4 +168,4 @@ function getTransportConfigs(chains, projectAccessKey, nodeGatewayEnv, nodeGatew
173
168
 
174
169
  //#endregion
175
170
  export { DEFAULT_NETWORK, createWagmiConfig, getConnectors, getEcosystemConnector, getWaasConnectors, getWagmiChainsAndTransports };
176
- //# sourceMappingURL=create-config-6uynwTeb.js.map
171
+ //# sourceMappingURL=create-config-CIfejoCk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-config-CIfejoCk.js","names":["wallets: Wallet[]","rpcUrl: string"],"sources":["../src/react/_internal/consts.ts","../src/react/_internal/wagmi/get-connectors.ts","../src/react/_internal/wagmi/create-config.ts"],"sourcesContent":["export const DEFAULT_NETWORK = 137;\n","import {\n\tapple,\n\tappleWaas,\n\tcoinbaseWallet,\n\tecosystemWallet,\n\temail,\n\temailWaas,\n\tfacebook,\n\tgetConnectWallets,\n\tgoogle,\n\tgoogleWaas,\n\ttype SequenceOptions,\n\tsequence,\n\ttwitch,\n\ttype Wallet,\n\twalletConnect,\n} from '@0xsequence/connect';\nimport React, { type FunctionComponent } from 'react';\nimport type { CreateConnectorFn } from 'wagmi';\nimport type { Env, SdkConfig } from '../../../types/index';\nimport type { MarketplaceConfig } from '../../../types/new-marketplace-types';\nimport { MissingConfigError } from '../../../utils/_internal/error/transaction';\nimport { MarketplaceWalletType } from '../api/builder.gen';\nimport { DEFAULT_NETWORK } from '../consts';\n\nexport function getConnectors({\n\tmarketplaceConfig,\n\tsdkConfig,\n\twalletType,\n}: {\n\tmarketplaceConfig: MarketplaceConfig;\n\tsdkConfig: SdkConfig;\n\twalletType: MarketplaceWalletType;\n}): CreateConnectorFn[] {\n\tconst connectors = commonConnectors(marketplaceConfig, sdkConfig);\n\n\tif (walletType === MarketplaceWalletType.UNIVERSAL) {\n\t\tconnectors.push(...getUniversalWalletConfigs(sdkConfig, marketplaceConfig));\n\t} else if (walletType === MarketplaceWalletType.EMBEDDED) {\n\t\tconnectors.push(...getWaasConnectors(sdkConfig, marketplaceConfig));\n\t} else if (walletType === MarketplaceWalletType.ECOSYSTEM) {\n\t\tconnectors.push(getEcosystemConnector(marketplaceConfig, sdkConfig));\n\t} else {\n\t\tthrow new Error('Invalid wallet type');\n\t}\n\n\treturn getConnectWallets(sdkConfig.projectAccessKey, connectors);\n}\n\nfunction commonConnectors(\n\tmarketplaceConfig: MarketplaceConfig,\n\tsdkConfig: SdkConfig,\n) {\n\tconst wallets = [];\n\tconst { title: appName } = marketplaceConfig.settings;\n\tconst walletOptions = marketplaceConfig.settings.walletOptions;\n\tconst walletConnectProjectId = sdkConfig.walletConnectProjectId;\n\n\tif (walletOptions.connectors.includes('coinbase')) {\n\t\twallets.push(\n\t\t\tcoinbaseWallet({\n\t\t\t\tappName,\n\t\t\t}),\n\t\t);\n\t}\n\n\tif (\n\t\twalletConnectProjectId &&\n\t\twalletOptions.connectors.includes('walletconnect')\n\t) {\n\t\twallets.push(\n\t\t\twalletConnect({\n\t\t\t\tprojectId: walletConnectProjectId,\n\t\t\t}),\n\t\t);\n\t}\n\n\treturn wallets;\n}\n\nfunction getUniversalWalletConfigs(\n\tconfig: SdkConfig,\n\tmarketplaceConfig: MarketplaceConfig,\n): Wallet[] {\n\tconst sequenceWalletOverrides =\n\t\tconfig._internal?.overrides?.api?.sequenceWallet;\n\tconst sequenceWalletUrl =\n\t\tsequenceWalletOverrides?.url ||\n\t\tgetSequenceWalletURL(sequenceWalletOverrides?.env || 'production');\n\tconst projectAccessKey =\n\t\tsequenceWalletOverrides?.accessKey || config.projectAccessKey;\n\n\tconst sequenceWalletOptions = {\n\t\twalletAppURL: sequenceWalletUrl,\n\t\tdefaultNetwork: DEFAULT_NETWORK,\n\t\tconnect: {\n\t\t\tprojectAccessKey,\n\t\t\tapp: marketplaceConfig.settings.title,\n\t\t\tsettings: {\n\t\t\t\t// TODO: make a separate config for this?\n\t\t\t\tbannerUrl: marketplaceConfig.market.ogImage,\n\t\t\t},\n\t\t},\n\t} satisfies SequenceOptions;\n\n\treturn [\n\t\tsequence(sequenceWalletOptions),\n\t\temail(sequenceWalletOptions),\n\t\tfacebook(sequenceWalletOptions),\n\t\tgoogle(sequenceWalletOptions),\n\t\tapple(sequenceWalletOptions),\n\t\ttwitch(sequenceWalletOptions),\n\t] as const;\n}\n\nexport function getWaasConnectors(\n\tconfig: SdkConfig,\n\tmarketplaceConfig: MarketplaceConfig,\n): Wallet[] {\n\tconst { projectAccessKey } = config;\n\n\tconst waasConfigKey =\n\t\tmarketplaceConfig.settings.walletOptions.embedded?.tenantKey;\n\n\tif (!waasConfigKey)\n\t\tthrow new MissingConfigError(\n\t\t\t'Embedded wallet config is missing, please check your access key',\n\t\t);\n\n\tconst waasOptions = marketplaceConfig.settings.walletOptions.oidcIssuers;\n\tconst googleClientId = waasOptions.google;\n\tconst appleClientId = waasOptions.apple;\n\tconst appleRedirectURI =\n\t\ttypeof window !== 'undefined'\n\t\t\t? `${window.location.origin}${window.location.pathname}`\n\t\t\t: undefined;\n\n\tconst wallets: Wallet[] = [];\n\n\tif (marketplaceConfig.settings.walletOptions.embedded?.emailEnabled) {\n\t\twallets.push(\n\t\t\temailWaas({\n\t\t\t\tprojectAccessKey,\n\t\t\t\twaasConfigKey,\n\t\t\t}),\n\t\t);\n\t}\n\n\tif (googleClientId) {\n\t\twallets.push(\n\t\t\tgoogleWaas({\n\t\t\t\tprojectAccessKey,\n\t\t\t\tgoogleClientId,\n\t\t\t\twaasConfigKey,\n\t\t\t\tnetwork: DEFAULT_NETWORK,\n\t\t\t}),\n\t\t);\n\t}\n\n\tif (appleClientId) {\n\t\twallets.push(\n\t\t\tappleWaas({\n\t\t\t\tprojectAccessKey,\n\t\t\t\tappleClientId,\n\t\t\t\tappleRedirectURI,\n\t\t\t\twaasConfigKey,\n\t\t\t\tnetwork: DEFAULT_NETWORK,\n\t\t\t}),\n\t\t);\n\t}\n\n\treturn wallets;\n}\n\nexport function getEcosystemConnector(\n\tmarketplaceConfig: MarketplaceConfig,\n\tsdkConfig: SdkConfig,\n): Wallet {\n\tconst ecosystemOptions = marketplaceConfig.settings.walletOptions.ecosystem;\n\tif (!ecosystemOptions) throw new MissingConfigError('ecosystem');\n\tconst { walletAppName, walletUrl, logoDarkUrl, logoLightUrl } =\n\t\tecosystemOptions;\n\n\treturn ecosystemWallet({\n\t\tprojectAccessKey: sdkConfig.projectAccessKey,\n\t\twalletUrl,\n\t\tname: walletAppName,\n\t\tdefaultNetwork: DEFAULT_NETWORK,\n\t\tlogoDark: getEcosystemLogo(logoDarkUrl, walletAppName),\n\t\tlogoLight: getEcosystemLogo(logoLightUrl, walletAppName),\n\t});\n}\n\nfunction getEcosystemLogo(\n\turl: string | undefined,\n\tname: string,\n): FunctionComponent {\n\tif (!url) return () => null;\n\tconst Logo = () =>\n\t\tReact.createElement('img', { src: url, alt: name, width: 32, height: 32 });\n\tLogo.displayName = 'EcosystemLogo';\n\treturn Logo;\n}\n\nfunction getSequenceWalletURL(env: Env) {\n\tswitch (env) {\n\t\tcase 'development':\n\t\t\treturn 'https://dev.sequence.app';\n\t\tcase 'next':\n\t\t\treturn 'https://next.sequence.app';\n\t\t// biome-ignore lint/complexity/noUselessSwitchCase: Production case kept for readability alongside other environments\n\t\tcase 'production':\n\t\tdefault:\n\t\t\treturn 'https://sequence.app';\n\t}\n}\n","import { allNetworks, findNetworkConfig } from '@0xsequence/network';\nimport type { Chain, Transport } from 'viem';\nimport { cookieStorage, createConfig, createStorage, http } from 'wagmi';\nimport type { Env, SdkConfig } from '../../../types/index';\nimport type { MarketplaceConfig } from '../../../types/new-marketplace-types';\nimport { networkToWagmiChain } from '../../../utils/networkconfigToWagmiChain';\nimport { getConnectors } from './get-connectors';\n\nexport const createWagmiConfig = (\n\tmarketplaceConfig: MarketplaceConfig,\n\tsdkConfig: SdkConfig,\n\tssr?: boolean,\n) => {\n\tconst { chains, transports } = getWagmiChainsAndTransports({\n\t\tmarketplaceConfig,\n\t\tsdkConfig,\n\t});\n\n\tconst walletType = marketplaceConfig.settings.walletOptions.walletType;\n\n\tconst connectors = getConnectors({\n\t\tmarketplaceConfig,\n\t\tsdkConfig,\n\t\twalletType,\n\t});\n\n\tconst multiInjectedProviderDiscovery =\n\t\tmarketplaceConfig.settings.walletOptions.includeEIP6963Wallets;\n\n\treturn createConfig({\n\t\tconnectors,\n\t\tchains,\n\t\tssr,\n\t\tmultiInjectedProviderDiscovery,\n\t\tstorage: ssr\n\t\t\t? createStorage({\n\t\t\t\t\tstorage: cookieStorage,\n\t\t\t\t})\n\t\t\t: undefined,\n\t\ttransports,\n\t});\n};\n\nexport function getWagmiChainsAndTransports({\n\tmarketplaceConfig,\n\tsdkConfig,\n}: {\n\tmarketplaceConfig: MarketplaceConfig;\n\tsdkConfig: SdkConfig;\n}) {\n\tconst chains = getChainConfigs(marketplaceConfig);\n\tconst nodeGatewayOverrides = sdkConfig._internal?.overrides?.api?.nodeGateway;\n\tconst nodeGatewayEnv = nodeGatewayOverrides?.env ?? 'production';\n\tconst nodeGatewayUrl = nodeGatewayOverrides?.url;\n\tconst projectAccessKey =\n\t\tnodeGatewayOverrides?.accessKey ?? sdkConfig.projectAccessKey;\n\n\tconst transports = getTransportConfigs(\n\t\tchains,\n\t\tprojectAccessKey,\n\t\tnodeGatewayEnv,\n\t\tnodeGatewayUrl,\n\t);\n\n\treturn { chains, transports };\n}\n\nfunction getChainConfigs(\n\t_marketConfig: MarketplaceConfig,\n): [Chain, ...Chain[]] {\n\tconst chains = Object.values(allNetworks).map(networkToWagmiChain);\n\n\treturn chains as [Chain, ...Chain[]];\n}\n\nfunction getTransportConfigs(\n\tchains: [Chain, ...Chain[]],\n\tprojectAccessKey: string,\n\tnodeGatewayEnv: Env | undefined,\n\tnodeGatewayUrl?: string,\n): Record<number, Transport> {\n\treturn chains.reduce(\n\t\t(acc, chain) => {\n\t\t\tconst network = findNetworkConfig(allNetworks, chain.id);\n\t\t\tif (network) {\n\t\t\t\tlet rpcUrl: string;\n\t\t\t\tif (nodeGatewayUrl) {\n\t\t\t\t\t// Use manual URL if provided\n\t\t\t\t\trpcUrl = nodeGatewayUrl;\n\t\t\t\t} else {\n\t\t\t\t\t// Use default URL with environment prefix\n\t\t\t\t\trpcUrl = network.rpcUrl;\n\t\t\t\t\tif (nodeGatewayEnv === 'development') {\n\t\t\t\t\t\trpcUrl = rpcUrl.replace('nodes.', 'dev-nodes.');\n\t\t\t\t\t}\n\t\t\t\t\tif (!network.rpcUrl.endsWith(projectAccessKey))\n\t\t\t\t\t\trpcUrl = `${rpcUrl}/${projectAccessKey}`;\n\t\t\t\t}\n\t\t\t\tacc[chain.id] = http(rpcUrl);\n\t\t\t}\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record<number, Transport>,\n\t);\n}\n"],"mappings":"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"}