@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,326 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useAnalyticsContext, compareAddress, TRANSACTION_CONFIRMATIONS_DEFAULT, sendTransactions, ContractVerificationStatus } from '@0xsequence/connect';
3
+ import { Button, Divider, Text } from '@0xsequence/design-system';
4
+ import { findSupportedNetwork } from '@0xsequence/network';
5
+ import { useClearCachedBalances, useGetTokenBalancesSummary, useGetContractInfo, useGetSwapPrices, useGetSwapQuote, useIndexerClient } from '@0xsequence/react-hooks';
6
+ import { useState, useEffect } from 'react';
7
+ import { encodeFunctionData, zeroAddress } from 'viem';
8
+ import { usePublicClient, useWalletClient, useReadContract, useAccount } from 'wagmi';
9
+ import { NavigationHeader } from '../../components/NavigationHeader';
10
+ import { HEADER_HEIGHT, NFT_CHECKOUT_SOURCE } from '../../constants';
11
+ import { ERC_20_CONTRACT_ABI } from '../../constants/abi';
12
+ import { useSelectPaymentModal, useTransactionStatusModal, useSkipOnCloseCallback } from '../../hooks';
13
+ import { Footer } from './Footer';
14
+ import { OrderSummary } from './OrderSummary';
15
+ import { PayWithCreditCard } from './PayWithCreditCard';
16
+ import { PayWithCrypto } from './PayWithCrypto/index';
17
+ import { TransferFunds } from './TransferFunds';
18
+ export const PaymentSelection = () => {
19
+ return (_jsxs(_Fragment, { children: [_jsx(PaymentSelectionHeader, {}), _jsx(PaymentSelectionContent, {})] }));
20
+ };
21
+ export const PaymentSelectionHeader = () => {
22
+ return _jsx(NavigationHeader, { primaryText: "Checkout" });
23
+ };
24
+ export const PaymentSelectionContent = () => {
25
+ const { openTransactionStatusModal } = useTransactionStatusModal();
26
+ const { selectPaymentSettings } = useSelectPaymentModal();
27
+ const { analytics } = useAnalyticsContext();
28
+ const [disableButtons, setDisableButtons] = useState(false);
29
+ const [isError, setIsError] = useState(false);
30
+ if (!selectPaymentSettings) {
31
+ return null;
32
+ }
33
+ const { chain, collectibles, collectionAddress, currencyAddress, targetContractAddress, price, txData, enableTransferFunds = true, enableMainCurrencyPayment = true, enableSwapPayments = true, creditCardProviders = [], transactionConfirmations = TRANSACTION_CONFIRMATIONS_DEFAULT, onSuccess = () => { }, onError = () => { }, onClose = () => { }, supplementaryAnalyticsInfo } = selectPaymentSettings;
34
+ const isNativeToken = compareAddress(currencyAddress, zeroAddress);
35
+ const [selectedCurrency, setSelectedCurrency] = useState();
36
+ const network = findSupportedNetwork(chain);
37
+ const chainId = network?.chainId || 137;
38
+ const { address: userAddress, connector } = useAccount();
39
+ const { data: walletClient } = useWalletClient({
40
+ chainId
41
+ });
42
+ const publicClient = usePublicClient({
43
+ chainId
44
+ });
45
+ const indexerClient = useIndexerClient(chainId);
46
+ const { clearCachedBalances } = useClearCachedBalances();
47
+ const { closeSelectPaymentModal } = useSelectPaymentModal();
48
+ const { skipOnCloseCallback } = useSkipOnCloseCallback(onClose);
49
+ const { data: allowanceData, isLoading: allowanceIsLoading } = useReadContract({
50
+ abi: ERC_20_CONTRACT_ABI,
51
+ functionName: 'allowance',
52
+ chainId: chainId,
53
+ address: currencyAddress,
54
+ args: [userAddress, targetContractAddress],
55
+ query: {
56
+ enabled: !!userAddress && !isNativeToken
57
+ }
58
+ });
59
+ const { data: _currencyBalanceData, isLoading: currencyBalanceIsLoading } = useGetTokenBalancesSummary({
60
+ chainIds: [chainId],
61
+ filter: {
62
+ accountAddresses: userAddress ? [userAddress] : [],
63
+ contractStatus: ContractVerificationStatus.ALL,
64
+ contractWhitelist: [currencyAddress],
65
+ omitNativeBalances: false
66
+ },
67
+ // omitMetadata must be true to avoid a bug
68
+ omitMetadata: true
69
+ });
70
+ const { data: _currencyInfoData, isLoading: isLoadingCurrencyInfo } = useGetContractInfo({
71
+ chainID: String(chainId),
72
+ contractAddress: currencyAddress
73
+ });
74
+ const buyCurrencyAddress = currencyAddress;
75
+ const sellCurrencyAddress = selectedCurrency || '';
76
+ const { data: swapPrices = [], isLoading: _swapPricesIsLoading } = useGetSwapPrices({
77
+ userAddress: userAddress ?? '',
78
+ buyCurrencyAddress,
79
+ chainId: chainId,
80
+ buyAmount: price,
81
+ withContractInfo: true
82
+ }, { disabled: !enableSwapPayments });
83
+ const disableSwapQuote = !selectedCurrency || compareAddress(selectedCurrency, buyCurrencyAddress);
84
+ const { data: swapQuote, isLoading: isLoadingSwapQuote } = useGetSwapQuote({
85
+ userAddress: userAddress ?? '',
86
+ buyCurrencyAddress: currencyAddress,
87
+ buyAmount: price,
88
+ chainId: chainId,
89
+ sellCurrencyAddress,
90
+ includeApprove: true
91
+ }, {
92
+ disabled: disableSwapQuote
93
+ });
94
+ const isLoading = (allowanceIsLoading && !isNativeToken) || currencyBalanceIsLoading || isLoadingCurrencyInfo;
95
+ const isApproved = allowanceData >= BigInt(price) || isNativeToken;
96
+ // const balanceInfo = currencyBalanceData?.find(balanceData => compareAddress(currencyAddress, balanceData.contractAddress))
97
+ // const balance: bigint = BigInt(balanceInfo?.balance || '0')
98
+ // let balanceFormatted = Number(formatUnits(balance, currencyInfoData?.decimals || 0))
99
+ // balanceFormatted = Math.trunc(Number(balanceFormatted) * 10000) / 10000
100
+ useEffect(() => {
101
+ clearCachedBalances();
102
+ }, []);
103
+ const onPurchaseMainCurrency = async () => {
104
+ if (!walletClient || !userAddress || !publicClient || !userAddress || !connector) {
105
+ return;
106
+ }
107
+ setIsError(false);
108
+ setDisableButtons(true);
109
+ try {
110
+ const walletClientChainId = await walletClient.getChainId();
111
+ if (walletClientChainId !== chainId) {
112
+ await walletClient.switchChain({ id: chainId });
113
+ }
114
+ const approveTxData = encodeFunctionData({
115
+ abi: ERC_20_CONTRACT_ABI,
116
+ functionName: 'approve',
117
+ args: [targetContractAddress, price]
118
+ });
119
+ const transactions = [
120
+ ...(isApproved
121
+ ? []
122
+ : [
123
+ {
124
+ to: currencyAddress,
125
+ data: approveTxData,
126
+ chainId
127
+ }
128
+ ]),
129
+ {
130
+ to: targetContractAddress,
131
+ data: txData,
132
+ chainId,
133
+ ...(isNativeToken
134
+ ? {
135
+ value: BigInt(price)
136
+ }
137
+ : {})
138
+ }
139
+ ];
140
+ const txHash = await sendTransactions({
141
+ chainId,
142
+ senderAddress: userAddress,
143
+ publicClient,
144
+ walletClient,
145
+ indexerClient,
146
+ connector,
147
+ transactions,
148
+ transactionConfirmations,
149
+ waitConfirmationForLastTransaction: false
150
+ });
151
+ analytics?.track({
152
+ event: 'SEND_TRANSACTION_REQUEST',
153
+ props: {
154
+ ...supplementaryAnalyticsInfo,
155
+ type: 'crypto',
156
+ source: NFT_CHECKOUT_SOURCE,
157
+ chainId: String(chainId),
158
+ listedCurrency: currencyAddress,
159
+ purchasedCurrency: currencyAddress,
160
+ origin: window.location.origin,
161
+ from: userAddress,
162
+ to: targetContractAddress,
163
+ item_ids: JSON.stringify(collectibles.map(c => c.tokenId)),
164
+ item_quantities: JSON.stringify(collectibles.map(c => c.quantity)),
165
+ txHash
166
+ }
167
+ });
168
+ closeSelectPaymentModal();
169
+ skipOnCloseCallback();
170
+ openTransactionStatusModal({
171
+ chainId,
172
+ currencyAddress,
173
+ collectionAddress,
174
+ txHash,
175
+ items: collectibles.map(collectible => ({
176
+ tokenId: collectible.tokenId,
177
+ quantity: collectible.quantity,
178
+ decimals: collectible.decimals,
179
+ price: collectible.price || price
180
+ })),
181
+ onSuccess: () => {
182
+ clearCachedBalances();
183
+ onSuccess(txHash);
184
+ },
185
+ onClose
186
+ });
187
+ }
188
+ catch (e) {
189
+ console.error('Failed to purchase...', e);
190
+ onError(e);
191
+ setIsError(true);
192
+ }
193
+ setDisableButtons(false);
194
+ };
195
+ const onClickPurchaseSwap = async (swapPrice) => {
196
+ if (!walletClient || !userAddress || !publicClient || !userAddress || !connector || !swapQuote) {
197
+ return;
198
+ }
199
+ setIsError(false);
200
+ setDisableButtons(true);
201
+ try {
202
+ const walletClientChainId = await walletClient.getChainId();
203
+ if (walletClientChainId !== chainId) {
204
+ await walletClient.switchChain({ id: chainId });
205
+ }
206
+ const approveTxData = encodeFunctionData({
207
+ abi: ERC_20_CONTRACT_ABI,
208
+ functionName: 'approve',
209
+ args: [targetContractAddress, price]
210
+ });
211
+ const isSwapNativeToken = compareAddress(zeroAddress, swapPrice.price.currencyAddress);
212
+ const transactions = [
213
+ // Swap quote optional approve step
214
+ ...(swapQuote?.approveData && !isSwapNativeToken
215
+ ? [
216
+ {
217
+ to: swapPrice.price.currencyAddress,
218
+ data: swapQuote.approveData,
219
+ chain: chainId
220
+ }
221
+ ]
222
+ : []),
223
+ // Swap quote tx
224
+ {
225
+ to: swapQuote.to,
226
+ data: swapQuote.transactionData,
227
+ chain: chainId,
228
+ ...(isSwapNativeToken
229
+ ? {
230
+ value: BigInt(swapQuote.transactionValue)
231
+ }
232
+ : {})
233
+ },
234
+ // Actual transaction optional approve step
235
+ ...(isApproved || isNativeToken
236
+ ? []
237
+ : [
238
+ {
239
+ to: currencyAddress,
240
+ data: approveTxData,
241
+ chainId: chainId
242
+ }
243
+ ]),
244
+ // transaction on the contract
245
+ {
246
+ to: targetContractAddress,
247
+ data: txData,
248
+ chainId,
249
+ ...(isNativeToken
250
+ ? {
251
+ value: BigInt(price)
252
+ }
253
+ : {})
254
+ }
255
+ ];
256
+ const txHash = await sendTransactions({
257
+ chainId,
258
+ senderAddress: userAddress,
259
+ publicClient,
260
+ walletClient,
261
+ indexerClient,
262
+ connector,
263
+ transactions,
264
+ transactionConfirmations,
265
+ waitConfirmationForLastTransaction: false
266
+ });
267
+ analytics?.track({
268
+ event: 'SEND_TRANSACTION_REQUEST',
269
+ props: {
270
+ ...supplementaryAnalyticsInfo,
271
+ type: 'crypto',
272
+ source: NFT_CHECKOUT_SOURCE,
273
+ chainId: String(chainId),
274
+ listedCurrency: swapPrice.price.currencyAddress,
275
+ purchasedCurrency: currencyAddress,
276
+ origin: window.location.origin,
277
+ from: userAddress,
278
+ to: targetContractAddress,
279
+ item_ids: JSON.stringify(collectibles.map(c => c.tokenId)),
280
+ item_quantities: JSON.stringify(collectibles.map(c => c.quantity)),
281
+ txHash
282
+ }
283
+ });
284
+ closeSelectPaymentModal();
285
+ skipOnCloseCallback();
286
+ openTransactionStatusModal({
287
+ chainId,
288
+ currencyAddress,
289
+ collectionAddress,
290
+ txHash,
291
+ items: collectibles.map(collectible => ({
292
+ tokenId: collectible.tokenId,
293
+ quantity: collectible.quantity,
294
+ decimals: collectible.decimals,
295
+ price: collectible.price || price
296
+ })),
297
+ onSuccess: () => {
298
+ clearCachedBalances();
299
+ onSuccess(txHash);
300
+ },
301
+ onClose
302
+ });
303
+ }
304
+ catch (e) {
305
+ console.error('Failed to purchase...', e);
306
+ onError(e);
307
+ setIsError(true);
308
+ }
309
+ setDisableButtons(false);
310
+ };
311
+ const onClickPurchase = () => {
312
+ if (compareAddress(selectedCurrency || '', currencyAddress)) {
313
+ onPurchaseMainCurrency();
314
+ }
315
+ else {
316
+ const foundSwap = swapPrices?.find(price => price.info?.address === selectedCurrency);
317
+ if (foundSwap) {
318
+ onClickPurchaseSwap(foundSwap);
319
+ }
320
+ }
321
+ };
322
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex flex-col gap-2 items-start w-full pb-0 px-6 h-full", style: {
323
+ paddingTop: HEADER_HEIGHT
324
+ }, children: [_jsx("div", { className: "flex flex-col w-full gap-2", children: _jsx(OrderSummary, {}) }), (enableMainCurrencyPayment || enableSwapPayments) && (_jsxs(_Fragment, { children: [_jsx(Divider, { className: "w-full my-3" }), _jsx(PayWithCrypto, { settings: selectPaymentSettings, disableButtons: disableButtons, selectedCurrency: selectedCurrency, setSelectedCurrency: setSelectedCurrency, isLoading: isLoading })] })), creditCardProviders?.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Divider, { className: "w-full my-3" }), _jsx(PayWithCreditCard, { settings: selectPaymentSettings, disableButtons: disableButtons, skipOnCloseCallback: skipOnCloseCallback })] })), enableTransferFunds && (_jsxs(_Fragment, { children: [_jsx(Divider, { className: "w-full my-3" }), _jsx(TransferFunds, {})] })), (enableMainCurrencyPayment || enableSwapPayments) && (_jsxs(_Fragment, { children: [isError && (_jsx("div", { className: "w-full", style: { marginBottom: '-18px' }, children: _jsx(Text, { color: "negative", variant: "small", children: "A problem occurred while executing the transaction." }) })), _jsxs("div", { className: "w-full", children: [_jsx(Button, { className: "mt-6 w-full", onClick: onClickPurchase, disabled: isLoading || disableButtons || !selectedCurrency || (!disableSwapQuote && isLoadingSwapQuote), shape: "square", variant: "primary", label: "Complete Purchase" }), _jsxs("div", { className: "flex w-full justify-center items-center gap-0.5 my-2", children: [_jsx("svg", { width: "13", height: "12", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 13 12", fill: "none", children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M8.82807 5.24497V3.52873C8.82807 2.24258 7.78549 1.19995 6.49934 1.19995C5.21319 1.19995 4.17057 2.24258 4.17057 3.52873L4.17057 5.24497H3.9832C3.32046 5.24497 2.7832 5.78223 2.7832 6.44497V9.49529C2.7832 10.158 3.32046 10.6953 3.9832 10.6953H9.01546C9.6782 10.6953 10.2155 10.158 10.2155 9.49529V6.44497C10.2155 5.78223 9.6782 5.24497 9.01546 5.24497H8.82807ZM6.49934 2.06705C5.69209 2.06705 5.03769 2.72144 5.03766 3.52867L5.03767 5.24497H7.96097V3.52867C7.96094 2.72144 7.30658 2.06705 6.49934 2.06705Z", fill: "#6D6D6D" }) }), _jsx(Text, { className: "mt-0.5", variant: "xsmall", color: "muted", children: "Secure Checkout" })] })] })] }))] }), _jsx(Divider, { className: "my-0" }), _jsx(Footer, {})] }));
325
+ };
326
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/views/PaymentSelection/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,286 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useAnalyticsContext, useProjectAccessKey, DEBUG } from '@0xsequence/connect';
3
+ import { Spinner, Text } from '@0xsequence/design-system';
4
+ import { findSupportedNetwork } from '@0xsequence/network';
5
+ import { useGetTokenMetadata, useGetContractInfo } from '@0xsequence/react-hooks';
6
+ import pako from 'pako';
7
+ import { useEffect } from 'react';
8
+ import { formatUnits } from 'viem';
9
+ import { fetchSardineOrderStatus } from '../api';
10
+ import { NFT_CHECKOUT_SOURCE } from '../constants';
11
+ import { useNavigation, useCheckoutModal, useSardineClientToken, useTransactionStatusModal, useSkipOnCloseCallback } from '../hooks';
12
+ import { TRANSAK_PROXY_ADDRESS } from '../utils/transak';
13
+ const POLLING_TIME = 10 * 1000;
14
+ export const PendingCreditCardTransaction = () => {
15
+ const nav = useNavigation();
16
+ const { params: { creditCardCheckout: { provider, onClose = () => { } } } } = nav.navigation;
17
+ const { skipOnCloseCallback } = useSkipOnCloseCallback(onClose);
18
+ switch (provider) {
19
+ case 'transak':
20
+ return _jsx(PendingCreditCardTransactionTransak, { skipOnCloseCallback: skipOnCloseCallback });
21
+ case 'sardine':
22
+ default:
23
+ return _jsx(PendingCreditCardTransactionSardine, { skipOnCloseCallback: skipOnCloseCallback });
24
+ }
25
+ };
26
+ export const PendingCreditCardTransactionTransak = ({ skipOnCloseCallback }) => {
27
+ const { analytics } = useAnalyticsContext();
28
+ const { openTransactionStatusModal } = useTransactionStatusModal();
29
+ const nav = useNavigation();
30
+ const { settings, closeCheckout } = useCheckoutModal();
31
+ const { params: { creditCardCheckout } } = nav.navigation;
32
+ const { setNavigation } = nav;
33
+ const { data: tokensMetadata, isLoading: isLoadingTokenMetadata, isError: isErrorTokenMetadata } = useGetTokenMetadata({
34
+ chainID: String(creditCardCheckout.chainId),
35
+ contractAddress: creditCardCheckout.nftAddress,
36
+ tokenIDs: [creditCardCheckout.nftId]
37
+ });
38
+ const { data: collectionInfo, isLoading: isLoadingCollectionInfo, isError: isErrorCollectionInfo } = useGetContractInfo({
39
+ chainID: String(creditCardCheckout.chainId),
40
+ contractAddress: creditCardCheckout.nftAddress
41
+ });
42
+ const network = findSupportedNetwork(creditCardCheckout.chainId);
43
+ const tokenMetadata = tokensMetadata ? tokensMetadata[0] : undefined;
44
+ const transakConfig = settings?.creditCardCheckout?.transakConfig;
45
+ const baseUrl = DEBUG ? 'https://global-stg.transak.com' : 'https://global.transak.com';
46
+ // Transak requires the recipient address to be the proxy address
47
+ // so we need to replace the recipient address with the proxy address in the calldata
48
+ // this is a weird hack so that credit card integrations are as simple as possible and should work 99% of the time
49
+ // If an issue arises, the user can override the calldata in the transak settings
50
+ const calldataWithProxy = transakConfig?.callDataOverride ??
51
+ creditCardCheckout.calldata.replace(creditCardCheckout.recipientAddress.toLowerCase().substring(2), TRANSAK_PROXY_ADDRESS.toLowerCase().substring(2));
52
+ const pakoData = Array.from(pako.deflate(calldataWithProxy));
53
+ const transakCallData = encodeURIComponent(btoa(String.fromCharCode.apply(null, pakoData)));
54
+ const price = Number(formatUnits(BigInt(creditCardCheckout.currencyQuantity), Number(creditCardCheckout.currencyDecimals)));
55
+ const transakNftDataJson = JSON.stringify([
56
+ {
57
+ imageURL: tokenMetadata?.image || '',
58
+ nftName: tokenMetadata?.name || 'collectible',
59
+ collectionAddress: creditCardCheckout.nftAddress,
60
+ tokenID: [creditCardCheckout.nftId],
61
+ price: [price],
62
+ quantity: Number(creditCardCheckout.nftQuantity),
63
+ nftType: collectionInfo?.type || 'ERC721'
64
+ }
65
+ ]);
66
+ console.log('transakNftDataJson', JSON.parse(transakNftDataJson));
67
+ const transakNftData = encodeURIComponent(btoa(transakNftDataJson));
68
+ const estimatedGasLimit = '500000';
69
+ const partnerOrderId = `${creditCardCheckout.recipientAddress}-${new Date().getTime()}`;
70
+ // Note: the network name might not always line up with Transak. A conversion function might be necessary
71
+ const networkName = network?.name.toLowerCase();
72
+ const transakLink = `${baseUrl}?apiKey=${transakConfig?.apiKey}&isNFT=true&calldata=${transakCallData}&contractId=${transakConfig?.contractId}&cryptoCurrencyCode=${creditCardCheckout.currencySymbol}&estimatedGasLimit=${estimatedGasLimit}&nftData=${transakNftData}&walletAddress=${creditCardCheckout.recipientAddress}&disableWalletAddressForm=true&partnerOrderId=${partnerOrderId}&network=${networkName}`;
73
+ const isLoading = isLoadingTokenMetadata || isLoadingCollectionInfo;
74
+ const isError = isErrorTokenMetadata || isErrorCollectionInfo;
75
+ useEffect(() => {
76
+ const transakIframeElement = document.getElementById('transakIframe');
77
+ const transakIframe = transakIframeElement.contentWindow;
78
+ const readMessage = (message) => {
79
+ if (message.source !== transakIframe) {
80
+ return;
81
+ }
82
+ if (message?.data?.event_id === 'TRANSAK_ORDER_SUCCESSFUL' && message?.data?.data?.status === 'COMPLETED') {
83
+ console.log('Order Data: ', message?.data?.data);
84
+ const txHash = message?.data?.data?.transactionHash || '';
85
+ skipOnCloseCallback();
86
+ analytics?.track({
87
+ event: 'SEND_TRANSACTION_REQUEST',
88
+ props: {
89
+ ...creditCardCheckout.supplementaryAnalyticsInfo,
90
+ type: 'credit_card',
91
+ provider: 'transak',
92
+ source: NFT_CHECKOUT_SOURCE,
93
+ chainId: String(creditCardCheckout.chainId),
94
+ listedCurrency: creditCardCheckout.currencyAddress,
95
+ purchasedCurrency: creditCardCheckout.currencyAddress,
96
+ origin: window.location.origin,
97
+ from: creditCardCheckout.recipientAddress,
98
+ to: creditCardCheckout.contractAddress,
99
+ item_ids: JSON.stringify([creditCardCheckout.nftId]),
100
+ item_quantities: JSON.stringify([JSON.stringify([creditCardCheckout.nftQuantity])]),
101
+ txHash
102
+ }
103
+ });
104
+ closeCheckout();
105
+ openTransactionStatusModal({
106
+ chainId: creditCardCheckout.chainId,
107
+ currencyAddress: creditCardCheckout.currencyAddress,
108
+ collectionAddress: creditCardCheckout.nftAddress,
109
+ txHash: txHash,
110
+ items: [
111
+ {
112
+ tokenId: creditCardCheckout.nftId,
113
+ quantity: creditCardCheckout.nftQuantity,
114
+ decimals: creditCardCheckout.nftDecimals === undefined ? undefined : Number(creditCardCheckout.nftDecimals),
115
+ price: creditCardCheckout.currencyQuantity
116
+ }
117
+ ],
118
+ onSuccess: () => {
119
+ if (creditCardCheckout.onSuccess) {
120
+ creditCardCheckout.onSuccess(txHash, creditCardCheckout);
121
+ }
122
+ },
123
+ onClose: creditCardCheckout?.onClose
124
+ });
125
+ return;
126
+ }
127
+ if (message?.data?.event_id === 'TRANSAK_ORDER_FAILED') {
128
+ setNavigation({
129
+ location: 'transaction-error',
130
+ params: {
131
+ error: new Error('Transak transaction failed')
132
+ }
133
+ });
134
+ }
135
+ };
136
+ window.addEventListener('message', readMessage);
137
+ return () => window.removeEventListener('message', readMessage);
138
+ }, [isLoading]);
139
+ if (isError || !transakConfig) {
140
+ return (_jsx("div", { className: "flex flex-col justify-center items-center gap-6", style: {
141
+ height: '650px',
142
+ width: '380px'
143
+ }, children: _jsx("div", { children: !transakConfig ? (_jsx(Text, { color: "primary", children: "Error: No Transak configuration found" })) : (_jsx(Text, { color: "primary", children: "An error has occurred" })) }) }));
144
+ }
145
+ if (isLoading) {
146
+ return (_jsx("div", { className: "flex flex-col justify-center items-center gap-6", style: {
147
+ height: '650px',
148
+ width: '380px'
149
+ }, children: _jsx("div", { children: _jsx(Spinner, { size: "lg" }) }) }));
150
+ }
151
+ return (_jsx("div", { className: "flex items-center justify-center", style: { height: '770px' }, children: _jsx("iframe", { id: "transakIframe", allow: "camera;microphone;payment", src: transakLink, style: {
152
+ maxHeight: '650px',
153
+ height: '100%',
154
+ maxWidth: '380px',
155
+ width: '100%'
156
+ } }) }));
157
+ };
158
+ export const PendingCreditCardTransactionSardine = ({ skipOnCloseCallback }) => {
159
+ const { analytics } = useAnalyticsContext();
160
+ const { openTransactionStatusModal } = useTransactionStatusModal();
161
+ const nav = useNavigation();
162
+ const { closeCheckout } = useCheckoutModal();
163
+ const { params: { creditCardCheckout } } = nav.navigation;
164
+ const { setNavigation } = nav;
165
+ const projectAccessKey = useProjectAccessKey();
166
+ const { data: tokensMetadata, isLoading: isLoadingTokenMetadata } = useGetTokenMetadata({
167
+ chainID: String(creditCardCheckout.chainId),
168
+ contractAddress: creditCardCheckout.nftAddress,
169
+ tokenIDs: [creditCardCheckout.nftId]
170
+ });
171
+ const tokenMetadata = tokensMetadata ? tokensMetadata[0] : undefined;
172
+ const disableSardineClientTokenFetch = isLoadingTokenMetadata;
173
+ const { data, isLoading, isError } = useSardineClientToken({
174
+ order: creditCardCheckout,
175
+ projectAccessKey: projectAccessKey,
176
+ tokenMetadata: tokenMetadata
177
+ }, disableSardineClientTokenFetch);
178
+ const authToken = data?.token;
179
+ const url = DEBUG
180
+ ? `https://sardine-checkout-sandbox.sequence.info?api_url=https://sardine-api-sandbox.sequence.info&client_token=${authToken}&show_features=true`
181
+ : `https://sardine-checkout.sequence.info?api_url=https://sardine-api.sequence.info&client_token=${authToken}&show_features=true`;
182
+ const pollForOrderStatus = async () => {
183
+ try {
184
+ if (!data) {
185
+ return;
186
+ }
187
+ const { orderId } = data;
188
+ console.log('Polling for transaction status');
189
+ const pollResponse = await fetchSardineOrderStatus(orderId, projectAccessKey);
190
+ const status = pollResponse.resp.status;
191
+ const transactionHash = pollResponse.resp?.transactionHash;
192
+ console.log('transaction status poll response:', status);
193
+ if (status === 'Draft') {
194
+ return;
195
+ }
196
+ if (status === 'Complete') {
197
+ skipOnCloseCallback();
198
+ analytics?.track({
199
+ event: 'SEND_TRANSACTION_REQUEST',
200
+ props: {
201
+ ...creditCardCheckout.supplementaryAnalyticsInfo,
202
+ type: 'credit_card',
203
+ provider: 'sardine',
204
+ source: NFT_CHECKOUT_SOURCE,
205
+ chainId: String(creditCardCheckout.chainId),
206
+ listedCurrency: creditCardCheckout.currencyAddress,
207
+ purchasedCurrency: creditCardCheckout.currencyAddress,
208
+ origin: window.location.origin,
209
+ from: creditCardCheckout.recipientAddress,
210
+ to: creditCardCheckout.contractAddress,
211
+ item_ids: JSON.stringify([creditCardCheckout.nftId]),
212
+ item_quantities: JSON.stringify([JSON.stringify([creditCardCheckout.nftQuantity])]),
213
+ txHash: transactionHash
214
+ }
215
+ });
216
+ closeCheckout();
217
+ openTransactionStatusModal({
218
+ chainId: creditCardCheckout.chainId,
219
+ currencyAddress: creditCardCheckout.currencyAddress,
220
+ collectionAddress: creditCardCheckout.nftAddress,
221
+ txHash: transactionHash,
222
+ items: [
223
+ {
224
+ tokenId: creditCardCheckout.nftId,
225
+ quantity: creditCardCheckout.nftQuantity,
226
+ decimals: creditCardCheckout.nftDecimals === undefined ? undefined : Number(creditCardCheckout.nftDecimals),
227
+ price: creditCardCheckout.currencyQuantity
228
+ }
229
+ ],
230
+ onSuccess: () => {
231
+ if (creditCardCheckout.onSuccess) {
232
+ creditCardCheckout.onSuccess(transactionHash, creditCardCheckout);
233
+ }
234
+ },
235
+ onClose: creditCardCheckout?.onClose
236
+ });
237
+ return;
238
+ }
239
+ if (status === 'Declined' || status === 'Cancelled') {
240
+ setNavigation({
241
+ location: 'transaction-error',
242
+ params: {
243
+ error: new Error('Failed to transfer collectible')
244
+ }
245
+ });
246
+ return;
247
+ }
248
+ }
249
+ catch (e) {
250
+ console.error('An error occurred while fetching the transaction status');
251
+ setNavigation({
252
+ location: 'transaction-error',
253
+ params: {
254
+ error: e
255
+ }
256
+ });
257
+ }
258
+ };
259
+ useEffect(() => {
260
+ const interval = setInterval(() => {
261
+ pollForOrderStatus();
262
+ }, POLLING_TIME);
263
+ return () => {
264
+ clearInterval(interval);
265
+ };
266
+ }, [isLoading]);
267
+ if (isError) {
268
+ return (_jsx("div", { className: "flex flex-col justify-center items-center gap-6", style: {
269
+ height: '650px',
270
+ width: '380px'
271
+ }, children: _jsx("div", { children: _jsx(Text, { color: "primary", children: "An error has occurred" }) }) }));
272
+ }
273
+ if (isLoading || !authToken) {
274
+ return (_jsx("div", { className: "flex flex-col justify-center items-center gap-6", style: {
275
+ height: '650px',
276
+ width: '380px'
277
+ }, children: _jsx("div", { children: _jsx(Spinner, { size: "lg" }) }) }));
278
+ }
279
+ return (_jsx("div", { className: "flex items-center justify-center", style: { height: '770px' }, children: _jsx("iframe", { src: url, style: {
280
+ maxHeight: '650px',
281
+ height: '100%',
282
+ maxWidth: '380px',
283
+ width: '100%'
284
+ } }) }));
285
+ };
286
+ //# sourceMappingURL=PendingCreditCardTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PendingCreditCardTransaction.js","sourceRoot":"","sources":["../../../src/views/PendingCreditCardTransaction.tsx"],"names":[],"mappings":"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"}