@0xsequence/checkout 0.0.0-20250314205219

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 (416) hide show
  1. package/LICENSE +219 -0
  2. package/README.md +256 -0
  3. package/dist/cjs/api/data.js +165 -0
  4. package/dist/cjs/api/data.js.map +1 -0
  5. package/dist/cjs/api/index.js +18 -0
  6. package/dist/cjs/api/index.js.map +1 -0
  7. package/dist/cjs/components/CopyButton.js +24 -0
  8. package/dist/cjs/components/CopyButton.js.map +1 -0
  9. package/dist/cjs/components/DefaultIcon.js +13 -0
  10. package/dist/cjs/components/DefaultIcon.js.map +1 -0
  11. package/dist/cjs/components/NavigationHeader.js +23 -0
  12. package/dist/cjs/components/NavigationHeader.js.map +1 -0
  13. package/dist/cjs/components/SequenceCheckoutProvider/SequenceCheckoutProvider.js +215 -0
  14. package/dist/cjs/components/SequenceCheckoutProvider/SequenceCheckoutProvider.js.map +1 -0
  15. package/dist/cjs/components/SequenceCheckoutProvider/index.js +18 -0
  16. package/dist/cjs/components/SequenceCheckoutProvider/index.js.map +1 -0
  17. package/dist/cjs/constants/abi.js +188 -0
  18. package/dist/cjs/constants/abi.js.map +1 -0
  19. package/dist/cjs/constants/index.js +8 -0
  20. package/dist/cjs/constants/index.js.map +1 -0
  21. package/dist/cjs/contexts/AddFundsModal.js +7 -0
  22. package/dist/cjs/contexts/AddFundsModal.js.map +1 -0
  23. package/dist/cjs/contexts/CheckoutModal.js +8 -0
  24. package/dist/cjs/contexts/CheckoutModal.js.map +1 -0
  25. package/dist/cjs/contexts/Navigation.js +8 -0
  26. package/dist/cjs/contexts/Navigation.js.map +1 -0
  27. package/dist/cjs/contexts/SelectPaymentModal.js +7 -0
  28. package/dist/cjs/contexts/SelectPaymentModal.js.map +1 -0
  29. package/dist/cjs/contexts/SwapModal.js +8 -0
  30. package/dist/cjs/contexts/SwapModal.js.map +1 -0
  31. package/dist/cjs/contexts/TransactionStatusModal.js +7 -0
  32. package/dist/cjs/contexts/TransactionStatusModal.js.map +1 -0
  33. package/dist/cjs/contexts/TransferFundsModal.js +7 -0
  34. package/dist/cjs/contexts/TransferFundsModal.js.map +1 -0
  35. package/dist/cjs/contexts/genericContext.js +20 -0
  36. package/dist/cjs/contexts/genericContext.js.map +1 -0
  37. package/dist/cjs/contexts/index.js +24 -0
  38. package/dist/cjs/contexts/index.js.map +1 -0
  39. package/dist/cjs/hooks/index.js +30 -0
  40. package/dist/cjs/hooks/index.js.map +1 -0
  41. package/dist/cjs/hooks/useAddFundsModal.js +10 -0
  42. package/dist/cjs/hooks/useAddFundsModal.js.map +1 -0
  43. package/dist/cjs/hooks/useCheckoutModal.js +10 -0
  44. package/dist/cjs/hooks/useCheckoutModal.js.map +1 -0
  45. package/dist/cjs/hooks/useCheckoutOptionsSalesContract.js +20 -0
  46. package/dist/cjs/hooks/useCheckoutOptionsSalesContract.js.map +1 -0
  47. package/dist/cjs/hooks/useCheckoutWhitelistStatus.js +21 -0
  48. package/dist/cjs/hooks/useCheckoutWhitelistStatus.js.map +1 -0
  49. package/dist/cjs/hooks/useERC1155SaleContractCheckout.js +157 -0
  50. package/dist/cjs/hooks/useERC1155SaleContractCheckout.js.map +1 -0
  51. package/dist/cjs/hooks/useMarketplaceClient.js +40 -0
  52. package/dist/cjs/hooks/useMarketplaceClient.js.map +1 -0
  53. package/dist/cjs/hooks/useModalTheme.js +10 -0
  54. package/dist/cjs/hooks/useModalTheme.js.map +1 -0
  55. package/dist/cjs/hooks/useNavigation.js +24 -0
  56. package/dist/cjs/hooks/useNavigation.js.map +1 -0
  57. package/dist/cjs/hooks/useSardineClientToken.js +20 -0
  58. package/dist/cjs/hooks/useSardineClientToken.js.map +1 -0
  59. package/dist/cjs/hooks/useSelectPaymentModal.js +10 -0
  60. package/dist/cjs/hooks/useSelectPaymentModal.js.map +1 -0
  61. package/dist/cjs/hooks/useSkipOnCloseCallback.js +22 -0
  62. package/dist/cjs/hooks/useSkipOnCloseCallback.js.map +1 -0
  63. package/dist/cjs/hooks/useSwapModal.js +10 -0
  64. package/dist/cjs/hooks/useSwapModal.js.map +1 -0
  65. package/dist/cjs/hooks/useTransactionStatusModal.js +10 -0
  66. package/dist/cjs/hooks/useTransactionStatusModal.js.map +1 -0
  67. package/dist/cjs/hooks/useTransferFundsModal.js +10 -0
  68. package/dist/cjs/hooks/useTransferFundsModal.js.map +1 -0
  69. package/dist/cjs/index.js +27 -0
  70. package/dist/cjs/index.js.map +1 -0
  71. package/dist/cjs/utils/index.js +18 -0
  72. package/dist/cjs/utils/index.js.map +1 -0
  73. package/dist/cjs/utils/sardine.js +52 -0
  74. package/dist/cjs/utils/sardine.js.map +1 -0
  75. package/dist/cjs/utils/sizing.js +12 -0
  76. package/dist/cjs/utils/sizing.js.map +1 -0
  77. package/dist/cjs/utils/transak.js +41 -0
  78. package/dist/cjs/utils/transak.js.map +1 -0
  79. package/dist/cjs/views/AddFunds.js +50 -0
  80. package/dist/cjs/views/AddFunds.js.map +1 -0
  81. package/dist/cjs/views/CheckoutSelection/component/OrderSummaryItem.js +35 -0
  82. package/dist/cjs/views/CheckoutSelection/component/OrderSummaryItem.js.map +1 -0
  83. package/dist/cjs/views/CheckoutSelection/index.js +83 -0
  84. package/dist/cjs/views/CheckoutSelection/index.js.map +1 -0
  85. package/dist/cjs/views/PaymentSelection/Footer.js +12 -0
  86. package/dist/cjs/views/PaymentSelection/Footer.js.map +1 -0
  87. package/dist/cjs/views/PaymentSelection/OrderSummary/Price.js +42 -0
  88. package/dist/cjs/views/PaymentSelection/OrderSummary/Price.js.map +1 -0
  89. package/dist/cjs/views/PaymentSelection/OrderSummary/index.js +63 -0
  90. package/dist/cjs/views/PaymentSelection/OrderSummary/index.js.map +1 -0
  91. package/dist/cjs/views/PaymentSelection/PayWithCreditCard/PaymentProviderOption.js +10 -0
  92. package/dist/cjs/views/PaymentSelection/PayWithCreditCard/PaymentProviderOption.js.map +1 -0
  93. package/dist/cjs/views/PaymentSelection/PayWithCreditCard/index.js +112 -0
  94. package/dist/cjs/views/PaymentSelection/PayWithCreditCard/index.js.map +1 -0
  95. package/dist/cjs/views/PaymentSelection/PayWithCreditCard/providers/SardineLogo.js +9 -0
  96. package/dist/cjs/views/PaymentSelection/PayWithCreditCard/providers/SardineLogo.js.map +1 -0
  97. package/dist/cjs/views/PaymentSelection/PayWithCrypto/index.js +134 -0
  98. package/dist/cjs/views/PaymentSelection/PayWithCrypto/index.js.map +1 -0
  99. package/dist/cjs/views/PaymentSelection/TransferFunds.js +50 -0
  100. package/dist/cjs/views/PaymentSelection/TransferFunds.js.map +1 -0
  101. package/dist/cjs/views/PaymentSelection/index.js +332 -0
  102. package/dist/cjs/views/PaymentSelection/index.js.map +1 -0
  103. package/dist/cjs/views/PendingCreditCardTransaction.js +295 -0
  104. package/dist/cjs/views/PendingCreditCardTransaction.js.map +1 -0
  105. package/dist/cjs/views/Swap/index.js +173 -0
  106. package/dist/cjs/views/Swap/index.js.map +1 -0
  107. package/dist/cjs/views/TransactionError.js +23 -0
  108. package/dist/cjs/views/TransactionError.js.map +1 -0
  109. package/dist/cjs/views/TransactionStatus/index.js +178 -0
  110. package/dist/cjs/views/TransactionStatus/index.js.map +1 -0
  111. package/dist/cjs/views/TransactionSuccess.js +23 -0
  112. package/dist/cjs/views/TransactionSuccess.js.map +1 -0
  113. package/dist/cjs/views/TransferToWallet/CopyButton.js +24 -0
  114. package/dist/cjs/views/TransferToWallet/CopyButton.js.map +1 -0
  115. package/dist/cjs/views/TransferToWallet/QRCode.js +13 -0
  116. package/dist/cjs/views/TransferToWallet/QRCode.js.map +1 -0
  117. package/dist/cjs/views/TransferToWallet/index.js +17 -0
  118. package/dist/cjs/views/TransferToWallet/index.js.map +1 -0
  119. package/dist/cjs/views/index.js +26 -0
  120. package/dist/cjs/views/index.js.map +1 -0
  121. package/dist/esm/api/data.js +159 -0
  122. package/dist/esm/api/data.js.map +1 -0
  123. package/dist/esm/api/index.js +2 -0
  124. package/dist/esm/api/index.js.map +1 -0
  125. package/dist/esm/components/CopyButton.js +20 -0
  126. package/dist/esm/components/CopyButton.js.map +1 -0
  127. package/dist/esm/components/DefaultIcon.js +9 -0
  128. package/dist/esm/components/DefaultIcon.js.map +1 -0
  129. package/dist/esm/components/NavigationHeader.js +19 -0
  130. package/dist/esm/components/NavigationHeader.js.map +1 -0
  131. package/dist/esm/components/SequenceCheckoutProvider/SequenceCheckoutProvider.js +210 -0
  132. package/dist/esm/components/SequenceCheckoutProvider/SequenceCheckoutProvider.js.map +1 -0
  133. package/dist/esm/components/SequenceCheckoutProvider/index.js +2 -0
  134. package/dist/esm/components/SequenceCheckoutProvider/index.js.map +1 -0
  135. package/dist/esm/constants/abi.js +185 -0
  136. package/dist/esm/constants/abi.js.map +1 -0
  137. package/dist/esm/constants/index.js +5 -0
  138. package/dist/esm/constants/index.js.map +1 -0
  139. package/dist/esm/contexts/AddFundsModal.js +3 -0
  140. package/dist/esm/contexts/AddFundsModal.js.map +1 -0
  141. package/dist/esm/contexts/CheckoutModal.js +4 -0
  142. package/dist/esm/contexts/CheckoutModal.js.map +1 -0
  143. package/dist/esm/contexts/Navigation.js +4 -0
  144. package/dist/esm/contexts/Navigation.js.map +1 -0
  145. package/dist/esm/contexts/SelectPaymentModal.js +3 -0
  146. package/dist/esm/contexts/SelectPaymentModal.js.map +1 -0
  147. package/dist/esm/contexts/SwapModal.js +4 -0
  148. package/dist/esm/contexts/SwapModal.js.map +1 -0
  149. package/dist/esm/contexts/TransactionStatusModal.js +3 -0
  150. package/dist/esm/contexts/TransactionStatusModal.js.map +1 -0
  151. package/dist/esm/contexts/TransferFundsModal.js +3 -0
  152. package/dist/esm/contexts/TransferFundsModal.js.map +1 -0
  153. package/dist/esm/contexts/genericContext.js +16 -0
  154. package/dist/esm/contexts/genericContext.js.map +1 -0
  155. package/dist/esm/contexts/index.js +8 -0
  156. package/dist/esm/contexts/index.js.map +1 -0
  157. package/dist/esm/hooks/index.js +14 -0
  158. package/dist/esm/hooks/index.js.map +1 -0
  159. package/dist/esm/hooks/useAddFundsModal.js +6 -0
  160. package/dist/esm/hooks/useAddFundsModal.js.map +1 -0
  161. package/dist/esm/hooks/useCheckoutModal.js +6 -0
  162. package/dist/esm/hooks/useCheckoutModal.js.map +1 -0
  163. package/dist/esm/hooks/useCheckoutOptionsSalesContract.js +16 -0
  164. package/dist/esm/hooks/useCheckoutOptionsSalesContract.js.map +1 -0
  165. package/dist/esm/hooks/useCheckoutWhitelistStatus.js +17 -0
  166. package/dist/esm/hooks/useCheckoutWhitelistStatus.js.map +1 -0
  167. package/dist/esm/hooks/useERC1155SaleContractCheckout.js +151 -0
  168. package/dist/esm/hooks/useERC1155SaleContractCheckout.js.map +1 -0
  169. package/dist/esm/hooks/useMarketplaceClient.js +36 -0
  170. package/dist/esm/hooks/useMarketplaceClient.js.map +1 -0
  171. package/dist/esm/hooks/useModalTheme.js +6 -0
  172. package/dist/esm/hooks/useModalTheme.js.map +1 -0
  173. package/dist/esm/hooks/useNavigation.js +20 -0
  174. package/dist/esm/hooks/useNavigation.js.map +1 -0
  175. package/dist/esm/hooks/useSardineClientToken.js +16 -0
  176. package/dist/esm/hooks/useSardineClientToken.js.map +1 -0
  177. package/dist/esm/hooks/useSelectPaymentModal.js +6 -0
  178. package/dist/esm/hooks/useSelectPaymentModal.js.map +1 -0
  179. package/dist/esm/hooks/useSkipOnCloseCallback.js +18 -0
  180. package/dist/esm/hooks/useSkipOnCloseCallback.js.map +1 -0
  181. package/dist/esm/hooks/useSwapModal.js +6 -0
  182. package/dist/esm/hooks/useSwapModal.js.map +1 -0
  183. package/dist/esm/hooks/useTransactionStatusModal.js +6 -0
  184. package/dist/esm/hooks/useTransactionStatusModal.js.map +1 -0
  185. package/dist/esm/hooks/useTransferFundsModal.js +6 -0
  186. package/dist/esm/hooks/useTransferFundsModal.js.map +1 -0
  187. package/dist/esm/index.js +13 -0
  188. package/dist/esm/index.js.map +1 -0
  189. package/dist/esm/utils/index.js +2 -0
  190. package/dist/esm/utils/index.js.map +1 -0
  191. package/dist/esm/utils/sardine.js +48 -0
  192. package/dist/esm/utils/sardine.js.map +1 -0
  193. package/dist/esm/utils/sizing.js +8 -0
  194. package/dist/esm/utils/sizing.js.map +1 -0
  195. package/dist/esm/utils/transak.js +36 -0
  196. package/dist/esm/utils/transak.js.map +1 -0
  197. package/dist/esm/views/AddFunds.js +46 -0
  198. package/dist/esm/views/AddFunds.js.map +1 -0
  199. package/dist/esm/views/CheckoutSelection/component/OrderSummaryItem.js +30 -0
  200. package/dist/esm/views/CheckoutSelection/component/OrderSummaryItem.js.map +1 -0
  201. package/dist/esm/views/CheckoutSelection/index.js +79 -0
  202. package/dist/esm/views/CheckoutSelection/index.js.map +1 -0
  203. package/dist/esm/views/PaymentSelection/Footer.js +8 -0
  204. package/dist/esm/views/PaymentSelection/Footer.js.map +1 -0
  205. package/dist/esm/views/PaymentSelection/OrderSummary/Price.js +38 -0
  206. package/dist/esm/views/PaymentSelection/OrderSummary/Price.js.map +1 -0
  207. package/dist/esm/views/PaymentSelection/OrderSummary/index.js +59 -0
  208. package/dist/esm/views/PaymentSelection/OrderSummary/index.js.map +1 -0
  209. package/dist/esm/views/PaymentSelection/PayWithCreditCard/PaymentProviderOption.js +6 -0
  210. package/dist/esm/views/PaymentSelection/PayWithCreditCard/PaymentProviderOption.js.map +1 -0
  211. package/dist/esm/views/PaymentSelection/PayWithCreditCard/index.js +108 -0
  212. package/dist/esm/views/PaymentSelection/PayWithCreditCard/index.js.map +1 -0
  213. package/dist/esm/views/PaymentSelection/PayWithCreditCard/providers/SardineLogo.js +5 -0
  214. package/dist/esm/views/PaymentSelection/PayWithCreditCard/providers/SardineLogo.js.map +1 -0
  215. package/dist/esm/views/PaymentSelection/PayWithCrypto/index.js +130 -0
  216. package/dist/esm/views/PaymentSelection/PayWithCrypto/index.js.map +1 -0
  217. package/dist/esm/views/PaymentSelection/TransferFunds.js +46 -0
  218. package/dist/esm/views/PaymentSelection/TransferFunds.js.map +1 -0
  219. package/dist/esm/views/PaymentSelection/index.js +326 -0
  220. package/dist/esm/views/PaymentSelection/index.js.map +1 -0
  221. package/dist/esm/views/PendingCreditCardTransaction.js +286 -0
  222. package/dist/esm/views/PendingCreditCardTransaction.js.map +1 -0
  223. package/dist/esm/views/Swap/index.js +169 -0
  224. package/dist/esm/views/Swap/index.js.map +1 -0
  225. package/dist/esm/views/TransactionError.js +18 -0
  226. package/dist/esm/views/TransactionError.js.map +1 -0
  227. package/dist/esm/views/TransactionStatus/index.js +170 -0
  228. package/dist/esm/views/TransactionStatus/index.js.map +1 -0
  229. package/dist/esm/views/TransactionSuccess.js +18 -0
  230. package/dist/esm/views/TransactionSuccess.js.map +1 -0
  231. package/dist/esm/views/TransferToWallet/CopyButton.js +20 -0
  232. package/dist/esm/views/TransferToWallet/CopyButton.js.map +1 -0
  233. package/dist/esm/views/TransferToWallet/QRCode.js +9 -0
  234. package/dist/esm/views/TransferToWallet/QRCode.js.map +1 -0
  235. package/dist/esm/views/TransferToWallet/index.js +13 -0
  236. package/dist/esm/views/TransferToWallet/index.js.map +1 -0
  237. package/dist/esm/views/index.js +10 -0
  238. package/dist/esm/views/index.js.map +1 -0
  239. package/dist/types/api/data.d.ts +21 -0
  240. package/dist/types/api/data.d.ts.map +1 -0
  241. package/dist/types/api/index.d.ts +2 -0
  242. package/dist/types/api/index.d.ts.map +1 -0
  243. package/dist/types/components/CopyButton.d.ts +9 -0
  244. package/dist/types/components/CopyButton.d.ts.map +1 -0
  245. package/dist/types/components/DefaultIcon.d.ts +6 -0
  246. package/dist/types/components/DefaultIcon.d.ts.map +1 -0
  247. package/dist/types/components/NavigationHeader.d.ts +8 -0
  248. package/dist/types/components/NavigationHeader.d.ts.map +1 -0
  249. package/dist/types/components/SequenceCheckoutProvider/SequenceCheckoutProvider.d.ts +7 -0
  250. package/dist/types/components/SequenceCheckoutProvider/SequenceCheckoutProvider.d.ts.map +1 -0
  251. package/dist/types/components/SequenceCheckoutProvider/index.d.ts +2 -0
  252. package/dist/types/components/SequenceCheckoutProvider/index.d.ts.map +1 -0
  253. package/dist/types/constants/abi.d.ts +46 -0
  254. package/dist/types/constants/abi.d.ts.map +1 -0
  255. package/dist/types/constants/index.d.ts +5 -0
  256. package/dist/types/constants/index.d.ts.map +1 -0
  257. package/dist/types/contexts/AddFundsModal.d.ts +22 -0
  258. package/dist/types/contexts/AddFundsModal.d.ts.map +1 -0
  259. package/dist/types/contexts/CheckoutModal.d.ts +56 -0
  260. package/dist/types/contexts/CheckoutModal.d.ts.map +1 -0
  261. package/dist/types/contexts/Navigation.d.ts +38 -0
  262. package/dist/types/contexts/Navigation.d.ts.map +1 -0
  263. package/dist/types/contexts/SelectPaymentModal.d.ts +43 -0
  264. package/dist/types/contexts/SelectPaymentModal.d.ts.map +1 -0
  265. package/dist/types/contexts/SwapModal.d.ts +25 -0
  266. package/dist/types/contexts/SwapModal.d.ts.map +1 -0
  267. package/dist/types/contexts/TransactionStatusModal.d.ts +25 -0
  268. package/dist/types/contexts/TransactionStatusModal.d.ts.map +1 -0
  269. package/dist/types/contexts/TransferFundsModal.d.ts +13 -0
  270. package/dist/types/contexts/TransferFundsModal.d.ts.map +1 -0
  271. package/dist/types/contexts/genericContext.d.ts +2 -0
  272. package/dist/types/contexts/genericContext.d.ts.map +1 -0
  273. package/dist/types/contexts/index.d.ts +8 -0
  274. package/dist/types/contexts/index.d.ts.map +1 -0
  275. package/dist/types/hooks/index.d.ts +14 -0
  276. package/dist/types/hooks/index.d.ts.map +1 -0
  277. package/dist/types/hooks/useAddFundsModal.d.ts +6 -0
  278. package/dist/types/hooks/useAddFundsModal.d.ts.map +1 -0
  279. package/dist/types/hooks/useCheckoutModal.d.ts +6 -0
  280. package/dist/types/hooks/useCheckoutModal.d.ts.map +1 -0
  281. package/dist/types/hooks/useCheckoutOptionsSalesContract.d.ts +6 -0
  282. package/dist/types/hooks/useCheckoutOptionsSalesContract.d.ts.map +1 -0
  283. package/dist/types/hooks/useCheckoutWhitelistStatus.d.ts +3 -0
  284. package/dist/types/hooks/useCheckoutWhitelistStatus.d.ts.map +1 -0
  285. package/dist/types/hooks/useERC1155SaleContractCheckout.d.ts +37 -0
  286. package/dist/types/hooks/useERC1155SaleContractCheckout.d.ts.map +1 -0
  287. package/dist/types/hooks/useMarketplaceClient.d.ts +9 -0
  288. package/dist/types/hooks/useMarketplaceClient.d.ts.map +1 -0
  289. package/dist/types/hooks/useModalTheme.d.ts +2 -0
  290. package/dist/types/hooks/useModalTheme.d.ts.map +1 -0
  291. package/dist/types/hooks/useNavigation.d.ts +11 -0
  292. package/dist/types/hooks/useNavigation.d.ts.map +1 -0
  293. package/dist/types/hooks/useSardineClientToken.d.ts +3 -0
  294. package/dist/types/hooks/useSardineClientToken.d.ts.map +1 -0
  295. package/dist/types/hooks/useSelectPaymentModal.d.ts +6 -0
  296. package/dist/types/hooks/useSelectPaymentModal.d.ts.map +1 -0
  297. package/dist/types/hooks/useSkipOnCloseCallback.d.ts +6 -0
  298. package/dist/types/hooks/useSkipOnCloseCallback.d.ts.map +1 -0
  299. package/dist/types/hooks/useSwapModal.d.ts +6 -0
  300. package/dist/types/hooks/useSwapModal.d.ts.map +1 -0
  301. package/dist/types/hooks/useTransactionStatusModal.d.ts +6 -0
  302. package/dist/types/hooks/useTransactionStatusModal.d.ts.map +1 -0
  303. package/dist/types/hooks/useTransferFundsModal.d.ts +6 -0
  304. package/dist/types/hooks/useTransferFundsModal.d.ts.map +1 -0
  305. package/dist/types/index.d.ts +14 -0
  306. package/dist/types/index.d.ts.map +1 -0
  307. package/dist/types/utils/index.d.ts +2 -0
  308. package/dist/types/utils/index.d.ts.map +1 -0
  309. package/dist/types/utils/sardine.d.ts +6 -0
  310. package/dist/types/utils/sardine.d.ts.map +1 -0
  311. package/dist/types/utils/sizing.d.ts +2 -0
  312. package/dist/types/utils/sizing.d.ts.map +1 -0
  313. package/dist/types/utils/transak.d.ts +7 -0
  314. package/dist/types/utils/transak.d.ts.map +1 -0
  315. package/dist/types/views/AddFunds.d.ts +2 -0
  316. package/dist/types/views/AddFunds.d.ts.map +1 -0
  317. package/dist/types/views/CheckoutSelection/component/OrderSummaryItem.d.ts +10 -0
  318. package/dist/types/views/CheckoutSelection/component/OrderSummaryItem.d.ts.map +1 -0
  319. package/dist/types/views/CheckoutSelection/index.d.ts +2 -0
  320. package/dist/types/views/CheckoutSelection/index.d.ts.map +1 -0
  321. package/dist/types/views/PaymentSelection/Footer.d.ts +2 -0
  322. package/dist/types/views/PaymentSelection/Footer.d.ts.map +1 -0
  323. package/dist/types/views/PaymentSelection/OrderSummary/Price.d.ts +2 -0
  324. package/dist/types/views/PaymentSelection/OrderSummary/Price.d.ts.map +1 -0
  325. package/dist/types/views/PaymentSelection/OrderSummary/index.d.ts +2 -0
  326. package/dist/types/views/PaymentSelection/OrderSummary/index.d.ts.map +1 -0
  327. package/dist/types/views/PaymentSelection/PayWithCreditCard/PaymentProviderOption.d.ts +11 -0
  328. package/dist/types/views/PaymentSelection/PayWithCreditCard/PaymentProviderOption.d.ts.map +1 -0
  329. package/dist/types/views/PaymentSelection/PayWithCreditCard/index.d.ts +9 -0
  330. package/dist/types/views/PaymentSelection/PayWithCreditCard/index.d.ts.map +1 -0
  331. package/dist/types/views/PaymentSelection/PayWithCreditCard/providers/SardineLogo.d.ts +2 -0
  332. package/dist/types/views/PaymentSelection/PayWithCreditCard/providers/SardineLogo.d.ts.map +1 -0
  333. package/dist/types/views/PaymentSelection/PayWithCrypto/index.d.ts +12 -0
  334. package/dist/types/views/PaymentSelection/PayWithCrypto/index.d.ts.map +1 -0
  335. package/dist/types/views/PaymentSelection/TransferFunds.d.ts +2 -0
  336. package/dist/types/views/PaymentSelection/TransferFunds.d.ts.map +1 -0
  337. package/dist/types/views/PaymentSelection/index.d.ts +4 -0
  338. package/dist/types/views/PaymentSelection/index.d.ts.map +1 -0
  339. package/dist/types/views/PendingCreditCardTransaction.d.ts +8 -0
  340. package/dist/types/views/PendingCreditCardTransaction.d.ts.map +1 -0
  341. package/dist/types/views/Swap/index.d.ts +2 -0
  342. package/dist/types/views/Swap/index.d.ts.map +1 -0
  343. package/dist/types/views/TransactionError.d.ts +3 -0
  344. package/dist/types/views/TransactionError.d.ts.map +1 -0
  345. package/dist/types/views/TransactionStatus/index.d.ts +9 -0
  346. package/dist/types/views/TransactionStatus/index.d.ts.map +1 -0
  347. package/dist/types/views/TransactionSuccess.d.ts +3 -0
  348. package/dist/types/views/TransactionSuccess.d.ts.map +1 -0
  349. package/dist/types/views/TransferToWallet/CopyButton.d.ts +10 -0
  350. package/dist/types/views/TransferToWallet/CopyButton.d.ts.map +1 -0
  351. package/dist/types/views/TransferToWallet/QRCode.d.ts +6 -0
  352. package/dist/types/views/TransferToWallet/QRCode.d.ts.map +1 -0
  353. package/dist/types/views/TransferToWallet/index.d.ts +2 -0
  354. package/dist/types/views/TransferToWallet/index.d.ts.map +1 -0
  355. package/dist/types/views/index.d.ts +10 -0
  356. package/dist/types/views/index.d.ts.map +1 -0
  357. package/package.json +73 -0
  358. package/src/api/data.ts +194 -0
  359. package/src/api/index.ts +1 -0
  360. package/src/components/CopyButton.tsx +32 -0
  361. package/src/components/DefaultIcon.tsx +22 -0
  362. package/src/components/NavigationHeader.tsx +57 -0
  363. package/src/components/SequenceCheckoutProvider/SequenceCheckoutProvider.tsx +363 -0
  364. package/src/components/SequenceCheckoutProvider/index.ts +1 -0
  365. package/src/constants/abi.ts +185 -0
  366. package/src/constants/index.ts +4 -0
  367. package/src/contexts/AddFundsModal.ts +25 -0
  368. package/src/contexts/CheckoutModal.ts +65 -0
  369. package/src/contexts/Navigation.ts +56 -0
  370. package/src/contexts/SelectPaymentModal.ts +50 -0
  371. package/src/contexts/SwapModal.ts +31 -0
  372. package/src/contexts/TransactionStatusModal.ts +29 -0
  373. package/src/contexts/TransferFundsModal.ts +16 -0
  374. package/src/contexts/genericContext.ts +19 -0
  375. package/src/contexts/index.ts +7 -0
  376. package/src/hooks/index.ts +13 -0
  377. package/src/hooks/useAddFundsModal.ts +7 -0
  378. package/src/hooks/useCheckoutModal.ts +7 -0
  379. package/src/hooks/useCheckoutOptionsSalesContract.ts +28 -0
  380. package/src/hooks/useCheckoutWhitelistStatus.ts +20 -0
  381. package/src/hooks/useERC1155SaleContractCheckout.ts +260 -0
  382. package/src/hooks/useMarketplaceClient.ts +49 -0
  383. package/src/hooks/useModalTheme.ts +7 -0
  384. package/src/hooks/useNavigation.ts +33 -0
  385. package/src/hooks/useSardineClientToken.ts +18 -0
  386. package/src/hooks/useSelectPaymentModal.ts +7 -0
  387. package/src/hooks/useSkipOnCloseCallback.ts +25 -0
  388. package/src/hooks/useSwapModal.ts +7 -0
  389. package/src/hooks/useTransactionStatusModal.ts +7 -0
  390. package/src/hooks/useTransferFundsModal.ts +7 -0
  391. package/src/index.ts +19 -0
  392. package/src/utils/index.ts +1 -0
  393. package/src/utils/sardine.ts +62 -0
  394. package/src/utils/sizing.ts +8 -0
  395. package/src/utils/transak.ts +72 -0
  396. package/src/views/AddFunds.tsx +59 -0
  397. package/src/views/CheckoutSelection/component/OrderSummaryItem.tsx +82 -0
  398. package/src/views/CheckoutSelection/index.tsx +207 -0
  399. package/src/views/PaymentSelection/Footer.tsx +39 -0
  400. package/src/views/PaymentSelection/OrderSummary/Price.tsx +66 -0
  401. package/src/views/PaymentSelection/OrderSummary/index.tsx +113 -0
  402. package/src/views/PaymentSelection/PayWithCreditCard/PaymentProviderOption.tsx +38 -0
  403. package/src/views/PaymentSelection/PayWithCreditCard/index.tsx +177 -0
  404. package/src/views/PaymentSelection/PayWithCreditCard/providers/SardineLogo.tsx +11 -0
  405. package/src/views/PaymentSelection/PayWithCrypto/index.tsx +250 -0
  406. package/src/views/PaymentSelection/TransferFunds.tsx +98 -0
  407. package/src/views/PaymentSelection/index.tsx +484 -0
  408. package/src/views/PendingCreditCardTransaction.tsx +429 -0
  409. package/src/views/Swap/index.tsx +289 -0
  410. package/src/views/TransactionError.tsx +39 -0
  411. package/src/views/TransactionStatus/index.tsx +337 -0
  412. package/src/views/TransactionSuccess.tsx +51 -0
  413. package/src/views/TransferToWallet/CopyButton.tsx +37 -0
  414. package/src/views/TransferToWallet/QRCode.tsx +25 -0
  415. package/src/views/TransferToWallet/index.tsx +36 -0
  416. package/src/views/index.ts +9 -0
