@daimo/pay 1.15.0 → 1.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/build/components/DaimoPayButton/index.d.ts +13 -0
  2. package/build/hooks/useConnect.d.ts +8 -8
  3. package/build/hooks/useLocales.d.ts +2 -1
  4. package/build/hooks/useWalletPaymentOptions.d.ts +12 -1
  5. package/build/index.d.ts +626 -15
  6. package/build/localizations/locales/en-US.d.ts +2 -0
  7. package/build/localizations/locales/index.d.ts +1 -0
  8. package/build/package.json.js +6 -4
  9. package/build/package.json.js.map +1 -1
  10. package/build/payment/paymentFsm.d.ts +5 -0
  11. package/build/payment/paymentUtils.d.ts +6 -0
  12. package/build/src/assets/MobileWithLogos.js +320 -1
  13. package/build/src/assets/MobileWithLogos.js.map +1 -1
  14. package/build/src/assets/ScanIconWithLogos.js +216 -10
  15. package/build/src/assets/ScanIconWithLogos.js.map +1 -1
  16. package/build/src/assets/browsers.js +963 -7
  17. package/build/src/assets/browsers.js.map +1 -1
  18. package/build/src/assets/chains.js +633 -103
  19. package/build/src/assets/chains.js.map +1 -1
  20. package/build/src/assets/coins.js +38 -1
  21. package/build/src/assets/coins.js.map +1 -1
  22. package/build/src/assets/crepe.js +35 -1
  23. package/build/src/assets/crepe.js.map +1 -1
  24. package/build/src/assets/icons.js +258 -15
  25. package/build/src/assets/icons.js.map +1 -1
  26. package/build/src/assets/logos.js +1510 -140
  27. package/build/src/assets/logos.js.map +1 -1
  28. package/build/src/assets/wallet.js +32 -1
  29. package/build/src/assets/wallet.js.map +1 -1
  30. package/build/src/assets/wave.js +41 -1
  31. package/build/src/assets/wave.js.map +1 -1
  32. package/build/src/components/Common/Alert/index.js +4 -1
  33. package/build/src/components/Common/Alert/index.js.map +1 -1
  34. package/build/src/components/Common/Alert/styles.js +4 -4
  35. package/build/src/components/Common/Alert/styles.js.map +1 -1
  36. package/build/src/components/Common/AmountInput/AmountInputField.js +29 -18
  37. package/build/src/components/Common/AmountInput/AmountInputField.js.map +1 -1
  38. package/build/src/components/Common/AmountInput/index.js +112 -99
  39. package/build/src/components/Common/AmountInput/index.js.map +1 -1
  40. package/build/src/components/Common/Avatar/index.js +63 -51
  41. package/build/src/components/Common/Avatar/index.js.map +1 -1
  42. package/build/src/components/Common/Avatar/styles.js +9 -14
  43. package/build/src/components/Common/Avatar/styles.js.map +1 -1
  44. package/build/src/components/Common/BrowserIcon/index.js +15 -14
  45. package/build/src/components/Common/BrowserIcon/index.js.map +1 -1
  46. package/build/src/components/Common/BrowserIcon/styles.js +1 -1
  47. package/build/src/components/Common/BrowserIcon/styles.js.map +1 -1
  48. package/build/src/components/Common/Button/index.js +131 -25
  49. package/build/src/components/Common/Button/index.js.map +1 -1
  50. package/build/src/components/Common/Button/styles.js +20 -24
  51. package/build/src/components/Common/Button/styles.js.map +1 -1
  52. package/build/src/components/Common/Chain/index.js +130 -14
  53. package/build/src/components/Common/Chain/index.js.map +1 -1
  54. package/build/src/components/Common/Chain/styles.js +9 -13
  55. package/build/src/components/Common/Chain/styles.js.map +1 -1
  56. package/build/src/components/Common/ChainSelectList/index.js +232 -89
  57. package/build/src/components/Common/ChainSelectList/index.js.map +1 -1
  58. package/build/src/components/Common/ChainSelectList/styles.js +11 -13
  59. package/build/src/components/Common/ChainSelectList/styles.js.map +1 -1
  60. package/build/src/components/Common/CircleTimer.js +85 -41
  61. package/build/src/components/Common/CircleTimer.js.map +1 -1
  62. package/build/src/components/Common/ConnectorList/index.js +106 -80
  63. package/build/src/components/Common/ConnectorList/index.js.map +1 -1
  64. package/build/src/components/Common/ConnectorList/styles.js +28 -36
  65. package/build/src/components/Common/ConnectorList/styles.js.map +1 -1
  66. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +16 -9
  67. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +1 -1
  68. package/build/src/components/Common/CopyToClipboard/index.js +3 -5
  69. package/build/src/components/Common/CopyToClipboard/index.js.map +1 -1
  70. package/build/src/components/Common/CustomQRCode/QRCode.js +120 -57
  71. package/build/src/components/Common/CustomQRCode/QRCode.js.map +1 -1
  72. package/build/src/components/Common/CustomQRCode/index.js +60 -10
  73. package/build/src/components/Common/CustomQRCode/index.js.map +1 -1
  74. package/build/src/components/Common/CustomQRCode/styles.js +6 -6
  75. package/build/src/components/Common/CustomQRCode/styles.js.map +1 -1
  76. package/build/src/components/Common/FitText/index.js +24 -17
  77. package/build/src/components/Common/FitText/index.js.map +1 -1
  78. package/build/src/components/Common/Modal/index.js +481 -267
  79. package/build/src/components/Common/Modal/index.js.map +1 -1
  80. package/build/src/components/Common/Modal/styles.js +44 -48
  81. package/build/src/components/Common/Modal/styles.js.map +1 -1
  82. package/build/src/components/Common/OptionsList/index.js +75 -33
  83. package/build/src/components/Common/OptionsList/index.js.map +1 -1
  84. package/build/src/components/Common/OptionsList/styles.js +7 -8
  85. package/build/src/components/Common/OptionsList/styles.js.map +1 -1
  86. package/build/src/components/Common/OrderHeader/index.js +109 -65
  87. package/build/src/components/Common/OrderHeader/index.js.map +1 -1
  88. package/build/src/components/Common/PaymentBreakdown/index.js +29 -7
  89. package/build/src/components/Common/PaymentBreakdown/index.js.map +1 -1
  90. package/build/src/components/Common/Portal/index.js +21 -22
  91. package/build/src/components/Common/Portal/index.js.map +1 -1
  92. package/build/src/components/Common/PoweredByFooter/index.js +39 -21
  93. package/build/src/components/Common/PoweredByFooter/index.js.map +1 -1
  94. package/build/src/components/Common/ScrollArea/index.js +107 -52
  95. package/build/src/components/Common/ScrollArea/index.js.map +1 -1
  96. package/build/src/components/Common/ScrollArea/styles.js +7 -11
  97. package/build/src/components/Common/ScrollArea/styles.js.map +1 -1
  98. package/build/src/components/Common/SelectAnotherMethodButton/index.js +67 -55
  99. package/build/src/components/Common/SelectAnotherMethodButton/index.js.map +1 -1
  100. package/build/src/components/Common/Spinner/index.js +56 -16
  101. package/build/src/components/Common/Spinner/index.js.map +1 -1
  102. package/build/src/components/Common/Spinner/styles.js +2 -2
  103. package/build/src/components/Common/Spinner/styles.js.map +1 -1
  104. package/build/src/components/Common/SwitchButton/index.js +18 -15
  105. package/build/src/components/Common/SwitchButton/index.js.map +1 -1
  106. package/build/src/components/Common/ThemedButton/index.js +37 -16
  107. package/build/src/components/Common/ThemedButton/index.js.map +1 -1
  108. package/build/src/components/Common/ThemedButton/styles.js +2 -2
  109. package/build/src/components/Common/ThemedButton/styles.js.map +1 -1
  110. package/build/src/components/Common/TokenChainLogo/index.js +14 -8
  111. package/build/src/components/Common/TokenChainLogo/index.js.map +1 -1
  112. package/build/src/components/Common/Tooltip/index.js +115 -83
  113. package/build/src/components/Common/Tooltip/index.js.map +1 -1
  114. package/build/src/components/Common/Tooltip/styles.js +8 -8
  115. package/build/src/components/Common/Tooltip/styles.js.map +1 -1
  116. package/build/src/components/Common/WalletChainLogo/index.js +13 -6
  117. package/build/src/components/Common/WalletChainLogo/index.js.map +1 -1
  118. package/build/src/components/DaimoPayButton/index.js +170 -176
  119. package/build/src/components/DaimoPayButton/index.js.map +1 -1
  120. package/build/src/components/DaimoPayButton/styles.js +4 -4
  121. package/build/src/components/DaimoPayButton/styles.js.map +1 -1
  122. package/build/src/components/DaimoPayModal/ConnectUsing.js +50 -24
  123. package/build/src/components/DaimoPayModal/ConnectUsing.js.map +1 -1
  124. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js +303 -163
  125. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +1 -1
  126. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js +10 -12
  127. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +1 -1
  128. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +69 -39
  129. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -1
  130. package/build/src/components/DaimoPayModal/index.js +409 -416
  131. package/build/src/components/DaimoPayModal/index.js.map +1 -1
  132. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +15 -11
  133. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +1 -1
  134. package/build/src/components/Pages/About/graphics.js +796 -130
  135. package/build/src/components/Pages/About/graphics.js.map +1 -1
  136. package/build/src/components/Pages/About/index.js +203 -110
  137. package/build/src/components/Pages/About/index.js.map +1 -1
  138. package/build/src/components/Pages/About/styles.js +11 -15
  139. package/build/src/components/Pages/About/styles.js.map +1 -1
  140. package/build/src/components/Pages/Confirmation/index.js +72 -41
  141. package/build/src/components/Pages/Confirmation/index.js.map +1 -1
  142. package/build/src/components/Pages/Connectors/index.js +50 -16
  143. package/build/src/components/Pages/Connectors/index.js.map +1 -1
  144. package/build/src/components/Pages/Connectors/styles.js +10 -10
  145. package/build/src/components/Pages/Connectors/styles.js.map +1 -1
  146. package/build/src/components/Pages/DownloadApp/index.js +23 -18
  147. package/build/src/components/Pages/DownloadApp/index.js.map +1 -1
  148. package/build/src/components/Pages/Error/index.js +27 -15
  149. package/build/src/components/Pages/Error/index.js.map +1 -1
  150. package/build/src/components/Pages/MobileConnectors/index.js +50 -44
  151. package/build/src/components/Pages/MobileConnectors/index.js.map +1 -1
  152. package/build/src/components/Pages/MobileConnectors/styles.js +9 -11
  153. package/build/src/components/Pages/MobileConnectors/styles.js.map +1 -1
  154. package/build/src/components/Pages/Onboarding/index.js +20 -4
  155. package/build/src/components/Pages/Onboarding/index.js.map +1 -1
  156. package/build/src/components/Pages/Onboarding/styles.js +13 -13
  157. package/build/src/components/Pages/Onboarding/styles.js.map +1 -1
  158. package/build/src/components/Pages/PayWithToken/index.js +133 -122
  159. package/build/src/components/Pages/PayWithToken/index.js.map +1 -1
  160. package/build/src/components/Pages/SelectAmount/index.js +12 -5
  161. package/build/src/components/Pages/SelectAmount/index.js.map +1 -1
  162. package/build/src/components/Pages/SelectDepositAddressAmount/index.js +56 -38
  163. package/build/src/components/Pages/SelectDepositAddressAmount/index.js.map +1 -1
  164. package/build/src/components/Pages/SelectDepositAddressChain/index.js +57 -40
  165. package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -1
  166. package/build/src/components/Pages/SelectExchange/index.js +29 -24
  167. package/build/src/components/Pages/SelectExchange/index.js.map +1 -1
  168. package/build/src/components/Pages/SelectExternalAmount/index.js +57 -41
  169. package/build/src/components/Pages/SelectExternalAmount/index.js.map +1 -1
  170. package/build/src/components/Pages/SelectMethod/index.js +201 -183
  171. package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
  172. package/build/src/components/Pages/SelectToken/index.js +72 -46
  173. package/build/src/components/Pages/SelectToken/index.js.map +1 -1
  174. package/build/src/components/Pages/SelectWalletAmount/index.js +40 -32
  175. package/build/src/components/Pages/SelectWalletAmount/index.js.map +1 -1
  176. package/build/src/components/Pages/SelectWalletChain/index.js +40 -36
  177. package/build/src/components/Pages/SelectWalletChain/index.js.map +1 -1
  178. package/build/src/components/Pages/SelectZKP/index.js +29 -24
  179. package/build/src/components/Pages/SelectZKP/index.js.map +1 -1
  180. package/build/src/components/Pages/Solana/ConnectorSolana/index.js +60 -45
  181. package/build/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -1
  182. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +73 -61
  183. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -1
  184. package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js +12 -5
  185. package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +1 -1
  186. package/build/src/components/Pages/SwitchNetworks/index.js +29 -10
  187. package/build/src/components/Pages/SwitchNetworks/index.js.map +1 -1
  188. package/build/src/components/Pages/WaitingDepositAddress/index.js +339 -178
  189. package/build/src/components/Pages/WaitingDepositAddress/index.js.map +1 -1
  190. package/build/src/components/Pages/WaitingExternal/index.js +69 -46
  191. package/build/src/components/Pages/WaitingExternal/index.js.map +1 -1
  192. package/build/src/components/Pages/WaitingWallet/index.js +37 -16
  193. package/build/src/components/Pages/WaitingWallet/index.js.map +1 -1
  194. package/build/src/components/Spinners/CircleSpinner/index.js +96 -7
  195. package/build/src/components/Spinners/CircleSpinner/index.js.map +1 -1
  196. package/build/src/components/Spinners/CircleSpinner/styles.js +6 -7
  197. package/build/src/components/Spinners/CircleSpinner/styles.js.map +1 -1
  198. package/build/src/components/Spinners/ExternalPaymentSpinner/index.js +18 -9
  199. package/build/src/components/Spinners/ExternalPaymentSpinner/index.js.map +1 -1
  200. package/build/src/components/Spinners/SquircleSpinner/index.js +60 -7
  201. package/build/src/components/Spinners/SquircleSpinner/index.js.map +1 -1
  202. package/build/src/components/Spinners/SquircleSpinner/styles.js +4 -4
  203. package/build/src/components/Spinners/SquircleSpinner/styles.js.map +1 -1
  204. package/build/src/components/Spinners/TokenLogoSpinner/index.js +12 -1
  205. package/build/src/components/Spinners/TokenLogoSpinner/index.js.map +1 -1
  206. package/build/src/components/Spinners/TokenLogoSpinner/styles.js +1 -1
  207. package/build/src/components/Spinners/TokenLogoSpinner/styles.js.map +1 -1
  208. package/build/src/components/Spinners/WalletPaymentSpinner/index.js +27 -20
  209. package/build/src/components/Spinners/WalletPaymentSpinner/index.js.map +1 -1
  210. package/build/src/components/Spinners/styles.js +3 -4
  211. package/build/src/components/Spinners/styles.js.map +1 -1
  212. package/build/src/constants/defaultTheme.js +1 -1
  213. package/build/src/constants/defaultTheme.js.map +1 -1
  214. package/build/src/constants/routes.js +29 -30
  215. package/build/src/constants/routes.js.map +1 -1
  216. package/build/src/defaultConfig.js +49 -46
  217. package/build/src/defaultConfig.js.map +1 -1
  218. package/build/src/defaultConnectors.js +32 -19
  219. package/build/src/defaultConnectors.js.map +1 -1
  220. package/build/src/hooks/useChainIsSupported.js +3 -5
  221. package/build/src/hooks/useChainIsSupported.js.map +1 -1
  222. package/build/src/hooks/useChains.js +3 -4
  223. package/build/src/hooks/useChains.js.map +1 -1
  224. package/build/src/hooks/useConnect.js +51 -39
  225. package/build/src/hooks/useConnect.js.map +1 -1
  226. package/build/src/hooks/useConnectCallback.js +15 -12
  227. package/build/src/hooks/useConnectCallback.js.map +1 -1
  228. package/build/src/hooks/useConnectors.js +2 -2
  229. package/build/src/hooks/useConnectors.js.map +1 -1
  230. package/build/src/hooks/useDaimoPay.js +98 -82
  231. package/build/src/hooks/useDaimoPay.js.map +1 -1
  232. package/build/src/hooks/useDaimoPayStatus.js +4 -15
  233. package/build/src/hooks/useDaimoPayStatus.js.map +1 -1
  234. package/build/src/hooks/useDaimoPayUI.js +7 -7
  235. package/build/src/hooks/useDaimoPayUI.js.map +1 -1
  236. package/build/src/hooks/useDepositAddressOptions.js +29 -25
  237. package/build/src/hooks/useDepositAddressOptions.js.map +1 -1
  238. package/build/src/hooks/useEnsFallbackConfig.js +5 -5
  239. package/build/src/hooks/useEnsFallbackConfig.js.map +1 -1
  240. package/build/src/hooks/useExternalPaymentOptions.js +57 -52
  241. package/build/src/hooks/useExternalPaymentOptions.js.map +1 -1
  242. package/build/src/hooks/useFitText.js +120 -135
  243. package/build/src/hooks/useFitText.js.map +1 -1
  244. package/build/src/hooks/useFocusTrap.js +33 -37
  245. package/build/src/hooks/useFocusTrap.js.map +1 -1
  246. package/build/src/hooks/useIsMobile.js +3 -3
  247. package/build/src/hooks/useIsMobile.js.map +1 -1
  248. package/build/src/hooks/useIsMounted.js +3 -5
  249. package/build/src/hooks/useIsMounted.js.map +1 -1
  250. package/build/src/hooks/useLastConnector.js +15 -15
  251. package/build/src/hooks/useLastConnector.js.map +1 -1
  252. package/build/src/hooks/useLocales.js +44 -42
  253. package/build/src/hooks/useLocales.js.map +1 -1
  254. package/build/src/hooks/useLockBodyScroll.js +38 -44
  255. package/build/src/hooks/useLockBodyScroll.js.map +1 -1
  256. package/build/src/hooks/useOrderUsdLimits.js +17 -19
  257. package/build/src/hooks/useOrderUsdLimits.js.map +1 -1
  258. package/build/src/hooks/usePayContext.js +3 -5
  259. package/build/src/hooks/usePayContext.js.map +1 -1
  260. package/build/src/hooks/usePaymentState.js +351 -321
  261. package/build/src/hooks/usePaymentState.js.map +1 -1
  262. package/build/src/hooks/usePrevious.js +6 -7
  263. package/build/src/hooks/usePrevious.js.map +1 -1
  264. package/build/src/hooks/useSolanaPaymentOptions.js +33 -33
  265. package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -1
  266. package/build/src/hooks/useTokenOptions.js +131 -95
  267. package/build/src/hooks/useTokenOptions.js.map +1 -1
  268. package/build/src/hooks/useUntronAvailability.js +26 -34
  269. package/build/src/hooks/useUntronAvailability.js.map +1 -1
  270. package/build/src/hooks/useWalletPaymentOptions.js +86 -61
  271. package/build/src/hooks/useWalletPaymentOptions.js.map +1 -1
  272. package/build/src/hooks/useWindowSize.js +16 -16
  273. package/build/src/hooks/useWindowSize.js.map +1 -1
  274. package/build/src/localizations/index.js +28 -31
  275. package/build/src/localizations/index.js.map +1 -1
  276. package/build/src/localizations/locales/ar-AE.js +88 -88
  277. package/build/src/localizations/locales/ar-AE.js.map +1 -1
  278. package/build/src/localizations/locales/ca-AD.js +88 -88
  279. package/build/src/localizations/locales/ca-AD.js.map +1 -1
  280. package/build/src/localizations/locales/ee-EE.js +96 -88
  281. package/build/src/localizations/locales/ee-EE.js.map +1 -1
  282. package/build/src/localizations/locales/en-US.js +134 -124
  283. package/build/src/localizations/locales/en-US.js.map +1 -1
  284. package/build/src/localizations/locales/es-ES.js +126 -124
  285. package/build/src/localizations/locales/es-ES.js.map +1 -1
  286. package/build/src/localizations/locales/fa-IR.js +88 -88
  287. package/build/src/localizations/locales/fa-IR.js.map +1 -1
  288. package/build/src/localizations/locales/fr-FR.js +88 -88
  289. package/build/src/localizations/locales/fr-FR.js.map +1 -1
  290. package/build/src/localizations/locales/ja-JP.js +88 -88
  291. package/build/src/localizations/locales/ja-JP.js.map +1 -1
  292. package/build/src/localizations/locales/pt-BR.js +96 -88
  293. package/build/src/localizations/locales/pt-BR.js.map +1 -1
  294. package/build/src/localizations/locales/ru-RU.js +92 -88
  295. package/build/src/localizations/locales/ru-RU.js.map +1 -1
  296. package/build/src/localizations/locales/tr-TR.js +96 -88
  297. package/build/src/localizations/locales/tr-TR.js.map +1 -1
  298. package/build/src/localizations/locales/vi-VN.js +96 -88
  299. package/build/src/localizations/locales/vi-VN.js.map +1 -1
  300. package/build/src/localizations/locales/zh-CN.js +88 -88
  301. package/build/src/localizations/locales/zh-CN.js.map +1 -1
  302. package/build/src/payment/paymentEffects.js +237 -264
  303. package/build/src/payment/paymentEffects.js.map +1 -1
  304. package/build/src/payment/paymentFsm.js +167 -187
  305. package/build/src/payment/paymentFsm.js.map +1 -1
  306. package/build/src/payment/paymentStore.js +8 -10
  307. package/build/src/payment/paymentStore.js.map +1 -1
  308. package/build/src/payment/paymentUtils.js +10 -0
  309. package/build/src/payment/paymentUtils.js.map +1 -0
  310. package/build/src/provider/DaimoPayProvider.js +258 -245
  311. package/build/src/provider/DaimoPayProvider.js.map +1 -1
  312. package/build/src/provider/PayContext.js +0 -1
  313. package/build/src/provider/PayContext.js.map +1 -1
  314. package/build/src/provider/PaymentProvider.js +18 -17
  315. package/build/src/provider/PaymentProvider.js.map +1 -1
  316. package/build/src/provider/SolanaContextProvider.js +6 -3
  317. package/build/src/provider/SolanaContextProvider.js.map +1 -1
  318. package/build/src/provider/Web3ContextProvider.js +23 -23
  319. package/build/src/provider/Web3ContextProvider.js.map +1 -1
  320. package/build/src/stateStore.js +28 -74
  321. package/build/src/stateStore.js.map +1 -1
  322. package/build/src/styles/defaultTheme.js +64 -73
  323. package/build/src/styles/defaultTheme.js.map +1 -1
  324. package/build/src/styles/index.js +202 -217
  325. package/build/src/styles/index.js.map +1 -1
  326. package/build/src/styles/styled/index.js +0 -10
  327. package/build/src/styles/styled/index.js.map +1 -1
  328. package/build/src/styles/themes/base.js +136 -136
  329. package/build/src/styles/themes/base.js.map +1 -1
  330. package/build/src/styles/themes/index.js.map +1 -1
  331. package/build/src/styles/themes/midnight.js +71 -71
  332. package/build/src/styles/themes/midnight.js.map +1 -1
  333. package/build/src/styles/themes/minimal.js +75 -75
  334. package/build/src/styles/themes/minimal.js.map +1 -1
  335. package/build/src/styles/themes/nouns.js +76 -76
  336. package/build/src/styles/themes/nouns.js.map +1 -1
  337. package/build/src/styles/themes/retro.js +88 -88
  338. package/build/src/styles/themes/retro.js.map +1 -1
  339. package/build/src/styles/themes/rounded.js +84 -84
  340. package/build/src/styles/themes/rounded.js.map +1 -1
  341. package/build/src/styles/themes/soft.js +66 -66
  342. package/build/src/styles/themes/soft.js.map +1 -1
  343. package/build/src/styles/themes/web95.js +95 -95
  344. package/build/src/styles/themes/web95.js.map +1 -1
  345. package/build/src/utils/exports.js +0 -1
  346. package/build/src/utils/exports.js.map +1 -1
  347. package/build/src/utils/format.js +25 -63
  348. package/build/src/utils/format.js.map +1 -1
  349. package/build/src/utils/index.js +23 -20
  350. package/build/src/utils/index.js.map +1 -1
  351. package/build/src/utils/p3.js +8 -9
  352. package/build/src/utils/p3.js.map +1 -1
  353. package/build/src/utils/platform.js +6 -8
  354. package/build/src/utils/platform.js.map +1 -1
  355. package/build/src/utils/polling.js +31 -31
  356. package/build/src/utils/polling.js.map +1 -1
  357. package/build/src/utils/supportUrl.js +9 -9
  358. package/build/src/utils/supportUrl.js.map +1 -1
  359. package/build/src/utils/trpc.js +11 -11
  360. package/build/src/utils/trpc.js.map +1 -1
  361. package/build/src/utils/validateInput.js +9 -29
  362. package/build/src/utils/validateInput.js.map +1 -1
  363. package/build/src/wallets/index.js +13 -22
  364. package/build/src/wallets/index.js.map +1 -1
  365. package/build/src/wallets/useWallets.js +183 -181
  366. package/build/src/wallets/useWallets.js.map +1 -1
  367. package/build/src/wallets/walletConfigs.js +230 -235
  368. package/build/src/wallets/walletConfigs.js.map +1 -1
  369. package/build/src/world-mini-app/WorldPayButton.js +113 -118
  370. package/build/src/world-mini-app/WorldPayButton.js.map +1 -1
  371. package/build/src/world-mini-app/promptWorldPayment.js +49 -47
  372. package/build/src/world-mini-app/promptWorldPayment.js.map +1 -1
  373. package/build/types-7ed033b6.d.ts +66 -0
  374. package/build/world.d.ts +89 -1
  375. package/package.json +6 -4
@@ -38,426 +38,419 @@ import WaitingExternal from '../Pages/WaitingExternal/index.js';
38
38
  import WaitingWallet from '../Pages/WaitingWallet/index.js';
39
39
  import ConnectUsing from './ConnectUsing.js';
40
40
 
41
- const DaimoPayModal = ({ mode, theme, customTheme, lang, disableMobileInjector, }) => {
42
- const context = usePayContext();
43
- const { setMode, setTheme, setCustomTheme, setLang, setDisableMobileInjector, } = context;
44
- const paymentState = context.paymentState;
45
- const { generatePreviewOrder, isDepositFlow, showSolanaPaymentMethod, setPaymentWaitingMessage, setSelectedExternalOption, setSelectedTokenOption, setSelectedSolanaTokenOption, setSelectedDepositAddressOption, setSelectedWallet, } = paymentState;
46
- const { paymentState: paymentFsmState } = useDaimoPay();
47
- const { isConnected: isEthConnected, connector, chain, address, } = useAccount();
48
- const { connected: isSolanaConnected } = useWallet();
49
- const chainIsSupported = useChainIsSupported(chain?.id);
50
- //if chain is unsupported we enforce a "switch chain" prompt
51
- const closeable = !(context.options?.enforceSupportedChains &&
52
- isEthConnected &&
53
- !chainIsSupported);
54
- const showBackButton = closeable &&
55
- context.route !== context.uniquePaymentMethodPage &&
56
- context.route !== ROUTES.SELECT_METHOD &&
57
- context.route !== ROUTES.CONFIRMATION &&
58
- context.route !== ROUTES.SELECT_TOKEN &&
59
- context.route !== ROUTES.ERROR &&
60
- paymentFsmState !== "error";
61
- const onBack = () => {
62
- const meta = { event: "click-back" };
63
- if (context.route === ROUTES.DOWNLOAD) {
64
- context.setRoute(ROUTES.CONNECT, meta);
41
+ const DaimoPayModal = ({
42
+ mode,
43
+ theme,
44
+ customTheme,
45
+ lang,
46
+ disableMobileInjector
47
+ }) => {
48
+ const context = usePayContext();
49
+ const {
50
+ setMode,
51
+ setTheme,
52
+ setCustomTheme,
53
+ setLang,
54
+ setDisableMobileInjector
55
+ } = context;
56
+ const paymentState = context.paymentState;
57
+ const {
58
+ generatePreviewOrder,
59
+ isDepositFlow,
60
+ showSolanaPaymentMethod,
61
+ setPaymentWaitingMessage,
62
+ setSelectedExternalOption,
63
+ setSelectedTokenOption,
64
+ setSelectedSolanaTokenOption,
65
+ setSelectedDepositAddressOption,
66
+ setSelectedWallet
67
+ } = paymentState;
68
+ const { paymentState: paymentFsmState } = useDaimoPay();
69
+ const {
70
+ isConnected: isEthConnected,
71
+ connector,
72
+ chain,
73
+ address
74
+ } = useAccount();
75
+ const { connected: isSolanaConnected } = useWallet();
76
+ const chainIsSupported = useChainIsSupported(chain?.id);
77
+ const closeable = !(context.options?.enforceSupportedChains && isEthConnected && !chainIsSupported);
78
+ const showBackButton = closeable && context.route !== context.uniquePaymentMethodPage && context.route !== ROUTES.SELECT_METHOD && context.route !== ROUTES.CONFIRMATION && context.route !== ROUTES.SELECT_TOKEN && context.route !== ROUTES.ERROR && paymentFsmState !== "error";
79
+ const onBack = () => {
80
+ const meta = { event: "click-back" };
81
+ if (context.route === ROUTES.DOWNLOAD) {
82
+ context.setRoute(ROUTES.CONNECT, meta);
83
+ } else if (context.route === ROUTES.CONNECTORS) {
84
+ context.setRoute(ROUTES.SELECT_METHOD, meta);
85
+ } else if (context.route === ROUTES.SELECT_AMOUNT) {
86
+ setSelectedTokenOption(void 0);
87
+ context.setRoute(ROUTES.SELECT_TOKEN, meta);
88
+ } else if (context.route === ROUTES.SELECT_EXTERNAL_AMOUNT) {
89
+ setSelectedExternalOption(void 0);
90
+ context.setRoute(ROUTES.SELECT_METHOD, meta);
91
+ } else if (context.route === ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT) {
92
+ setSelectedDepositAddressOption(void 0);
93
+ context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);
94
+ } else if (context.route === ROUTES.WAITING_EXTERNAL) {
95
+ setPaymentWaitingMessage(void 0);
96
+ if (isDepositFlow) {
97
+ generatePreviewOrder();
98
+ context.setRoute(ROUTES.SELECT_EXTERNAL_AMOUNT, meta);
99
+ } else {
100
+ setSelectedExternalOption(void 0);
101
+ context.setRoute(context.uniquePaymentMethodPage, meta);
102
+ }
103
+ } else if (context.route === ROUTES.PAY_WITH_TOKEN) {
104
+ if (isDepositFlow) {
105
+ generatePreviewOrder();
106
+ context.setRoute(ROUTES.SELECT_AMOUNT, meta);
107
+ } else {
108
+ setSelectedTokenOption(void 0);
109
+ context.setRoute(ROUTES.SELECT_TOKEN, meta);
110
+ }
111
+ } else if (context.route === ROUTES.ONBOARDING) {
112
+ context.setRoute(ROUTES.CONNECTORS, meta);
113
+ } else if (context.route === ROUTES.WAITING_DEPOSIT_ADDRESS) {
114
+ if (isDepositFlow) {
115
+ if (paymentState.selectedDepositAddressOption === void 0) {
116
+ context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);
117
+ } else {
118
+ generatePreviewOrder();
119
+ context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT, meta);
65
120
  }
66
- else if (context.route === ROUTES.CONNECTORS) {
67
- context.setRoute(ROUTES.SELECT_METHOD, meta);
68
- }
69
- else if (context.route === ROUTES.SELECT_AMOUNT) {
70
- setSelectedTokenOption(undefined);
71
- context.setRoute(ROUTES.SELECT_TOKEN, meta);
72
- }
73
- else if (context.route === ROUTES.SELECT_EXTERNAL_AMOUNT) {
74
- setSelectedExternalOption(undefined);
75
- context.setRoute(ROUTES.SELECT_METHOD, meta);
76
- }
77
- else if (context.route === ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT) {
78
- setSelectedDepositAddressOption(undefined);
79
- context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);
80
- }
81
- else if (context.route === ROUTES.WAITING_EXTERNAL) {
82
- setPaymentWaitingMessage(undefined);
83
- if (isDepositFlow) {
84
- generatePreviewOrder();
85
- context.setRoute(ROUTES.SELECT_EXTERNAL_AMOUNT, meta);
86
- }
87
- else {
88
- setSelectedExternalOption(undefined);
89
- context.setRoute(context.uniquePaymentMethodPage, meta);
90
- }
91
- }
92
- else if (context.route === ROUTES.PAY_WITH_TOKEN) {
93
- if (isDepositFlow) {
94
- generatePreviewOrder();
95
- context.setRoute(ROUTES.SELECT_AMOUNT, meta);
96
- }
97
- else {
98
- setSelectedTokenOption(undefined);
99
- context.setRoute(ROUTES.SELECT_TOKEN, meta);
100
- }
101
- }
102
- else if (context.route === ROUTES.ONBOARDING) {
103
- context.setRoute(ROUTES.CONNECTORS, meta);
104
- }
105
- else if (context.route === ROUTES.WAITING_DEPOSIT_ADDRESS) {
106
- if (isDepositFlow) {
107
- if (paymentState.selectedDepositAddressOption === undefined) {
108
- context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);
109
- }
110
- else {
111
- generatePreviewOrder();
112
- context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT, meta);
113
- }
114
- }
115
- else {
116
- setSelectedDepositAddressOption(undefined);
117
- context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);
118
- }
119
- }
120
- else if (context.route === ROUTES.WAITING_WALLET) {
121
- if (isDepositFlow) {
122
- generatePreviewOrder();
123
- context.setRoute(ROUTES.SELECT_WALLET_AMOUNT, meta);
124
- }
125
- else {
126
- setSelectedWallet(undefined);
127
- context.setRoute(ROUTES.CONNECTORS, meta);
128
- }
129
- }
130
- else if (context.route === ROUTES.SOLANA_SELECT_AMOUNT) {
131
- setSelectedSolanaTokenOption(undefined);
132
- context.setRoute(ROUTES.SELECT_TOKEN, meta);
133
- }
134
- else if (context.route === ROUTES.SOLANA_PAY_WITH_TOKEN) {
135
- if (isDepositFlow) {
136
- generatePreviewOrder();
137
- context.setRoute(ROUTES.SOLANA_SELECT_AMOUNT, meta);
138
- }
139
- else {
140
- setSelectedSolanaTokenOption(undefined);
141
- context.setRoute(ROUTES.SELECT_TOKEN, meta);
142
- }
143
- }
144
- else {
145
- context.setRoute(context.uniquePaymentMethodPage, meta);
146
- }
147
- };
148
- const pages = {
149
- [ROUTES.SELECT_METHOD]: jsx(SelectMethod, {}),
150
- [ROUTES.SELECT_TOKEN]: jsx(SelectToken, {}),
151
- [ROUTES.SELECT_AMOUNT]: jsx(SelectAmount, {}),
152
- [ROUTES.SELECT_EXTERNAL_AMOUNT]: jsx(SelectExternalAmount, {}),
153
- [ROUTES.SELECT_EXCHANGE]: jsx(SelectExchange, {}),
154
- [ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT]: jsx(SelectDepositAddressAmount, {}),
155
- [ROUTES.SELECT_WALLET_AMOUNT]: jsx(SelectWalletAmount, {}),
156
- [ROUTES.SELECT_WALLET_CHAIN]: jsx(SelectWalletChain, {}),
157
- [ROUTES.WAITING_EXTERNAL]: jsx(WaitingExternal, {}),
158
- [ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN]: jsx(SelectDepositAddressChain, {}),
159
- [ROUTES.WAITING_DEPOSIT_ADDRESS]: jsx(WaitingDepositAddress, {}),
160
- [ROUTES.SELECT_ZKP2P]: jsx(SelectZKP, {}),
161
- [ROUTES.WAITING_WALLET]: jsx(WaitingWallet, {}),
162
- [ROUTES.CONFIRMATION]: jsx(Confirmation, {}),
163
- [ROUTES.ERROR]: jsx(ErrorPage, {}),
164
- [ROUTES.PAY_WITH_TOKEN]: jsx(PayWithToken, {}),
165
- [ROUTES.SOLANA_CONNECTOR]: jsx(ConnectSolana, {}),
166
- [ROUTES.SOLANA_SELECT_AMOUNT]: jsx(SelectSolanaAmount, {}),
167
- [ROUTES.SOLANA_PAY_WITH_TOKEN]: jsx(PayWithSolanaToken, {}),
168
- // Unused routes. Kept to minimize connectkit merge conflicts.
169
- [ROUTES.ONBOARDING]: jsx(Introduction, {}),
170
- [ROUTES.ABOUT]: jsx(About, {}),
171
- [ROUTES.DOWNLOAD]: jsx(DownloadApp, {}),
172
- [ROUTES.CONNECTORS]: jsx(Wallets, {}),
173
- [ROUTES.MOBILECONNECTORS]: jsx(MobileConnectors, {}),
174
- [ROUTES.CONNECT]: jsx(ConnectUsing, {}),
175
- [ROUTES.SWITCHNETWORKS]: jsx(SwitchNetworks, {}),
176
- };
177
- function hide() {
178
- if (isDepositFlow) {
179
- generatePreviewOrder();
180
- }
181
- context.setOpen(false, { event: "click-close" });
121
+ } else {
122
+ setSelectedDepositAddressOption(void 0);
123
+ context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);
124
+ }
125
+ } else if (context.route === ROUTES.WAITING_WALLET) {
126
+ if (isDepositFlow) {
127
+ generatePreviewOrder();
128
+ context.setRoute(ROUTES.SELECT_WALLET_AMOUNT, meta);
129
+ } else {
130
+ setSelectedWallet(void 0);
131
+ context.setRoute(ROUTES.CONNECTORS, meta);
132
+ }
133
+ } else if (context.route === ROUTES.SOLANA_SELECT_AMOUNT) {
134
+ setSelectedSolanaTokenOption(void 0);
135
+ context.setRoute(ROUTES.SELECT_TOKEN, meta);
136
+ } else if (context.route === ROUTES.SOLANA_PAY_WITH_TOKEN) {
137
+ if (isDepositFlow) {
138
+ generatePreviewOrder();
139
+ context.setRoute(ROUTES.SOLANA_SELECT_AMOUNT, meta);
140
+ } else {
141
+ setSelectedSolanaTokenOption(void 0);
142
+ context.setRoute(ROUTES.SELECT_TOKEN, meta);
143
+ }
144
+ } else {
145
+ context.setRoute(context.uniquePaymentMethodPage, meta);
182
146
  }
183
- const { isMobile } = useIsMobile();
184
- // Override the first screen upon opening the modal.
185
- // 1. If uniquePaymentOption is set, navigate to that screen directly
186
- // 2. If the user has a wallet already connected upon opening the modal, go
187
- // straight to the select token screen
188
- // 3. If the user has no wallet connected upon opening the modal, go to the
189
- // select method screen
190
- useEffect(() => {
191
- if (!context.open)
192
- return;
193
- if (context.route !== ROUTES.SELECT_METHOD)
194
- return;
195
- if (paymentState.buttonProps &&
196
- "uniquePaymentOption" in paymentState.buttonProps &&
197
- paymentState.buttonProps.uniquePaymentOption) {
198
- switch (paymentState.buttonProps.uniquePaymentOption) {
199
- case "Tron":
200
- // Find the Tron option from available deposit address options
201
- const tronOption = paymentState.depositAddressOptions.options?.find((option) => option.id === DepositAddressPaymentOptions.TRON_USDT);
202
- if (tronOption) {
203
- setSelectedDepositAddressOption(tronOption);
204
- context.setUniquePaymentMethodPage(ROUTES.WAITING_DEPOSIT_ADDRESS);
205
- context.setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, {
206
- event: "unique_payment_option_tron",
207
- });
208
- }
209
- else if (!paymentState.depositAddressOptions.loading) {
210
- // Data loaded but option not found, fallback to chain selection
211
- context.setUniquePaymentMethodPage(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);
212
- context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {
213
- event: "unique_payment_option_tron_fallback",
214
- });
215
- }
216
- // If still loading, do nothing and wait for next render
217
- break;
218
- case "Base":
219
- // Find the Base option from available deposit address options
220
- const baseOption = paymentState.depositAddressOptions.options?.find((option) => option.id === DepositAddressPaymentOptions.BASE);
221
- if (baseOption) {
222
- setSelectedDepositAddressOption(baseOption);
223
- context.setUniquePaymentMethodPage(ROUTES.WAITING_DEPOSIT_ADDRESS);
224
- context.setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, {
225
- event: "unique_payment_option_base",
226
- });
227
- }
228
- else if (!paymentState.depositAddressOptions.loading) {
229
- context.setUniquePaymentMethodPage(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);
230
- context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {
231
- event: "unique_payment_option_base_fallback",
232
- });
233
- }
234
- break;
235
- case "Arbitrum":
236
- // Find the Arbitrum option from available deposit address options
237
- const arbitrumOption = paymentState.depositAddressOptions.options?.find((option) => option.id === DepositAddressPaymentOptions.ARBITRUM);
238
- if (arbitrumOption) {
239
- setSelectedDepositAddressOption(arbitrumOption);
240
- context.setUniquePaymentMethodPage(ROUTES.WAITING_DEPOSIT_ADDRESS);
241
- context.setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, {
242
- event: "unique_payment_option_arbitrum",
243
- });
244
- }
245
- else if (!paymentState.depositAddressOptions.loading) {
246
- context.setUniquePaymentMethodPage(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);
247
- context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {
248
- event: "unique_payment_option_arbitrum_fallback",
249
- });
250
- }
251
- break;
252
- case "Optimism":
253
- // Find the Optimism option from available deposit address options
254
- const optimismOption = paymentState.depositAddressOptions.options?.find((option) => option.id === DepositAddressPaymentOptions.OP_MAINNET);
255
- if (optimismOption) {
256
- setSelectedDepositAddressOption(optimismOption);
257
- context.setUniquePaymentMethodPage(ROUTES.WAITING_DEPOSIT_ADDRESS);
258
- context.setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, {
259
- event: "unique_payment_option_optimism",
260
- });
261
- }
262
- else if (!paymentState.depositAddressOptions.loading) {
263
- context.setUniquePaymentMethodPage(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);
264
- context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {
265
- event: "unique_payment_option_optimism_fallback",
266
- });
267
- }
268
- break;
269
- case "Polygon":
270
- // Find the Polygon option from available deposit address options
271
- const polygonOption = paymentState.depositAddressOptions.options?.find((option) => option.id === DepositAddressPaymentOptions.POLYGON);
272
- if (polygonOption) {
273
- setSelectedDepositAddressOption(polygonOption);
274
- context.setUniquePaymentMethodPage(ROUTES.WAITING_DEPOSIT_ADDRESS);
275
- context.setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, {
276
- event: "unique_payment_option_polygon",
277
- });
278
- }
279
- else if (!paymentState.depositAddressOptions.loading) {
280
- context.setUniquePaymentMethodPage(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);
281
- context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {
282
- event: "unique_payment_option_polygon_fallback",
283
- });
284
- }
285
- break;
286
- case "Ethereum":
287
- // Find the Ethereum option from available deposit address options
288
- const ethereumOption = paymentState.depositAddressOptions.options?.find((option) => option.id === DepositAddressPaymentOptions.ETH_L1);
289
- if (ethereumOption) {
290
- setSelectedDepositAddressOption(ethereumOption);
291
- context.setUniquePaymentMethodPage(ROUTES.WAITING_DEPOSIT_ADDRESS);
292
- context.setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, {
293
- event: "unique_payment_option_ethereum",
294
- });
295
- }
296
- else if (!paymentState.depositAddressOptions.loading) {
297
- context.setUniquePaymentMethodPage(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);
298
- context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {
299
- event: "unique_payment_option_ethereum_fallback",
300
- });
301
- }
302
- break;
303
- case "Binance":
304
- // Find the Binance option from available exchange options
305
- const exchangeOptions = paymentState.externalPaymentOptions.options.get("exchange");
306
- const binanceOption = exchangeOptions?.find((option) => option.id === ExternalPaymentOptions.Binance);
307
- if (binanceOption) {
308
- setSelectedExternalOption(binanceOption);
309
- context.setUniquePaymentMethodPage(ROUTES.WAITING_EXTERNAL);
310
- context.setRoute(ROUTES.WAITING_EXTERNAL, {
311
- event: "unique_payment_option_binance",
312
- });
313
- }
314
- else if (!paymentState.externalPaymentOptions.loading) {
315
- context.setUniquePaymentMethodPage(ROUTES.SELECT_EXCHANGE);
316
- context.setRoute(ROUTES.SELECT_EXCHANGE, {
317
- event: "unique_payment_option_binance_fallback",
318
- });
319
- }
320
- break;
321
- case "Coinbase":
322
- // Find the Coinbase option from available exchange options
323
- const coinbaseExchangeOptions = paymentState.externalPaymentOptions.options.get("exchange");
324
- const coinbaseOption = coinbaseExchangeOptions?.find((option) => option.id === ExternalPaymentOptions.Coinbase);
325
- if (coinbaseOption) {
326
- setSelectedExternalOption(coinbaseOption);
327
- context.setUniquePaymentMethodPage(ROUTES.WAITING_EXTERNAL);
328
- context.setRoute(ROUTES.WAITING_EXTERNAL, {
329
- event: "unique_payment_option_coinbase",
330
- });
331
- }
332
- else if (!paymentState.externalPaymentOptions.loading) {
333
- context.setUniquePaymentMethodPage(ROUTES.SELECT_EXCHANGE);
334
- context.setRoute(ROUTES.SELECT_EXCHANGE, {
335
- event: "unique_payment_option_coinbase_fallback",
336
- });
337
- }
338
- break;
339
- case "Lemon":
340
- // Find the Lemon option from available external options
341
- const lemonExternalOptions = paymentState.externalPaymentOptions.options.get("external");
342
- const lemonOption = lemonExternalOptions?.find((option) => option.id === ExternalPaymentOptions.Lemon);
343
- if (lemonOption) {
344
- setSelectedExternalOption(lemonOption);
345
- context.setUniquePaymentMethodPage(ROUTES.WAITING_EXTERNAL);
346
- context.setRoute(ROUTES.WAITING_EXTERNAL, {
347
- event: "unique_payment_option_lemon",
348
- });
349
- }
350
- else if (!paymentState.externalPaymentOptions.loading) {
351
- context.setUniquePaymentMethodPage(ROUTES.SELECT_METHOD);
352
- context.setRoute(ROUTES.SELECT_METHOD, {
353
- event: "unique_payment_option_lemon_fallback",
354
- });
355
- }
356
- break;
357
- case "Wallets":
358
- context.setUniquePaymentMethodPage(ROUTES.CONNECTORS);
359
- context.setRoute(ROUTES.CONNECTORS, {
360
- event: "unique_payment_option_wallets",
361
- });
362
- break;
363
- default:
364
- context.setUniquePaymentMethodPage(ROUTES.SELECT_METHOD);
365
- break;
366
- }
367
- }
368
- // Skip to token selection if exactly one wallet is connected. If both
369
- // wallets are connected, stay on the SELECT_METHOD screen to allow the
370
- // user to select which wallet to use
371
- // If mobile injector is disabled, don't show the connected wallets.
372
- const evmOptionsCount = paymentState.walletPaymentOptions.options?.length ?? 0;
373
- const isEvmLoading = paymentState.walletPaymentOptions.isLoading;
374
- const solanaOptionsCount = paymentState.solanaPaymentOptions.options?.length ?? 0;
375
- const isSolanaLoading = paymentState.solanaPaymentOptions.isLoading;
376
- if (context.uniquePaymentMethodPage === ROUTES.SELECT_METHOD &&
377
- isEthConnected &&
378
- !isSolanaConnected &&
379
- (!isMobile || !disableMobileInjector) &&
380
- !isEvmLoading &&
381
- evmOptionsCount > 0) {
382
- paymentState.setTokenMode("evm");
383
- context.setRoute(ROUTES.SELECT_TOKEN, {
384
- event: "eth_connected_on_open",
385
- walletId: connector?.id,
386
- chainId: chain?.id,
387
- address,
147
+ };
148
+ const pages = {
149
+ [ROUTES.SELECT_METHOD]: /* @__PURE__ */ jsx(SelectMethod, {}),
150
+ [ROUTES.SELECT_TOKEN]: /* @__PURE__ */ jsx(SelectToken, {}),
151
+ [ROUTES.SELECT_AMOUNT]: /* @__PURE__ */ jsx(SelectAmount, {}),
152
+ [ROUTES.SELECT_EXTERNAL_AMOUNT]: /* @__PURE__ */ jsx(SelectExternalAmount, {}),
153
+ [ROUTES.SELECT_EXCHANGE]: /* @__PURE__ */ jsx(SelectExchange, {}),
154
+ [ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT]: /* @__PURE__ */ jsx(SelectDepositAddressAmount, {}),
155
+ [ROUTES.SELECT_WALLET_AMOUNT]: /* @__PURE__ */ jsx(SelectWalletAmount, {}),
156
+ [ROUTES.SELECT_WALLET_CHAIN]: /* @__PURE__ */ jsx(SelectWalletChain, {}),
157
+ [ROUTES.WAITING_EXTERNAL]: /* @__PURE__ */ jsx(WaitingExternal, {}),
158
+ [ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN]: /* @__PURE__ */ jsx(SelectDepositAddressChain, {}),
159
+ [ROUTES.WAITING_DEPOSIT_ADDRESS]: /* @__PURE__ */ jsx(WaitingDepositAddress, {}),
160
+ [ROUTES.SELECT_ZKP2P]: /* @__PURE__ */ jsx(SelectZKP, {}),
161
+ [ROUTES.WAITING_WALLET]: /* @__PURE__ */ jsx(WaitingWallet, {}),
162
+ [ROUTES.CONFIRMATION]: /* @__PURE__ */ jsx(Confirmation, {}),
163
+ [ROUTES.ERROR]: /* @__PURE__ */ jsx(ErrorPage, {}),
164
+ [ROUTES.PAY_WITH_TOKEN]: /* @__PURE__ */ jsx(PayWithToken, {}),
165
+ [ROUTES.SOLANA_CONNECTOR]: /* @__PURE__ */ jsx(ConnectSolana, {}),
166
+ [ROUTES.SOLANA_SELECT_AMOUNT]: /* @__PURE__ */ jsx(SelectSolanaAmount, {}),
167
+ [ROUTES.SOLANA_PAY_WITH_TOKEN]: /* @__PURE__ */ jsx(PayWithSolanaToken, {}),
168
+ // Unused routes. Kept to minimize connectkit merge conflicts.
169
+ [ROUTES.ONBOARDING]: /* @__PURE__ */ jsx(Introduction, {}),
170
+ [ROUTES.ABOUT]: /* @__PURE__ */ jsx(About, {}),
171
+ [ROUTES.DOWNLOAD]: /* @__PURE__ */ jsx(DownloadApp, {}),
172
+ [ROUTES.CONNECTORS]: /* @__PURE__ */ jsx(Wallets, {}),
173
+ [ROUTES.MOBILECONNECTORS]: /* @__PURE__ */ jsx(MobileConnectors, {}),
174
+ [ROUTES.CONNECT]: /* @__PURE__ */ jsx(ConnectUsing, {}),
175
+ [ROUTES.SWITCHNETWORKS]: /* @__PURE__ */ jsx(SwitchNetworks, {})
176
+ };
177
+ function hide() {
178
+ if (isDepositFlow) {
179
+ generatePreviewOrder();
180
+ }
181
+ context.setOpen(false, { event: "click-close" });
182
+ }
183
+ const { isMobile } = useIsMobile();
184
+ useEffect(() => {
185
+ if (!context.open) return;
186
+ if (context.route !== ROUTES.SELECT_METHOD) return;
187
+ if (paymentState.buttonProps && "uniquePaymentOption" in paymentState.buttonProps && paymentState.buttonProps.uniquePaymentOption) {
188
+ switch (paymentState.buttonProps.uniquePaymentOption) {
189
+ case "Tron":
190
+ const tronOption = paymentState.depositAddressOptions.options?.find(
191
+ (option) => option.id === DepositAddressPaymentOptions.TRON_USDT
192
+ );
193
+ if (tronOption) {
194
+ setSelectedDepositAddressOption(tronOption);
195
+ context.setUniquePaymentMethodPage(ROUTES.WAITING_DEPOSIT_ADDRESS);
196
+ context.setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, {
197
+ event: "unique_payment_option_tron"
388
198
  });
389
- }
390
- else if (context.uniquePaymentMethodPage === ROUTES.SELECT_METHOD &&
391
- isSolanaConnected &&
392
- !isEthConnected &&
393
- showSolanaPaymentMethod &&
394
- !disableMobileInjector &&
395
- !isSolanaLoading &&
396
- solanaOptionsCount > 0) {
397
- paymentState.setTokenMode("solana");
398
- context.setRoute(ROUTES.SELECT_TOKEN, {
399
- event: "solana_connected_on_open",
199
+ } else if (!paymentState.depositAddressOptions.loading) {
200
+ context.setUniquePaymentMethodPage(
201
+ ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN
202
+ );
203
+ context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {
204
+ event: "unique_payment_option_tron_fallback"
400
205
  });
401
- }
402
- // Don't include context.route in the dependency array otherwise the user
403
- // can't go back from the select token screen to the select method screen
404
- // eslint-disable-next-line react-hooks/exhaustive-deps
405
- }, [
406
- context.open,
407
- paymentState.walletPaymentOptions.options,
408
- paymentState.walletPaymentOptions.isLoading,
409
- paymentState.solanaPaymentOptions.options,
410
- paymentState.solanaPaymentOptions.isLoading,
411
- paymentState.externalPaymentOptions.options,
412
- paymentState.externalPaymentOptions.loading,
413
- paymentState.depositAddressOptions.options,
414
- paymentState.depositAddressOptions.loading,
415
- showSolanaPaymentMethod,
416
- address,
417
- chain?.id,
418
- connector?.id,
419
- context.uniquePaymentMethodPage,
420
- ]);
421
- // If we're on the connect page and the user successfully connects their
422
- // wallet, go to the select token page
423
- useEffect(() => {
424
- if (context.route === ROUTES.CONNECT ||
425
- context.route === ROUTES.CONNECTORS ||
426
- context.route === ROUTES.MOBILECONNECTORS) {
427
- if (isEthConnected) {
428
- paymentState.setTokenMode("evm");
429
- context.setRoute(ROUTES.SELECT_TOKEN, {
430
- event: "connected",
431
- walletId: connector?.id,
432
- chainId: chain?.id,
433
- address,
434
- });
435
- }
436
- }
437
- // eslint-disable-next-line react-hooks/exhaustive-deps
438
- }, [isEthConnected, context.route, connector?.id, chain?.id, address]);
439
- useEffect(() => setMode(mode), [mode, setMode]);
440
- useEffect(() => setTheme(theme), [theme, setTheme]);
441
- useEffect(() => setCustomTheme(customTheme), [customTheme, setCustomTheme]);
442
- useEffect(() => setLang(lang), [lang, setLang]);
443
- useEffect(() => setDisableMobileInjector(disableMobileInjector), [disableMobileInjector, setDisableMobileInjector]);
444
- useEffect(() => {
445
- const appName = getAppName();
446
- if (!appName || !context.open)
447
- return;
448
- const title = document.createElement("meta");
449
- title.setAttribute("property", "og:title");
450
- title.setAttribute("content", appName);
451
- document.head.prepend(title);
452
- return () => {
453
- try {
454
- document.head.removeChild(title);
455
- }
456
- catch { }
457
- //if (appIcon) document.head.removeChild(icon);
458
- };
459
- }, [context.open]);
460
- return (jsx(DaimoPayThemeProvider, { theme: theme, customTheme: customTheme, mode: mode, children: jsx(Modal, { open: context.open, pages: pages, pageId: context.route, onClose: closeable ? hide : undefined, onInfo: undefined, onBack: showBackButton ? onBack : undefined }) }));
206
+ }
207
+ break;
208
+ case "AllExchanges":
209
+ context.setUniquePaymentMethodPage(ROUTES.SELECT_EXCHANGE);
210
+ context.setRoute(ROUTES.SELECT_EXCHANGE, {
211
+ event: "unique_payment_option_all_exchanges"
212
+ });
213
+ break;
214
+ case "Base":
215
+ const baseOption = paymentState.depositAddressOptions.options?.find(
216
+ (option) => option.id === DepositAddressPaymentOptions.BASE
217
+ );
218
+ if (baseOption) {
219
+ setSelectedDepositAddressOption(baseOption);
220
+ context.setUniquePaymentMethodPage(ROUTES.WAITING_DEPOSIT_ADDRESS);
221
+ context.setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, {
222
+ event: "unique_payment_option_base"
223
+ });
224
+ } else if (!paymentState.depositAddressOptions.loading) {
225
+ context.setUniquePaymentMethodPage(
226
+ ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN
227
+ );
228
+ context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {
229
+ event: "unique_payment_option_base_fallback"
230
+ });
231
+ }
232
+ break;
233
+ case "Arbitrum":
234
+ const arbitrumOption = paymentState.depositAddressOptions.options?.find(
235
+ (option) => option.id === DepositAddressPaymentOptions.ARBITRUM
236
+ );
237
+ if (arbitrumOption) {
238
+ setSelectedDepositAddressOption(arbitrumOption);
239
+ context.setUniquePaymentMethodPage(ROUTES.WAITING_DEPOSIT_ADDRESS);
240
+ context.setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, {
241
+ event: "unique_payment_option_arbitrum"
242
+ });
243
+ } else if (!paymentState.depositAddressOptions.loading) {
244
+ context.setUniquePaymentMethodPage(
245
+ ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN
246
+ );
247
+ context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {
248
+ event: "unique_payment_option_arbitrum_fallback"
249
+ });
250
+ }
251
+ break;
252
+ case "Optimism":
253
+ const optimismOption = paymentState.depositAddressOptions.options?.find(
254
+ (option) => option.id === DepositAddressPaymentOptions.OP_MAINNET
255
+ );
256
+ if (optimismOption) {
257
+ setSelectedDepositAddressOption(optimismOption);
258
+ context.setUniquePaymentMethodPage(ROUTES.WAITING_DEPOSIT_ADDRESS);
259
+ context.setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, {
260
+ event: "unique_payment_option_optimism"
261
+ });
262
+ } else if (!paymentState.depositAddressOptions.loading) {
263
+ context.setUniquePaymentMethodPage(
264
+ ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN
265
+ );
266
+ context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {
267
+ event: "unique_payment_option_optimism_fallback"
268
+ });
269
+ }
270
+ break;
271
+ case "Polygon":
272
+ const polygonOption = paymentState.depositAddressOptions.options?.find(
273
+ (option) => option.id === DepositAddressPaymentOptions.POLYGON
274
+ );
275
+ if (polygonOption) {
276
+ setSelectedDepositAddressOption(polygonOption);
277
+ context.setUniquePaymentMethodPage(ROUTES.WAITING_DEPOSIT_ADDRESS);
278
+ context.setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, {
279
+ event: "unique_payment_option_polygon"
280
+ });
281
+ } else if (!paymentState.depositAddressOptions.loading) {
282
+ context.setUniquePaymentMethodPage(
283
+ ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN
284
+ );
285
+ context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {
286
+ event: "unique_payment_option_polygon_fallback"
287
+ });
288
+ }
289
+ break;
290
+ case "Ethereum":
291
+ const ethereumOption = paymentState.depositAddressOptions.options?.find(
292
+ (option) => option.id === DepositAddressPaymentOptions.ETH_L1
293
+ );
294
+ if (ethereumOption) {
295
+ setSelectedDepositAddressOption(ethereumOption);
296
+ context.setUniquePaymentMethodPage(ROUTES.WAITING_DEPOSIT_ADDRESS);
297
+ context.setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, {
298
+ event: "unique_payment_option_ethereum"
299
+ });
300
+ } else if (!paymentState.depositAddressOptions.loading) {
301
+ context.setUniquePaymentMethodPage(
302
+ ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN
303
+ );
304
+ context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {
305
+ event: "unique_payment_option_ethereum_fallback"
306
+ });
307
+ }
308
+ break;
309
+ case "Binance":
310
+ const exchangeOptions = paymentState.externalPaymentOptions.options.get("exchange");
311
+ const binanceOption = exchangeOptions?.find(
312
+ (option) => option.id === ExternalPaymentOptions.Binance
313
+ );
314
+ if (binanceOption) {
315
+ setSelectedExternalOption(binanceOption);
316
+ context.setUniquePaymentMethodPage(ROUTES.WAITING_EXTERNAL);
317
+ context.setRoute(ROUTES.WAITING_EXTERNAL, {
318
+ event: "unique_payment_option_binance"
319
+ });
320
+ } else if (!paymentState.externalPaymentOptions.loading) {
321
+ context.setUniquePaymentMethodPage(ROUTES.SELECT_EXCHANGE);
322
+ context.setRoute(ROUTES.SELECT_EXCHANGE, {
323
+ event: "unique_payment_option_binance_fallback"
324
+ });
325
+ }
326
+ break;
327
+ case "Coinbase":
328
+ const coinbaseExchangeOptions = paymentState.externalPaymentOptions.options.get("exchange");
329
+ const coinbaseOption = coinbaseExchangeOptions?.find(
330
+ (option) => option.id === ExternalPaymentOptions.Coinbase
331
+ );
332
+ if (coinbaseOption) {
333
+ setSelectedExternalOption(coinbaseOption);
334
+ context.setUniquePaymentMethodPage(ROUTES.WAITING_EXTERNAL);
335
+ context.setRoute(ROUTES.WAITING_EXTERNAL, {
336
+ event: "unique_payment_option_coinbase"
337
+ });
338
+ } else if (!paymentState.externalPaymentOptions.loading) {
339
+ context.setUniquePaymentMethodPage(ROUTES.SELECT_EXCHANGE);
340
+ context.setRoute(ROUTES.SELECT_EXCHANGE, {
341
+ event: "unique_payment_option_coinbase_fallback"
342
+ });
343
+ }
344
+ break;
345
+ case "Lemon":
346
+ const lemonExternalOptions = paymentState.externalPaymentOptions.options.get("external");
347
+ const lemonOption = lemonExternalOptions?.find(
348
+ (option) => option.id === ExternalPaymentOptions.Lemon
349
+ );
350
+ if (lemonOption) {
351
+ setSelectedExternalOption(lemonOption);
352
+ context.setUniquePaymentMethodPage(ROUTES.WAITING_EXTERNAL);
353
+ context.setRoute(ROUTES.WAITING_EXTERNAL, {
354
+ event: "unique_payment_option_lemon"
355
+ });
356
+ } else if (!paymentState.externalPaymentOptions.loading) {
357
+ context.setUniquePaymentMethodPage(ROUTES.SELECT_METHOD);
358
+ context.setRoute(ROUTES.SELECT_METHOD, {
359
+ event: "unique_payment_option_lemon_fallback"
360
+ });
361
+ }
362
+ break;
363
+ case "Wallets":
364
+ context.setUniquePaymentMethodPage(ROUTES.CONNECTORS);
365
+ context.setRoute(ROUTES.CONNECTORS, {
366
+ event: "unique_payment_option_wallets"
367
+ });
368
+ break;
369
+ default:
370
+ context.setUniquePaymentMethodPage(ROUTES.SELECT_METHOD);
371
+ break;
372
+ }
373
+ }
374
+ const evmOptionsCount = paymentState.walletPaymentOptions.options?.length ?? 0;
375
+ const isEvmLoading = paymentState.walletPaymentOptions.isLoading;
376
+ const solanaOptionsCount = paymentState.solanaPaymentOptions.options?.length ?? 0;
377
+ const isSolanaLoading = paymentState.solanaPaymentOptions.isLoading;
378
+ if (context.uniquePaymentMethodPage === ROUTES.SELECT_METHOD && isEthConnected && !isSolanaConnected && (!isMobile || !disableMobileInjector) && !isEvmLoading && evmOptionsCount > 0) {
379
+ paymentState.setTokenMode("evm");
380
+ context.setRoute(ROUTES.SELECT_TOKEN, {
381
+ event: "eth_connected_on_open",
382
+ walletId: connector?.id,
383
+ chainId: chain?.id,
384
+ address
385
+ });
386
+ } else if (context.uniquePaymentMethodPage === ROUTES.SELECT_METHOD && isSolanaConnected && !isEthConnected && showSolanaPaymentMethod && !disableMobileInjector && !isSolanaLoading && solanaOptionsCount > 0) {
387
+ paymentState.setTokenMode("solana");
388
+ context.setRoute(ROUTES.SELECT_TOKEN, {
389
+ event: "solana_connected_on_open"
390
+ });
391
+ }
392
+ }, [
393
+ context.open,
394
+ paymentState.walletPaymentOptions.options,
395
+ paymentState.walletPaymentOptions.isLoading,
396
+ paymentState.solanaPaymentOptions.options,
397
+ paymentState.solanaPaymentOptions.isLoading,
398
+ paymentState.externalPaymentOptions.options,
399
+ paymentState.externalPaymentOptions.loading,
400
+ paymentState.depositAddressOptions.options,
401
+ paymentState.depositAddressOptions.loading,
402
+ showSolanaPaymentMethod,
403
+ address,
404
+ chain?.id,
405
+ connector?.id,
406
+ context.uniquePaymentMethodPage
407
+ ]);
408
+ useEffect(() => {
409
+ if (context.route === ROUTES.CONNECT || context.route === ROUTES.CONNECTORS || context.route === ROUTES.MOBILECONNECTORS) {
410
+ if (isEthConnected) {
411
+ paymentState.setTokenMode("evm");
412
+ context.setRoute(ROUTES.SELECT_TOKEN, {
413
+ event: "connected",
414
+ walletId: connector?.id,
415
+ chainId: chain?.id,
416
+ address
417
+ });
418
+ }
419
+ }
420
+ }, [isEthConnected, context.route, connector?.id, chain?.id, address]);
421
+ useEffect(() => setMode(mode), [mode, setMode]);
422
+ useEffect(() => setTheme(theme), [theme, setTheme]);
423
+ useEffect(() => setCustomTheme(customTheme), [customTheme, setCustomTheme]);
424
+ useEffect(() => setLang(lang), [lang, setLang]);
425
+ useEffect(
426
+ () => setDisableMobileInjector(disableMobileInjector),
427
+ [disableMobileInjector, setDisableMobileInjector]
428
+ );
429
+ useEffect(() => {
430
+ const appName = getAppName();
431
+ if (!appName || !context.open) return;
432
+ const title = document.createElement("meta");
433
+ title.setAttribute("property", "og:title");
434
+ title.setAttribute("content", appName);
435
+ document.head.prepend(title);
436
+ return () => {
437
+ try {
438
+ document.head.removeChild(title);
439
+ } catch {
440
+ }
441
+ };
442
+ }, [context.open]);
443
+ return /* @__PURE__ */ jsx(DaimoPayThemeProvider, { theme, customTheme, mode, children: /* @__PURE__ */ jsx(
444
+ Modal,
445
+ {
446
+ open: context.open,
447
+ pages,
448
+ pageId: context.route,
449
+ onClose: closeable ? hide : void 0,
450
+ onInfo: void 0,
451
+ onBack: showBackButton ? onBack : void 0
452
+ }
453
+ ) });
461
454
  };
462
455
 
463
456
  export { DaimoPayModal };