@0xsequence/marketplace-sdk 1.2.0 → 1.2.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 (312) hide show
  1. package/CHANGELOG.md +21 -1
  2. package/dist/{BellIcon-DMKEumAz.js → BellIcon.js} +4 -4
  3. package/dist/BellIcon.js.map +1 -0
  4. package/dist/{CartIcon-UyB4NYKt.js → CartIcon.js} +7 -7
  5. package/dist/CartIcon.js.map +1 -0
  6. package/dist/CollectibleCard.d.ts +8 -0
  7. package/dist/{_internal-DkS2VUn5.js → _internal.js} +2 -2
  8. package/dist/_internal.js.map +1 -0
  9. package/dist/{abi-fa-o9gH3.js → abi.js} +2 -2
  10. package/dist/abi.js.map +1 -0
  11. package/dist/{alien_swap-Cq8LuElo.js → alien_swap.js} +1 -1
  12. package/dist/alien_swap.js.map +1 -0
  13. package/dist/{api-GwTR0dBA.js → api.js} +10 -20
  14. package/dist/api.js.map +1 -0
  15. package/dist/{aqua-xyz-0yye_c-Z.js → aqua-xyz.js} +1 -1
  16. package/dist/aqua-xyz.js.map +1 -0
  17. package/dist/{aura-TaxFvTFQ.js → aura.js} +1 -1
  18. package/dist/aura.js.map +1 -0
  19. package/dist/{blur-BupOTobO.js → blur.js} +1 -1
  20. package/dist/blur.js.map +1 -0
  21. package/dist/{builder-api-m4JAA6ee.js → builder-api.js} +3 -3
  22. package/dist/builder-api.js.map +1 -0
  23. package/dist/{builder.gen--XD71cNL.js → builder.gen.js} +3 -6
  24. package/dist/builder.gen.js.map +1 -0
  25. package/dist/{coinbase-DTgZ4wDT.js → coinbase.js} +1 -1
  26. package/dist/coinbase.js.map +1 -0
  27. package/dist/{collectibles-CZ6i8sXK.js → collectibles.js} +13 -18
  28. package/dist/collectibles.js.map +1 -0
  29. package/dist/{collections-5NcU-7ZR.js → collections.js} +17 -28
  30. package/dist/collections.js.map +1 -0
  31. package/dist/{components-CY8kx2kb.js → components.js} +15 -21
  32. package/dist/components.js.map +1 -0
  33. package/dist/{contracts-DRJHF89h.js → contracts.js} +5 -6
  34. package/dist/contracts.js.map +1 -0
  35. package/dist/{create-config-CFBeD8CB.d.ts → create-config.d.ts} +6 -6
  36. package/dist/{create-config-BxyfYCEk.js → create-config.js} +11 -15
  37. package/dist/create-config.js.map +1 -0
  38. package/dist/{element-D4dDznlu.js → element.js} +1 -1
  39. package/dist/element.js.map +1 -0
  40. package/dist/{filters-B5niI_fX.d.ts → filters.d.ts} +7 -7
  41. package/dist/{foundation-GHZOKAzN.js → foundation.js} +1 -1
  42. package/dist/foundation.js.map +1 -0
  43. package/dist/index.d.ts +7 -7
  44. package/dist/index.js +15 -15
  45. package/dist/{index-BkZ7SPLc.d.ts → index10.d.ts} +13 -18
  46. package/dist/{index-DASjaiJL.d.ts → index11.d.ts} +25 -33
  47. package/dist/{index-j3nuJWyJ.d.ts → index12.d.ts} +9 -11
  48. package/dist/{index-CbERNN3s.d.ts → index13.d.ts} +16 -26
  49. package/dist/{index-UXRoZmd_.d.ts → index14.d.ts} +9 -9
  50. package/dist/{index-BtDAHMW_.d.ts → index16.d.ts} +8 -8
  51. package/dist/{index-BIuYTMc2.d.ts → index17.d.ts} +9 -10
  52. package/dist/{index-DVI_vggD.d.ts → index19.d.ts} +14 -17
  53. package/dist/{index-nVb7o0hc.d.ts → index2.d.ts} +2 -2
  54. package/dist/{index-C-c_M_sE.d.ts → index21.d.ts} +9 -10
  55. package/dist/{index-BYQOPS8e.d.ts → index23.d.ts} +64 -77
  56. package/dist/{index-DqxQeYT2.d.ts → index24.d.ts} +36 -39
  57. package/dist/{index-DxAReMEO.d.ts → index25.d.ts} +34 -34
  58. package/dist/{index-DIc8OqWV.d.ts → index26.d.ts} +14 -8
  59. package/dist/{index-BnUku_aF.d.ts → index27.d.ts} +101 -108
  60. package/dist/{index-CNIiC8Z_.d.ts → index28.d.ts} +6 -9
  61. package/dist/{index-BNrz99xy.d.ts → index29.d.ts} +3 -3
  62. package/dist/{index-8scPf0CS.d.ts → index3.d.ts} +2 -2
  63. package/dist/{index-DD7Vc4cE.d.ts → index4.d.ts} +2 -2
  64. package/dist/{index-isFvc5gd.d.ts → index5.d.ts} +2 -2
  65. package/dist/{index-pbE88Tt7.d.ts → index6.d.ts} +2 -2
  66. package/dist/{index-Dsf9FRtr.d.ts → index7.d.ts} +3 -3
  67. package/dist/index8.d.ts +18 -0
  68. package/dist/{index-CsfxsN0t.d.ts → index9.d.ts} +4 -4
  69. package/dist/{inventory--t6Zu55O.js → inventory.js} +11 -18
  70. package/dist/inventory.js.map +1 -0
  71. package/dist/{listCollectiblesPaginated-BlE5mSzh.d.ts → listCollectiblesPaginated.d.ts} +27 -32
  72. package/dist/{listCollections-DWyqFSQ3.d.ts → listCollections.d.ts} +102 -109
  73. package/dist/{looks-rare-2HBhMpOf.js → looks-rare.js} +1 -1
  74. package/dist/looks-rare.js.map +1 -0
  75. package/dist/{lowestListing-DsunDO1c.d.ts → lowestListing.d.ts} +28 -38
  76. package/dist/{magic-eden-BYdTp-uk.js → magic-eden.js} +1 -1
  77. package/dist/magic-eden.js.map +1 -0
  78. package/dist/{manifold-yE0x6ZmO.js → manifold.js} +1 -1
  79. package/dist/manifold.js.map +1 -0
  80. package/dist/{market-DuBpFsDg.js → market.js} +19 -31
  81. package/dist/market.js.map +1 -0
  82. package/dist/{marketCurrencies-BgwmbGFk.d.ts → marketCurrencies.d.ts} +9 -10
  83. package/dist/{marketCurrencies-Bolonndy.js → marketCurrencies.js} +10 -13
  84. package/dist/marketCurrencies.js.map +1 -0
  85. package/dist/{marketplace-logos-Cz9RrtQo.js → marketplace-logos.js} +23 -23
  86. package/dist/marketplace-logos.js.map +1 -0
  87. package/dist/{marketplace.gen-906FrJQJ.js → marketplace.gen.js} +4 -7
  88. package/dist/marketplace.gen.js.map +1 -0
  89. package/dist/{marketplace-NQB-sEQL.js → marketplace.js} +2 -2
  90. package/dist/marketplace.js.map +1 -0
  91. package/dist/{marketplaceConfig-Bqjo7NYO.js → marketplaceConfig.js} +4 -8
  92. package/dist/marketplaceConfig.js.map +1 -0
  93. package/dist/{mintify-BXQx3mZB.js → mintify.js} +1 -1
  94. package/dist/mintify.js.map +1 -0
  95. package/dist/{network-DwdZ_5-7.js → network.js} +3 -3
  96. package/dist/network.js.map +1 -0
  97. package/dist/{networkconfigToWagmiChain-Ct-hGq8M.js → networkconfigToWagmiChain.js} +2 -2
  98. package/dist/networkconfigToWagmiChain.js.map +1 -0
  99. package/dist/{nftx-B929_3Ce.js → nftx.js} +1 -1
  100. package/dist/nftx.js.map +1 -0
  101. package/dist/{okx-sZ0-Udny.js → okx.js} +1 -1
  102. package/dist/okx.js.map +1 -0
  103. package/dist/{open-sea-DO9PhTrz.js → open-sea.js} +1 -1
  104. package/dist/open-sea.js.map +1 -0
  105. package/dist/{orders-DH76ym2e.js → orders.js} +17 -24
  106. package/dist/orders.js.map +1 -0
  107. package/dist/{primary-sale-1u4QlPdA.js → primary-sale.js} +2 -2
  108. package/dist/primary-sale.js.map +1 -0
  109. package/dist/{primary-sales-CECrqatg.js → primary-sales.js} +8 -12
  110. package/dist/primary-sales.js.map +1 -0
  111. package/dist/{query-brXxOcH0.d.ts → query.d.ts} +2 -2
  112. package/dist/{rarible-Ccb2hs7y.js → rarible.js} +1 -1
  113. package/dist/rarible.js.map +1 -0
  114. package/dist/react/_internal/api/index.d.ts +1 -1
  115. package/dist/react/_internal/api/index.js +6 -6
  116. package/dist/react/_internal/databeat/index.d.ts +1 -1
  117. package/dist/react/_internal/databeat/index.js +37 -37
  118. package/dist/react/_internal/index.d.ts +1 -1
  119. package/dist/react/_internal/index.js +10 -10
  120. package/dist/react/_internal/wagmi/index.d.ts +1 -1
  121. package/dist/react/_internal/wagmi/index.js +5 -5
  122. package/dist/react/hooks/config/index.d.ts +8 -8
  123. package/dist/react/hooks/config/index.js +37 -37
  124. package/dist/react/hooks/contracts/index.d.ts +6 -6
  125. package/dist/react/hooks/contracts/index.js +15 -15
  126. package/dist/react/hooks/data/collectibles/index.d.ts +4 -10
  127. package/dist/react/hooks/data/collectibles/index.js +37 -37
  128. package/dist/react/hooks/data/collections/index.d.ts +10 -10
  129. package/dist/react/hooks/data/collections/index.js +37 -37
  130. package/dist/react/hooks/data/index.d.ts +36 -36
  131. package/dist/react/hooks/data/index.js +37 -37
  132. package/dist/react/hooks/data/inventory/index.d.ts +36 -36
  133. package/dist/react/hooks/data/inventory/index.js +37 -37
  134. package/dist/react/hooks/data/market/index.d.ts +5 -11
  135. package/dist/react/hooks/data/market/index.js +37 -37
  136. package/dist/react/hooks/data/orders/index.d.ts +4 -10
  137. package/dist/react/hooks/data/orders/index.js +37 -37
  138. package/dist/react/hooks/data/primary-sales/index.d.ts +36 -36
  139. package/dist/react/hooks/data/primary-sales/index.js +37 -37
  140. package/dist/react/hooks/data/tokens/index.d.ts +4 -4
  141. package/dist/react/hooks/data/tokens/index.js +37 -37
  142. package/dist/react/hooks/index.d.ts +36 -36
  143. package/dist/react/hooks/index.js +37 -37
  144. package/dist/react/hooks/transactions/index.d.ts +2 -2
  145. package/dist/react/hooks/transactions/index.js +37 -37
  146. package/dist/react/hooks/ui/index.d.ts +4 -4
  147. package/dist/react/hooks/ui/index.js +37 -37
  148. package/dist/react/hooks/utils/index.d.ts +36 -36
  149. package/dist/react/hooks/utils/index.js +37 -37
  150. package/dist/react/index.d.ts +36 -36
  151. package/dist/react/index.js +37 -37
  152. package/dist/react/queries/collectibles/index.d.ts +4 -10
  153. package/dist/react/queries/collectibles/index.js +20 -20
  154. package/dist/react/queries/collections/index.d.ts +10 -10
  155. package/dist/react/queries/collections/index.js +18 -18
  156. package/dist/react/queries/index.d.ts +23 -23
  157. package/dist/react/queries/index.js +29 -29
  158. package/dist/react/queries/inventory/index.d.ts +2 -2
  159. package/dist/react/queries/inventory/index.js +20 -20
  160. package/dist/react/queries/market/index.d.ts +5 -5
  161. package/dist/react/queries/market/index.js +20 -20
  162. package/dist/react/queries/orders/index.d.ts +4 -10
  163. package/dist/react/queries/orders/index.js +11 -11
  164. package/dist/react/queries/primary-sales/index.d.ts +3 -3
  165. package/dist/react/queries/primary-sales/index.js +11 -11
  166. package/dist/react/queries/tokens/index.d.ts +4 -4
  167. package/dist/react/queries/tokens/index.js +11 -11
  168. package/dist/react/queries/utils/index.d.ts +3 -3
  169. package/dist/react/queries/utils/index.js +20 -20
  170. package/dist/react/ssr/index.d.ts +7 -7
  171. package/dist/react/ssr/index.js +13 -16
  172. package/dist/react/ssr/index.js.map +1 -1
  173. package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.d.ts +2 -2
  174. package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.js +20 -20
  175. package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.d.ts +5 -5
  176. package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.js +37 -37
  177. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +4 -4
  178. package/dist/react/ui/components/marketplace-collectible-card/index.js +37 -37
  179. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -2
  180. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +11 -11
  181. package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
  182. package/dist/react/ui/components/marketplace-logos/index.js +1 -1
  183. package/dist/react/ui/icons/index.js +14 -14
  184. package/dist/react/ui/index.d.ts +4 -4
  185. package/dist/react/ui/index.js +37 -37
  186. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +2 -2
  187. package/dist/react/ui/modals/_internal/components/actionModal/index.js +37 -37
  188. package/dist/react/utils/index.d.ts +1 -1
  189. package/dist/react/utils/index.js +7 -7
  190. package/dist/{react-CBsgOdVP.js → react.js} +665 -744
  191. package/dist/react.js.map +1 -0
  192. package/dist/{sequence-CRdb1yEs.js → sequence.js} +1 -1
  193. package/dist/sequence.js.map +1 -0
  194. package/dist/{src-Dz2CfBL0.js → src.js} +2 -2
  195. package/dist/src.js.map +1 -0
  196. package/dist/styles/index.css +1 -1
  197. package/dist/{sudo-swap-BIklG2gq.js → sudo-swap.js} +1 -1
  198. package/dist/sudo-swap.js.map +1 -0
  199. package/dist/{super-rare-h8645_5E.js → super-rare.js} +1 -1
  200. package/dist/super-rare.js.map +1 -0
  201. package/dist/{token-Cv7l2ZaL.js → token.js} +2 -2
  202. package/dist/token.js.map +1 -0
  203. package/dist/{tokenBalances-CouzNX4j.js → tokenBalances.js} +4 -5
  204. package/dist/tokenBalances.js.map +1 -0
  205. package/dist/{tokenSupplies-C3zJll0M.d.ts → tokenSupplies.d.ts} +27 -31
  206. package/dist/{tokens-BvIRUCGG.js → tokens.js} +10 -16
  207. package/dist/tokens.js.map +1 -0
  208. package/dist/{transaction-DZUW5RHu.js → transaction.js} +2 -2
  209. package/dist/transaction.js.map +1 -0
  210. package/dist/types/index.d.ts +1 -1
  211. package/dist/types/index.js +3 -3
  212. package/dist/{types-CMDwfhfR.d.ts → types.d.ts} +6 -6
  213. package/dist/{types-B_-cnkcP.js → types.js} +2 -2
  214. package/dist/types.js.map +1 -0
  215. package/dist/utils/abi/index.d.ts +4 -4
  216. package/dist/utils/abi/index.js +4 -4
  217. package/dist/utils/abi/marketplace/index.d.ts +1 -1
  218. package/dist/utils/abi/marketplace/index.js +1 -1
  219. package/dist/utils/abi/primary-sale/index.d.ts +1 -1
  220. package/dist/utils/abi/primary-sale/index.js +1 -1
  221. package/dist/utils/abi/token/index.d.ts +1 -1
  222. package/dist/utils/abi/token/index.js +1 -1
  223. package/dist/utils/index.d.ts +6 -6
  224. package/dist/utils/index.js +12 -12
  225. package/dist/{utils-9ToOvt-c.js → utils.js} +9 -14
  226. package/dist/utils.js.map +1 -0
  227. package/dist/{utils-BCYTEOvy.js → utils2.js} +12 -16
  228. package/dist/utils2.js.map +1 -0
  229. package/dist/{utils-B6di6O-C.js → utils3.js} +3 -3
  230. package/dist/utils3.js.map +1 -0
  231. package/dist/{waitForTransactionReceipt-CbSeUSXe.js → waitForTransactionReceipt.js} +5 -6
  232. package/dist/waitForTransactionReceipt.js.map +1 -0
  233. package/dist/{x2y2-OvF__ugj.js → x2y2.js} +1 -1
  234. package/dist/x2y2.js.map +1 -0
  235. package/dist/{zora-DzCeu-eE.js → zora.js} +1 -1
  236. package/dist/zora.js.map +1 -0
  237. package/package.json +27 -27
  238. package/src/react/_internal/api/marketplace.gen.ts +1 -1
  239. package/src/react/_internal/wagmi/get-connectors.ts +12 -1
  240. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +152 -141
  241. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +44 -60
  242. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155SalePaymentParams.test.tsx +381 -0
  243. package/src/react/ui/modals/BuyModal/hooks/useERC1155SalePaymentParams.ts +257 -0
  244. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +1 -1
  245. package/src/react/ui/modals/TransferModal/index.tsx +24 -2
  246. package/src/styles/styles.ts +2 -2
  247. package/tsdown.config.ts +1 -0
  248. package/dist/BellIcon-DMKEumAz.js.map +0 -1
  249. package/dist/CartIcon-UyB4NYKt.js.map +0 -1
  250. package/dist/CollectibleCard-z05qWzKE.d.ts +0 -8
  251. package/dist/_internal-DkS2VUn5.js.map +0 -1
  252. package/dist/abi-fa-o9gH3.js.map +0 -1
  253. package/dist/alien_swap-Cq8LuElo.js.map +0 -1
  254. package/dist/api-GwTR0dBA.js.map +0 -1
  255. package/dist/aqua-xyz-0yye_c-Z.js.map +0 -1
  256. package/dist/aura-TaxFvTFQ.js.map +0 -1
  257. package/dist/blur-BupOTobO.js.map +0 -1
  258. package/dist/builder-api-m4JAA6ee.js.map +0 -1
  259. package/dist/builder.gen--XD71cNL.js.map +0 -1
  260. package/dist/coinbase-DTgZ4wDT.js.map +0 -1
  261. package/dist/collectibles-CZ6i8sXK.js.map +0 -1
  262. package/dist/collections-5NcU-7ZR.js.map +0 -1
  263. package/dist/components-CY8kx2kb.js.map +0 -1
  264. package/dist/contracts-DRJHF89h.js.map +0 -1
  265. package/dist/create-config-BxyfYCEk.js.map +0 -1
  266. package/dist/element-D4dDznlu.js.map +0 -1
  267. package/dist/foundation-GHZOKAzN.js.map +0 -1
  268. package/dist/index-9qsplZ8r.d.ts +0 -18
  269. package/dist/inventory--t6Zu55O.js.map +0 -1
  270. package/dist/looks-rare-2HBhMpOf.js.map +0 -1
  271. package/dist/magic-eden-BYdTp-uk.js.map +0 -1
  272. package/dist/manifold-yE0x6ZmO.js.map +0 -1
  273. package/dist/market-DuBpFsDg.js.map +0 -1
  274. package/dist/marketCurrencies-Bolonndy.js.map +0 -1
  275. package/dist/marketplace-NQB-sEQL.js.map +0 -1
  276. package/dist/marketplace-logos-Cz9RrtQo.js.map +0 -1
  277. package/dist/marketplace.gen-906FrJQJ.js.map +0 -1
  278. package/dist/marketplaceConfig-Bqjo7NYO.js.map +0 -1
  279. package/dist/mintify-BXQx3mZB.js.map +0 -1
  280. package/dist/network-DwdZ_5-7.js.map +0 -1
  281. package/dist/networkconfigToWagmiChain-Ct-hGq8M.js.map +0 -1
  282. package/dist/nftx-B929_3Ce.js.map +0 -1
  283. package/dist/okx-sZ0-Udny.js.map +0 -1
  284. package/dist/open-sea-DO9PhTrz.js.map +0 -1
  285. package/dist/orders-DH76ym2e.js.map +0 -1
  286. package/dist/primary-sale-1u4QlPdA.js.map +0 -1
  287. package/dist/primary-sales-CECrqatg.js.map +0 -1
  288. package/dist/rarible-Ccb2hs7y.js.map +0 -1
  289. package/dist/react-CBsgOdVP.js.map +0 -1
  290. package/dist/sequence-CRdb1yEs.js.map +0 -1
  291. package/dist/src-Dz2CfBL0.js.map +0 -1
  292. package/dist/sudo-swap-BIklG2gq.js.map +0 -1
  293. package/dist/super-rare-h8645_5E.js.map +0 -1
  294. package/dist/token-Cv7l2ZaL.js.map +0 -1
  295. package/dist/tokenBalances-CouzNX4j.js.map +0 -1
  296. package/dist/tokens-BvIRUCGG.js.map +0 -1
  297. package/dist/transaction-DZUW5RHu.js.map +0 -1
  298. package/dist/types-B_-cnkcP.js.map +0 -1
  299. package/dist/utils-9ToOvt-c.js.map +0 -1
  300. package/dist/utils-B6di6O-C.js.map +0 -1
  301. package/dist/utils-BCYTEOvy.js.map +0 -1
  302. package/dist/waitForTransactionReceipt-CbSeUSXe.js.map +0 -1
  303. package/dist/x2y2-OvF__ugj.js.map +0 -1
  304. package/dist/zora-DzCeu-eE.js.map +0 -1
  305. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +0 -395
  306. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +0 -103
  307. /package/dist/{index-CCggO_hw.d.ts → index15.d.ts} +0 -0
  308. /package/dist/{index-CKefEBrI.d.ts → index18.d.ts} +0 -0
  309. /package/dist/{index-DgsCqh_P.d.ts → index20.d.ts} +0 -0
  310. /package/dist/{index-xpO4AQyS.d.ts → index22.d.ts} +0 -0
  311. /package/dist/{queries-CyajGg_O.js → queries.js} +0 -0
  312. /package/dist/{wagmi-Bseovd6Q.js → wagmi.js} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"zora-DzCeu-eE.js","names":[],"sources":["../src/react/ui/images/marketplaces/zora.png"],"sourcesContent":["\"data:image/png;base64,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\""],"mappings":";mBAAA"}