@@ -0,0 +1,50 @@
1
+ import { Hex } from 'viem'
2
+
3
+ import type { TransakConfig } from '../contexts/CheckoutModal'
4
+
5
+ import { createGenericContext } from './genericContext'
6
+
7
+ export type CreditCardProviders = 'sardine' | 'transak'
8
+
9
+ export interface Collectible {
10
+ tokenId: string
11
+ quantity: string
12
+ decimals?: number
13
+ price?: string
14
+ }
15
+
16
+ export interface SupplementaryAnalyticsInfo {
17
+ [key: string]: string
18
+ }
19
+
20
+ export interface SelectPaymentSettings {
21
+ collectibles: Collectible[]
22
+ chain: number | string
23
+ currencyAddress: string | Hex
24
+ price: string
25
+ targetContractAddress: string | Hex
26
+ txData: Hex
27
+ collectionAddress: string | Hex
28
+ recipientAddress: string | Hex
29
+ approvedSpenderAddress?: string
30
+ transactionConfirmations?: number
31
+ onSuccess?: (txHash: string) => void
32
+ onError?: (error: Error) => void
33
+ onClose?: () => void
34
+ enableMainCurrencyPayment?: boolean
35
+ enableSwapPayments?: boolean
36
+ enableTransferFunds?: boolean
37
+ creditCardProviders?: string[]
38
+ copyrightText?: string
39
+ transakConfig?: TransakConfig
40
+ customProviderCallback?: (onSuccess: (txHash: string) => void, onError: (error: Error) => void, onClose: () => void) => void
41
+ supplementaryAnalyticsInfo?: SupplementaryAnalyticsInfo
42
+ }
43
+
44
+ type SelectPaymentModalContext = {
45
+ openSelectPaymentModal: (settings: SelectPaymentSettings) => void
46
+ closeSelectPaymentModal: () => void
47
+ selectPaymentSettings?: SelectPaymentSettings
48
+ }
49
+
50
+ export const [useSelectPaymentContext, SelectPaymentContextProvider] = createGenericContext<SelectPaymentModalContext>()
@@ -0,0 +1,31 @@
1
+ 'use client'
2
+
3
+ import { Hex } from 'viem'
4
+
5
+ import { createGenericContext } from './genericContext'
6
+
7
+ interface Transaction {
8
+ to: Hex
9
+ data?: Hex
10
+ value?: bigint
11
+ }
12
+
13
+ export interface SwapModalSettings {
14
+ chainId: number
15
+ currencyAddress: string
16
+ currencyAmount: string
17
+ title?: string
18
+ description?: string
19
+ disableMainCurrency?: boolean
20
+ postSwapTransactions?: Transaction[]
21
+ blockConfirmations?: number
22
+ onSuccess?: (txHash: string) => void
23
+ }
24
+
25
+ type SwapModalContext = {
26
+ openSwapModal: (settings: SwapModalSettings) => void
27
+ closeSwapModal: () => void
28
+ swapModalSettings?: SwapModalSettings
29
+ }
30
+
31
+ export const [useSwapModalContext, SwapModalContextProvider] = createGenericContext<SwapModalContext>()
@@ -0,0 +1,29 @@
1
+ import { createGenericContext } from './genericContext'
2
+
3
+ interface Item {
4
+ tokenId: string
5
+ quantity: string
6
+ decimals?: number
7
+ price: string
8
+ }
9
+
10
+ export interface TransactionStatusSettings {
11
+ collectionAddress?: string
12
+ currencyAddress?: string
13
+ chainId: number
14
+ items?: Item[]
15
+ blockConfirmations?: number
16
+ onSuccess?: (txHash: string) => void
17
+ onError?: (error: Error) => void
18
+ onClose?: () => void
19
+ txHash: string
20
+ }
21
+
22
+ type TransactionStatusContext = {
23
+ openTransactionStatusModal: (settings: TransactionStatusSettings) => void
24
+ closeTransactionStatusModal: () => void
25
+ transactionStatusSettings?: TransactionStatusSettings
26
+ }
27
+
28
+ export const [useTransactionStatusContext, TransactionStatusModalContextProvider] =
29
+ createGenericContext<TransactionStatusContext>()
@@ -0,0 +1,16 @@
1
+ import { Hex } from 'viem'
2
+
3
+ import { createGenericContext } from './genericContext'
4
+
5
+ export interface TransferFundsSettings {
6
+ walletAddress: string | Hex
7
+ onClose?: () => void
8
+ }
9
+
10
+ type TransferFundsModalContext = {
11
+ openTransferFundsModal: (settings: TransferFundsSettings) => void
12
+ closeTransferFundsModal: () => void
13
+ transferFundsSettings?: TransferFundsSettings
14
+ }
15
+
16
+ export const [useTransferFundsModalContext, TransferFundsContextProvider] = createGenericContext<TransferFundsModalContext>()
@@ -0,0 +1,19 @@
1
+ import { useContext, createContext } from 'react'
2
+
3
+ // https://medium.com/@rivoltafilippo/typing-react-context-to-avoid-an-undefined-default-value-2c7c5a7d5947
4
+
5
+ export const createGenericContext = <T>() => {
6
+ // Create a context with a generic parameter or undefined
7
+ const genericContext = createContext<T | undefined>(undefined)
8
+
9
+ // Check if the value provided to the context is defined or throw an error
10
+ const useGenericContext = () => {
11
+ const contextIsDefined = useContext(genericContext)
12
+ if (!contextIsDefined) {
13
+ throw new Error('useGenericContext must be used within a Provider')
14
+ }
15
+ return contextIsDefined
16
+ }
17
+
18
+ return [useGenericContext, genericContext.Provider] as const
19
+ }
@@ -0,0 +1,7 @@
1
+ export * from './AddFundsModal'
2
+ export * from './CheckoutModal'
3
+ export * from './Navigation'
4
+ export * from './SelectPaymentModal'
5
+ export * from './TransferFundsModal'
6
+ export * from './TransactionStatusModal'
7
+ export * from './SwapModal'
@@ -0,0 +1,13 @@
1
+ export * from './useAddFundsModal'
2
+ export * from './useCheckoutModal'
3
+ export * from './useNavigation'
4
+ export * from './useModalTheme'
5
+ export * from './useCheckoutWhitelistStatus'
6
+ export * from './useSardineClientToken'
7
+ export * from './useSelectPaymentModal'
8
+ export * from './useTransferFundsModal'
9
+ export * from './useTransactionStatusModal'
10
+ export * from './useSwapModal'
11
+ export * from './useCheckoutOptionsSalesContract'
12
+ export * from './useERC1155SaleContractCheckout'
13
+ export * from './useSkipOnCloseCallback'
@@ -0,0 +1,7 @@
1
+ import { useAddFundsModalContext } from '../contexts/AddFundsModal'
2
+
3
+ export const useAddFundsModal = () => {
4
+ const { triggerAddFunds, closeAddFunds, addFundsSettings } = useAddFundsModalContext()
5
+
6
+ return { triggerAddFunds, closeAddFunds, addFundsSettings }
7
+ }
@@ -0,0 +1,7 @@
1
+ import { useCheckoutModalContext } from '../contexts/CheckoutModal'
2
+
3
+ export const useCheckoutModal = () => {
4
+ const { triggerCheckout, closeCheckout, settings } = useCheckoutModalContext()
5
+
6
+ return { triggerCheckout, closeCheckout, settings }
7
+ }
@@ -0,0 +1,28 @@
1
+ import { CheckoutOptionsSalesContractArgs } from '@0xsequence/marketplace'
2
+ import { useQuery } from '@tanstack/react-query'
3
+
4
+ import { useMarketplaceClient } from './useMarketplaceClient'
5
+
6
+ export interface UseGenerateBuyTransactionOptions {
7
+ disabled?: boolean
8
+ }
9
+
10
+ export const useCheckoutOptionsSalesContract = (
11
+ chain: number | string,
12
+ args: CheckoutOptionsSalesContractArgs,
13
+ options?: UseGenerateBuyTransactionOptions
14
+ ) => {
15
+ const marketplaceClient = useMarketplaceClient({ chain })
16
+
17
+ return useQuery({
18
+ queryKey: ['useCheckoutOptionsSalesContract', args],
19
+ queryFn: async () => {
20
+ const res = await marketplaceClient.checkoutOptionsSalesContract(args)
21
+
22
+ return res
23
+ },
24
+ retry: false,
25
+ staleTime: 360 * 1000,
26
+ enabled: !options?.disabled && !!args.wallet
27
+ })
28
+ }
@@ -0,0 +1,20 @@
1
+ import { useProjectAccessKey } from '@0xsequence/connect'
2
+ import { useQuery } from '@tanstack/react-query'
3
+
4
+ import { checkSardineWhitelistStatus, CheckSardineWhitelistStatusArgs } from '../utils'
5
+
6
+ export const useCheckoutWhitelistStatus = (args: CheckSardineWhitelistStatusArgs, disabled?: boolean) => {
7
+ const projectAccessKey = useProjectAccessKey()
8
+
9
+ return useQuery({
10
+ queryKey: ['useCheckoutWhitelistStatus', args],
11
+ queryFn: async () => {
12
+ const res = await checkSardineWhitelistStatus(args, projectAccessKey)
13
+
14
+ return res
15
+ },
16
+ retry: false,
17
+ staleTime: 1800 * 1000,
18
+ enabled: !disabled
19
+ })
20
+ }
@@ -0,0 +1,260 @@
1
+ import { CheckoutOptionsSalesContractArgs, TransactionSwapProvider } from '@0xsequence/marketplace'
2
+ import { findSupportedNetwork } from '@0xsequence/network'
3
+ import { Abi, Hex, encodeFunctionData, toHex, zeroAddress } from 'viem'
4
+ import { useReadContract, useReadContracts } from 'wagmi'
5
+
6
+ import { ERC_1155_SALE_CONTRACT } from '../constants/abi'
7
+ import { SelectPaymentSettings } from '../contexts/SelectPaymentModal'
8
+
9
+ import { useCheckoutOptionsSalesContract } from './useCheckoutOptionsSalesContract'
10
+ import { useSelectPaymentModal } from './useSelectPaymentModal'
11
+
12
+ interface UseERC1155SaleContractCheckoutReturn {
13
+ openCheckoutModal: () => void
14
+ closeCheckoutModal: () => void
15
+ selectPaymentSettings?: SelectPaymentSettings
16
+ isLoading: boolean
17
+ isError: boolean
18
+ }
19
+
20
+ type SaleContractSettings = Omit<
21
+ SelectPaymentSettings,
22
+ 'txData' | 'collectibles' | 'price' | 'currencyAddress' | 'recipientAddress' | 'targetContractAddress'
23
+ >
24
+
25
+ export const getERC1155SaleContractConfig = ({
26
+ chain,
27
+ price,
28
+ currencyAddress = zeroAddress,
29
+ recipientAddress,
30
+ collectibles,
31
+ collectionAddress,
32
+ ...restProps
33
+ }: Omit<SelectPaymentSettings, 'txData'>): SelectPaymentSettings => {
34
+ const purchaseTransactionData = encodeFunctionData({
35
+ abi: ERC_1155_SALE_CONTRACT,
36
+ functionName: 'mint',
37
+ // [to, tokenIds, amounts, data, expectedPaymentToken, maxTotal, proof]
38
+ args: [
39
+ recipientAddress,
40
+ collectibles.map(c => BigInt(c.tokenId)),
41
+ collectibles.map(c => BigInt(c.quantity)),
42
+ toHex(0),
43
+ currencyAddress,
44
+ price,
45
+ [toHex(0, { size: 32 })]
46
+ ]
47
+ })
48
+
49
+ return {
50
+ chain,
51
+ price,
52
+ currencyAddress,
53
+ recipientAddress,
54
+ collectibles,
55
+ collectionAddress,
56
+ txData: purchaseTransactionData,
57
+ ...restProps
58
+ }
59
+ }
60
+
61
+ export const useERC1155SaleContractCheckout = ({
62
+ chain,
63
+ contractAddress,
64
+ wallet,
65
+ collectionAddress,
66
+ items,
67
+ ...restArgs
68
+ }: CheckoutOptionsSalesContractArgs & SaleContractSettings): UseERC1155SaleContractCheckoutReturn => {
69
+ const { openSelectPaymentModal, closeSelectPaymentModal, selectPaymentSettings } = useSelectPaymentModal()
70
+ const {
71
+ data: checkoutOptions,
72
+ isLoading: isLoadingCheckoutOptions,
73
+ isError: isErrorCheckoutOptions
74
+ } = useCheckoutOptionsSalesContract(chain, {
75
+ contractAddress,
76
+ wallet,
77
+ collectionAddress,
78
+ items
79
+ })
80
+ const network = findSupportedNetwork(chain)
81
+ const chainId = network?.chainId || 137
82
+
83
+ const {
84
+ data: saleConfigData,
85
+ isLoading: isLoadingSaleConfig,
86
+ isError: isErrorSaleConfig
87
+ } = useSaleContractConfig({ chainId, contractAddress, tokenIds: items.map(i => i.tokenId) })
88
+
89
+ const isLoading = isLoadingCheckoutOptions || isLoadingSaleConfig
90
+ const error = isErrorCheckoutOptions || isErrorSaleConfig
91
+
92
+ const openCheckoutModal = () => {
93
+ if (isLoading || error) {
94
+ console.error('Error loading checkout options or sale config', { isLoading, error })
95
+ return
96
+ }
97
+
98
+ openSelectPaymentModal(
99
+ getERC1155SaleContractConfig({
100
+ collectibles: items.map(item => ({
101
+ tokenId: item.tokenId,
102
+ quantity: item.quantity
103
+ })),
104
+ chain: chainId,
105
+ price: items
106
+ .reduce((acc, item) => {
107
+ const price = BigInt(saleConfigData?.saleConfigs.find(sale => sale.tokenId === item.tokenId)?.price || 0)
108
+
109
+ return acc + BigInt(item.quantity) * price
110
+ }, BigInt(0))
111
+ .toString(),
112
+ currencyAddress: saleConfigData?.currencyAddress || '',
113
+ recipientAddress: wallet,
114
+ collectionAddress,
115
+ targetContractAddress: contractAddress,
116
+ enableMainCurrencyPayment: true,
117
+ enableSwapPayments: checkoutOptions?.options?.swap?.includes(TransactionSwapProvider.zerox) || false,
118
+ creditCardProviders: checkoutOptions?.options.nftCheckout || [],
119
+ ...restArgs
120
+ })
121
+ )
122
+ }
123
+
124
+ return {
125
+ openCheckoutModal,
126
+ closeCheckoutModal: closeSelectPaymentModal,
127
+ selectPaymentSettings,
128
+ isLoading,
129
+ isError: error
130
+ }
131
+ }
132
+
133
+ interface UseSaleContractConfigArgs {
134
+ chainId: number
135
+ contractAddress: string
136
+ tokenIds: string[]
137
+ }
138
+
139
+ interface SaleConfig {
140
+ tokenId: string
141
+ price: string
142
+ }
143
+
144
+ interface UseSaleContractConfigData {
145
+ currencyAddress: string
146
+ saleConfigs: SaleConfig[]
147
+ }
148
+
149
+ interface UseSaleContractConfigReturn {
150
+ data?: UseSaleContractConfigData
151
+ isLoading: boolean
152
+ isError: boolean
153
+ }
154
+
155
+ export const useSaleContractConfig = ({
156
+ chainId,
157
+ contractAddress,
158
+ tokenIds
159
+ }: UseSaleContractConfigArgs): UseSaleContractConfigReturn => {
160
+ const {
161
+ data: paymentTokenERC1155,
162
+ isLoading: isLoadingPaymentTokenERC1155,
163
+ isError: isErrorPaymentTokenERC1155
164
+ } = useReadContract({
165
+ chainId,
166
+ abi: ERC_1155_SALE_CONTRACT,
167
+ address: contractAddress as Hex,
168
+ functionName: 'paymentToken'
169
+ })
170
+
171
+ interface SaleDetailsERC1155 {
172
+ cost: bigint
173
+ startTime: bigint
174
+ endTime: bigint
175
+ supplyCap: bigint
176
+ merkleRoot: string
177
+ }
178
+
179
+ const {
180
+ data: globalSaleDetailsERC1155,
181
+ isLoading: isLoadingGlobalSaleDetailsERC1155,
182
+ isError: isErrorGlobalSaleDetailsERC1155
183
+ } = useReadContract({
184
+ chainId,
185
+ abi: ERC_1155_SALE_CONTRACT,
186
+ address: contractAddress as Hex,
187
+ functionName: 'globalSaleDetails'
188
+ })
189
+
190
+ const baseTokenSaleContract = {
191
+ chainId,
192
+ abi: ERC_1155_SALE_CONTRACT as Abi,
193
+ address: contractAddress as Hex,
194
+ functionName: 'tokenSaleDetails'
195
+ }
196
+
197
+ const tokenSaleContracts = tokenIds.map(tokenId => ({
198
+ ...baseTokenSaleContract,
199
+ args: [BigInt(tokenId)]
200
+ }))
201
+
202
+ const {
203
+ data: tokenSaleDetailsERC1155,
204
+ isLoading: isLoadingTokenSaleDetailsERC1155,
205
+ isError: isErrorTokenSaleDetailsERC1155
206
+ } = useReadContracts({
207
+ contracts: tokenSaleContracts
208
+ })
209
+
210
+ const isLoadingERC1155 = isLoadingPaymentTokenERC1155 || isLoadingGlobalSaleDetailsERC1155 || isLoadingTokenSaleDetailsERC1155
211
+ const isErrorERC1155 = isErrorPaymentTokenERC1155 || isErrorGlobalSaleDetailsERC1155 || isErrorTokenSaleDetailsERC1155
212
+
213
+ if (isLoadingERC1155 || isErrorERC1155) {
214
+ return {
215
+ data: undefined,
216
+ isLoading: isLoadingERC1155,
217
+ isError: isErrorERC1155
218
+ }
219
+ }
220
+
221
+ const getSaleConfigs = (): SaleConfig[] => {
222
+ let saleInfos: SaleConfig[] = []
223
+
224
+ if (isLoadingERC1155 || isErrorERC1155) {
225
+ return saleInfos
226
+ }
227
+
228
+ // In the sale contract, the global sale has priority over the token sale
229
+ // So we need to check if the global sale is set, and if it is, use that
230
+ // Otherwise, we use the token sale
231
+ const { cost: globalCost, startTime, endTime } = globalSaleDetailsERC1155 as SaleDetailsERC1155
232
+ const isGlobalSaleInvalid =
233
+ endTime === BigInt(0) ||
234
+ BigInt(Math.floor(Date.now() / 1000)) <= startTime ||
235
+ BigInt(Math.floor(Date.now() / 1000)) >= endTime
236
+ saleInfos = tokenIds.map((tokenId, index) => {
237
+ const tokenPrice = (tokenSaleDetailsERC1155?.[index].result as SaleDetailsERC1155)['cost'] || BigInt(0)
238
+ return {
239
+ tokenId,
240
+ price: (!isGlobalSaleInvalid ? globalCost : tokenPrice).toString()
241
+ }
242
+ })
243
+
244
+ return saleInfos
245
+ }
246
+
247
+ return {
248
+ data: {
249
+ currencyAddress: paymentTokenERC1155 as string,
250
+ saleConfigs: getSaleConfigs()
251
+ },
252
+ isLoading: isLoadingERC1155,
253
+ isError: isErrorERC1155
254
+ }
255
+ }
256
+
257
+ /**
258
+ * @deprecated use useERC1155SaleContractPaymentModal instead
259
+ */
260
+ export const useERC1155SaleContractPaymentModal = useERC1155SaleContractCheckout
@@ -0,0 +1,49 @@
1
+ import { DEBUG, useProjectAccessKey } from '@0xsequence/connect'
2
+ import { MarketplaceIndexer } from '@0xsequence/marketplace'
3
+ import { networks, stringTemplate } from '@0xsequence/network'
4
+ import { useMemo } from 'react'
5
+
6
+ export interface UseMarketplaceClientArgs {
7
+ chain: ChainNameOrId
8
+ }
9
+
10
+ export const useMarketplaceClient = ({ chain }: UseMarketplaceClientArgs) => {
11
+ const projectAccessKey = useProjectAccessKey()
12
+
13
+ const marketplaceClient = useMemo(() => {
14
+ const env = DEBUG ? 'development' : 'production'
15
+ const clientUrl = marketplaceApiURL(chain, env)
16
+ return new MarketplaceIndexer(clientUrl, projectAccessKey)
17
+ }, [projectAccessKey])
18
+
19
+ return marketplaceClient
20
+ }
21
+
22
+ type ChainNameOrId = string | number
23
+
24
+ const getNetwork = (nameOrId: ChainNameOrId) => {
25
+ for (const network of Object.values(networks)) {
26
+ if (network.name === String(nameOrId).toLowerCase() || network.chainId === Number(nameOrId)) {
27
+ return network
28
+ }
29
+ }
30
+ throw new Error(`Unsopported chain; ${nameOrId}`)
31
+ }
32
+
33
+ export type Env = 'development' | 'production'
34
+
35
+ const getPrefix = (env: Env) => {
36
+ switch (env) {
37
+ case 'development':
38
+ return 'dev-'
39
+ case 'production':
40
+ return ''
41
+ }
42
+ }
43
+
44
+ const marketplaceApiURL = (chain: ChainNameOrId, env: Env = 'production') => {
45
+ const prefix = getPrefix(env)
46
+ const network = getNetwork(chain).name
47
+ const apiBaseUrl = 'https://${prefix}marketplace-api.sequence.app/${network}'
48
+ return stringTemplate(apiBaseUrl, { network: network, prefix })
49
+ }
@@ -0,0 +1,7 @@
1
+ import { useCheckoutModalContext } from '../contexts/CheckoutModal'
2
+
3
+ export const useModalTheme = () => {
4
+ const { theme } = useCheckoutModalContext()
5
+
6
+ return theme
7
+ }
@@ -0,0 +1,33 @@
1
+ import { useNavigationContext, Navigation, History } from '../contexts/Navigation'
2
+
3
+ interface UseNavigation {
4
+ setNavigation: (navigation: Navigation) => void
5
+ setHistory: (history: History) => void
6
+ history: History
7
+ goBack: () => void
8
+ navigation: Navigation
9
+ }
10
+
11
+ export const useNavigation = (): UseNavigation => {
12
+ const { setHistory, history, defaultLocation } = useNavigationContext()
13
+
14
+ const setNavigation = (navigation: Navigation) => {
15
+ // Scroll to top of page when navigating to a new page
16
+ const childElement = document.getElementById('sequence-kit-wallet-content')
17
+ const parentElement = childElement?.parentElement
18
+ parentElement?.scrollTo(0, 0)
19
+
20
+ const newHistory = [...history, navigation]
21
+ setHistory(newHistory)
22
+ }
23
+
24
+ const goBack = () => {
25
+ const newHistory = [...history]
26
+ newHistory.pop()
27
+ setHistory(newHistory)
28
+ }
29
+
30
+ const navigation = history.length > 0 ? history[history.length - 1] : defaultLocation
31
+
32
+ return { setNavigation, history, setHistory, goBack, navigation }
33
+ }
@@ -0,0 +1,18 @@
1
+ import { useQuery } from '@tanstack/react-query'
2
+
3
+ import { FetchSardineClientTokenArgs, fetchSardineClientToken } from '../api/data'
4
+
5
+ export const useSardineClientToken = (args: FetchSardineClientTokenArgs, disabled?: boolean) => {
6
+ return useQuery({
7
+ queryKey: ['useSardineClientToken', args],
8
+ queryFn: async () => {
9
+ const res = await fetchSardineClientToken(args)
10
+
11
+ return res
12
+ },
13
+ retry: false,
14
+ staleTime: 0,
15
+ enabled: !disabled,
16
+ refetchOnWindowFocus: false
17
+ })
18
+ }
@@ -0,0 +1,7 @@
1
+ import { useSelectPaymentContext } from '../contexts/SelectPaymentModal'
2
+
3
+ export const useSelectPaymentModal = () => {
4
+ const { openSelectPaymentModal, closeSelectPaymentModal, selectPaymentSettings } = useSelectPaymentContext()
5
+
6
+ return { openSelectPaymentModal, closeSelectPaymentModal, selectPaymentSettings }
7
+ }
@@ -0,0 +1,25 @@
1
+ import { useEffect, useRef } from 'react'
2
+
3
+ interface UseSkipOnCloseCallbackReturn {
4
+ skipOnCloseCallback: () => void
5
+ }
6
+
7
+ export const useSkipOnCloseCallback = (onClose: () => void): UseSkipOnCloseCallbackReturn => {
8
+ const skipOnCloseCallbackFlag = useRef(false)
9
+
10
+ const skipOnCloseCallback = () => {
11
+ skipOnCloseCallbackFlag.current = true
12
+ }
13
+
14
+ useEffect(() => {
15
+ return () => {
16
+ if (!skipOnCloseCallbackFlag.current) {
17
+ onClose()
18
+ }
19
+ }
20
+ }, [])
21
+
22
+ return {
23
+ skipOnCloseCallback
24
+ }
25
+ }
@@ -0,0 +1,7 @@
1
+ import { useSwapModalContext } from '../contexts/SwapModal'
2
+
3
+ export const useSwapModal = () => {
4
+ const { openSwapModal, closeSwapModal, swapModalSettings } = useSwapModalContext()
5
+
6
+ return { openSwapModal, closeSwapModal, swapModalSettings }
7
+ }
@@ -0,0 +1,7 @@
1
+ import { useTransactionStatusContext } from '../contexts/TransactionStatusModal'
2
+
3
+ export const useTransactionStatusModal = () => {
4
+ const { openTransactionStatusModal, closeTransactionStatusModal, transactionStatusSettings } = useTransactionStatusContext()
5
+
6
+ return { openTransactionStatusModal, closeTransactionStatusModal, transactionStatusSettings }
7
+ }
@@ -0,0 +1,7 @@
1
+ import { useTransferFundsModalContext } from '../contexts/TransferFundsModal'
2
+
3
+ export const useTransferFundsModal = () => {
4
+ const { openTransferFundsModal, closeTransferFundsModal, transferFundsSettings } = useTransferFundsModalContext()
5
+
6
+ return { openTransferFundsModal, closeTransferFundsModal, transferFundsSettings }
7
+ }