@daimo/pay 1.16.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 (368) hide show
  1. package/build/hooks/useConnect.d.ts +8 -8
  2. package/build/index.d.ts +626 -15
  3. package/build/package.json.js +6 -4
  4. package/build/package.json.js.map +1 -1
  5. package/build/src/assets/MobileWithLogos.js +320 -1
  6. package/build/src/assets/MobileWithLogos.js.map +1 -1
  7. package/build/src/assets/ScanIconWithLogos.js +216 -10
  8. package/build/src/assets/ScanIconWithLogos.js.map +1 -1
  9. package/build/src/assets/browsers.js +963 -7
  10. package/build/src/assets/browsers.js.map +1 -1
  11. package/build/src/assets/chains.js +633 -103
  12. package/build/src/assets/chains.js.map +1 -1
  13. package/build/src/assets/coins.js +38 -1
  14. package/build/src/assets/coins.js.map +1 -1
  15. package/build/src/assets/crepe.js +35 -1
  16. package/build/src/assets/crepe.js.map +1 -1
  17. package/build/src/assets/icons.js +258 -15
  18. package/build/src/assets/icons.js.map +1 -1
  19. package/build/src/assets/logos.js +1510 -140
  20. package/build/src/assets/logos.js.map +1 -1
  21. package/build/src/assets/wallet.js +32 -1
  22. package/build/src/assets/wallet.js.map +1 -1
  23. package/build/src/assets/wave.js +41 -1
  24. package/build/src/assets/wave.js.map +1 -1
  25. package/build/src/components/Common/Alert/index.js +4 -1
  26. package/build/src/components/Common/Alert/index.js.map +1 -1
  27. package/build/src/components/Common/Alert/styles.js +4 -4
  28. package/build/src/components/Common/Alert/styles.js.map +1 -1
  29. package/build/src/components/Common/AmountInput/AmountInputField.js +29 -18
  30. package/build/src/components/Common/AmountInput/AmountInputField.js.map +1 -1
  31. package/build/src/components/Common/AmountInput/index.js +112 -99
  32. package/build/src/components/Common/AmountInput/index.js.map +1 -1
  33. package/build/src/components/Common/Avatar/index.js +63 -51
  34. package/build/src/components/Common/Avatar/index.js.map +1 -1
  35. package/build/src/components/Common/Avatar/styles.js +9 -14
  36. package/build/src/components/Common/Avatar/styles.js.map +1 -1
  37. package/build/src/components/Common/BrowserIcon/index.js +15 -14
  38. package/build/src/components/Common/BrowserIcon/index.js.map +1 -1
  39. package/build/src/components/Common/BrowserIcon/styles.js +1 -1
  40. package/build/src/components/Common/BrowserIcon/styles.js.map +1 -1
  41. package/build/src/components/Common/Button/index.js +131 -25
  42. package/build/src/components/Common/Button/index.js.map +1 -1
  43. package/build/src/components/Common/Button/styles.js +20 -24
  44. package/build/src/components/Common/Button/styles.js.map +1 -1
  45. package/build/src/components/Common/Chain/index.js +130 -14
  46. package/build/src/components/Common/Chain/index.js.map +1 -1
  47. package/build/src/components/Common/Chain/styles.js +9 -13
  48. package/build/src/components/Common/Chain/styles.js.map +1 -1
  49. package/build/src/components/Common/ChainSelectList/index.js +232 -89
  50. package/build/src/components/Common/ChainSelectList/index.js.map +1 -1
  51. package/build/src/components/Common/ChainSelectList/styles.js +11 -13
  52. package/build/src/components/Common/ChainSelectList/styles.js.map +1 -1
  53. package/build/src/components/Common/CircleTimer.js +85 -41
  54. package/build/src/components/Common/CircleTimer.js.map +1 -1
  55. package/build/src/components/Common/ConnectorList/index.js +106 -80
  56. package/build/src/components/Common/ConnectorList/index.js.map +1 -1
  57. package/build/src/components/Common/ConnectorList/styles.js +28 -36
  58. package/build/src/components/Common/ConnectorList/styles.js.map +1 -1
  59. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +16 -9
  60. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +1 -1
  61. package/build/src/components/Common/CopyToClipboard/index.js +3 -5
  62. package/build/src/components/Common/CopyToClipboard/index.js.map +1 -1
  63. package/build/src/components/Common/CustomQRCode/QRCode.js +120 -57
  64. package/build/src/components/Common/CustomQRCode/QRCode.js.map +1 -1
  65. package/build/src/components/Common/CustomQRCode/index.js +60 -10
  66. package/build/src/components/Common/CustomQRCode/index.js.map +1 -1
  67. package/build/src/components/Common/CustomQRCode/styles.js +6 -6
  68. package/build/src/components/Common/CustomQRCode/styles.js.map +1 -1
  69. package/build/src/components/Common/FitText/index.js +24 -17
  70. package/build/src/components/Common/FitText/index.js.map +1 -1
  71. package/build/src/components/Common/Modal/index.js +481 -267
  72. package/build/src/components/Common/Modal/index.js.map +1 -1
  73. package/build/src/components/Common/Modal/styles.js +44 -48
  74. package/build/src/components/Common/Modal/styles.js.map +1 -1
  75. package/build/src/components/Common/OptionsList/index.js +75 -33
  76. package/build/src/components/Common/OptionsList/index.js.map +1 -1
  77. package/build/src/components/Common/OptionsList/styles.js +7 -8
  78. package/build/src/components/Common/OptionsList/styles.js.map +1 -1
  79. package/build/src/components/Common/OrderHeader/index.js +109 -65
  80. package/build/src/components/Common/OrderHeader/index.js.map +1 -1
  81. package/build/src/components/Common/PaymentBreakdown/index.js +29 -7
  82. package/build/src/components/Common/PaymentBreakdown/index.js.map +1 -1
  83. package/build/src/components/Common/Portal/index.js +21 -22
  84. package/build/src/components/Common/Portal/index.js.map +1 -1
  85. package/build/src/components/Common/PoweredByFooter/index.js +39 -21
  86. package/build/src/components/Common/PoweredByFooter/index.js.map +1 -1
  87. package/build/src/components/Common/ScrollArea/index.js +107 -52
  88. package/build/src/components/Common/ScrollArea/index.js.map +1 -1
  89. package/build/src/components/Common/ScrollArea/styles.js +7 -11
  90. package/build/src/components/Common/ScrollArea/styles.js.map +1 -1
  91. package/build/src/components/Common/SelectAnotherMethodButton/index.js +67 -55
  92. package/build/src/components/Common/SelectAnotherMethodButton/index.js.map +1 -1
  93. package/build/src/components/Common/Spinner/index.js +56 -16
  94. package/build/src/components/Common/Spinner/index.js.map +1 -1
  95. package/build/src/components/Common/Spinner/styles.js +2 -2
  96. package/build/src/components/Common/Spinner/styles.js.map +1 -1
  97. package/build/src/components/Common/SwitchButton/index.js +18 -15
  98. package/build/src/components/Common/SwitchButton/index.js.map +1 -1
  99. package/build/src/components/Common/ThemedButton/index.js +37 -16
  100. package/build/src/components/Common/ThemedButton/index.js.map +1 -1
  101. package/build/src/components/Common/ThemedButton/styles.js +2 -2
  102. package/build/src/components/Common/ThemedButton/styles.js.map +1 -1
  103. package/build/src/components/Common/TokenChainLogo/index.js +14 -8
  104. package/build/src/components/Common/TokenChainLogo/index.js.map +1 -1
  105. package/build/src/components/Common/Tooltip/index.js +115 -83
  106. package/build/src/components/Common/Tooltip/index.js.map +1 -1
  107. package/build/src/components/Common/Tooltip/styles.js +8 -8
  108. package/build/src/components/Common/Tooltip/styles.js.map +1 -1
  109. package/build/src/components/Common/WalletChainLogo/index.js +13 -6
  110. package/build/src/components/Common/WalletChainLogo/index.js.map +1 -1
  111. package/build/src/components/DaimoPayButton/index.js +170 -180
  112. package/build/src/components/DaimoPayButton/index.js.map +1 -1
  113. package/build/src/components/DaimoPayButton/styles.js +4 -4
  114. package/build/src/components/DaimoPayButton/styles.js.map +1 -1
  115. package/build/src/components/DaimoPayModal/ConnectUsing.js +50 -24
  116. package/build/src/components/DaimoPayModal/ConnectUsing.js.map +1 -1
  117. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js +303 -163
  118. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +1 -1
  119. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js +10 -12
  120. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +1 -1
  121. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +69 -39
  122. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -1
  123. package/build/src/components/DaimoPayModal/index.js +409 -416
  124. package/build/src/components/DaimoPayModal/index.js.map +1 -1
  125. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +15 -11
  126. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +1 -1
  127. package/build/src/components/Pages/About/graphics.js +796 -130
  128. package/build/src/components/Pages/About/graphics.js.map +1 -1
  129. package/build/src/components/Pages/About/index.js +203 -110
  130. package/build/src/components/Pages/About/index.js.map +1 -1
  131. package/build/src/components/Pages/About/styles.js +11 -15
  132. package/build/src/components/Pages/About/styles.js.map +1 -1
  133. package/build/src/components/Pages/Confirmation/index.js +71 -48
  134. package/build/src/components/Pages/Confirmation/index.js.map +1 -1
  135. package/build/src/components/Pages/Connectors/index.js +50 -16
  136. package/build/src/components/Pages/Connectors/index.js.map +1 -1
  137. package/build/src/components/Pages/Connectors/styles.js +10 -10
  138. package/build/src/components/Pages/Connectors/styles.js.map +1 -1
  139. package/build/src/components/Pages/DownloadApp/index.js +23 -18
  140. package/build/src/components/Pages/DownloadApp/index.js.map +1 -1
  141. package/build/src/components/Pages/Error/index.js +27 -15
  142. package/build/src/components/Pages/Error/index.js.map +1 -1
  143. package/build/src/components/Pages/MobileConnectors/index.js +50 -44
  144. package/build/src/components/Pages/MobileConnectors/index.js.map +1 -1
  145. package/build/src/components/Pages/MobileConnectors/styles.js +9 -11
  146. package/build/src/components/Pages/MobileConnectors/styles.js.map +1 -1
  147. package/build/src/components/Pages/Onboarding/index.js +20 -4
  148. package/build/src/components/Pages/Onboarding/index.js.map +1 -1
  149. package/build/src/components/Pages/Onboarding/styles.js +13 -13
  150. package/build/src/components/Pages/Onboarding/styles.js.map +1 -1
  151. package/build/src/components/Pages/PayWithToken/index.js +133 -122
  152. package/build/src/components/Pages/PayWithToken/index.js.map +1 -1
  153. package/build/src/components/Pages/SelectAmount/index.js +12 -5
  154. package/build/src/components/Pages/SelectAmount/index.js.map +1 -1
  155. package/build/src/components/Pages/SelectDepositAddressAmount/index.js +56 -38
  156. package/build/src/components/Pages/SelectDepositAddressAmount/index.js.map +1 -1
  157. package/build/src/components/Pages/SelectDepositAddressChain/index.js +57 -40
  158. package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -1
  159. package/build/src/components/Pages/SelectExchange/index.js +29 -24
  160. package/build/src/components/Pages/SelectExchange/index.js.map +1 -1
  161. package/build/src/components/Pages/SelectExternalAmount/index.js +57 -41
  162. package/build/src/components/Pages/SelectExternalAmount/index.js.map +1 -1
  163. package/build/src/components/Pages/SelectMethod/index.js +201 -183
  164. package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
  165. package/build/src/components/Pages/SelectToken/index.js +72 -46
  166. package/build/src/components/Pages/SelectToken/index.js.map +1 -1
  167. package/build/src/components/Pages/SelectWalletAmount/index.js +40 -32
  168. package/build/src/components/Pages/SelectWalletAmount/index.js.map +1 -1
  169. package/build/src/components/Pages/SelectWalletChain/index.js +40 -36
  170. package/build/src/components/Pages/SelectWalletChain/index.js.map +1 -1
  171. package/build/src/components/Pages/SelectZKP/index.js +29 -24
  172. package/build/src/components/Pages/SelectZKP/index.js.map +1 -1
  173. package/build/src/components/Pages/Solana/ConnectorSolana/index.js +60 -45
  174. package/build/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -1
  175. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +73 -61
  176. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -1
  177. package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js +12 -5
  178. package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +1 -1
  179. package/build/src/components/Pages/SwitchNetworks/index.js +29 -10
  180. package/build/src/components/Pages/SwitchNetworks/index.js.map +1 -1
  181. package/build/src/components/Pages/WaitingDepositAddress/index.js +332 -184
  182. package/build/src/components/Pages/WaitingDepositAddress/index.js.map +1 -1
  183. package/build/src/components/Pages/WaitingExternal/index.js +69 -46
  184. package/build/src/components/Pages/WaitingExternal/index.js.map +1 -1
  185. package/build/src/components/Pages/WaitingWallet/index.js +37 -16
  186. package/build/src/components/Pages/WaitingWallet/index.js.map +1 -1
  187. package/build/src/components/Spinners/CircleSpinner/index.js +96 -7
  188. package/build/src/components/Spinners/CircleSpinner/index.js.map +1 -1
  189. package/build/src/components/Spinners/CircleSpinner/styles.js +6 -7
  190. package/build/src/components/Spinners/CircleSpinner/styles.js.map +1 -1
  191. package/build/src/components/Spinners/ExternalPaymentSpinner/index.js +18 -9
  192. package/build/src/components/Spinners/ExternalPaymentSpinner/index.js.map +1 -1
  193. package/build/src/components/Spinners/SquircleSpinner/index.js +60 -7
  194. package/build/src/components/Spinners/SquircleSpinner/index.js.map +1 -1
  195. package/build/src/components/Spinners/SquircleSpinner/styles.js +4 -4
  196. package/build/src/components/Spinners/SquircleSpinner/styles.js.map +1 -1
  197. package/build/src/components/Spinners/TokenLogoSpinner/index.js +12 -1
  198. package/build/src/components/Spinners/TokenLogoSpinner/index.js.map +1 -1
  199. package/build/src/components/Spinners/TokenLogoSpinner/styles.js +1 -1
  200. package/build/src/components/Spinners/TokenLogoSpinner/styles.js.map +1 -1
  201. package/build/src/components/Spinners/WalletPaymentSpinner/index.js +27 -20
  202. package/build/src/components/Spinners/WalletPaymentSpinner/index.js.map +1 -1
  203. package/build/src/components/Spinners/styles.js +3 -4
  204. package/build/src/components/Spinners/styles.js.map +1 -1
  205. package/build/src/constants/defaultTheme.js +1 -1
  206. package/build/src/constants/defaultTheme.js.map +1 -1
  207. package/build/src/constants/routes.js +29 -30
  208. package/build/src/constants/routes.js.map +1 -1
  209. package/build/src/defaultConfig.js +49 -46
  210. package/build/src/defaultConfig.js.map +1 -1
  211. package/build/src/defaultConnectors.js +32 -19
  212. package/build/src/defaultConnectors.js.map +1 -1
  213. package/build/src/hooks/useChainIsSupported.js +3 -5
  214. package/build/src/hooks/useChainIsSupported.js.map +1 -1
  215. package/build/src/hooks/useChains.js +3 -4
  216. package/build/src/hooks/useChains.js.map +1 -1
  217. package/build/src/hooks/useConnect.js +51 -39
  218. package/build/src/hooks/useConnect.js.map +1 -1
  219. package/build/src/hooks/useConnectCallback.js +15 -12
  220. package/build/src/hooks/useConnectCallback.js.map +1 -1
  221. package/build/src/hooks/useConnectors.js +2 -2
  222. package/build/src/hooks/useConnectors.js.map +1 -1
  223. package/build/src/hooks/useDaimoPay.js +98 -82
  224. package/build/src/hooks/useDaimoPay.js.map +1 -1
  225. package/build/src/hooks/useDaimoPayStatus.js +4 -15
  226. package/build/src/hooks/useDaimoPayStatus.js.map +1 -1
  227. package/build/src/hooks/useDaimoPayUI.js +7 -7
  228. package/build/src/hooks/useDaimoPayUI.js.map +1 -1
  229. package/build/src/hooks/useDepositAddressOptions.js +29 -25
  230. package/build/src/hooks/useDepositAddressOptions.js.map +1 -1
  231. package/build/src/hooks/useEnsFallbackConfig.js +5 -5
  232. package/build/src/hooks/useEnsFallbackConfig.js.map +1 -1
  233. package/build/src/hooks/useExternalPaymentOptions.js +57 -52
  234. package/build/src/hooks/useExternalPaymentOptions.js.map +1 -1
  235. package/build/src/hooks/useFitText.js +120 -135
  236. package/build/src/hooks/useFitText.js.map +1 -1
  237. package/build/src/hooks/useFocusTrap.js +33 -37
  238. package/build/src/hooks/useFocusTrap.js.map +1 -1
  239. package/build/src/hooks/useIsMobile.js +3 -3
  240. package/build/src/hooks/useIsMobile.js.map +1 -1
  241. package/build/src/hooks/useIsMounted.js +3 -5
  242. package/build/src/hooks/useIsMounted.js.map +1 -1
  243. package/build/src/hooks/useLastConnector.js +15 -15
  244. package/build/src/hooks/useLastConnector.js.map +1 -1
  245. package/build/src/hooks/useLocales.js +44 -42
  246. package/build/src/hooks/useLocales.js.map +1 -1
  247. package/build/src/hooks/useLockBodyScroll.js +38 -44
  248. package/build/src/hooks/useLockBodyScroll.js.map +1 -1
  249. package/build/src/hooks/useOrderUsdLimits.js +17 -19
  250. package/build/src/hooks/useOrderUsdLimits.js.map +1 -1
  251. package/build/src/hooks/usePayContext.js +3 -5
  252. package/build/src/hooks/usePayContext.js.map +1 -1
  253. package/build/src/hooks/usePaymentState.js +351 -324
  254. package/build/src/hooks/usePaymentState.js.map +1 -1
  255. package/build/src/hooks/usePrevious.js +6 -7
  256. package/build/src/hooks/usePrevious.js.map +1 -1
  257. package/build/src/hooks/useSolanaPaymentOptions.js +33 -33
  258. package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -1
  259. package/build/src/hooks/useTokenOptions.js +129 -112
  260. package/build/src/hooks/useTokenOptions.js.map +1 -1
  261. package/build/src/hooks/useUntronAvailability.js +26 -34
  262. package/build/src/hooks/useUntronAvailability.js.map +1 -1
  263. package/build/src/hooks/useWalletPaymentOptions.js +83 -78
  264. package/build/src/hooks/useWalletPaymentOptions.js.map +1 -1
  265. package/build/src/hooks/useWindowSize.js +16 -16
  266. package/build/src/hooks/useWindowSize.js.map +1 -1
  267. package/build/src/localizations/index.js +28 -31
  268. package/build/src/localizations/index.js.map +1 -1
  269. package/build/src/localizations/locales/ar-AE.js +88 -88
  270. package/build/src/localizations/locales/ar-AE.js.map +1 -1
  271. package/build/src/localizations/locales/ca-AD.js +88 -88
  272. package/build/src/localizations/locales/ca-AD.js.map +1 -1
  273. package/build/src/localizations/locales/ee-EE.js +96 -88
  274. package/build/src/localizations/locales/ee-EE.js.map +1 -1
  275. package/build/src/localizations/locales/en-US.js +134 -126
  276. package/build/src/localizations/locales/en-US.js.map +1 -1
  277. package/build/src/localizations/locales/es-ES.js +126 -126
  278. package/build/src/localizations/locales/es-ES.js.map +1 -1
  279. package/build/src/localizations/locales/fa-IR.js +88 -88
  280. package/build/src/localizations/locales/fa-IR.js.map +1 -1
  281. package/build/src/localizations/locales/fr-FR.js +88 -88
  282. package/build/src/localizations/locales/fr-FR.js.map +1 -1
  283. package/build/src/localizations/locales/ja-JP.js +88 -88
  284. package/build/src/localizations/locales/ja-JP.js.map +1 -1
  285. package/build/src/localizations/locales/pt-BR.js +96 -88
  286. package/build/src/localizations/locales/pt-BR.js.map +1 -1
  287. package/build/src/localizations/locales/ru-RU.js +92 -88
  288. package/build/src/localizations/locales/ru-RU.js.map +1 -1
  289. package/build/src/localizations/locales/tr-TR.js +96 -88
  290. package/build/src/localizations/locales/tr-TR.js.map +1 -1
  291. package/build/src/localizations/locales/vi-VN.js +96 -88
  292. package/build/src/localizations/locales/vi-VN.js.map +1 -1
  293. package/build/src/localizations/locales/zh-CN.js +88 -88
  294. package/build/src/localizations/locales/zh-CN.js.map +1 -1
  295. package/build/src/payment/paymentEffects.js +237 -265
  296. package/build/src/payment/paymentEffects.js.map +1 -1
  297. package/build/src/payment/paymentFsm.js +165 -186
  298. package/build/src/payment/paymentFsm.js.map +1 -1
  299. package/build/src/payment/paymentStore.js +8 -10
  300. package/build/src/payment/paymentStore.js.map +1 -1
  301. package/build/src/payment/paymentUtils.js +5 -9
  302. package/build/src/payment/paymentUtils.js.map +1 -1
  303. package/build/src/provider/DaimoPayProvider.js +258 -249
  304. package/build/src/provider/DaimoPayProvider.js.map +1 -1
  305. package/build/src/provider/PayContext.js +0 -1
  306. package/build/src/provider/PayContext.js.map +1 -1
  307. package/build/src/provider/PaymentProvider.js +18 -17
  308. package/build/src/provider/PaymentProvider.js.map +1 -1
  309. package/build/src/provider/SolanaContextProvider.js +6 -3
  310. package/build/src/provider/SolanaContextProvider.js.map +1 -1
  311. package/build/src/provider/Web3ContextProvider.js +23 -23
  312. package/build/src/provider/Web3ContextProvider.js.map +1 -1
  313. package/build/src/stateStore.js +28 -74
  314. package/build/src/stateStore.js.map +1 -1
  315. package/build/src/styles/defaultTheme.js +64 -73
  316. package/build/src/styles/defaultTheme.js.map +1 -1
  317. package/build/src/styles/index.js +202 -217
  318. package/build/src/styles/index.js.map +1 -1
  319. package/build/src/styles/styled/index.js +0 -10
  320. package/build/src/styles/styled/index.js.map +1 -1
  321. package/build/src/styles/themes/base.js +136 -136
  322. package/build/src/styles/themes/base.js.map +1 -1
  323. package/build/src/styles/themes/index.js.map +1 -1
  324. package/build/src/styles/themes/midnight.js +71 -71
  325. package/build/src/styles/themes/midnight.js.map +1 -1
  326. package/build/src/styles/themes/minimal.js +75 -75
  327. package/build/src/styles/themes/minimal.js.map +1 -1
  328. package/build/src/styles/themes/nouns.js +76 -76
  329. package/build/src/styles/themes/nouns.js.map +1 -1
  330. package/build/src/styles/themes/retro.js +88 -88
  331. package/build/src/styles/themes/retro.js.map +1 -1
  332. package/build/src/styles/themes/rounded.js +84 -84
  333. package/build/src/styles/themes/rounded.js.map +1 -1
  334. package/build/src/styles/themes/soft.js +66 -66
  335. package/build/src/styles/themes/soft.js.map +1 -1
  336. package/build/src/styles/themes/web95.js +95 -95
  337. package/build/src/styles/themes/web95.js.map +1 -1
  338. package/build/src/utils/exports.js +0 -1
  339. package/build/src/utils/exports.js.map +1 -1
  340. package/build/src/utils/format.js +25 -63
  341. package/build/src/utils/format.js.map +1 -1
  342. package/build/src/utils/index.js +23 -20
  343. package/build/src/utils/index.js.map +1 -1
  344. package/build/src/utils/p3.js +8 -9
  345. package/build/src/utils/p3.js.map +1 -1
  346. package/build/src/utils/platform.js +6 -8
  347. package/build/src/utils/platform.js.map +1 -1
  348. package/build/src/utils/polling.js +31 -31
  349. package/build/src/utils/polling.js.map +1 -1
  350. package/build/src/utils/supportUrl.js +9 -9
  351. package/build/src/utils/supportUrl.js.map +1 -1
  352. package/build/src/utils/trpc.js +11 -11
  353. package/build/src/utils/trpc.js.map +1 -1
  354. package/build/src/utils/validateInput.js +9 -29
  355. package/build/src/utils/validateInput.js.map +1 -1
  356. package/build/src/wallets/index.js +13 -22
  357. package/build/src/wallets/index.js.map +1 -1
  358. package/build/src/wallets/useWallets.js +183 -181
  359. package/build/src/wallets/useWallets.js.map +1 -1
  360. package/build/src/wallets/walletConfigs.js +230 -235
  361. package/build/src/wallets/walletConfigs.js.map +1 -1
  362. package/build/src/world-mini-app/WorldPayButton.js +113 -118
  363. package/build/src/world-mini-app/WorldPayButton.js.map +1 -1
  364. package/build/src/world-mini-app/promptWorldPayment.js +49 -47
  365. package/build/src/world-mini-app/promptWorldPayment.js.map +1 -1
  366. package/build/types-7ed033b6.d.ts +66 -0
  367. package/build/world.d.ts +89 -1
  368. package/package.json +6 -4