@@ -1,395 +0,0 @@
1
- import { renderHook } from '@test';
2
- import type { Address } from 'viem';
3
- import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
4
- import {
5
- type CheckoutOptions,
6
- TransactionCrypto,
7
- } from '../../../../../_internal';
8
- import { useERC1155Checkout } from '../useERC1155Checkout';
9
-
10
- // Mock @0xsequence/checkout
11
- vi.mock('@0xsequence/checkout', () => ({
12
- useERC1155SaleContractCheckout: vi.fn(() => ({
13
- openCheckoutModal: vi.fn(),
14
- isLoading: false,
15
- isError: false,
16
- })),
17
- }));
18
-
19
- // Mock wagmi's useAccount hook
20
- vi.mock('wagmi', async () => {
21
- const actual = await vi.importActual('wagmi');
22
- return {
23
- ...actual,
24
- useAccount: vi.fn(() => ({
25
- address: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266' as Address,
26
- })),
27
- };
28
- });
29
-
30
- // Mock store hooks
31
- vi.mock('../../store', () => ({
32
- useQuantity: vi.fn(() => 2),
33
- useOnSuccess: vi.fn(() => vi.fn()),
34
- useOnError: vi.fn(() => vi.fn()),
35
- useBuyAnalyticsId: vi.fn(() => '123'),
36
- useBuyModalProps: vi.fn(() => ({
37
- chainId: 1,
38
- collectionAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
39
- marketplaceType: 'shop',
40
- salesContractAddress: '0x1234567890123456789012345678901234567890',
41
- items: [],
42
- quantityDecimals: 0,
43
- quantityRemaining: 100,
44
- salePrice: {
45
- amount: '1000000000000000000',
46
- currencyAddress: '0x0000000000000000000000000000000000000000',
47
- },
48
- })),
49
- buyModalStore: {
50
- send: vi.fn(),
51
- },
52
- }));
53
-
54
- const mockCheckoutOptions = {
55
- crypto: TransactionCrypto.all,
56
- swap: [],
57
- nftCheckout: [],
58
- onRamp: [],
59
- } satisfies CheckoutOptions;
60
-
61
- const mockItems = [
62
- { tokenId: '1', quantity: '2' },
63
- { tokenId: '2', quantity: '1' },
64
- ];
65
-
66
- describe('useERC1155Checkout', () => {
67
- let mockUseERC1155SaleContractCheckout: ReturnType<typeof vi.fn>;
68
-
69
- beforeEach(async () => {
70
- vi.clearAllMocks();
71
-
72
- // Setup the mock for useERC1155SaleContractCheckout
73
- mockUseERC1155SaleContractCheckout = vi.mocked(
74
- (await import('@0xsequence/checkout')).useERC1155SaleContractCheckout,
75
- );
76
- });
77
-
78
- afterEach(() => {
79
- vi.restoreAllMocks();
80
- });
81
-
82
- it('should call useERC1155SaleContractCheckout with correct parameters', () => {
83
- const mockCheckout = {
84
- openCheckoutModal: vi.fn(),
85
- isLoading: false,
86
- isError: false,
87
- };
88
- mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
89
-
90
- const { result } = renderHook(() =>
91
- useERC1155Checkout({
92
- chainId: 1,
93
- salesContractAddress: '0x456',
94
- collectionAddress: '0x123',
95
- items: mockItems,
96
- checkoutOptions: mockCheckoutOptions,
97
- enabled: true,
98
- }),
99
- );
100
-
101
- expect(
102
- mockUseERC1155SaleContractCheckout.mock.calls,
103
- ).toMatchInlineSnapshot(`
104
- [
105
- [
106
- {
107
- "chain": 1,
108
- "checkoutOptions": {
109
- "crypto": "all",
110
- "nftCheckout": [],
111
- "onRamp": [],
112
- "swap": [],
113
- },
114
- "collectionAddress": "0x123",
115
- "contractAddress": "0x456",
116
- "customProviderCallback": undefined,
117
- "items": [
118
- {
119
- "quantity": "2",
120
- "tokenId": "1",
121
- },
122
- ],
123
- "onClose": [Function],
124
- "onError": [Function],
125
- "onSuccess": [Function],
126
- "successActionButtons": undefined,
127
- "supplementaryAnalyticsInfo": {
128
- "marketplaceType": "shop",
129
- "saleAnalyticsId": "123",
130
- },
131
- "wallet": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
132
- },
133
- ],
134
- ]
135
- `);
136
-
137
- expect(result.current.isEnabled).toBe(true);
138
- });
139
-
140
- it('should return isEnabled false when no wallet is connected', async () => {
141
- const { useAccount } = vi.mocked(await import('wagmi'));
142
- useAccount.mockReturnValue({
143
- address: undefined,
144
- isConnected: false,
145
- isConnecting: false,
146
- isDisconnected: true,
147
- isReconnecting: false,
148
- connector: null,
149
- addresses: undefined,
150
- chain: undefined,
151
- chainId: undefined,
152
- status: 'disconnected',
153
- } as never);
154
-
155
- const mockCheckout = {
156
- openCheckoutModal: vi.fn(),
157
- isLoading: false,
158
- isError: false,
159
- };
160
- mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
161
-
162
- const { result } = renderHook(() =>
163
- useERC1155Checkout({
164
- chainId: 1,
165
- salesContractAddress: '0x456',
166
- collectionAddress: '0x123',
167
- items: mockItems,
168
- enabled: true,
169
- }),
170
- );
171
-
172
- expect(result.current.isEnabled).toBe(false);
173
- });
174
-
175
- it('should return isEnabled false when explicitly disabled', () => {
176
- const mockCheckout = {
177
- openCheckoutModal: vi.fn(),
178
- isLoading: false,
179
- isError: false,
180
- };
181
- mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
182
-
183
- const { result } = renderHook(() =>
184
- useERC1155Checkout({
185
- chainId: 1,
186
- salesContractAddress: '0x456',
187
- collectionAddress: '0x123',
188
- items: mockItems,
189
- enabled: false,
190
- }),
191
- );
192
-
193
- expect(result.current.isEnabled).toBe(false);
194
- });
195
-
196
- it('should handle custom provider callback', () => {
197
- const customCallback = vi.fn();
198
- const mockCheckout = {
199
- openCheckoutModal: vi.fn(),
200
- isLoading: false,
201
- isError: false,
202
- };
203
- mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
204
-
205
- renderHook(() =>
206
- useERC1155Checkout({
207
- chainId: 1,
208
- salesContractAddress: '0x456',
209
- collectionAddress: '0x123',
210
- items: mockItems,
211
- customProviderCallback: customCallback,
212
- enabled: true,
213
- }),
214
- );
215
-
216
- expect(mockUseERC1155SaleContractCheckout).toHaveBeenCalledWith(
217
- expect.objectContaining({
218
- customProviderCallback: customCallback,
219
- }),
220
- );
221
- });
222
-
223
- it('should use default quantity of 1 when quantity store returns null', async () => {
224
- const storeModule = await import('../../store');
225
- const useQuantitySpy = vi.spyOn(storeModule, 'useQuantity');
226
- useQuantitySpy.mockReturnValue(null);
227
-
228
- const mockCheckout = {
229
- openCheckoutModal: vi.fn(),
230
- isLoading: false,
231
- isError: false,
232
- };
233
- mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
234
-
235
- renderHook(() =>
236
- useERC1155Checkout({
237
- chainId: 1,
238
- salesContractAddress: '0x456',
239
- collectionAddress: '0x123',
240
- items: mockItems,
241
- enabled: true,
242
- }),
243
- );
244
-
245
- expect(mockUseERC1155SaleContractCheckout).toHaveBeenCalledWith(
246
- expect.objectContaining({
247
- items: [
248
- {
249
- tokenId: '1',
250
- quantity: '1', // Default value
251
- },
252
- ],
253
- }),
254
- );
255
-
256
- useQuantitySpy.mockRestore();
257
- });
258
-
259
- it('should handle different chain IDs', () => {
260
- const mockCheckout = {
261
- openCheckoutModal: vi.fn(),
262
- isLoading: false,
263
- isError: false,
264
- };
265
- mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
266
-
267
- renderHook(() =>
268
- useERC1155Checkout({
269
- chainId: 137, // Polygon
270
- salesContractAddress: '0x456',
271
- collectionAddress: '0x123',
272
- items: mockItems,
273
- enabled: true,
274
- }),
275
- );
276
-
277
- expect(mockUseERC1155SaleContractCheckout).toHaveBeenCalledWith(
278
- expect.objectContaining({
279
- chain: 137,
280
- }),
281
- );
282
- });
283
-
284
- it('should omit checkoutOptions when not provided', () => {
285
- const mockCheckout = {
286
- openCheckoutModal: vi.fn(),
287
- isLoading: false,
288
- isError: false,
289
- };
290
- mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
291
-
292
- renderHook(() =>
293
- useERC1155Checkout({
294
- chainId: 1,
295
- salesContractAddress: '0x456',
296
- collectionAddress: '0x123',
297
- items: mockItems,
298
- enabled: true,
299
- }),
300
- );
301
-
302
- const callArgs = mockUseERC1155SaleContractCheckout.mock.calls[0][0];
303
- expect(callArgs).not.toHaveProperty('checkoutOptions');
304
- });
305
-
306
- it('should spread all properties from useERC1155SaleContractCheckout', () => {
307
- const mockCheckout = {
308
- openCheckoutModal: vi.fn(),
309
- isLoading: false,
310
- isError: false,
311
- additionalProp: 'test',
312
- };
313
- mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
314
-
315
- const { result } = renderHook(() =>
316
- useERC1155Checkout({
317
- chainId: 1,
318
- salesContractAddress: '0x456',
319
- collectionAddress: '0x123',
320
- items: mockItems,
321
- enabled: true,
322
- }),
323
- );
324
-
325
- expect(result.current.openCheckoutModal).toBe(
326
- mockCheckout.openCheckoutModal,
327
- );
328
- expect(result.current.isLoading).toBe(mockCheckout.isLoading);
329
- expect(result.current.isError).toBe(mockCheckout.isError);
330
- });
331
-
332
- it('should include callback functions in checkout params', () => {
333
- const mockCheckout = {
334
- openCheckoutModal: vi.fn(),
335
- isLoading: false,
336
- isError: false,
337
- };
338
- mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
339
-
340
- renderHook(() =>
341
- useERC1155Checkout({
342
- chainId: 1,
343
- salesContractAddress: '0x456',
344
- collectionAddress: '0x123',
345
- items: mockItems,
346
- enabled: true,
347
- }),
348
- );
349
-
350
- const callArgs = mockUseERC1155SaleContractCheckout.mock.calls[0][0];
351
-
352
- expect(callArgs.onSuccess).toBeInstanceOf(Function);
353
- expect(callArgs.onError).toBeInstanceOf(Function);
354
- expect(callArgs.onClose).toBeInstanceOf(Function);
355
- });
356
-
357
- it('should use empty wallet string when address is undefined', async () => {
358
- const { useAccount } = vi.mocked(await import('wagmi'));
359
- useAccount.mockReturnValue({
360
- address: undefined,
361
- isConnected: false,
362
- isConnecting: false,
363
- isDisconnected: true,
364
- isReconnecting: false,
365
- connector: null,
366
- addresses: undefined,
367
- chain: undefined,
368
- chainId: undefined,
369
- status: 'disconnected',
370
- } as never);
371
-
372
- const mockCheckout = {
373
- openCheckoutModal: vi.fn(),
374
- isLoading: false,
375
- isError: false,
376
- };
377
- mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
378
-
379
- renderHook(() =>
380
- useERC1155Checkout({
381
- chainId: 1,
382
- salesContractAddress: '0x456',
383
- collectionAddress: '0x123',
384
- items: mockItems,
385
- enabled: true,
386
- }),
387
- );
388
-
389
- expect(mockUseERC1155SaleContractCheckout).toHaveBeenCalledWith(
390
- expect.objectContaining({
391
- wallet: '',
392
- }),
393
- );
394
- });
395
- });
@@ -1,103 +0,0 @@
1
- import { useERC1155SaleContractCheckout } from '@0xsequence/checkout';
2
- import type { Hash } from 'viem';
3
- import { useAccount } from 'wagmi';
4
- import type {
5
- CheckoutOptions,
6
- CheckoutOptionsItem,
7
- } from '../../../../_internal';
8
- import {
9
- balanceQueries,
10
- collectableKeys,
11
- getQueryClient,
12
- } from '../../../../_internal';
13
- import {
14
- buyModalStore,
15
- useBuyAnalyticsId,
16
- useBuyModalProps,
17
- useOnError,
18
- useOnSuccess,
19
- useQuantity,
20
- } from '../store';
21
-
22
- interface UseERC1155CheckoutParams {
23
- chainId: number;
24
- salesContractAddress: string;
25
- collectionAddress: string;
26
- items: Array<CheckoutOptionsItem>;
27
- checkoutOptions?: CheckoutOptions;
28
- customProviderCallback?: (
29
- onSuccess: (txHash: string) => void,
30
- onError: (error: Error) => void,
31
- onClose: () => void,
32
- ) => void;
33
- enabled?: boolean;
34
- }
35
-
36
- export const useERC1155Checkout = ({
37
- chainId,
38
- salesContractAddress,
39
- collectionAddress,
40
- items,
41
- checkoutOptions,
42
- customProviderCallback,
43
- enabled = true,
44
- }: UseERC1155CheckoutParams) => {
45
- const { address: accountAddress } = useAccount();
46
- const quantity = useQuantity();
47
- const onSuccess = useOnSuccess();
48
- const onError = useOnError();
49
- const saleAnalyticsId = useBuyAnalyticsId();
50
-
51
- const buyModalProps = useBuyModalProps();
52
-
53
- const checkout = useERC1155SaleContractCheckout({
54
- chain: chainId,
55
- contractAddress: salesContractAddress,
56
- collectionAddress,
57
- items: [
58
- {
59
- ...items[0],
60
- quantity: quantity?.toString() || '1',
61
- },
62
- ],
63
- wallet: accountAddress ?? '',
64
- // Pass checkout options if available
65
- ...(checkoutOptions && { checkoutOptions }),
66
- onSuccess: (txHash?: string) => {
67
- if (txHash) {
68
- onSuccess({ hash: txHash as Hash });
69
- }
70
- },
71
- onError: (error: Error) => {
72
- onError(error);
73
- },
74
- onClose: () => {
75
- const queryClient = getQueryClient();
76
- queryClient.invalidateQueries({
77
- queryKey: balanceQueries.inventory,
78
- });
79
- queryClient.invalidateQueries({
80
- queryKey: [...collectableKeys.userBalances],
81
- refetchType: 'inactive',
82
- });
83
- queryClient.invalidateQueries({
84
- queryKey: collectableKeys.listPrimarySaleItems,
85
- });
86
- buyModalStore.send({ type: 'close' });
87
- },
88
- customProviderCallback,
89
- supplementaryAnalyticsInfo: {
90
- marketplaceType: 'shop',
91
- saleAnalyticsId,
92
- },
93
- successActionButtons: buyModalProps.successActionButtons,
94
- ...(buyModalProps.onRampProvider && {
95
- onRampProvider: buyModalProps.onRampProvider,
96
- }),
97
- });
98
-
99
- return {
100
- ...checkout,
101
- isEnabled: Boolean(enabled && accountAddress),
102
- };
103
- };
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes