@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
@@ -27,6 +27,8 @@ class CollectableKeys {
27
27
  static offersCount = [...CollectableKeys.all, 'offersCount'] as const;
28
28
  static listings = [...CollectableKeys.all, 'listings'] as const;
29
29
  static listingsCount = [...CollectableKeys.all, 'listingsCount'] as const;
30
+ static listPrimarySaleItems = ['listPrimarySaleItems'] as const;
31
+ static primarySaleItemsCount = ['primarySaleItemsCount'] as const;
30
32
  static filter = [...CollectableKeys.all, 'filter'] as const;
31
33
  static counts = [...CollectableKeys.all, 'counts'] as const;
32
34
  static collectibleActivities = [
@@ -44,6 +46,18 @@ class CollectionKeys {
44
46
  ...CollectionKeys.all,
45
47
  'collectionActivities',
46
48
  ] as const;
49
+ static collectionItemsOrders = [
50
+ ...CollectionKeys.all,
51
+ 'collectionItemsOrders',
52
+ ] as const;
53
+ static collectionItemsOrdersCount = [
54
+ ...CollectionKeys.all,
55
+ 'collectionItemsOrdersCount',
56
+ ] as const;
57
+ static getCountOfFilteredOrders = [
58
+ ...CollectionKeys.all,
59
+ 'getCountOfFilteredOrders',
60
+ ] as const;
47
61
  }
48
62
 
49
63
  // biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
@@ -54,6 +68,7 @@ class BalanceQueries {
54
68
  ...BalanceQueries.all,
55
69
  'collectionBalanceDetails',
56
70
  ] as const;
71
+ static inventory = ['inventory'] as const;
57
72
  }
58
73
 
59
74
  // biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
@@ -82,6 +97,7 @@ class TokenKeys {
82
97
  static all = ['tokens'] as const;
83
98
  static metadata = [...TokenKeys.all, 'metadata'] as const;
84
99
  static supplies = [...TokenKeys.all, 'supplies'] as const;
100
+ static ranges = [...TokenKeys.all, 'ranges'] as const;
85
101
  }
86
102
 
87
103
  // biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
@@ -33,7 +33,7 @@ const indexerURL = (chain: ChainNameOrId, env: Env = 'production') => {
33
33
  return stringTemplate(SERVICES.indexer, { network: network, prefix });
34
34
  };
35
35
 
36
- const marketplaceApiURL = (env: Env = 'production') => {
36
+ export const marketplaceApiURL = (env: Env = 'production') => {
37
37
  const prefix = getPrefix(env);
38
38
  return stringTemplate(SERVICES.marketplaceApi, { prefix });
39
39
  };
@@ -51,6 +51,7 @@ type BuyModalOpenedProps = Omit<
51
51
  | 'skipNativeBalanceCheck'
52
52
  | 'nativeTokenAddress'
53
53
  | 'successActionButtons'
54
+ | 'hideQuantitySelector'
54
55
  > & {
55
56
  buyAnalyticsId: string;
56
57
  };
@@ -61,4 +61,18 @@ export type ValuesOptional<T> = {
61
61
  [K in keyof T]: T[K] | undefined;
62
62
  };
63
63
 
64
+ export type RequiredKeys<T> = {
65
+ [K in keyof T]-?: T[K];
66
+ };
67
+
68
+ export type QueryKeyArgs<T> = {
69
+ [K in keyof Required<T>]: T[K] | undefined;
70
+ };
71
+
64
72
  export type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
73
+
74
+ /**
75
+ * Extracts only API-relevant fields from query params, excluding SDK config and query options
76
+ * Converts optional properties (prop?: T) to explicit union types (prop: T | undefined)
77
+ */
78
+ export type ApiArgs<T> = ValuesOptional<Omit<T, 'config' | 'query'>>;
@@ -52,3 +52,6 @@ export function isTransactionStep(step: Step): step is TransactionStep {
52
52
  StepType.createListing,
53
53
  ].includes(step.id);
54
54
  }
55
+
56
+ export const clamp = (val: number, min: number, max: number) =>
57
+ Math.max(min, Math.min(max, val));
@@ -1,3 +1,4 @@
1
+ import { allNetworks } from '@0xsequence/network';
1
2
  import { polygon } from 'viem/chains';
2
3
  import { beforeEach, describe, expect, it } from 'vitest';
3
4
  import { type Config, cookieStorage } from 'wagmi';
@@ -13,6 +14,7 @@ import { createWagmiConfig } from '../create-config';
13
14
  describe('createWagmiConfig', () => {
14
15
  let baseMarketplace: MarketplaceConfig;
15
16
  let baseSdkConfig: SdkConfig;
17
+ const expectedNetworkCount = Object.keys(allNetworks).length;
16
18
 
17
19
  beforeEach(() => {
18
20
  baseMarketplace = {
@@ -44,10 +46,11 @@ describe('createWagmiConfig', () => {
44
46
  enabled: true,
45
47
  bannerUrl: 'https://test.com/banner.jpg',
46
48
  ogImage: '',
49
+ private: false,
47
50
  collections: [
48
51
  {
49
52
  contractType: ContractType.ERC721,
50
- marketplaceType: 'market',
53
+ cardType: 'market',
51
54
  chainId: polygon.id,
52
55
  bannerUrl: '',
53
56
  itemsAddress: '0x1234567890123456789012345678901234567890',
@@ -58,6 +61,7 @@ describe('createWagmiConfig', () => {
58
61
  feePercentage: 0,
59
62
  destinationMarketplace: OrderbookKind.sequence_marketplace_v2,
60
63
  currencyOptions: [],
64
+ private: false,
61
65
  } as MarketCollection,
62
66
  ],
63
67
  },
@@ -66,6 +70,7 @@ describe('createWagmiConfig', () => {
66
70
  bannerUrl: '',
67
71
  ogImage: '',
68
72
  collections: [],
73
+ private: false,
69
74
  },
70
75
  };
71
76
 
@@ -87,9 +92,15 @@ describe('createWagmiConfig', () => {
87
92
  );
88
93
  expect(configWithEmptyCollections.chains).toBeDefined();
89
94
  expect(Array.isArray(configWithEmptyCollections.chains)).toBe(true);
90
- expect(configWithEmptyCollections.chains).toHaveLength(1);
91
- // Default chain is polygon if no collections are specified
92
- expect(configWithEmptyCollections.chains[0].id).toBe(polygon.id);
95
+ expect(configWithEmptyCollections.chains).toHaveLength(
96
+ expectedNetworkCount,
97
+ );
98
+ // All networks from allNetworks are now included
99
+ expect(
100
+ configWithEmptyCollections.chains.find(
101
+ (chain) => chain.id === polygon.id,
102
+ ),
103
+ ).toBeDefined();
93
104
  });
94
105
 
95
106
  it('should create config with universal wallet setup', () => {
@@ -113,7 +124,7 @@ describe('createWagmiConfig', () => {
113
124
 
114
125
  const config = createWagmiConfig(marketplaceConfig, sdkConfig);
115
126
  expect(config.connectors).toBeDefined();
116
- expect(config.chains).toHaveLength(1);
127
+ expect(config.chains).toHaveLength(expectedNetworkCount);
117
128
  });
118
129
 
119
130
  it('should create config with embedded wallet setup', () => {
@@ -144,7 +155,7 @@ describe('createWagmiConfig', () => {
144
155
 
145
156
  const config = createWagmiConfig(marketplaceConfig, sdkConfig);
146
157
  expect(config.connectors).toBeDefined();
147
- expect(config.chains).toHaveLength(1);
158
+ expect(config.chains).toHaveLength(expectedNetworkCount);
148
159
  });
149
160
 
150
161
  it('should respect EIP6963 wallet inclusion setting', () => {
@@ -163,7 +174,7 @@ describe('createWagmiConfig', () => {
163
174
 
164
175
  const config = createWagmiConfig(marketplaceConfig, baseSdkConfig);
165
176
  expect(config.connectors).toBeDefined();
166
- expect(config.chains).toHaveLength(1);
177
+ expect(config.chains).toHaveLength(expectedNetworkCount);
167
178
  });
168
179
 
169
180
  it('should create SSR compatible config when ssr flag is true', async () => {
@@ -203,7 +214,7 @@ describe('createWagmiConfig', () => {
203
214
 
204
215
  const config = createWagmiConfig(marketplaceConfig, baseSdkConfig);
205
216
  expect(config.connectors).toBeDefined();
206
- expect(config.chains).toHaveLength(1);
217
+ expect(config.chains).toHaveLength(expectedNetworkCount);
207
218
  });
208
219
  });
209
220
  });
@@ -1,10 +1,9 @@
1
- import { getDefaultChains } from '@0xsequence/connect';
2
1
  import { allNetworks, findNetworkConfig } from '@0xsequence/network';
3
2
  import type { Chain, Transport } from 'viem';
4
3
  import { cookieStorage, createConfig, createStorage, http } from 'wagmi';
5
4
  import type { Env, SdkConfig } from '../../../types/index';
6
5
  import type { MarketplaceConfig } from '../../../types/new-marketplace-types';
7
- import { DEFAULT_NETWORK } from '../consts';
6
+ import { networkToWagmiChain } from '../../../utils/networkconfigToWagmiChain';
8
7
  import { getConnectors } from './get-connectors';
9
8
 
10
9
  export const createWagmiConfig = (
@@ -66,22 +65,12 @@ export function getWagmiChainsAndTransports({
66
65
  return { chains, transports };
67
66
  }
68
67
 
69
- function getAllCollections(marketConfig: MarketplaceConfig) {
70
- return [...marketConfig.market.collections, ...marketConfig.shop.collections];
71
- }
72
-
73
- function getChainConfigs(marketConfig: MarketplaceConfig): [Chain, ...Chain[]] {
74
- const supportedChainIds = new Set(
75
- getAllCollections(marketConfig).map((c) => c.chainId),
76
- );
77
-
78
- if (supportedChainIds.size === 0) {
79
- supportedChainIds.add(DEFAULT_NETWORK);
80
- }
81
-
82
- const chains = getDefaultChains([...supportedChainIds]);
68
+ function getChainConfigs(
69
+ _marketConfig: MarketplaceConfig,
70
+ ): [Chain, ...Chain[]] {
71
+ const chains = Object.values(allNetworks).map(networkToWagmiChain);
83
72
 
84
- return chains;
73
+ return chains as [Chain, ...Chain[]];
85
74
  }
86
75
 
87
76
  function getTransportConfigs(
@@ -7,6 +7,7 @@ exports[`useMarketplaceConfig > should fetch marketplace config and styles succe
7
7
  "collections": [
8
8
  {
9
9
  "bannerUrl": "https://example.com/market-banner.png",
10
+ "cardType": "market",
10
11
  "chainId": 1,
11
12
  "contractType": "ERC721",
12
13
  "createdAt": "2025-03-16T13:04:16.098Z",
@@ -31,13 +32,13 @@ exports[`useMarketplaceConfig > should fetch marketplace config and styles succe
31
32
  },
32
33
  "id": 1,
33
34
  "itemsAddress": "0x0000000000000000000000000000000000000000",
34
- "marketplaceType": "market",
35
35
  "private": false,
36
36
  "projectId": 1,
37
37
  "updatedAt": "2025-03-16T13:04:16.098Z",
38
38
  },
39
39
  {
40
40
  "bannerUrl": "https://example.com/collection-banner.png",
41
+ "cardType": "market",
41
42
  "chainId": 137,
42
43
  "contractType": "ERC1155",
43
44
  "createdAt": "2025-03-16T13:04:16.098Z",
@@ -66,7 +67,6 @@ exports[`useMarketplaceConfig > should fetch marketplace config and styles succe
66
67
  },
67
68
  "id": 2,
68
69
  "itemsAddress": "0x1234567890123456789012345678901234567890",
69
- "marketplaceType": "market",
70
70
  "private": false,
71
71
  "projectId": 1,
72
72
  "updatedAt": "2025-03-16T13:04:16.098Z",
@@ -105,12 +105,12 @@ exports[`useMarketplaceConfig > should fetch marketplace config and styles succe
105
105
  "collections": [
106
106
  {
107
107
  "bannerUrl": "https://example.com/shop-banner.png",
108
+ "cardType": "shop",
108
109
  "chainId": 1,
109
110
  "createdAt": "2025-03-16T13:04:16.098Z",
110
111
  "customTokenIds": [],
111
112
  "id": 1,
112
113
  "itemsAddress": "0x0000000000000000000000000000000000000000",
113
- "marketplaceType": "shop",
114
114
  "name": "Mock Shop Collection",
115
115
  "private": false,
116
116
  "projectId": 1,
@@ -125,12 +125,12 @@ exports[`useMarketplaceConfig > should fetch marketplace config and styles succe
125
125
  },
126
126
  {
127
127
  "bannerUrl": "https://example.com/polygon-shop-banner.png",
128
+ "cardType": "shop",
128
129
  "chainId": 137,
129
130
  "createdAt": "2025-03-16T13:04:16.098Z",
130
131
  "customTokenIds": [],
131
132
  "id": 2,
132
133
  "itemsAddress": "0x1234567890123456789012345678901234567890",
133
- "marketplaceType": "shop",
134
134
  "name": "Polygon Shop Collection",
135
135
  "private": false,
136
136
  "projectId": 1,
@@ -1,5 +1,5 @@
1
1
  import { useQuery } from '@tanstack/react-query';
2
- import { marketplaceConfigOptions } from '../../queries/marketplaceConfig';
2
+ import { marketplaceConfigOptions } from '../../queries/market/marketplaceConfig';
3
3
  import { useConfig } from '../config/useConfig';
4
4
 
5
5
  export const useMarketplaceConfig = () => {
@@ -112,7 +112,7 @@ describe('useBalanceOfCollectible with LAOS', () => {
112
112
  expect(result.current.isSuccess).toBe(true);
113
113
  });
114
114
 
115
- // Should return LAOS API response (first balance)
115
+ // Should return LAOS API response (array of balances)
116
116
  expect(result.current.data).toEqual(mockTokenBalancesResponse.balances[0]);
117
117
  expect(result.current.data?.balance).toBe('5');
118
118
  expect(result.current.data?.contractInfo?.type).toBe('LAOS-ERC-721');
@@ -195,7 +195,7 @@ describe('useBalanceOfCollectible with LAOS', () => {
195
195
  expect(result.current.isSuccess).toBe(true);
196
196
  });
197
197
 
198
- expect(result.current.data).toBeNull();
198
+ expect(result.current.data).toEqual(null);
199
199
  });
200
200
 
201
201
  it('should auto-detect LAOS from marketplace config', async () => {
@@ -3,7 +3,7 @@ import { ContractType } from '../../../_internal';
3
3
  import {
4
4
  balanceOfCollectibleOptions,
5
5
  type UseBalanceOfCollectibleArgs,
6
- } from '../../../queries/balanceOfCollectible';
6
+ } from '../../../queries/collectibles/balanceOfCollectible';
7
7
  import { useConfig } from '../../config/useConfig';
8
8
  import { useMarketplaceConfig } from '../../config/useMarketplaceConfig';
9
9
 
@@ -6,7 +6,7 @@ import {
6
6
  type CollectibleQueryOptions,
7
7
  collectibleQueryOptions,
8
8
  type FetchCollectibleParams,
9
- } from '../../../queries/collectible';
9
+ } from '../../../queries/collectibles/collectible';
10
10
  import { useConfig } from '../../config/useConfig';
11
11
 
12
12
  export type UseCollectibleParams = Optional<CollectibleQueryOptions, 'config'>;
@@ -6,7 +6,7 @@ import {
6
6
  type CountOfCollectablesQueryOptions,
7
7
  countOfCollectablesQueryOptions,
8
8
  type FetchCountOfCollectablesParams,
9
- } from '../../../queries/countOfCollectables';
9
+ } from '../../../queries/collectibles/countOfCollectables';
10
10
  import { useConfig } from '../../config/useConfig';
11
11
 
12
12
  export type UseCountOfCollectablesParams = Optional<
@@ -7,7 +7,7 @@ import {
7
7
  type fetchListCollectibleActivities,
8
8
  type ListCollectibleActivitiesQueryOptions,
9
9
  listCollectibleActivitiesQueryOptions,
10
- } from '../../../queries/listCollectibleActivities';
10
+ } from '../../../queries/collectibles/listCollectibleActivities';
11
11
  import { useConfig } from '../../config/useConfig';
12
12
 
13
13
  export type UseListCollectibleActivitiesParams = Optional<
@@ -6,7 +6,7 @@ import {
6
6
  type FetchListCollectiblesParams,
7
7
  type ListCollectiblesQueryOptions,
8
8
  listCollectiblesQueryOptions,
9
- } from '../../../queries/listCollectibles';
9
+ } from '../../../queries/collectibles/listCollectibles';
10
10
  import { useConfig } from '../../config/useConfig';
11
11
 
12
12
  export type UseListCollectiblesParams = Optional<
@@ -7,7 +7,7 @@ import {
7
7
  type fetchListCollectiblesPaginated,
8
8
  type ListCollectiblesPaginatedQueryOptions,
9
9
  listCollectiblesPaginatedQueryOptions,
10
- } from '../../../queries/listCollectiblesPaginated';
10
+ } from '../../../queries/collectibles/listCollectiblesPaginated';
11
11
  import { useConfig } from '../../config/useConfig';
12
12
 
13
13
  export type UseListCollectiblesPaginatedParams = Optional<
@@ -0,0 +1,151 @@
1
+ import { renderHook, server, waitFor } from '@test';
2
+ import { HttpResponse, http } from 'msw';
3
+ import { zeroAddress } from 'viem';
4
+ import { describe, expect, it } from 'vitest';
5
+ import {
6
+ mockIndexerEndpoint,
7
+ mockTokenBalance,
8
+ } from '../../../_internal/api/__mocks__/indexer.msw';
9
+ import { useTokenBalances } from './useTokenBalances';
10
+
11
+ describe('useTokenBalances', () => {
12
+ const defaultArgs = {
13
+ collectionAddress: zeroAddress,
14
+ userAddress: '0x1234567890123456789012345678901234567890' as `0x${string}`,
15
+ chainId: 1,
16
+ };
17
+
18
+ it('should fetch balances successfully', async () => {
19
+ // Override the handler specifically for this test
20
+ server.use(
21
+ http.post(mockIndexerEndpoint('GetTokenBalances'), () => {
22
+ return HttpResponse.json({
23
+ page: { page: 1, pageSize: 10, more: false },
24
+ balances: [mockTokenBalance, { ...mockTokenBalance, tokenID: '2' }],
25
+ });
26
+ }),
27
+ );
28
+
29
+ const { result } = renderHook(() => useTokenBalances(defaultArgs));
30
+
31
+ // Initially loading
32
+ expect(result.current.isLoading).toBe(true);
33
+
34
+ // Wait for the query to complete
35
+ await waitFor(() => {
36
+ expect(result.current.isSuccess).toBe(true);
37
+ });
38
+
39
+ // Check the returned data matches mock
40
+ expect(result.current.data).toHaveLength(2);
41
+ expect(result.current.data?.[0]).toEqual(mockTokenBalance);
42
+ expect(result.current.data?.[1].tokenID).toBe('2');
43
+ });
44
+
45
+ it('should return empty array when userAddress is undefined', () => {
46
+ const { result } = renderHook(() =>
47
+ useTokenBalances({
48
+ ...defaultArgs,
49
+ userAddress: undefined,
50
+ }),
51
+ );
52
+
53
+ expect(result.current.data).toBeUndefined();
54
+ expect(result.current.isLoading).toBe(false);
55
+ });
56
+
57
+ it('should respect enabled option in query config', () => {
58
+ const { result } = renderHook(() =>
59
+ useTokenBalances({
60
+ ...defaultArgs,
61
+ query: {
62
+ enabled: false,
63
+ },
64
+ }),
65
+ );
66
+
67
+ expect(result.current.isLoading).toBe(false);
68
+ expect(result.current.data).toBeUndefined();
69
+ });
70
+
71
+ it('should handle error states', async () => {
72
+ // Override the handler to return an error
73
+ server.use(
74
+ http.post(mockIndexerEndpoint('GetTokenBalances'), () => {
75
+ return HttpResponse.json(
76
+ { error: { message: 'Invalid address format' } },
77
+ { status: 400 },
78
+ );
79
+ }),
80
+ );
81
+
82
+ const invalidArgs = {
83
+ ...defaultArgs,
84
+ collectionAddress: '0xinvalid' as `0x${string}`, // Invalid address format
85
+ };
86
+
87
+ const { result } = renderHook(() => useTokenBalances(invalidArgs));
88
+
89
+ await waitFor(() => {
90
+ expect(result.current.isError).toBe(true);
91
+ });
92
+ });
93
+
94
+ it('should return all token balances for a collection', async () => {
95
+ const specificCollection = {
96
+ collectionAddress:
97
+ '0x1234567890123456789012345678901234567890' as `0x${string}`,
98
+ userAddress:
99
+ '0xabcdef1234567890abcdef1234567890abcdef12' as `0x${string}`,
100
+ chainId: 1,
101
+ };
102
+
103
+ const balances = [
104
+ {
105
+ ...mockTokenBalance,
106
+ contractAddress: specificCollection.collectionAddress,
107
+ accountAddress: specificCollection.userAddress,
108
+ tokenID: '1',
109
+ balance: '2',
110
+ },
111
+ {
112
+ ...mockTokenBalance,
113
+ contractAddress: specificCollection.collectionAddress,
114
+ accountAddress: specificCollection.userAddress,
115
+ tokenID: '2',
116
+ balance: '1',
117
+ },
118
+ ];
119
+
120
+ server.use(
121
+ http.post(mockIndexerEndpoint('GetTokenBalances'), () => {
122
+ return HttpResponse.json({
123
+ page: { page: 1, pageSize: 10, more: false },
124
+ balances,
125
+ });
126
+ }),
127
+ );
128
+
129
+ const { result } = renderHook(() => useTokenBalances(specificCollection));
130
+
131
+ await waitFor(() => {
132
+ expect(result.current.isSuccess).toBe(true);
133
+ });
134
+
135
+ // Verify all token balances
136
+ expect(result.current.data).toEqual(balances);
137
+ expect(result.current.data).toHaveLength(2);
138
+ expect(result.current.data?.[0].balance).toBe('2');
139
+ expect(result.current.data?.[1].balance).toBe('1');
140
+ expect(
141
+ result.current.data?.every(
142
+ (b) => b.contractAddress === specificCollection.collectionAddress,
143
+ ),
144
+ ).toBe(true);
145
+ expect(
146
+ result.current.data?.every(
147
+ (b) => b.accountAddress === specificCollection.userAddress,
148
+ ),
149
+ ).toBe(true);
150
+ });
151
+ });
@@ -0,0 +1,47 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import { ContractType } from '../../../_internal';
3
+ import {
4
+ tokenBalancesOptions,
5
+ type UseTokenBalancesArgs,
6
+ } from '../../../queries/collectibles/tokenBalances';
7
+ import { useConfig } from '../../config/useConfig';
8
+ import { useMarketplaceConfig } from '../../config/useMarketplaceConfig';
9
+
10
+ /**
11
+ * Hook to fetch all token balances for a user in a collection
12
+ *
13
+ * @param args - The arguments for fetching the balances
14
+ * @returns Query result containing the balances data
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * const { data, isLoading, error } = useTokenBalances({
19
+ * collectionAddress: '0x123...',
20
+ * userAddress: '0x456...',
21
+ * chainId: 1,
22
+ * query: {
23
+ * enabled: true,
24
+ * refetchInterval: 10000,
25
+ * }
26
+ * });
27
+ * ```
28
+ */
29
+ export function useTokenBalances(args: UseTokenBalancesArgs) {
30
+ const config = useConfig();
31
+ const { data: marketplaceConfig } = useMarketplaceConfig();
32
+
33
+ const collection = marketplaceConfig?.market.collections.find(
34
+ (collection) => collection.itemsAddress === args.collectionAddress,
35
+ );
36
+ const isLaos721 = collection?.contractType === ContractType.LAOS_ERC_721;
37
+
38
+ return useQuery(
39
+ tokenBalancesOptions(
40
+ {
41
+ ...args,
42
+ isLaos721,
43
+ },
44
+ config,
45
+ ),
46
+ );
47
+ }
@@ -6,6 +6,7 @@ exports[`useListCollections > should fetch collections successfully 1`] = `
6
6
  "address": "0x0000000000000000000000000000000000000000",
7
7
  "bannerUrl": "https://example.com/market-banner.png",
8
8
  "bytecodeHash": "0x1234567890",
9
+ "cardType": "market",
9
10
  "chainId": 1,
10
11
  "contractType": "ERC721",
11
12
  "createdAt": "2025-03-16T13:04:16.098Z",
@@ -48,7 +49,6 @@ exports[`useListCollections > should fetch collections successfully 1`] = `
48
49
  "id": 1,
49
50
  "itemsAddress": "0x0000000000000000000000000000000000000000",
50
51
  "logoURI": "https://example.com/logo.png",
51
- "marketplaceType": "market",
52
52
  "name": "Mock Collection",
53
53
  "private": false,
54
54
  "projectId": 1,
@@ -62,6 +62,7 @@ exports[`useListCollections > should fetch collections successfully 1`] = `
62
62
  "address": "0x1234567890123456789012345678901234567890",
63
63
  "bannerUrl": "https://example.com/collection-banner.png",
64
64
  "bytecodeHash": "0x1234567890",
65
+ "cardType": "market",
65
66
  "chainId": 137,
66
67
  "contractType": "ERC1155",
67
68
  "createdAt": "2025-03-16T13:04:16.098Z",
@@ -108,7 +109,6 @@ exports[`useListCollections > should fetch collections successfully 1`] = `
108
109
  "id": 2,
109
110
  "itemsAddress": "0x1234567890123456789012345678901234567890",
110
111
  "logoURI": "https://example.com/logo.png",
111
- "marketplaceType": "market",
112
112
  "name": "Mock Collection",
113
113
  "private": false,
114
114
  "projectId": 1,
@@ -122,6 +122,7 @@ exports[`useListCollections > should fetch collections successfully 1`] = `
122
122
  "address": "0x0000000000000000000000000000000000000000",
123
123
  "bannerUrl": "https://example.com/shop-banner.png",
124
124
  "bytecodeHash": "0x1234567890",
125
+ "cardType": "shop",
125
126
  "chainId": 1,
126
127
  "createdAt": "2025-03-16T13:04:16.098Z",
127
128
  "customTokenIds": [],
@@ -145,7 +146,6 @@ exports[`useListCollections > should fetch collections successfully 1`] = `
145
146
  "id": 1,
146
147
  "itemsAddress": "0x0000000000000000000000000000000000000000",
147
148
  "logoURI": "https://example.com/logo.png",
148
- "marketplaceType": "shop",
149
149
  "name": "Mock Collection",
150
150
  "private": false,
151
151
  "projectId": 1,
@@ -166,6 +166,7 @@ exports[`useListCollections > should fetch collections successfully 1`] = `
166
166
  "address": "0x1234567890123456789012345678901234567890",
167
167
  "bannerUrl": "https://example.com/polygon-shop-banner.png",
168
168
  "bytecodeHash": "0x1234567890",
169
+ "cardType": "shop",
169
170
  "chainId": 137,
170
171
  "createdAt": "2025-03-16T13:04:16.098Z",
171
172
  "customTokenIds": [],
@@ -189,7 +190,6 @@ exports[`useListCollections > should fetch collections successfully 1`] = `
189
190
  "id": 2,
190
191
  "itemsAddress": "0x1234567890123456789012345678901234567890",
191
192
  "logoURI": "https://example.com/logo.png",
192
- "marketplaceType": "shop",
193
193
  "name": "Mock Collection",
194
194
  "private": false,
195
195
  "projectId": 1,
@@ -215,6 +215,7 @@ exports[`useListCollections > should handle empty collections 1`] = `
215
215
  "address": "0x0000000000000000000000000000000000000000",
216
216
  "bannerUrl": "https://example.com/shop-banner.png",
217
217
  "bytecodeHash": "0x1234567890",
218
+ "cardType": "shop",
218
219
  "chainId": 1,
219
220
  "createdAt": "2025-03-16T13:04:16.098Z",
220
221
  "customTokenIds": [],
@@ -238,7 +239,6 @@ exports[`useListCollections > should handle empty collections 1`] = `
238
239
  "id": 1,
239
240
  "itemsAddress": "0x0000000000000000000000000000000000000000",
240
241
  "logoURI": "https://example.com/logo.png",
241
- "marketplaceType": "shop",
242
242
  "name": "Mock Collection",
243
243
  "private": false,
244
244
  "projectId": 1,
@@ -259,6 +259,7 @@ exports[`useListCollections > should handle empty collections 1`] = `
259
259
  "address": "0x1234567890123456789012345678901234567890",
260
260
  "bannerUrl": "https://example.com/polygon-shop-banner.png",
261
261
  "bytecodeHash": "0x1234567890",
262
+ "cardType": "shop",
262
263
  "chainId": 137,
263
264
  "createdAt": "2025-03-16T13:04:16.098Z",
264
265
  "customTokenIds": [],
@@ -282,7 +283,6 @@ exports[`useListCollections > should handle empty collections 1`] = `
282
283
  "id": 2,
283
284
  "itemsAddress": "0x1234567890123456789012345678901234567890",
284
285
  "logoURI": "https://example.com/logo.png",
285
- "marketplaceType": "shop",
286
286
  "name": "Mock Collection",
287
287
  "private": false,
288
288
  "projectId": 1,
@@ -6,7 +6,7 @@ import {
6
6
  type CollectionQueryOptions,
7
7
  collectionQueryOptions,
8
8
  type FetchCollectionParams,
9
- } from '../../../queries/collection';
9
+ } from '../../../queries/collections/collection';
10
10
  import { useConfig } from '../../config/useConfig';
11
11
 
12
12
  export type UseCollectionParams = Optional<CollectionQueryOptions, 'config'>;