@@ -6,7 +6,7 @@ import { getAddressContraction } from '@daimo/pay-common';
6
6
  import { useWallet } from '@solana/wallet-adapter-react';
7
7
  import { useAccount, useDisconnect } from 'wagmi';
8
8
  import { Ethereum, Solana, Tron, Base } from '../../../assets/chains.js';
9
- import { WalletIcon, MetaMask, Trust, Rainbow, Phantom, Rabby } from '../../../assets/logos.js';
9
+ import { MetaMask, Trust, Rainbow, Phantom, Rabby, WalletIcon } from '../../../assets/logos.js';
10
10
  import useIsMobile from '../../../hooks/useIsMobile.js';
11
11
  import useLocales from '../../../hooks/useLocales.js';
12
12
  import { flattenChildren } from '../../../utils/index.js';
@@ -17,196 +17,214 @@ import PoweredByFooter from '../../Common/PoweredByFooter/index.js';
17
17
  import WalletChainLogo from '../../Common/WalletChainLogo/index.js';
18
18
 
19
19
  function SelectMethod() {
20
- const locales = useLocales();
21
- const payWithString = flattenChildren(locales.payWith).join("");
22
- const { isMobile, isIOS, isAndroid } = useIsMobile();
23
- const { address, chain, isConnected: isEthConnected, connector, } = useAccount();
24
- const { connected: isSolanaConnected, wallet: solanaWallet, wallets: solanaWallets, disconnect: disconnectSolana, publicKey, } = useWallet();
25
- const { setRoute, paymentState, log, disableMobileInjector } = usePayContext();
26
- const { showSolanaPaymentMethod } = paymentState;
27
- const { disconnectAsync } = useDisconnect();
28
- const { externalPaymentOptions, senderEnsName } = paymentState;
29
- // Decide whether to show the connected eth account, solana account, or both.
30
- // Desktop: Always show connected wallets when available
31
- // Mobile: Only show connected wallets when mobile injector is enabled (!disableMobileInjector)
32
- const showConnectedEth = isEthConnected && (!isMobile || !disableMobileInjector);
33
- const showConnectedSolana = isSolanaConnected && (!isMobile || !disableMobileInjector);
34
- const getConnectedWalletOptions = () => {
35
- const showChainLogo = isEthConnected && isSolanaConnected && showSolanaPaymentMethod;
36
- const connectedOptions = [];
37
- if (showConnectedEth) {
38
- const ethWalletDisplayName = senderEnsName ?? (address ? getAddressContraction(address) : "wallet");
39
- // Prefer icon from walletConfigs if there's a name match, otherwise fall back
40
- // to the connector-provided icon, and finally to the generic WalletIcon.
41
- let walletIcon;
42
- const matchedConfig = Object.values(walletConfigs).find((cfg) => {
43
- if (!cfg.name || !connector?.name)
44
- return false;
45
- const cfgName = cfg.name.toLowerCase();
46
- const connName = connector.name.toLowerCase();
47
- return cfgName.includes(connName) || connName.includes(cfgName);
48
- });
49
- if (matchedConfig?.icon) {
50
- walletIcon =
51
- typeof matchedConfig.icon === "string" ? (jsx("img", { src: matchedConfig.icon, alt: matchedConfig.name })) : matchedConfig.icon;
52
- }
53
- else if (connector?.icon) {
54
- walletIcon = (jsx("div", { style: { borderRadius: "22.5%", overflow: "hidden" }, children: jsx("img", { src: connector.icon, alt: connector.name }) }));
55
- }
56
- else {
57
- walletIcon = jsx(WalletIcon, {});
58
- }
59
- const connectedEthWalletOption = {
60
- id: "connectedWallet",
61
- title: `${payWithString} ${ethWalletDisplayName}`,
62
- icons: [
63
- jsx(WalletChainLogo, { walletIcon: walletIcon, walletName: connector?.name || "Wallet", chainLogo: showChainLogo ? jsx(Ethereum, {}) : null }, "eth"),
64
- ],
65
- onClick: () => {
66
- paymentState.setTokenMode("evm");
67
- setRoute(ROUTES.SELECT_TOKEN, {
68
- event: "click-wallet",
69
- walletId: connector?.id,
70
- chainId: chain?.id,
71
- address: address,
72
- });
73
- },
74
- };
75
- connectedOptions.push(connectedEthWalletOption);
76
- }
77
- if (showConnectedSolana && showSolanaPaymentMethod) {
78
- const solWalletDisplayName = getAddressContraction(publicKey?.toBase58() ?? "");
79
- // Prefer icon from walletConfigs if available
80
- let solWalletIcon;
81
- const solMatchedConfig = Object.values(walletConfigs).find((cfg) => {
82
- if (!cfg.name)
83
- return false;
84
- const cfgName = cfg.name.toLowerCase();
85
- const solName = solanaWallet?.adapter.name.toLowerCase() || "";
86
- return cfgName.includes(solName) || solName.includes(cfgName);
87
- });
88
- if (solMatchedConfig?.icon) {
89
- solWalletIcon =
90
- typeof solMatchedConfig.icon === "string" ? (jsx("img", { src: solMatchedConfig.icon, alt: solMatchedConfig.name })) : solMatchedConfig.icon;
91
- }
92
- else if (solanaWallet?.adapter.icon) {
93
- solWalletIcon = solanaWallet.adapter.icon;
94
- }
95
- else {
96
- solWalletIcon = jsx(Solana, {});
97
- }
98
- const connectedSolWalletOption = {
99
- id: "connectedSolanaWallet",
100
- title: `${payWithString} ${solWalletDisplayName}`,
101
- icons: [
102
- jsx(WalletChainLogo, { walletIcon: solWalletIcon, walletName: solanaWallet?.adapter.name || "Wallet", chainLogo: showChainLogo && jsx(Solana, {}) }, "sol-wallet"),
103
- ],
104
- onClick: () => {
105
- paymentState.setTokenMode("solana");
106
- setRoute(ROUTES.SELECT_TOKEN, {
107
- event: "click-wallet",
108
- walletId: solanaWallet?.adapter.name,
109
- chainId: "solana",
110
- address: publicKey?.toBase58(),
111
- });
112
- },
113
- };
114
- connectedOptions.push(connectedSolWalletOption);
115
- }
116
- return connectedOptions;
117
- };
118
- const connectedWalletOptions = getConnectedWalletOptions();
119
- const unconnectedWalletOption = {
120
- id: "unconnectedWallet",
121
- title: isEthConnected || isSolanaConnected
122
- ? locales.payWithAnotherWallet
123
- : locales.payWithWallet,
124
- icons: getBestUnconnectedWalletIcons(connector, isMobile),
125
- onClick: async () => {
126
- await disconnectAsync();
127
- await disconnectSolana();
128
- setRoute(ROUTES.CONNECTORS);
129
- },
130
- };
131
- const options = [];
132
- options.push(...connectedWalletOptions);
133
- options.push(unconnectedWalletOption);
134
- log(`[SELECT_METHOD] loading: ${externalPaymentOptions.loading}, options: ${JSON.stringify(externalPaymentOptions.options)}`);
135
- // Pay with Exchange
136
- const exchangeOptions = externalPaymentOptions.options.get("exchange") ?? [];
137
- const showExchangePaymentMethod = exchangeOptions.length > 0;
138
- if (showExchangePaymentMethod) {
139
- options.push({
140
- id: "exchange",
141
- title: locales.payWithExchange,
142
- icons: exchangeOptions.slice(0, 3).map((option) => option.logoURI),
143
- onClick: () => {
144
- setRoute(ROUTES.SELECT_EXCHANGE, {
145
- event: "click-option",
146
- option: "exchange",
147
- });
20
+ const locales = useLocales();
21
+ const payWithString = flattenChildren(locales.payWith).join("");
22
+ const { isMobile, isIOS, isAndroid } = useIsMobile();
23
+ const {
24
+ address,
25
+ chain,
26
+ isConnected: isEthConnected,
27
+ connector
28
+ } = useAccount();
29
+ const {
30
+ connected: isSolanaConnected,
31
+ wallet: solanaWallet,
32
+ wallets: solanaWallets,
33
+ disconnect: disconnectSolana,
34
+ publicKey
35
+ } = useWallet();
36
+ const { setRoute, paymentState, log, disableMobileInjector } = usePayContext();
37
+ const { showSolanaPaymentMethod } = paymentState;
38
+ const { disconnectAsync } = useDisconnect();
39
+ const { externalPaymentOptions, senderEnsName } = paymentState;
40
+ const showConnectedEth = isEthConnected && (!isMobile || !disableMobileInjector);
41
+ const showConnectedSolana = isSolanaConnected && (!isMobile || !disableMobileInjector);
42
+ const getConnectedWalletOptions = () => {
43
+ const showChainLogo = isEthConnected && isSolanaConnected && showSolanaPaymentMethod;
44
+ const connectedOptions = [];
45
+ if (showConnectedEth) {
46
+ const ethWalletDisplayName = senderEnsName ?? (address ? getAddressContraction(address) : "wallet");
47
+ let walletIcon;
48
+ const matchedConfig = Object.values(walletConfigs).find((cfg) => {
49
+ if (!cfg.name || !connector?.name) return false;
50
+ const cfgName = cfg.name.toLowerCase();
51
+ const connName = connector.name.toLowerCase();
52
+ return cfgName.includes(connName) || connName.includes(cfgName);
53
+ });
54
+ if (matchedConfig?.icon) {
55
+ walletIcon = typeof matchedConfig.icon === "string" ? /* @__PURE__ */ jsx("img", { src: matchedConfig.icon, alt: matchedConfig.name }) : matchedConfig.icon;
56
+ } else if (connector?.icon) {
57
+ walletIcon = /* @__PURE__ */ jsx("div", { style: { borderRadius: "22.5%", overflow: "hidden" }, children: /* @__PURE__ */ jsx("img", { src: connector.icon, alt: connector.name }) });
58
+ } else {
59
+ walletIcon = /* @__PURE__ */ jsx(WalletIcon, {});
60
+ }
61
+ const connectedEthWalletOption = {
62
+ id: "connectedWallet",
63
+ title: `${payWithString} ${ethWalletDisplayName}`,
64
+ icons: [
65
+ /* @__PURE__ */ jsx(
66
+ WalletChainLogo,
67
+ {
68
+ walletIcon,
69
+ walletName: connector?.name || "Wallet",
70
+ chainLogo: showChainLogo ? /* @__PURE__ */ jsx(Ethereum, {}) : null
148
71
  },
149
- });
72
+ "eth"
73
+ )
74
+ ],
75
+ onClick: () => {
76
+ paymentState.setTokenMode("evm");
77
+ setRoute(ROUTES.SELECT_TOKEN, {
78
+ event: "click-wallet",
79
+ walletId: connector?.id,
80
+ chainId: chain?.id,
81
+ address
82
+ });
83
+ }
84
+ };
85
+ connectedOptions.push(connectedEthWalletOption);
150
86
  }
151
- const depositAddressOption = getDepositAddressOption(setRoute, locales);
152
- options.push(depositAddressOption);
153
- // ZKP2P is currently only available on desktop. Check if the user is on
154
- // desktop and if any ZKP2P options are available.
155
- const zkp2pOptions = externalPaymentOptions.options.get("zkp2p") ?? [];
156
- const showZkp2pPaymentMethod = !isMobile && zkp2pOptions.length > 0;
157
- if (showZkp2pPaymentMethod) {
158
- options.push({
159
- id: "ZKP2P",
160
- title: locales.payViaPaymentApp,
161
- icons: zkp2pOptions.slice(0, 2).map((option) => option.logoURI),
162
- onClick: () => {
163
- setRoute(ROUTES.SELECT_ZKP2P);
87
+ if (showConnectedSolana && showSolanaPaymentMethod) {
88
+ const solWalletDisplayName = getAddressContraction(
89
+ publicKey?.toBase58() ?? ""
90
+ );
91
+ let solWalletIcon;
92
+ const solMatchedConfig = Object.values(walletConfigs).find((cfg) => {
93
+ if (!cfg.name) return false;
94
+ const cfgName = cfg.name.toLowerCase();
95
+ const solName = solanaWallet?.adapter.name.toLowerCase() || "";
96
+ return cfgName.includes(solName) || solName.includes(cfgName);
97
+ });
98
+ if (solMatchedConfig?.icon) {
99
+ solWalletIcon = typeof solMatchedConfig.icon === "string" ? /* @__PURE__ */ jsx("img", { src: solMatchedConfig.icon, alt: solMatchedConfig.name }) : solMatchedConfig.icon;
100
+ } else if (solanaWallet?.adapter.icon) {
101
+ solWalletIcon = solanaWallet.adapter.icon;
102
+ } else {
103
+ solWalletIcon = /* @__PURE__ */ jsx(Solana, {});
104
+ }
105
+ const connectedSolWalletOption = {
106
+ id: "connectedSolanaWallet",
107
+ title: `${payWithString} ${solWalletDisplayName}`,
108
+ icons: [
109
+ /* @__PURE__ */ jsx(
110
+ WalletChainLogo,
111
+ {
112
+ walletIcon: solWalletIcon,
113
+ walletName: solanaWallet?.adapter.name || "Wallet",
114
+ chainLogo: showChainLogo && /* @__PURE__ */ jsx(Solana, {})
164
115
  },
165
- });
116
+ "sol-wallet"
117
+ )
118
+ ],
119
+ onClick: () => {
120
+ paymentState.setTokenMode("solana");
121
+ setRoute(ROUTES.SELECT_TOKEN, {
122
+ event: "click-wallet",
123
+ walletId: solanaWallet?.adapter.name,
124
+ chainId: "solana",
125
+ address: publicKey?.toBase58()
126
+ });
127
+ }
128
+ };
129
+ connectedOptions.push(connectedSolWalletOption);
130
+ }
131
+ return connectedOptions;
132
+ };
133
+ const connectedWalletOptions = getConnectedWalletOptions();
134
+ const unconnectedWalletOption = {
135
+ id: "unconnectedWallet",
136
+ title: isEthConnected || isSolanaConnected ? locales.payWithAnotherWallet : locales.payWithWallet,
137
+ icons: getBestUnconnectedWalletIcons(connector, isMobile),
138
+ onClick: async () => {
139
+ await disconnectAsync();
140
+ await disconnectSolana();
141
+ setRoute(ROUTES.CONNECTORS);
166
142
  }
167
- // Order disabled to bottom
168
- options.sort((a, b) => (a.disabled ? 1 : 0) - (b.disabled ? 1 : 0));
169
- return (jsxs(PageContent, { children: [jsx(OrderHeader, {}), jsx(OptionsList, { requiredSkeletons: isMobile ? 4 : 3, isLoading: externalPaymentOptions.loading, options: externalPaymentOptions.loading ? [] : options }), jsx(PoweredByFooter, {})] }));
143
+ };
144
+ const options = [];
145
+ options.push(...connectedWalletOptions);
146
+ options.push(unconnectedWalletOption);
147
+ log(
148
+ `[SELECT_METHOD] loading: ${externalPaymentOptions.loading}, options: ${JSON.stringify(
149
+ externalPaymentOptions.options
150
+ )}`
151
+ );
152
+ const exchangeOptions = externalPaymentOptions.options.get("exchange") ?? [];
153
+ const showExchangePaymentMethod = exchangeOptions.length > 0;
154
+ if (showExchangePaymentMethod) {
155
+ options.push({
156
+ id: "exchange",
157
+ title: locales.payWithExchange,
158
+ icons: exchangeOptions.slice(0, 3).map((option) => option.logoURI),
159
+ onClick: () => {
160
+ setRoute(ROUTES.SELECT_EXCHANGE, {
161
+ event: "click-option",
162
+ option: "exchange"
163
+ });
164
+ }
165
+ });
166
+ }
167
+ const depositAddressOption = getDepositAddressOption(setRoute, locales);
168
+ options.push(depositAddressOption);
169
+ const zkp2pOptions = externalPaymentOptions.options.get("zkp2p") ?? [];
170
+ const showZkp2pPaymentMethod = !isMobile && zkp2pOptions.length > 0;
171
+ if (showZkp2pPaymentMethod) {
172
+ options.push({
173
+ id: "ZKP2P",
174
+ title: locales.payViaPaymentApp,
175
+ icons: zkp2pOptions.slice(0, 2).map((option) => option.logoURI),
176
+ onClick: () => {
177
+ setRoute(ROUTES.SELECT_ZKP2P);
178
+ }
179
+ });
180
+ }
181
+ options.sort((a, b) => (a.disabled ? 1 : 0) - (b.disabled ? 1 : 0));
182
+ return /* @__PURE__ */ jsxs(PageContent, { children: [
183
+ /* @__PURE__ */ jsx(OrderHeader, {}),
184
+ /* @__PURE__ */ jsx(
185
+ OptionsList,
186
+ {
187
+ requiredSkeletons: isMobile ? 4 : 3,
188
+ isLoading: externalPaymentOptions.loading,
189
+ options: externalPaymentOptions.loading ? [] : options
190
+ }
191
+ ),
192
+ /* @__PURE__ */ jsx(PoweredByFooter, {})
193
+ ] });
170
194
  }
171
- // Get 3 icons, skipping the one that is already connected
172
195
  function getBestUnconnectedWalletIcons(connector, isMobile) {
173
- const icons = [];
174
- const strippedId = connector?.id.toLowerCase(); // some connector ids can have weird casing and or suffixes and prefixes
175
- const [isRainbow, isPhantom, isRabby, isMetaMask] = [
176
- strippedId?.includes("rainbow"),
177
- strippedId?.includes("trust"),
178
- strippedId?.includes("phantom"),
179
- strippedId?.includes("coinbase"),
180
- strippedId?.includes("metamask"),
181
- strippedId?.includes("rabby"),
182
- strippedId?.includes("metamask"),
183
- ];
184
- if (isMobile) {
185
- icons.push(jsx(MetaMask, {}));
186
- icons.push(jsx(Trust, { background: true }));
187
- icons.push(jsx(Rainbow, {}));
188
- }
189
- else {
190
- if (!isMetaMask)
191
- icons.push(jsx(MetaMask, {}));
192
- if (!isRainbow)
193
- icons.push(jsx(Rainbow, {}));
194
- if (!isPhantom)
195
- icons.push(jsx(Phantom, {}));
196
- if (!isRabby && icons.length < 3)
197
- icons.push(jsx(Rabby, {}));
198
- }
199
- return icons;
196
+ const icons = [];
197
+ const strippedId = connector?.id.toLowerCase();
198
+ const [isRainbow, isPhantom, isRabby, isMetaMask] = [
199
+ strippedId?.includes("rainbow"),
200
+ strippedId?.includes("trust"),
201
+ strippedId?.includes("phantom"),
202
+ strippedId?.includes("coinbase"),
203
+ strippedId?.includes("metamask"),
204
+ strippedId?.includes("rabby"),
205
+ strippedId?.includes("metamask")
206
+ ];
207
+ if (isMobile) {
208
+ icons.push(/* @__PURE__ */ jsx(MetaMask, {}));
209
+ icons.push(/* @__PURE__ */ jsx(Trust, { background: true }));
210
+ icons.push(/* @__PURE__ */ jsx(Rainbow, {}));
211
+ } else {
212
+ if (!isMetaMask) icons.push(/* @__PURE__ */ jsx(MetaMask, {}));
213
+ if (!isRainbow) icons.push(/* @__PURE__ */ jsx(Rainbow, {}));
214
+ if (!isPhantom) icons.push(/* @__PURE__ */ jsx(Phantom, {}));
215
+ if (!isRabby && icons.length < 3) icons.push(/* @__PURE__ */ jsx(Rabby, {}));
216
+ }
217
+ return icons;
200
218
  }
201
219
  function getDepositAddressOption(setRoute, locales) {
202
- return {
203
- id: "depositAddress",
204
- title: locales.payToAddress,
205
- icons: [jsx(Ethereum, {}, "eth"), jsx(Tron, {}, "tron"), jsx(Base, {}, "base")],
206
- onClick: () => {
207
- setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);
208
- },
209
- };
220
+ return {
221
+ id: "depositAddress",
222
+ title: locales.payToAddress,
223
+ icons: [/* @__PURE__ */ jsx(Ethereum, {}, "eth"), /* @__PURE__ */ jsx(Tron, {}, "tron"), /* @__PURE__ */ jsx(Base, {}, "base")],
224
+ onClick: () => {
225
+ setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);
226
+ }
227
+ };
210
228
  }
211
229
 
212
230
  export { SelectMethod as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/Pages/SelectMethod/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/Pages/SelectMethod/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { ROUTES } from \"../../../constants/routes\";\nimport { usePayContext } from \"../../../hooks/usePayContext\";\n\nimport { PageContent } from \"../../Common/Modal/styles\";\n\nimport { getAddressContraction } from \"@daimo/pay-common\";\nimport { useWallet } from \"@solana/wallet-adapter-react\";\nimport { Connector, useAccount, useDisconnect } from \"wagmi\";\nimport { Base, Ethereum, Solana, Tron } from \"../../../assets/chains\";\nimport {\n MetaMask,\n Phantom,\n Rabby,\n Rainbow,\n Trust,\n WalletIcon,\n} from \"../../../assets/logos\";\nimport useIsMobile from \"../../../hooks/useIsMobile\";\nimport useLocales from \"../../../hooks/useLocales\";\nimport { flattenChildren } from \"../../../utils\";\nimport { walletConfigs } from \"../../../wallets/walletConfigs\";\nimport { Option, OptionsList } from \"../../Common/OptionsList\";\nimport { OrderHeader } from \"../../Common/OrderHeader\";\nimport PoweredByFooter from \"../../Common/PoweredByFooter\";\nimport WalletChainLogo from \"../../Common/WalletChainLogo\";\n\nexport default function SelectMethod() {\n const locales = useLocales();\n const payWithString = flattenChildren(locales.payWith).join(\"\");\n const { isMobile, isIOS, isAndroid } = useIsMobile();\n\n const {\n address,\n chain,\n isConnected: isEthConnected,\n connector,\n } = useAccount();\n const {\n connected: isSolanaConnected,\n wallet: solanaWallet,\n wallets: solanaWallets,\n disconnect: disconnectSolana,\n publicKey,\n } = useWallet();\n const { setRoute, paymentState, log, disableMobileInjector } =\n usePayContext();\n const { showSolanaPaymentMethod } = paymentState;\n const { disconnectAsync } = useDisconnect();\n\n const { externalPaymentOptions, senderEnsName } = paymentState;\n\n // Decide whether to show the connected eth account, solana account, or both.\n // Desktop: Always show connected wallets when available\n // Mobile: Only show connected wallets when mobile injector is enabled (!disableMobileInjector)\n const showConnectedEth =\n isEthConnected && (!isMobile || !disableMobileInjector);\n const showConnectedSolana =\n isSolanaConnected && (!isMobile || !disableMobileInjector);\n\n const getConnectedWalletOptions = () => {\n const showChainLogo =\n isEthConnected && isSolanaConnected && showSolanaPaymentMethod;\n\n const connectedOptions: Option[] = [];\n\n if (showConnectedEth) {\n const ethWalletDisplayName =\n senderEnsName ?? (address ? getAddressContraction(address) : \"wallet\");\n\n // Prefer icon from walletConfigs if there's a name match, otherwise fall back\n // to the connector-provided icon, and finally to the generic WalletIcon.\n let walletIcon: JSX.Element;\n\n const matchedConfig = Object.values(walletConfigs).find((cfg) => {\n if (!cfg.name || !connector?.name) return false;\n const cfgName = cfg.name.toLowerCase();\n const connName = connector.name.toLowerCase();\n return cfgName.includes(connName) || connName.includes(cfgName);\n });\n\n if (matchedConfig?.icon) {\n walletIcon =\n typeof matchedConfig.icon === \"string\" ? (\n <img src={matchedConfig.icon} alt={matchedConfig.name} />\n ) : (\n (matchedConfig.icon as JSX.Element)\n );\n } else if (connector?.icon) {\n walletIcon = (\n <div style={{ borderRadius: \"22.5%\", overflow: \"hidden\" }}>\n <img src={connector.icon} alt={connector.name} />\n </div>\n );\n } else {\n walletIcon = <WalletIcon />;\n }\n\n const connectedEthWalletOption = {\n id: \"connectedWallet\",\n title: `${payWithString} ${ethWalletDisplayName}`,\n icons: [\n <WalletChainLogo\n key=\"eth\"\n walletIcon={walletIcon}\n walletName={connector?.name || \"Wallet\"}\n chainLogo={showChainLogo ? <Ethereum /> : null}\n />,\n ],\n onClick: () => {\n paymentState.setTokenMode(\"evm\");\n setRoute(ROUTES.SELECT_TOKEN, {\n event: \"click-wallet\",\n walletId: connector?.id,\n chainId: chain?.id,\n address: address,\n });\n },\n };\n connectedOptions.push(connectedEthWalletOption);\n }\n\n if (showConnectedSolana && showSolanaPaymentMethod) {\n const solWalletDisplayName = getAddressContraction(\n publicKey?.toBase58() ?? \"\",\n );\n\n // Prefer icon from walletConfigs if available\n let solWalletIcon: React.ReactNode;\n const solMatchedConfig = Object.values(walletConfigs).find((cfg) => {\n if (!cfg.name) return false;\n const cfgName = cfg.name.toLowerCase();\n const solName = solanaWallet?.adapter.name.toLowerCase() || \"\";\n return cfgName.includes(solName) || solName.includes(cfgName);\n });\n\n if (solMatchedConfig?.icon) {\n solWalletIcon =\n typeof solMatchedConfig.icon === \"string\" ? (\n <img src={solMatchedConfig.icon} alt={solMatchedConfig.name} />\n ) : (\n (solMatchedConfig.icon as JSX.Element)\n );\n } else if (solanaWallet?.adapter.icon) {\n solWalletIcon = solanaWallet.adapter.icon;\n } else {\n solWalletIcon = <Solana />;\n }\n\n const connectedSolWalletOption = {\n id: \"connectedSolanaWallet\",\n title: `${payWithString} ${solWalletDisplayName}`,\n icons: [\n <WalletChainLogo\n key=\"sol-wallet\"\n walletIcon={solWalletIcon}\n walletName={solanaWallet?.adapter.name || \"Wallet\"}\n chainLogo={showChainLogo && <Solana />}\n />,\n ],\n onClick: () => {\n paymentState.setTokenMode(\"solana\");\n setRoute(ROUTES.SELECT_TOKEN, {\n event: \"click-wallet\",\n walletId: solanaWallet?.adapter.name,\n chainId: \"solana\",\n address: publicKey?.toBase58(),\n });\n },\n };\n\n connectedOptions.push(connectedSolWalletOption);\n }\n\n return connectedOptions;\n };\n\n const connectedWalletOptions = getConnectedWalletOptions();\n const unconnectedWalletOption = {\n id: \"unconnectedWallet\",\n title:\n isEthConnected || isSolanaConnected\n ? locales.payWithAnotherWallet\n : locales.payWithWallet,\n icons: getBestUnconnectedWalletIcons(connector, isMobile),\n onClick: async () => {\n await disconnectAsync();\n await disconnectSolana();\n setRoute(ROUTES.CONNECTORS);\n },\n };\n\n const options: {\n id: string;\n title: string;\n subtitle?: string;\n icons: (React.ReactNode | string)[];\n onClick: () => void;\n disabled?: boolean;\n }[] = [];\n options.push(...connectedWalletOptions);\n options.push(unconnectedWalletOption);\n\n log(\n `[SELECT_METHOD] loading: ${externalPaymentOptions.loading}, options: ${JSON.stringify(\n externalPaymentOptions.options,\n )}`,\n );\n\n // Pay with Exchange\n const exchangeOptions = externalPaymentOptions.options.get(\"exchange\") ?? [];\n\n const showExchangePaymentMethod = exchangeOptions.length > 0;\n if (showExchangePaymentMethod) {\n options.push({\n id: \"exchange\",\n title: locales.payWithExchange,\n icons: exchangeOptions.slice(0, 3).map((option) => option.logoURI),\n onClick: () => {\n setRoute(ROUTES.SELECT_EXCHANGE, {\n event: \"click-option\",\n option: \"exchange\",\n });\n },\n });\n }\n\n const depositAddressOption = getDepositAddressOption(setRoute, locales);\n options.push(depositAddressOption);\n\n // ZKP2P is currently only available on desktop. Check if the user is on\n // desktop and if any ZKP2P options are available.\n const zkp2pOptions = externalPaymentOptions.options.get(\"zkp2p\") ?? [];\n const showZkp2pPaymentMethod = !isMobile && zkp2pOptions.length > 0;\n if (showZkp2pPaymentMethod) {\n options.push({\n id: \"ZKP2P\",\n title: locales.payViaPaymentApp,\n icons: zkp2pOptions.slice(0, 2).map((option) => option.logoURI),\n onClick: () => {\n setRoute(ROUTES.SELECT_ZKP2P);\n },\n });\n }\n\n // Order disabled to bottom\n options.sort((a, b) => (a.disabled ? 1 : 0) - (b.disabled ? 1 : 0));\n\n return (\n <PageContent>\n <OrderHeader />\n\n <OptionsList\n requiredSkeletons={isMobile ? 4 : 3} // TODO: programmatically determine skeletons to best avoid layout shifts\n isLoading={externalPaymentOptions.loading}\n options={externalPaymentOptions.loading ? [] : options}\n />\n <PoweredByFooter />\n </PageContent>\n );\n}\n\n// Get 3 icons, skipping the one that is already connected\nfunction getBestUnconnectedWalletIcons(\n connector: Connector | undefined,\n isMobile: boolean,\n) {\n const icons: JSX.Element[] = [];\n const strippedId = connector?.id.toLowerCase(); // some connector ids can have weird casing and or suffixes and prefixes\n const [isRainbow, isPhantom, isRabby, isMetaMask] = [\n strippedId?.includes(\"rainbow\"),\n strippedId?.includes(\"trust\"),\n strippedId?.includes(\"phantom\"),\n strippedId?.includes(\"coinbase\"),\n strippedId?.includes(\"metamask\"),\n strippedId?.includes(\"rabby\"),\n strippedId?.includes(\"metamask\"),\n ];\n\n if (isMobile) {\n icons.push(<MetaMask />);\n icons.push(<Trust background />);\n icons.push(<Rainbow />);\n } else {\n if (!isMetaMask) icons.push(<MetaMask />);\n if (!isRainbow) icons.push(<Rainbow />);\n if (!isPhantom) icons.push(<Phantom />);\n if (!isRabby && icons.length < 3) icons.push(<Rabby />);\n }\n\n return icons;\n}\n\nfunction getDepositAddressOption(\n setRoute: (route: ROUTES, data?: Record<string, any>) => void,\n locales: ReturnType<typeof useLocales>,\n) {\n return {\n id: \"depositAddress\",\n title: locales.payToAddress,\n icons: [<Ethereum key=\"eth\" />, <Tron key=\"tron\" />, <Base key=\"base\" />],\n onClick: () => {\n setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);\n },\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useWallet } from '@solana/wallet-adapter-react';
3
3
  import { useAccount, injected } from 'wagmi';
4
- import { Ethereum, Solana } from '../../../assets/chains.js';
4
+ import { Solana, Ethereum } from '../../../assets/chains.js';
5
5
  import defaultTheme from '../../../constants/defaultTheme.js';
6
6
  import { useConnect } from '../../../hooks/useConnect.js';
7
7
  import useIsMobile from '../../../hooks/useIsMobile.js';
@@ -14,57 +14,83 @@ import { OrderHeader } from '../../Common/OrderHeader/index.js';
14
14
  import SelectAnotherMethodButton from '../../Common/SelectAnotherMethodButton/index.js';
15
15
 
16
16
  function SelectToken() {
17
- const { isMobile } = useIsMobile();
18
- const isMobileFormat = isMobile || window?.innerWidth < defaultTheme.mobileWidth;
19
- const { paymentState } = usePayContext();
20
- const { tokenMode } = paymentState;
21
- const { optionsList, isLoading } = useTokenOptions(tokenMode);
22
- const { isConnected: isEvmConnected } = useAccount();
23
- const solanaWallets = useWallet();
24
- const isSolConnected = solanaWallets.connected;
25
- const isConnected = isEvmConnected || isSolConnected;
26
- const isAnotherMethodButtonVisible = optionsList.length > 0 && tokenMode !== "all";
27
- return (jsxs(PageContent, { children: [jsx(OrderHeader, { minified: true, show: tokenMode }), jsx(OptionsList, { requiredSkeletons: 4, isLoading: isLoading, options: optionsList, scrollHeight: isAnotherMethodButtonVisible && isMobileFormat ? 225 : 300, orDivider: isAnotherMethodButtonVisible, hideBottomLine: !isAnotherMethodButtonVisible }), !isLoading && isConnected && optionsList.length === 0 && (jsx(InsufficientBalance, {})), !isLoading && !isConnected && tokenMode === "all" && jsx(ConnectButton, {}), isAnotherMethodButtonVisible && jsx(SelectAnotherMethodButton, {})] }));
17
+ const { isMobile } = useIsMobile();
18
+ const isMobileFormat = isMobile || window?.innerWidth < defaultTheme.mobileWidth;
19
+ const { paymentState } = usePayContext();
20
+ const { tokenMode } = paymentState;
21
+ const { optionsList, isLoading } = useTokenOptions(tokenMode);
22
+ const { isConnected: isEvmConnected } = useAccount();
23
+ const solanaWallets = useWallet();
24
+ const isSolConnected = solanaWallets.connected;
25
+ const isConnected = isEvmConnected || isSolConnected;
26
+ const isAnotherMethodButtonVisible = optionsList.length > 0 && tokenMode !== "all";
27
+ return /* @__PURE__ */ jsxs(PageContent, { children: [
28
+ /* @__PURE__ */ jsx(OrderHeader, { minified: true, show: tokenMode }),
29
+ /* @__PURE__ */ jsx(
30
+ OptionsList,
31
+ {
32
+ requiredSkeletons: 4,
33
+ isLoading,
34
+ options: optionsList,
35
+ scrollHeight: isAnotherMethodButtonVisible && isMobileFormat ? 225 : 300,
36
+ orDivider: isAnotherMethodButtonVisible,
37
+ hideBottomLine: !isAnotherMethodButtonVisible
38
+ }
39
+ ),
40
+ !isLoading && isConnected && optionsList.length === 0 && /* @__PURE__ */ jsx(InsufficientBalance, {}),
41
+ !isLoading && !isConnected && tokenMode === "all" && /* @__PURE__ */ jsx(ConnectButton, {}),
42
+ isAnotherMethodButtonVisible && /* @__PURE__ */ jsx(SelectAnotherMethodButton, {})
43
+ ] });
28
44
  }
29
45
  function InsufficientBalance() {
30
- const locales = useLocales();
31
- return (jsxs(ModalContent, { style: {
32
- display: "flex",
33
- alignItems: "center",
34
- justifyContent: "center",
35
- paddingTop: 16,
36
- paddingBottom: 16,
37
- }, children: [jsx(ModalH1, { children: locales.insufficientBalance }), jsx(SelectAnotherMethodButton, {})] }));
46
+ const locales = useLocales();
47
+ return /* @__PURE__ */ jsxs(
48
+ ModalContent,
49
+ {
50
+ style: {
51
+ display: "flex",
52
+ alignItems: "center",
53
+ justifyContent: "center",
54
+ paddingTop: 16,
55
+ paddingBottom: 16
56
+ },
57
+ children: [
58
+ /* @__PURE__ */ jsx(ModalH1, { children: locales.insufficientBalance }),
59
+ /* @__PURE__ */ jsx(SelectAnotherMethodButton, {})
60
+ ]
61
+ }
62
+ );
38
63
  }
39
64
  function ConnectButton() {
40
- const locales = useLocales();
41
- const { connect } = useConnect();
42
- const solanaWallets = useWallet();
43
- // On Android, filter out the Android Intent deeplink fake wallet.
44
- const filteredWallets = solanaWallets.wallets.filter((w) => w.adapter.name !== "Mobile Wallet Adapter");
45
- const hasSolanaWallet = filteredWallets.length > 0;
46
- const icons = [jsx(Ethereum, {}, "ethereum")];
65
+ const locales = useLocales();
66
+ const { connect } = useConnect();
67
+ const solanaWallets = useWallet();
68
+ const filteredWallets = solanaWallets.wallets.filter(
69
+ (w) => w.adapter.name !== "Mobile Wallet Adapter"
70
+ );
71
+ const hasSolanaWallet = filteredWallets.length > 0;
72
+ const icons = [/* @__PURE__ */ jsx(Ethereum, {}, "ethereum")];
73
+ if (hasSolanaWallet) {
74
+ icons.push(/* @__PURE__ */ jsx(Solana, {}, "solana"));
75
+ }
76
+ const onClick = () => {
77
+ connect({
78
+ connector: injected()
79
+ });
47
80
  if (hasSolanaWallet) {
48
- icons.push(jsx(Solana, {}, "solana"));
81
+ if (solanaWallets.wallet == null) {
82
+ solanaWallets.select(solanaWallets.wallets[0].adapter.name);
83
+ }
84
+ solanaWallets.connect();
49
85
  }
50
- const onClick = () => {
51
- connect({
52
- connector: injected(),
53
- });
54
- if (hasSolanaWallet) {
55
- if (solanaWallets.wallet == null) {
56
- solanaWallets.select(solanaWallets.wallets[0].adapter.name);
57
- }
58
- solanaWallets.connect();
59
- }
60
- };
61
- const connectOption = {
62
- id: "connect-wallet",
63
- title: locales.connectWallet,
64
- icons,
65
- onClick,
66
- };
67
- return jsx(OptionsList, { options: [connectOption] });
86
+ };
87
+ const connectOption = {
88
+ id: "connect-wallet",
89
+ title: locales.connectWallet,
90
+ icons,
91
+ onClick
92
+ };
93
+ return /* @__PURE__ */ jsx(OptionsList, { options: [connectOption] });
68
94
  }
69
95
 
70
96
  export { SelectToken as default };