@daimo/pay 1.18.3 → 1.19.0

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 (429) hide show
  1. package/build/connectkit/package.json.js +117 -0
  2. package/build/connectkit/package.json.js.map +1 -0
  3. package/build/connectkit/src/assets/MobileWithLogos.js +329 -0
  4. package/build/connectkit/src/assets/MobileWithLogos.js.map +1 -0
  5. package/build/connectkit/src/assets/ScanIconWithLogos.js +243 -0
  6. package/build/connectkit/src/assets/ScanIconWithLogos.js.map +1 -0
  7. package/build/connectkit/src/assets/browsers.js +969 -0
  8. package/build/connectkit/src/assets/browsers.js.map +1 -0
  9. package/build/connectkit/src/assets/chains.js +648 -0
  10. package/build/connectkit/src/assets/chains.js.map +1 -0
  11. package/build/connectkit/src/assets/coins.js +43 -0
  12. package/build/connectkit/src/assets/coins.js.map +1 -0
  13. package/build/connectkit/src/assets/icons.js +273 -0
  14. package/build/connectkit/src/assets/icons.js.map +1 -0
  15. package/build/connectkit/src/assets/logos.js +1620 -0
  16. package/build/connectkit/src/assets/logos.js.map +1 -0
  17. package/build/connectkit/src/assets/wave.js +46 -0
  18. package/build/connectkit/src/assets/wave.js.map +1 -0
  19. package/build/connectkit/src/components/Common/Alert/index.js +13 -0
  20. package/build/connectkit/src/components/Common/Alert/index.js.map +1 -0
  21. package/build/connectkit/src/components/Common/Alert/styles.js +55 -0
  22. package/build/connectkit/src/components/Common/Alert/styles.js.map +1 -0
  23. package/build/connectkit/src/components/Common/AmountInput/AmountInputField.js +71 -0
  24. package/build/connectkit/src/components/Common/AmountInput/AmountInputField.js.map +1 -0
  25. package/build/connectkit/src/components/Common/AmountInput/index.js +159 -0
  26. package/build/connectkit/src/components/Common/AmountInput/index.js.map +1 -0
  27. package/build/connectkit/src/components/Common/Avatar/index.js +78 -0
  28. package/build/connectkit/src/components/Common/Avatar/index.js.map +1 -0
  29. package/build/connectkit/src/components/Common/Avatar/styles.js +54 -0
  30. package/build/connectkit/src/components/Common/Avatar/styles.js.map +1 -0
  31. package/build/connectkit/src/components/Common/BrowserIcon/index.js +29 -0
  32. package/build/connectkit/src/components/Common/BrowserIcon/index.js.map +1 -0
  33. package/build/connectkit/src/components/Common/BrowserIcon/styles.js +20 -0
  34. package/build/connectkit/src/components/Common/BrowserIcon/styles.js.map +1 -0
  35. package/build/connectkit/src/components/Common/Button/index.js +144 -0
  36. package/build/connectkit/src/components/Common/Button/index.js.map +1 -0
  37. package/build/connectkit/src/components/Common/Button/styles.js +287 -0
  38. package/build/connectkit/src/components/Common/Button/styles.js.map +1 -0
  39. package/build/connectkit/src/components/Common/Chain/index.js +141 -0
  40. package/build/connectkit/src/components/Common/Chain/index.js.map +1 -0
  41. package/build/connectkit/src/components/Common/Chain/styles.js +90 -0
  42. package/build/connectkit/src/components/Common/Chain/styles.js.map +1 -0
  43. package/build/connectkit/src/components/Common/ChainSelectList/index.js +250 -0
  44. package/build/connectkit/src/components/Common/ChainSelectList/index.js.map +1 -0
  45. package/build/connectkit/src/components/Common/ChainSelectList/styles.js +226 -0
  46. package/build/connectkit/src/components/Common/ChainSelectList/styles.js.map +1 -0
  47. package/build/connectkit/src/components/Common/CircleTimer.js +92 -0
  48. package/build/connectkit/src/components/Common/CircleTimer.js.map +1 -0
  49. package/build/connectkit/src/components/Common/ConnectorList/index.js +120 -0
  50. package/build/connectkit/src/components/Common/ConnectorList/index.js.map +1 -0
  51. package/build/connectkit/src/components/Common/ConnectorList/styles.js +344 -0
  52. package/build/connectkit/src/components/Common/ConnectorList/styles.js.map +1 -0
  53. package/build/connectkit/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +78 -0
  54. package/build/connectkit/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +1 -0
  55. package/build/connectkit/src/components/Common/CopyToClipboard/index.js +33 -0
  56. package/build/connectkit/src/components/Common/CopyToClipboard/index.js.map +1 -0
  57. package/build/connectkit/src/components/Common/CustomQRCode/QRCode.js +128 -0
  58. package/build/connectkit/src/components/Common/CustomQRCode/QRCode.js.map +1 -0
  59. package/build/connectkit/src/components/Common/CustomQRCode/index.js +71 -0
  60. package/build/connectkit/src/components/Common/CustomQRCode/index.js.map +1 -0
  61. package/build/connectkit/src/components/Common/CustomQRCode/styles.js +139 -0
  62. package/build/connectkit/src/components/Common/CustomQRCode/styles.js.map +1 -0
  63. package/build/connectkit/src/components/Common/FitText/index.js +34 -0
  64. package/build/connectkit/src/components/Common/FitText/index.js.map +1 -0
  65. package/build/connectkit/src/components/Common/Modal/index.js +523 -0
  66. package/build/connectkit/src/components/Common/Modal/index.js.map +1 -0
  67. package/build/connectkit/src/components/Common/Modal/styles.js +665 -0
  68. package/build/connectkit/src/components/Common/Modal/styles.js.map +1 -0
  69. package/build/connectkit/src/components/Common/OptionsList/index.js +145 -0
  70. package/build/connectkit/src/components/Common/OptionsList/index.js.map +1 -0
  71. package/build/connectkit/src/components/Common/OptionsList/styles.js +138 -0
  72. package/build/connectkit/src/components/Common/OptionsList/styles.js.map +1 -0
  73. package/build/connectkit/src/components/Common/OrderHeader/index.js +192 -0
  74. package/build/connectkit/src/components/Common/OrderHeader/index.js.map +1 -0
  75. package/build/connectkit/src/components/Common/PaymentBreakdown/index.js +70 -0
  76. package/build/connectkit/src/components/Common/PaymentBreakdown/index.js.map +1 -0
  77. package/build/connectkit/src/components/Common/Portal/index.js +30 -0
  78. package/build/connectkit/src/components/Common/Portal/index.js.map +1 -0
  79. package/build/connectkit/src/components/Common/PoweredByFooter/index.js +66 -0
  80. package/build/connectkit/src/components/Common/PoweredByFooter/index.js.map +1 -0
  81. package/build/connectkit/src/components/Common/ScrollArea/index.js +120 -0
  82. package/build/connectkit/src/components/Common/ScrollArea/index.js.map +1 -0
  83. package/build/connectkit/src/components/Common/ScrollArea/styles.js +169 -0
  84. package/build/connectkit/src/components/Common/ScrollArea/styles.js.map +1 -0
  85. package/build/connectkit/src/components/Common/SelectAnotherMethodButton/index.js +96 -0
  86. package/build/connectkit/src/components/Common/SelectAnotherMethodButton/index.js.map +1 -0
  87. package/build/connectkit/src/components/Common/Spinner/index.js +64 -0
  88. package/build/connectkit/src/components/Common/Spinner/index.js.map +1 -0
  89. package/build/connectkit/src/components/Common/Spinner/styles.js +22 -0
  90. package/build/connectkit/src/components/Common/Spinner/styles.js.map +1 -0
  91. package/build/connectkit/src/components/Common/SwitchButton/index.js +43 -0
  92. package/build/connectkit/src/components/Common/SwitchButton/index.js.map +1 -0
  93. package/build/connectkit/src/components/Common/ThemedButton/index.js +46 -0
  94. package/build/connectkit/src/components/Common/ThemedButton/index.js.map +1 -0
  95. package/build/connectkit/src/components/Common/ThemedButton/styles.js +152 -0
  96. package/build/connectkit/src/components/Common/ThemedButton/styles.js.map +1 -0
  97. package/build/connectkit/src/components/Common/TokenChainLogo/index.js +62 -0
  98. package/build/connectkit/src/components/Common/TokenChainLogo/index.js.map +1 -0
  99. package/build/connectkit/src/components/Common/Tooltip/index.js +129 -0
  100. package/build/connectkit/src/components/Common/Tooltip/index.js.map +1 -0
  101. package/build/connectkit/src/components/Common/Tooltip/styles.js +81 -0
  102. package/build/connectkit/src/components/Common/Tooltip/styles.js.map +1 -0
  103. package/build/connectkit/src/components/Common/WalletChainLogo/index.js +31 -0
  104. package/build/connectkit/src/components/Common/WalletChainLogo/index.js.map +1 -0
  105. package/build/connectkit/src/components/DaimoPayButton/index.js +197 -0
  106. package/build/connectkit/src/components/DaimoPayButton/index.js.map +1 -0
  107. package/build/connectkit/src/components/DaimoPayButton/styles.js +50 -0
  108. package/build/connectkit/src/components/DaimoPayButton/styles.js.map +1 -0
  109. package/build/connectkit/src/components/DaimoPayModal/ConnectUsing.js +68 -0
  110. package/build/connectkit/src/components/DaimoPayModal/ConnectUsing.js.map +1 -0
  111. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/index.js +335 -0
  112. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +1 -0
  113. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/styles.js +131 -0
  114. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +1 -0
  115. package/build/connectkit/src/components/DaimoPayModal/ConnectWithQRCode.js +99 -0
  116. package/build/connectkit/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -0
  117. package/build/connectkit/src/components/DaimoPayModal/index.js +462 -0
  118. package/build/connectkit/src/components/DaimoPayModal/index.js.map +1 -0
  119. package/build/connectkit/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +25 -0
  120. package/build/connectkit/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +1 -0
  121. package/build/connectkit/src/components/Pages/About/graphics.js +853 -0
  122. package/build/connectkit/src/components/Pages/About/graphics.js.map +1 -0
  123. package/build/connectkit/src/components/Pages/About/index.js +222 -0
  124. package/build/connectkit/src/components/Pages/About/index.js.map +1 -0
  125. package/build/connectkit/src/components/Pages/About/styles.js +140 -0
  126. package/build/connectkit/src/components/Pages/About/styles.js.map +1 -0
  127. package/build/connectkit/src/components/Pages/Confirmation/index.js +128 -0
  128. package/build/connectkit/src/components/Pages/Confirmation/index.js.map +1 -0
  129. package/build/connectkit/src/components/Pages/Connectors/index.js +28 -0
  130. package/build/connectkit/src/components/Pages/Connectors/index.js.map +1 -0
  131. package/build/connectkit/src/components/Pages/DownloadApp/index.js +35 -0
  132. package/build/connectkit/src/components/Pages/DownloadApp/index.js.map +1 -0
  133. package/build/connectkit/src/components/Pages/Error/index.js +57 -0
  134. package/build/connectkit/src/components/Pages/Error/index.js.map +1 -0
  135. package/build/connectkit/src/components/Pages/MobileConnectors/index.js +65 -0
  136. package/build/connectkit/src/components/Pages/MobileConnectors/index.js.map +1 -0
  137. package/build/connectkit/src/components/Pages/MobileConnectors/styles.js +64 -0
  138. package/build/connectkit/src/components/Pages/MobileConnectors/styles.js.map +1 -0
  139. package/build/connectkit/src/components/Pages/Onboarding/index.js +34 -0
  140. package/build/connectkit/src/components/Pages/Onboarding/index.js.map +1 -0
  141. package/build/connectkit/src/components/Pages/Onboarding/styles.js +229 -0
  142. package/build/connectkit/src/components/Pages/Onboarding/styles.js.map +1 -0
  143. package/build/connectkit/src/components/Pages/PayWithToken/index.js +157 -0
  144. package/build/connectkit/src/components/Pages/PayWithToken/index.js.map +1 -0
  145. package/build/connectkit/src/components/Pages/SelectAmount/index.js +24 -0
  146. package/build/connectkit/src/components/Pages/SelectAmount/index.js.map +1 -0
  147. package/build/connectkit/src/components/Pages/SelectDepositAddressAmount/index.js +79 -0
  148. package/build/connectkit/src/components/Pages/SelectDepositAddressAmount/index.js.map +1 -0
  149. package/build/connectkit/src/components/Pages/SelectDepositAddressChain/index.js +72 -0
  150. package/build/connectkit/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -0
  151. package/build/connectkit/src/components/Pages/SelectExchange/index.js +41 -0
  152. package/build/connectkit/src/components/Pages/SelectExchange/index.js.map +1 -0
  153. package/build/connectkit/src/components/Pages/SelectExternalAmount/index.js +80 -0
  154. package/build/connectkit/src/components/Pages/SelectExternalAmount/index.js.map +1 -0
  155. package/build/connectkit/src/components/Pages/SelectMethod/index.js +230 -0
  156. package/build/connectkit/src/components/Pages/SelectMethod/index.js.map +1 -0
  157. package/build/connectkit/src/components/Pages/SelectToken/index.js +97 -0
  158. package/build/connectkit/src/components/Pages/SelectToken/index.js.map +1 -0
  159. package/build/connectkit/src/components/Pages/SelectWalletAmount/index.js +66 -0
  160. package/build/connectkit/src/components/Pages/SelectWalletAmount/index.js.map +1 -0
  161. package/build/connectkit/src/components/Pages/SelectWalletChain/index.js +55 -0
  162. package/build/connectkit/src/components/Pages/SelectWalletChain/index.js.map +1 -0
  163. package/build/connectkit/src/components/Pages/SelectZKP/index.js +41 -0
  164. package/build/connectkit/src/components/Pages/SelectZKP/index.js.map +1 -0
  165. package/build/connectkit/src/components/Pages/Solana/ConnectorSolana/index.js +94 -0
  166. package/build/connectkit/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -0
  167. package/build/connectkit/src/components/Pages/Solana/PayWithSolanaToken/index.js +92 -0
  168. package/build/connectkit/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -0
  169. package/build/connectkit/src/components/Pages/Solana/SelectSolanaAmount/index.js +24 -0
  170. package/build/connectkit/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +1 -0
  171. package/build/connectkit/src/components/Pages/SwitchNetworks/index.js +45 -0
  172. package/build/connectkit/src/components/Pages/SwitchNetworks/index.js.map +1 -0
  173. package/build/connectkit/src/components/Pages/WaitingDepositAddress/index.js +503 -0
  174. package/build/connectkit/src/components/Pages/WaitingDepositAddress/index.js.map +1 -0
  175. package/build/connectkit/src/components/Pages/WaitingExternal/index.js +89 -0
  176. package/build/connectkit/src/components/Pages/WaitingExternal/index.js.map +1 -0
  177. package/build/connectkit/src/components/Pages/WaitingWallet/index.js +49 -0
  178. package/build/connectkit/src/components/Pages/WaitingWallet/index.js.map +1 -0
  179. package/build/connectkit/src/components/Spinners/CircleSpinner/index.js +104 -0
  180. package/build/connectkit/src/components/Spinners/CircleSpinner/index.js.map +1 -0
  181. package/build/connectkit/src/components/Spinners/CircleSpinner/styles.js +117 -0
  182. package/build/connectkit/src/components/Spinners/CircleSpinner/styles.js.map +1 -0
  183. package/build/connectkit/src/components/Spinners/ExternalPaymentSpinner/index.js +29 -0
  184. package/build/connectkit/src/components/Spinners/ExternalPaymentSpinner/index.js.map +1 -0
  185. package/build/connectkit/src/components/Spinners/SquircleSpinner/index.js +68 -0
  186. package/build/connectkit/src/components/Spinners/SquircleSpinner/index.js.map +1 -0
  187. package/build/connectkit/src/components/Spinners/SquircleSpinner/styles.js +66 -0
  188. package/build/connectkit/src/components/Spinners/SquircleSpinner/styles.js.map +1 -0
  189. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/index.js +24 -0
  190. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/index.js.map +1 -0
  191. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/styles.js +40 -0
  192. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/styles.js.map +1 -0
  193. package/build/connectkit/src/components/Spinners/WalletPaymentSpinner/index.js +37 -0
  194. package/build/connectkit/src/components/Spinners/WalletPaymentSpinner/index.js.map +1 -0
  195. package/build/connectkit/src/components/Spinners/styles.js +32 -0
  196. package/build/connectkit/src/components/Spinners/styles.js.map +1 -0
  197. package/build/connectkit/src/constants/defaultTheme.js +6 -0
  198. package/build/connectkit/src/constants/defaultTheme.js.map +1 -0
  199. package/build/connectkit/src/constants/routes.js +32 -0
  200. package/build/connectkit/src/constants/routes.js.map +1 -0
  201. package/build/connectkit/src/defaultConfig.js +63 -0
  202. package/build/connectkit/src/defaultConfig.js.map +1 -0
  203. package/build/connectkit/src/defaultConnectors.js +37 -0
  204. package/build/connectkit/src/defaultConnectors.js.map +1 -0
  205. package/build/connectkit/src/hooks/useChainIsSupported.js +10 -0
  206. package/build/connectkit/src/hooks/useChainIsSupported.js.map +1 -0
  207. package/build/connectkit/src/hooks/useChains.js +10 -0
  208. package/build/connectkit/src/hooks/useChains.js.map +1 -0
  209. package/build/connectkit/src/hooks/useConnect.js +61 -0
  210. package/build/connectkit/src/hooks/useConnect.js.map +1 -0
  211. package/build/connectkit/src/hooks/useConnectCallback.js +21 -0
  212. package/build/connectkit/src/hooks/useConnectCallback.js.map +1 -0
  213. package/build/connectkit/src/hooks/useConnectors.js +9 -0
  214. package/build/connectkit/src/hooks/useConnectors.js.map +1 -0
  215. package/build/connectkit/src/hooks/useDaimoPay.js +107 -0
  216. package/build/connectkit/src/hooks/useDaimoPay.js.map +1 -0
  217. package/build/connectkit/src/hooks/useDaimoPayStatus.js +12 -0
  218. package/build/connectkit/src/hooks/useDaimoPayStatus.js.map +1 -0
  219. package/build/connectkit/src/hooks/useDaimoPayUI.js +15 -0
  220. package/build/connectkit/src/hooks/useDaimoPayUI.js.map +1 -0
  221. package/build/connectkit/src/hooks/useDepositAddressOptions.js +35 -0
  222. package/build/connectkit/src/hooks/useDepositAddressOptions.js.map +1 -0
  223. package/build/connectkit/src/hooks/useEnsFallbackConfig.js +16 -0
  224. package/build/connectkit/src/hooks/useEnsFallbackConfig.js.map +1 -0
  225. package/build/connectkit/src/hooks/useExternalPaymentOptions.js +64 -0
  226. package/build/connectkit/src/hooks/useExternalPaymentOptions.js.map +1 -0
  227. package/build/connectkit/src/hooks/useFitText.js +133 -0
  228. package/build/connectkit/src/hooks/useFitText.js.map +1 -0
  229. package/build/connectkit/src/hooks/useFocusTrap.js +53 -0
  230. package/build/connectkit/src/hooks/useFocusTrap.js.map +1 -0
  231. package/build/connectkit/src/hooks/useIsMobile.js +11 -0
  232. package/build/connectkit/src/hooks/useIsMobile.js.map +1 -0
  233. package/build/connectkit/src/hooks/useIsMounted.js +10 -0
  234. package/build/connectkit/src/hooks/useIsMounted.js.map +1 -0
  235. package/build/connectkit/src/hooks/useLastConnector.js +24 -0
  236. package/build/connectkit/src/hooks/useLastConnector.js.map +1 -0
  237. package/build/connectkit/src/hooks/useLocales.js +60 -0
  238. package/build/connectkit/src/hooks/useLocales.js.map +1 -0
  239. package/build/connectkit/src/hooks/useLockBodyScroll.js +47 -0
  240. package/build/connectkit/src/hooks/useLockBodyScroll.js.map +1 -0
  241. package/build/connectkit/src/hooks/useOrderUsdLimits.js +24 -0
  242. package/build/connectkit/src/hooks/useOrderUsdLimits.js.map +1 -0
  243. package/build/connectkit/src/hooks/usePayContext.js +11 -0
  244. package/build/connectkit/src/hooks/usePayContext.js.map +1 -0
  245. package/build/connectkit/src/hooks/usePaymentState.js +376 -0
  246. package/build/connectkit/src/hooks/usePaymentState.js.map +1 -0
  247. package/build/connectkit/src/hooks/usePrevious.js +13 -0
  248. package/build/connectkit/src/hooks/usePrevious.js.map +1 -0
  249. package/build/connectkit/src/hooks/useSolanaPaymentOptions.js +40 -0
  250. package/build/connectkit/src/hooks/useSolanaPaymentOptions.js.map +1 -0
  251. package/build/connectkit/src/hooks/useTokenOptions.js +152 -0
  252. package/build/connectkit/src/hooks/useTokenOptions.js.map +1 -0
  253. package/build/connectkit/src/hooks/useUntronAvailability.js +32 -0
  254. package/build/connectkit/src/hooks/useUntronAvailability.js.map +1 -0
  255. package/build/connectkit/src/hooks/useWalletPaymentOptions.js +97 -0
  256. package/build/connectkit/src/hooks/useWalletPaymentOptions.js.map +1 -0
  257. package/build/connectkit/src/hooks/useWindowSize.js +23 -0
  258. package/build/connectkit/src/hooks/useWindowSize.js.map +1 -0
  259. package/build/connectkit/src/index.js +14 -0
  260. package/build/connectkit/src/index.js.map +1 -0
  261. package/build/connectkit/src/localizations/index.js +48 -0
  262. package/build/connectkit/src/localizations/index.js.map +1 -0
  263. package/build/connectkit/src/localizations/locales/ar-AE.js +95 -0
  264. package/build/connectkit/src/localizations/locales/ar-AE.js.map +1 -0
  265. package/build/connectkit/src/localizations/locales/ca-AD.js +93 -0
  266. package/build/connectkit/src/localizations/locales/ca-AD.js.map +1 -0
  267. package/build/connectkit/src/localizations/locales/ee-EE.js +101 -0
  268. package/build/connectkit/src/localizations/locales/ee-EE.js.map +1 -0
  269. package/build/connectkit/src/localizations/locales/en-US.js +139 -0
  270. package/build/connectkit/src/localizations/locales/en-US.js.map +1 -0
  271. package/build/connectkit/src/localizations/locales/es-ES.js +131 -0
  272. package/build/connectkit/src/localizations/locales/es-ES.js.map +1 -0
  273. package/build/connectkit/src/localizations/locales/fa-IR.js +93 -0
  274. package/build/connectkit/src/localizations/locales/fa-IR.js.map +1 -0
  275. package/build/connectkit/src/localizations/locales/fr-FR.js +93 -0
  276. package/build/connectkit/src/localizations/locales/fr-FR.js.map +1 -0
  277. package/build/connectkit/src/localizations/locales/ja-JP.js +93 -0
  278. package/build/connectkit/src/localizations/locales/ja-JP.js.map +1 -0
  279. package/build/connectkit/src/localizations/locales/pt-BR.js +101 -0
  280. package/build/connectkit/src/localizations/locales/pt-BR.js.map +1 -0
  281. package/build/connectkit/src/localizations/locales/ru-RU.js +97 -0
  282. package/build/connectkit/src/localizations/locales/ru-RU.js.map +1 -0
  283. package/build/connectkit/src/localizations/locales/tr-TR.js +101 -0
  284. package/build/connectkit/src/localizations/locales/tr-TR.js.map +1 -0
  285. package/build/connectkit/src/localizations/locales/vi-VN.js +101 -0
  286. package/build/connectkit/src/localizations/locales/vi-VN.js.map +1 -0
  287. package/build/connectkit/src/localizations/locales/zh-CN.js +93 -0
  288. package/build/connectkit/src/localizations/locales/zh-CN.js.map +1 -0
  289. package/build/connectkit/src/payment/paymentEffects.js +269 -0
  290. package/build/connectkit/src/payment/paymentEffects.js.map +1 -0
  291. package/build/connectkit/src/payment/paymentFsm.js +194 -0
  292. package/build/connectkit/src/payment/paymentFsm.js.map +1 -0
  293. package/build/connectkit/src/payment/paymentStore.js +18 -0
  294. package/build/connectkit/src/payment/paymentStore.js.map +1 -0
  295. package/build/connectkit/src/payment/paymentUtils.js +10 -0
  296. package/build/connectkit/src/payment/paymentUtils.js.map +1 -0
  297. package/build/connectkit/src/provider/DaimoPayProvider.js +293 -0
  298. package/build/connectkit/src/provider/DaimoPayProvider.js.map +1 -0
  299. package/build/connectkit/src/provider/PayContext.js +6 -0
  300. package/build/connectkit/src/provider/PayContext.js.map +1 -0
  301. package/build/connectkit/src/provider/PaymentProvider.js +29 -0
  302. package/build/connectkit/src/provider/PaymentProvider.js.map +1 -0
  303. package/build/connectkit/src/provider/SolanaContextProvider.js +14 -0
  304. package/build/connectkit/src/provider/SolanaContextProvider.js.map +1 -0
  305. package/build/connectkit/src/provider/Web3ContextProvider.js +36 -0
  306. package/build/connectkit/src/provider/Web3ContextProvider.js.map +1 -0
  307. package/build/connectkit/src/stateStore.js +36 -0
  308. package/build/connectkit/src/stateStore.js.map +1 -0
  309. package/build/connectkit/src/styles/defaultTheme.js +80 -0
  310. package/build/connectkit/src/styles/defaultTheme.js.map +1 -0
  311. package/build/connectkit/src/styles/index.js +313 -0
  312. package/build/connectkit/src/styles/index.js.map +1 -0
  313. package/build/connectkit/src/styles/styled/index.js +6 -0
  314. package/build/connectkit/src/styles/styled/index.js.map +1 -0
  315. package/build/connectkit/src/styles/themes/base.js +141 -0
  316. package/build/connectkit/src/styles/themes/base.js.map +1 -0
  317. package/build/connectkit/src/styles/themes/index.js +13 -0
  318. package/build/connectkit/src/styles/themes/index.js.map +1 -0
  319. package/build/connectkit/src/styles/themes/midnight.js +76 -0
  320. package/build/connectkit/src/styles/themes/midnight.js.map +1 -0
  321. package/build/connectkit/src/styles/themes/minimal.js +96 -0
  322. package/build/connectkit/src/styles/themes/minimal.js.map +1 -0
  323. package/build/connectkit/src/styles/themes/nouns.js +81 -0
  324. package/build/connectkit/src/styles/themes/nouns.js.map +1 -0
  325. package/build/connectkit/src/styles/themes/retro.js +106 -0
  326. package/build/connectkit/src/styles/themes/retro.js.map +1 -0
  327. package/build/connectkit/src/styles/themes/rounded.js +106 -0
  328. package/build/connectkit/src/styles/themes/rounded.js.map +1 -0
  329. package/build/connectkit/src/styles/themes/soft.js +71 -0
  330. package/build/connectkit/src/styles/themes/soft.js.map +1 -0
  331. package/build/connectkit/src/styles/themes/web95.js +132 -0
  332. package/build/connectkit/src/styles/themes/web95.js.map +1 -0
  333. package/build/connectkit/src/utils/exports.js +6 -0
  334. package/build/connectkit/src/utils/exports.js.map +1 -0
  335. package/build/connectkit/src/utils/format.js +45 -0
  336. package/build/connectkit/src/utils/format.js.map +1 -0
  337. package/build/connectkit/src/utils/index.js +42 -0
  338. package/build/connectkit/src/utils/index.js.map +1 -0
  339. package/build/connectkit/src/utils/p3.js +15 -0
  340. package/build/connectkit/src/utils/p3.js.map +1 -0
  341. package/build/connectkit/src/utils/platform.js +11 -0
  342. package/build/connectkit/src/utils/platform.js.map +1 -0
  343. package/build/connectkit/src/utils/polling.js +35 -0
  344. package/build/connectkit/src/utils/polling.js.map +1 -0
  345. package/build/connectkit/src/utils/supportUrl.js +16 -0
  346. package/build/connectkit/src/utils/supportUrl.js.map +1 -0
  347. package/build/connectkit/src/utils/trpc.js +19 -0
  348. package/build/connectkit/src/utils/trpc.js.map +1 -0
  349. package/build/connectkit/src/utils/validateInput.js +16 -0
  350. package/build/connectkit/src/utils/validateInput.js.map +1 -0
  351. package/build/connectkit/src/wallets/index.js +21 -0
  352. package/build/connectkit/src/wallets/index.js.map +1 -0
  353. package/build/connectkit/src/wallets/useWallets.js +207 -0
  354. package/build/connectkit/src/wallets/useWallets.js.map +1 -0
  355. package/build/connectkit/src/wallets/walletConfigs.js +277 -0
  356. package/build/connectkit/src/wallets/walletConfigs.js.map +1 -0
  357. package/build/connectkit/src/world-mini-app/WorldPayButton.js +148 -0
  358. package/build/connectkit/src/world-mini-app/WorldPayButton.js.map +1 -0
  359. package/build/connectkit/src/world-mini-app/promptWorldPayment.js +59 -0
  360. package/build/connectkit/src/world-mini-app/promptWorldPayment.js.map +1 -0
  361. package/build/connectkit/src/world.js +2 -0
  362. package/build/connectkit/src/world.js.map +1 -0
  363. package/build/index.d.ts +23 -28
  364. package/build/package.json.js +2 -2
  365. package/build/pay-common/src/chain.js +9 -0
  366. package/build/pay-common/src/chain.js.map +1 -0
  367. package/build/src/assets/chains.js +18 -52
  368. package/build/src/assets/chains.js.map +1 -1
  369. package/build/src/assets/coins.js +43 -0
  370. package/build/src/assets/coins.js.map +1 -0
  371. package/build/src/assets/logos.js +76 -2
  372. package/build/src/assets/logos.js.map +1 -1
  373. package/build/src/components/Common/ConnectorList/index.js +21 -20
  374. package/build/src/components/Common/ConnectorList/index.js.map +1 -1
  375. package/build/src/components/Common/CopyToClipboard/index.js +33 -0
  376. package/build/src/components/Common/CopyToClipboard/index.js.map +1 -0
  377. package/build/src/components/Common/Modal/index.js +31 -8
  378. package/build/src/components/Common/Modal/index.js.map +1 -1
  379. package/build/src/components/Common/SelectAnotherMethodButton/index.js +4 -4
  380. package/build/src/components/Common/SelectAnotherMethodButton/index.js.map +1 -1
  381. package/build/src/components/DaimoPayButton/index.js +1 -2
  382. package/build/src/components/DaimoPayButton/index.js.map +1 -1
  383. package/build/src/components/DaimoPayModal/ConnectUsing.js +8 -6
  384. package/build/src/components/DaimoPayModal/ConnectUsing.js.map +1 -1
  385. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js +13 -9
  386. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +1 -1
  387. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +17 -23
  388. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -1
  389. package/build/src/components/DaimoPayModal/index.js +120 -41
  390. package/build/src/components/DaimoPayModal/index.js.map +1 -1
  391. package/build/src/components/Pages/Connectors/index.js +0 -2
  392. package/build/src/components/Pages/Connectors/index.js.map +1 -1
  393. package/build/src/components/Pages/MobileConnectors/index.js +62 -17
  394. package/build/src/components/Pages/MobileConnectors/index.js.map +1 -1
  395. package/build/src/components/Pages/SelectDepositAddressChain/index.js +9 -2
  396. package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -1
  397. package/build/src/components/Pages/SelectExchange/index.js +3 -2
  398. package/build/src/components/Pages/SelectExchange/index.js.map +1 -1
  399. package/build/src/components/Pages/SelectMethod/index.js +106 -25
  400. package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
  401. package/build/src/components/Pages/SelectWalletAmount/index.js +11 -6
  402. package/build/src/components/Pages/SelectWalletAmount/index.js.map +1 -1
  403. package/build/src/components/Pages/WaitingExternal/index.js +88 -3
  404. package/build/src/components/Pages/WaitingExternal/index.js.map +1 -1
  405. package/build/src/constants/limits.js +4 -0
  406. package/build/src/constants/limits.js.map +1 -0
  407. package/build/src/constants/paymentOptions.js +61 -0
  408. package/build/src/constants/paymentOptions.js.map +1 -0
  409. package/build/src/constants/routes.js +0 -1
  410. package/build/src/constants/routes.js.map +1 -1
  411. package/build/src/constants/wallets.js +7 -0
  412. package/build/src/constants/wallets.js.map +1 -0
  413. package/build/src/hooks/useExternalPaymentOptions.js +19 -4
  414. package/build/src/hooks/useExternalPaymentOptions.js.map +1 -1
  415. package/build/src/hooks/usePaymentState.js +41 -6
  416. package/build/src/hooks/usePaymentState.js.map +1 -1
  417. package/build/src/localizations/locales/en-US.js +4 -1
  418. package/build/src/localizations/locales/en-US.js.map +1 -1
  419. package/build/src/localizations/locales/es-ES.js +4 -1
  420. package/build/src/localizations/locales/es-ES.js.map +1 -1
  421. package/build/src/localizations/locales/pt-BR.js +4 -1
  422. package/build/src/localizations/locales/pt-BR.js.map +1 -1
  423. package/build/src/payment/paymentFsm.js.map +1 -1
  424. package/build/src/wallets/useWallets.js +81 -8
  425. package/build/src/wallets/useWallets.js.map +1 -1
  426. package/build/src/wallets/walletConfigs.js +65 -76
  427. package/build/src/wallets/walletConfigs.js.map +1 -1
  428. package/build/types-20835014.d.ts +68 -0
  429. package/package.json +2 -2
@@ -1,7 +1,9 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { ROUTES } from '../../../constants/routes.js';
3
- import { useConnect } from '../../../hooks/useConnect.js';
3
+ import { useConnectors } from '../../../hooks/useConnectors.js';
4
+ import useIsMobile from '../../../hooks/useIsMobile.js';
4
5
  import { usePayContext } from '../../../hooks/usePayContext.js';
6
+ import { isInjectedConnector } from '../../../utils/index.js';
5
7
  import { walletConfigs } from '../../../wallets/walletConfigs.js';
6
8
  import { PageContent, ModalContent } from '../../Common/Modal/styles.js';
7
9
  import { ScrollArea } from '../../Common/ScrollArea/index.js';
@@ -9,14 +11,63 @@ import { Container, WalletList, WalletItem, WalletIcon, WalletLabel } from './st
9
11
 
10
12
  const MobileConnectors = () => {
11
13
  const context = usePayContext();
12
- const { paymentState, setRoute } = context;
13
- useConnect();
14
- const walletsIdsToDisplay = Object.keys(walletConfigs).filter((walletId) => {
14
+ const { paymentState, setRoute, disableMobileInjector } = context;
15
+ const { isAndroid, isIOS } = useIsMobile();
16
+ const connectors = useConnectors();
17
+ const { parsedConfig } = paymentState.externalPaymentOptions;
18
+ const { walletOrder } = parsedConfig;
19
+ const availableWalletIds = Object.keys(walletConfigs).filter((walletId) => {
15
20
  const wallet = walletConfigs[walletId];
16
- if (!wallet.showInMobileConnectors) return false;
21
+ if (walletOrder.length === 0 && !wallet.showInMobileConnectors)
22
+ return false;
23
+ if (isAndroid && wallet.showOnAndroid === false) return false;
24
+ if (isIOS && wallet.showOnIOS === false) return false;
17
25
  return true;
18
26
  }) ?? [];
19
- const goToWallet = (wallet) => {
27
+ let walletsIdsToDisplay = availableWalletIds;
28
+ if (walletOrder.length > 0) {
29
+ const hasInjected = !disableMobileInjector && connectors.some((c) => {
30
+ if (!isInjectedConnector(c.type)) return false;
31
+ if (c.name?.toLowerCase().includes("walletconnect")) return false;
32
+ return walletOrder.some(
33
+ (filterName) => c.name?.toLowerCase().includes(filterName.toLowerCase()) || c.id.toLowerCase().includes(filterName.toLowerCase())
34
+ );
35
+ });
36
+ const totalWallets = walletOrder.length;
37
+ const injectedCount = hasInjected ? 1 : 0;
38
+ const maxNonInjectedInMain = totalWallets > 3 ? 2 : Math.min(3 - injectedCount, totalWallets);
39
+ const shownInMain = walletOrder.slice(0, maxNonInjectedInMain);
40
+ const filtered = availableWalletIds.filter((walletId) => {
41
+ const wallet = walletConfigs[walletId];
42
+ return walletOrder.some((optionId) => {
43
+ const optionLower = optionId.toLowerCase();
44
+ const name = wallet.name?.toLowerCase() || wallet.shortName?.toLowerCase() || "";
45
+ return name === optionLower || name.includes(optionLower) || walletId.toLowerCase() === optionLower || walletId.toLowerCase().includes(optionLower);
46
+ });
47
+ });
48
+ const excludedWallets = shownInMain.map((name) => name.toLowerCase());
49
+ const remaining = filtered.filter((walletId) => {
50
+ const wallet = walletConfigs[walletId];
51
+ const walletName = wallet.name?.toLowerCase() || wallet.shortName?.toLowerCase() || "";
52
+ return !excludedWallets.some(
53
+ (excluded) => walletName.includes(excluded) || excluded.includes(walletName)
54
+ );
55
+ });
56
+ const ordered = [];
57
+ for (const optionId of walletOrder) {
58
+ const walletId = remaining.find((id) => {
59
+ const wallet = walletConfigs[id];
60
+ const optionLower = optionId.toLowerCase();
61
+ const name = wallet.name?.toLowerCase() || wallet.shortName?.toLowerCase() || "";
62
+ return name === optionLower || name.includes(optionLower) || id.toLowerCase() === optionLower || id.toLowerCase().includes(optionLower);
63
+ });
64
+ if (walletId && !ordered.includes(walletId)) {
65
+ ordered.push(walletId);
66
+ }
67
+ }
68
+ walletsIdsToDisplay = ordered;
69
+ }
70
+ const goToWallet = async (wallet) => {
20
71
  if (wallet.getDaimoPayDeeplink == null) {
21
72
  console.error(`wallet ${wallet.name} has no deeplink`);
22
73
  return;
@@ -24,20 +75,14 @@ const MobileConnectors = () => {
24
75
  if (paymentState.isDepositFlow) {
25
76
  context.paymentState.setSelectedWallet(wallet);
26
77
  setRoute(ROUTES.SELECT_WALLET_AMOUNT);
78
+ } else if (!isIOS && !isAndroid && wallet.id) {
79
+ context.setPendingConnectorId(wallet.id);
80
+ setRoute(ROUTES.CONNECT);
27
81
  } else {
28
- paymentState.openInWalletBrowser(wallet);
82
+ await paymentState.openInWalletBrowser(wallet);
29
83
  }
30
84
  };
31
- return /* @__PURE__ */ jsx(PageContent, { style: { width: 312 }, children: /* @__PURE__ */ jsx(Container, { children: /* @__PURE__ */ jsx(ModalContent, { style: { paddingBottom: 0 }, children: /* @__PURE__ */ jsx(ScrollArea, { height: 340, children: /* @__PURE__ */ jsx(WalletList, { children: walletsIdsToDisplay.sort(
32
- // sort by name
33
- (a, b) => {
34
- const walletA = walletConfigs[a];
35
- const walletB = walletConfigs[b];
36
- const nameA = walletA.name ?? walletA.shortName ?? a;
37
- const nameB = walletB.name ?? walletB.shortName ?? b;
38
- return nameA.localeCompare(nameB);
39
- }
40
- ).filter(
85
+ return /* @__PURE__ */ jsx(PageContent, { style: { width: 312 }, children: /* @__PURE__ */ jsx(Container, { children: /* @__PURE__ */ jsx(ModalContent, { style: { paddingBottom: 0 }, children: /* @__PURE__ */ jsx(ScrollArea, { height: 340, children: /* @__PURE__ */ jsx(WalletList, { children: walletsIdsToDisplay.filter(
41
86
  (walletId) => !(walletId === "coinbaseWallet" || walletId === "com.coinbase.wallet")
42
87
  ).map((walletId, i) => {
43
88
  const wallet = walletConfigs[walletId];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/Pages/MobileConnectors/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { ROUTES } from \"../../../constants/routes\";\nimport { useConnect } from \"../../../hooks/useConnect\";\nimport { usePayContext } from \"../../../hooks/usePayContext\";\nimport {\n WalletConfigProps,\n walletConfigs,\n} from \"../../../wallets/walletConfigs\";\nimport { ModalContent, PageContent } from \"../../Common/Modal/styles\";\nimport { ScrollArea } from \"../../Common/ScrollArea\";\nimport {\n Container,\n WalletIcon,\n WalletItem,\n WalletLabel,\n WalletList,\n} from \"./styles\";\n\nconst MobileConnectors: React.FC = () => {\n const context = usePayContext();\n const { paymentState, setRoute } = context;\n const { connect, connectors } = useConnect();\n\n // filter out installed wallets\n const walletsIdsToDisplay =\n Object.keys(walletConfigs).filter((walletId) => {\n const wallet = walletConfigs[walletId];\n if (!wallet.showInMobileConnectors) return false;\n return true;\n }) ?? [];\n\n const goToWallet = (wallet: WalletConfigProps) => {\n if (wallet.getDaimoPayDeeplink == null) {\n console.error(`wallet ${wallet.name} has no deeplink`);\n return;\n }\n if (paymentState.isDepositFlow) {\n context.paymentState.setSelectedWallet(wallet);\n setRoute(ROUTES.SELECT_WALLET_AMOUNT);\n } else {\n paymentState.openInWalletBrowser(wallet);\n }\n };\n\n return (\n <PageContent style={{ width: 312 }}>\n <Container>\n <ModalContent style={{ paddingBottom: 0 }}>\n <ScrollArea height={340}>\n <WalletList>\n {walletsIdsToDisplay\n .sort(\n // sort by name\n (a, b) => {\n const walletA = walletConfigs[a];\n const walletB = walletConfigs[b];\n const nameA = walletA.name ?? walletA.shortName ?? a;\n const nameB = walletB.name ?? walletB.shortName ?? b;\n return nameA.localeCompare(nameB);\n },\n )\n .filter(\n (walletId) =>\n !(\n walletId === \"coinbaseWallet\" ||\n walletId === \"com.coinbase.wallet\"\n ),\n )\n .map((walletId, i) => {\n const wallet = walletConfigs[walletId];\n const { name, shortName, iconConnector, icon } = wallet;\n return (\n <WalletItem\n key={i}\n onClick={() => goToWallet(wallet)}\n style={{\n animationDelay: `${i * 50}ms`,\n }}\n >\n <WalletIcon>{iconConnector ?? icon}</WalletIcon>\n <WalletLabel>{shortName ?? name}</WalletLabel>\n </WalletItem>\n );\n })}\n </WalletList>\n </ScrollArea>\n </ModalContent>\n </Container>\n </PageContent>\n );\n};\n\nexport default MobileConnectors;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/Pages/MobileConnectors/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { ROUTES } from \"../../../constants/routes\";\nimport { useConnectors } from \"../../../hooks/useConnectors\";\nimport useIsMobile from \"../../../hooks/useIsMobile\";\nimport { usePayContext } from \"../../../hooks/usePayContext\";\nimport { isInjectedConnector } from \"../../../utils\";\nimport {\n WalletConfigProps,\n walletConfigs,\n} from \"../../../wallets/walletConfigs\";\nimport { ModalContent, PageContent } from \"../../Common/Modal/styles\";\nimport { ScrollArea } from \"../../Common/ScrollArea\";\nimport {\n Container,\n WalletIcon,\n WalletItem,\n WalletLabel,\n WalletList,\n} from \"./styles\";\n\nconst MobileConnectors: React.FC = () => {\n const context = usePayContext();\n const { paymentState, setRoute, disableMobileInjector } = context;\n const { isAndroid, isIOS } = useIsMobile();\n const connectors = useConnectors();\n\n // Apply ordering from parsedConfig if available\n const { parsedConfig } = paymentState.externalPaymentOptions;\n const { walletOrder } = parsedConfig;\n\n // Filter available wallets\n const availableWalletIds =\n Object.keys(walletConfigs).filter((walletId) => {\n const wallet = walletConfigs[walletId];\n // If walletOrder is provided, ignore showInMobileConnectors flag\n if (walletOrder.length === 0 && !wallet.showInMobileConnectors)\n return false;\n // Filter by platform\n if (isAndroid && wallet.showOnAndroid === false) return false;\n if (isIOS && wallet.showOnIOS === false) return false;\n return true;\n }) ?? [];\n\n let walletsIdsToDisplay = availableWalletIds;\n if (walletOrder.length > 0) {\n // Check for injected wallets that match the filter\n const hasInjected =\n !disableMobileInjector &&\n connectors.some((c) => {\n if (!isInjectedConnector(c.type)) return false;\n if (c.name?.toLowerCase().includes(\"walletconnect\")) return false;\n // Check if this injected wallet matches the filter\n return walletOrder.some(\n (filterName) =>\n c.name?.toLowerCase().includes(filterName.toLowerCase()) ||\n c.id.toLowerCase().includes(filterName.toLowerCase()),\n );\n });\n\n // Calculate which wallets to exclude (shown in main selector)\n const totalWallets = walletOrder.length;\n const injectedCount = hasInjected ? 1 : 0;\n const maxNonInjectedInMain =\n totalWallets > 3 ? 2 : Math.min(3 - injectedCount, totalWallets);\n const shownInMain = walletOrder.slice(0, maxNonInjectedInMain);\n\n // Filter to only show wallets from the order\n const filtered = availableWalletIds.filter((walletId) => {\n const wallet = walletConfigs[walletId];\n return walletOrder.some((optionId) => {\n const optionLower = optionId.toLowerCase();\n const name =\n wallet.name?.toLowerCase() || wallet.shortName?.toLowerCase() || \"\";\n return (\n name === optionLower ||\n name.includes(optionLower) ||\n walletId.toLowerCase() === optionLower ||\n walletId.toLowerCase().includes(optionLower)\n );\n });\n });\n\n // Exclude wallets shown in main selector\n const excludedWallets = shownInMain.map((name) => name.toLowerCase());\n const remaining = filtered.filter((walletId) => {\n const wallet = walletConfigs[walletId];\n const walletName =\n wallet.name?.toLowerCase() || wallet.shortName?.toLowerCase() || \"\";\n return !excludedWallets.some(\n (excluded) =>\n walletName.includes(excluded) || excluded.includes(walletName),\n );\n });\n\n // Order remaining wallets by walletOrder\n const ordered: string[] = [];\n for (const optionId of walletOrder) {\n const walletId = remaining.find((id) => {\n const wallet = walletConfigs[id];\n const optionLower = optionId.toLowerCase();\n const name =\n wallet.name?.toLowerCase() || wallet.shortName?.toLowerCase() || \"\";\n return (\n name === optionLower ||\n name.includes(optionLower) ||\n id.toLowerCase() === optionLower ||\n id.toLowerCase().includes(optionLower)\n );\n });\n if (walletId && !ordered.includes(walletId)) {\n ordered.push(walletId);\n }\n }\n\n walletsIdsToDisplay = ordered;\n }\n\n const goToWallet = async (wallet: WalletConfigProps) => {\n if (wallet.getDaimoPayDeeplink == null) {\n console.error(`wallet ${wallet.name} has no deeplink`);\n return;\n }\n if (paymentState.isDepositFlow) {\n context.paymentState.setSelectedWallet(wallet);\n setRoute(ROUTES.SELECT_WALLET_AMOUNT);\n } else if (!isIOS && !isAndroid && wallet.id) {\n // On desktop, show QR code\n context.setPendingConnectorId(wallet.id);\n setRoute(ROUTES.CONNECT);\n } else {\n await paymentState.openInWalletBrowser(wallet);\n }\n };\n\n return (\n <PageContent style={{ width: 312 }}>\n <Container>\n <ModalContent style={{ paddingBottom: 0 }}>\n <ScrollArea height={340}>\n <WalletList>\n {walletsIdsToDisplay\n .filter(\n (walletId) =>\n !(\n walletId === \"coinbaseWallet\" ||\n walletId === \"com.coinbase.wallet\"\n ),\n )\n .map((walletId, i) => {\n const wallet = walletConfigs[walletId];\n const { name, shortName, iconConnector, icon } = wallet;\n return (\n <WalletItem\n key={i}\n onClick={() => goToWallet(wallet)}\n style={{\n animationDelay: `${i * 50}ms`,\n }}\n >\n <WalletIcon>{iconConnector ?? icon}</WalletIcon>\n <WalletLabel>{shortName ?? name}</WalletLabel>\n </WalletItem>\n );\n })}\n </WalletList>\n </ScrollArea>\n </ModalContent>\n </Container>\n </PageContent>\n );\n};\n\nexport default MobileConnectors;\n"],"names":[],"mappings":"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"}
@@ -16,9 +16,11 @@ const SelectDepositAddressChain = () => {
16
16
  isDepositFlow,
17
17
  setSelectedDepositAddressOption,
18
18
  depositAddressOptions,
19
- untronAvailable
19
+ untronAvailable,
20
+ topOptionsOrder
20
21
  } = paymentState;
21
22
  const orderUsd = isDepositFlow ? null : order?.destFinalCallTokenAmount.usd;
23
+ const excludeTron = topOptionsOrder.includes("Tron");
22
24
  return /* @__PURE__ */ jsxs(PageContent, { children: [
23
25
  /* @__PURE__ */ jsx(OrderHeader, { minified: true }),
24
26
  !depositAddressOptions.loading && depositAddressOptions.options?.length === 0 && /* @__PURE__ */ jsxs(
@@ -42,7 +44,12 @@ const SelectDepositAddressChain = () => {
42
44
  {
43
45
  requiredSkeletons: 4,
44
46
  isLoading: depositAddressOptions.loading,
45
- options: (depositAddressOptions.options ?? []).map((option) => {
47
+ options: (depositAddressOptions.options ?? []).filter((option) => {
48
+ if (excludeTron && option.id === DepositAddressPaymentOptions.TRON_USDT) {
49
+ return false;
50
+ }
51
+ return true;
52
+ }).map((option) => {
46
53
  const disabled = (
47
54
  // Disable if usd below min
48
55
  option.minimumUsd > 0 && orderUsd != null && orderUsd < option.minimumUsd || // Disable if TRON_USDT unavailable
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/Pages/SelectDepositAddressChain/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { ROUTES } from \"../../../constants/routes\";\nimport { usePayContext } from \"../../../hooks/usePayContext\";\n\nimport { ModalContent, ModalH1, PageContent } from \"../../Common/Modal/styles\";\n\nimport { DepositAddressPaymentOptions } from \"@daimo/pay-common\";\nimport { useDaimoPay } from \"../../../hooks/useDaimoPay\";\nimport { OptionsList } from \"../../Common/OptionsList\";\nimport { OrderHeader } from \"../../Common/OrderHeader\";\nimport SelectAnotherMethodButton from \"../../Common/SelectAnotherMethodButton\";\n\nconst SelectDepositAddressChain: React.FC = () => {\n const { setRoute, paymentState } = usePayContext();\n const pay = useDaimoPay();\n const { order } = pay;\n const {\n isDepositFlow,\n setSelectedDepositAddressOption,\n depositAddressOptions,\n untronAvailable,\n } = paymentState;\n const orderUsd = isDepositFlow ? null : order?.destFinalCallTokenAmount.usd;\n\n return (\n <PageContent>\n <OrderHeader minified />\n\n {!depositAddressOptions.loading &&\n depositAddressOptions.options?.length === 0 && (\n <ModalContent\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n paddingTop: 16,\n paddingBottom: 16,\n }}\n >\n <ModalH1>Chains unavailable.</ModalH1>\n <SelectAnotherMethodButton />\n </ModalContent>\n )}\n\n <OptionsList\n requiredSkeletons={4}\n isLoading={depositAddressOptions.loading}\n options={(depositAddressOptions.options ?? [])\n .map((option) => {\n const disabled =\n // Disable if usd below min\n (option.minimumUsd > 0 &&\n orderUsd != null &&\n orderUsd < option.minimumUsd) ||\n // Disable if TRON_USDT unavailable\n (option.id === DepositAddressPaymentOptions.TRON_USDT &&\n untronAvailable === false);\n\n return {\n id: option.id,\n title: option.id,\n icons: [option.logoURI],\n disabled,\n onClick: () => {\n setSelectedDepositAddressOption(option);\n const meta = { event: \"click-option\", option: option.id };\n if (isDepositFlow) {\n setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT, meta);\n } else {\n setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, meta);\n }\n },\n };\n })\n // Push disabled options to the bottom of the list\n .sort((a, b) => Number(a.disabled) - Number(b.disabled))}\n />\n </PageContent>\n );\n};\n\nexport default SelectDepositAddressChain;\n"],"names":[],"mappings":";;;;;;;;;;AAYA,MAAM,4BAAsC,MAAM;AAChD,EAAA,MAAM,EAAE,QAAA,EAAU,YAAa,EAAA,GAAI,aAAc,EAAA,CAAA;AACjD,EAAA,MAAM,MAAM,WAAY,EAAA,CAAA;AACxB,EAAM,MAAA,EAAE,OAAU,GAAA,GAAA,CAAA;AAClB,EAAM,MAAA;AAAA,IACJ,aAAA;AAAA,IACA,+BAAA;AAAA,IACA,qBAAA;AAAA,IACA,eAAA;AAAA,GACE,GAAA,YAAA,CAAA;AACJ,EAAA,MAAM,QAAW,GAAA,aAAA,GAAgB,IAAO,GAAA,KAAA,EAAO,wBAAyB,CAAA,GAAA,CAAA;AAExE,EAAA,4BACG,WACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,WAAA,EAAA,EAAY,UAAQ,IAAC,EAAA,CAAA;AAAA,IAErB,CAAC,qBAAsB,CAAA,OAAA,IACtB,qBAAsB,CAAA,OAAA,EAAS,WAAW,CACxC,oBAAA,IAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA;AAAA,UACL,OAAS,EAAA,MAAA;AAAA,UACT,UAAY,EAAA,QAAA;AAAA,UACZ,cAAgB,EAAA,QAAA;AAAA,UAChB,UAAY,EAAA,EAAA;AAAA,UACZ,aAAe,EAAA,EAAA;AAAA,SACjB;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,WAAQ,QAAmB,EAAA,qBAAA,EAAA,CAAA;AAAA,8BAC3B,yBAA0B,EAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAC7B;AAAA,oBAGJ,GAAA;AAAA,MAAC,WAAA;AAAA,MAAA;AAAA,QACC,iBAAmB,EAAA,CAAA;AAAA,QACnB,WAAW,qBAAsB,CAAA,OAAA;AAAA,QACjC,UAAU,qBAAsB,CAAA,OAAA,IAAW,EACxC,EAAA,GAAA,CAAI,CAAC,MAAW,KAAA;AACf,UAAM,MAAA,QAAA;AAAA;AAAA,YAEH,OAAO,UAAa,GAAA,CAAA,IACnB,QAAY,IAAA,IAAA,IACZ,WAAW,MAAO,CAAA,UAAA;AAAA,YAEnB,MAAO,CAAA,EAAA,KAAO,4BAA6B,CAAA,SAAA,IAC1C,eAAoB,KAAA,KAAA;AAAA,WAAA,CAAA;AAExB,UAAO,OAAA;AAAA,YACL,IAAI,MAAO,CAAA,EAAA;AAAA,YACX,OAAO,MAAO,CAAA,EAAA;AAAA,YACd,KAAA,EAAO,CAAC,MAAA,CAAO,OAAO,CAAA;AAAA,YACtB,QAAA;AAAA,YACA,SAAS,MAAM;AACb,cAAA,+BAAA,CAAgC,MAAM,CAAA,CAAA;AACtC,cAAA,MAAM,OAAO,EAAE,KAAA,EAAO,cAAgB,EAAA,MAAA,EAAQ,OAAO,EAAG,EAAA,CAAA;AACxD,cAAA,IAAI,aAAe,EAAA;AACjB,gBAAS,QAAA,CAAA,MAAA,CAAO,+BAA+B,IAAI,CAAA,CAAA;AAAA,eAC9C,MAAA;AACL,gBAAS,QAAA,CAAA,MAAA,CAAO,yBAAyB,IAAI,CAAA,CAAA;AAAA,eAC/C;AAAA,aACF;AAAA,WACF,CAAA;AAAA,SACD,CAAA,CAEA,IAAK,CAAA,CAAC,CAAG,EAAA,CAAA,KAAM,MAAO,CAAA,CAAA,CAAE,QAAQ,CAAA,GAAI,MAAO,CAAA,CAAA,CAAE,QAAQ,CAAC,CAAA;AAAA,OAAA;AAAA,KAC3D;AAAA,GACF,EAAA,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/Pages/SelectDepositAddressChain/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { ROUTES } from \"../../../constants/routes\";\nimport { usePayContext } from \"../../../hooks/usePayContext\";\n\nimport { ModalContent, ModalH1, PageContent } from \"../../Common/Modal/styles\";\n\nimport { DepositAddressPaymentOptions } from \"@daimo/pay-common\";\nimport { useDaimoPay } from \"../../../hooks/useDaimoPay\";\nimport { OptionsList } from \"../../Common/OptionsList\";\nimport { OrderHeader } from \"../../Common/OrderHeader\";\nimport SelectAnotherMethodButton from \"../../Common/SelectAnotherMethodButton\";\n\nconst SelectDepositAddressChain: React.FC = () => {\n const { setRoute, paymentState } = usePayContext();\n const pay = useDaimoPay();\n const { order } = pay;\n const {\n isDepositFlow,\n setSelectedDepositAddressOption,\n depositAddressOptions,\n untronAvailable,\n topOptionsOrder,\n } = paymentState;\n const orderUsd = isDepositFlow ? null : order?.destFinalCallTokenAmount.usd;\n const excludeTron = topOptionsOrder.includes(\"Tron\");\n\n return (\n <PageContent>\n <OrderHeader minified />\n\n {!depositAddressOptions.loading &&\n depositAddressOptions.options?.length === 0 && (\n <ModalContent\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n paddingTop: 16,\n paddingBottom: 16,\n }}\n >\n <ModalH1>Chains unavailable.</ModalH1>\n <SelectAnotherMethodButton />\n </ModalContent>\n )}\n\n <OptionsList\n requiredSkeletons={4}\n isLoading={depositAddressOptions.loading}\n options={(depositAddressOptions.options ?? [])\n .filter((option) => {\n // Filter out TRON_USDT if Tron is shown as a top-level option\n if (\n excludeTron &&\n option.id === DepositAddressPaymentOptions.TRON_USDT\n ) {\n return false;\n }\n return true;\n })\n .map((option) => {\n const disabled =\n // Disable if usd below min\n (option.minimumUsd > 0 &&\n orderUsd != null &&\n orderUsd < option.minimumUsd) ||\n // Disable if TRON_USDT unavailable\n (option.id === DepositAddressPaymentOptions.TRON_USDT &&\n untronAvailable === false);\n\n return {\n id: option.id,\n title: option.id,\n icons: [option.logoURI],\n disabled,\n onClick: () => {\n setSelectedDepositAddressOption(option);\n const meta = { event: \"click-option\", option: option.id };\n if (isDepositFlow) {\n setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT, meta);\n } else {\n setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, meta);\n }\n },\n };\n })\n // Push disabled options to the bottom of the list\n .sort((a, b) => Number(a.disabled) - Number(b.disabled))}\n />\n </PageContent>\n );\n};\n\nexport default SelectDepositAddressChain;\n"],"names":[],"mappings":"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"}
@@ -16,8 +16,9 @@ const SelectExchange = () => {
16
16
  /* @__PURE__ */ jsx(ModalH1, { children: "No Exchange options available" })
17
17
  ] });
18
18
  }
19
- const uniquePaymentOption = paymentState.buttonProps && "uniquePaymentOption" in paymentState.buttonProps ? paymentState.buttonProps.uniquePaymentOption : void 0;
20
- const filtered = uniquePaymentOption === "AllExchanges" ? exchangeOptions.filter(
19
+ const paymentOptions = paymentState.buttonProps?.paymentOptions;
20
+ const isAllExchangesOnly = paymentOptions && paymentOptions.length === 1 && paymentOptions[0] === "AllExchanges";
21
+ const filtered = isAllExchangesOnly ? exchangeOptions.filter(
21
22
  (o) => o.id === ExternalPaymentOptions.Coinbase || o.id === ExternalPaymentOptions.Binance
22
23
  ) : exchangeOptions;
23
24
  const options = filtered.map((option) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/Pages/SelectExchange/index.tsx"],"sourcesContent":["import { ExternalPaymentOptions } from \"@daimo/pay-common\";\nimport React from \"react\";\n\nimport { ModalH1, PageContent } from \"../../Common/Modal/styles\";\n\nimport { ROUTES } from \"../../../constants/routes\";\nimport { usePayContext } from \"../../../hooks/usePayContext\";\nimport { OptionsList } from \"../../Common/OptionsList\";\nimport { OrderHeader } from \"../../Common/OrderHeader\";\n\nconst SelectExchange: React.FC = () => {\n const { paymentState, setRoute } = usePayContext();\n const { externalPaymentOptions, setSelectedExternalOption } = paymentState;\n const exchangeOptions = externalPaymentOptions.options.get(\"exchange\");\n\n if (!exchangeOptions) {\n return (\n <PageContent>\n <OrderHeader minified />\n <ModalH1>No Exchange options available</ModalH1>\n </PageContent>\n );\n }\n\n // For the exchange flow in unique payment option mode, we only show the Coinbase and Binance options\n const uniquePaymentOption =\n paymentState.buttonProps &&\n \"uniquePaymentOption\" in paymentState.buttonProps\n ? paymentState.buttonProps.uniquePaymentOption\n : undefined;\n\n const filtered =\n uniquePaymentOption === \"AllExchanges\"\n ? exchangeOptions.filter(\n (o) =>\n o.id === ExternalPaymentOptions.Coinbase ||\n o.id === ExternalPaymentOptions.Binance,\n )\n : exchangeOptions;\n\n const options = filtered.map((option) => ({\n id: option.id,\n title: option.cta,\n icons: [option.logoURI],\n onClick: () => {\n setSelectedExternalOption(option);\n const meta = { event: \"click-option\", option: option.id };\n if (paymentState.isDepositFlow) {\n setRoute(ROUTES.SELECT_EXTERNAL_AMOUNT, meta);\n } else {\n setRoute(ROUTES.WAITING_EXTERNAL, meta);\n }\n },\n disabled: option.disabled,\n subtitle: option.message,\n }));\n\n return (\n <PageContent>\n <OrderHeader minified show=\"zkp2p\" />\n <OptionsList options={options} />\n </PageContent>\n );\n};\n\nexport default SelectExchange;\n"],"names":[],"mappings":";;;;;;;;AAUA,MAAM,iBAA2B,MAAM;AACrC,EAAA,MAAM,EAAE,YAAA,EAAc,QAAS,EAAA,GAAI,aAAc,EAAA,CAAA;AACjD,EAAM,MAAA,EAAE,sBAAwB,EAAA,yBAAA,EAA8B,GAAA,YAAA,CAAA;AAC9D,EAAA,MAAM,eAAkB,GAAA,sBAAA,CAAuB,OAAQ,CAAA,GAAA,CAAI,UAAU,CAAA,CAAA;AAErE,EAAA,IAAI,CAAC,eAAiB,EAAA;AACpB,IAAA,4BACG,WACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,WAAA,EAAA,EAAY,UAAQ,IAAC,EAAA,CAAA;AAAA,sBACtB,GAAA,CAAC,WAAQ,QAA6B,EAAA,+BAAA,EAAA,CAAA;AAAA,KACxC,EAAA,CAAA,CAAA;AAAA,GAEJ;AAGA,EAAM,MAAA,mBAAA,GACJ,aAAa,WACb,IAAA,qBAAA,IAAyB,aAAa,WAClC,GAAA,YAAA,CAAa,YAAY,mBACzB,GAAA,KAAA,CAAA,CAAA;AAEN,EAAM,MAAA,QAAA,GACJ,mBAAwB,KAAA,cAAA,GACpB,eAAgB,CAAA,MAAA;AAAA,IACd,CAAC,MACC,CAAE,CAAA,EAAA,KAAO,uBAAuB,QAChC,IAAA,CAAA,CAAE,OAAO,sBAAuB,CAAA,OAAA;AAAA,GAEpC,GAAA,eAAA,CAAA;AAEN,EAAA,MAAM,OAAU,GAAA,QAAA,CAAS,GAAI,CAAA,CAAC,MAAY,MAAA;AAAA,IACxC,IAAI,MAAO,CAAA,EAAA;AAAA,IACX,OAAO,MAAO,CAAA,GAAA;AAAA,IACd,KAAA,EAAO,CAAC,MAAA,CAAO,OAAO,CAAA;AAAA,IACtB,SAAS,MAAM;AACb,MAAA,yBAAA,CAA0B,MAAM,CAAA,CAAA;AAChC,MAAA,MAAM,OAAO,EAAE,KAAA,EAAO,cAAgB,EAAA,MAAA,EAAQ,OAAO,EAAG,EAAA,CAAA;AACxD,MAAA,IAAI,aAAa,aAAe,EAAA;AAC9B,QAAS,QAAA,CAAA,MAAA,CAAO,wBAAwB,IAAI,CAAA,CAAA;AAAA,OACvC,MAAA;AACL,QAAS,QAAA,CAAA,MAAA,CAAO,kBAAkB,IAAI,CAAA,CAAA;AAAA,OACxC;AAAA,KACF;AAAA,IACA,UAAU,MAAO,CAAA,QAAA;AAAA,IACjB,UAAU,MAAO,CAAA,OAAA;AAAA,GACjB,CAAA,CAAA,CAAA;AAEF,EAAA,4BACG,WACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,WAAY,EAAA,EAAA,QAAA,EAAQ,IAAC,EAAA,IAAA,EAAK,OAAQ,EAAA,CAAA;AAAA,oBACnC,GAAA,CAAC,eAAY,OAAkB,EAAA,CAAA;AAAA,GACjC,EAAA,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/Pages/SelectExchange/index.tsx"],"sourcesContent":["import { ExternalPaymentOptions } from \"@daimo/pay-common\";\nimport React from \"react\";\n\nimport { ModalH1, PageContent } from \"../../Common/Modal/styles\";\n\nimport { ROUTES } from \"../../../constants/routes\";\nimport { usePayContext } from \"../../../hooks/usePayContext\";\nimport { OptionsList } from \"../../Common/OptionsList\";\nimport { OrderHeader } from \"../../Common/OrderHeader\";\n\nconst SelectExchange: React.FC = () => {\n const { paymentState, setRoute } = usePayContext();\n const { externalPaymentOptions, setSelectedExternalOption } = paymentState;\n const exchangeOptions = externalPaymentOptions.options.get(\"exchange\");\n\n if (!exchangeOptions) {\n return (\n <PageContent>\n <OrderHeader minified />\n <ModalH1>No Exchange options available</ModalH1>\n </PageContent>\n );\n }\n\n // For the exchange flow with single payment option, we only show the Coinbase and Binance options\n const paymentOptions = paymentState.buttonProps?.paymentOptions;\n const isAllExchangesOnly =\n paymentOptions &&\n paymentOptions.length === 1 &&\n paymentOptions[0] === \"AllExchanges\";\n\n const filtered = isAllExchangesOnly\n ? exchangeOptions.filter(\n (o) =>\n o.id === ExternalPaymentOptions.Coinbase ||\n o.id === ExternalPaymentOptions.Binance,\n )\n : exchangeOptions;\n\n const options = filtered.map((option) => ({\n id: option.id,\n title: option.cta,\n icons: [option.logoURI],\n onClick: () => {\n setSelectedExternalOption(option);\n const meta = { event: \"click-option\", option: option.id };\n if (paymentState.isDepositFlow) {\n setRoute(ROUTES.SELECT_EXTERNAL_AMOUNT, meta);\n } else {\n setRoute(ROUTES.WAITING_EXTERNAL, meta);\n }\n },\n disabled: option.disabled,\n subtitle: option.message,\n }));\n\n return (\n <PageContent>\n <OrderHeader minified show=\"zkp2p\" />\n <OptionsList options={options} />\n </PageContent>\n );\n};\n\nexport default SelectExchange;\n"],"names":[],"mappings":";;;;;;;;AAUA,MAAM,iBAA2B,MAAM;AACrC,EAAA,MAAM,EAAE,YAAA,EAAc,QAAS,EAAA,GAAI,aAAc,EAAA,CAAA;AACjD,EAAM,MAAA,EAAE,sBAAwB,EAAA,yBAAA,EAA8B,GAAA,YAAA,CAAA;AAC9D,EAAA,MAAM,eAAkB,GAAA,sBAAA,CAAuB,OAAQ,CAAA,GAAA,CAAI,UAAU,CAAA,CAAA;AAErE,EAAA,IAAI,CAAC,eAAiB,EAAA;AACpB,IAAA,4BACG,WACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,WAAA,EAAA,EAAY,UAAQ,IAAC,EAAA,CAAA;AAAA,sBACtB,GAAA,CAAC,WAAQ,QAA6B,EAAA,+BAAA,EAAA,CAAA;AAAA,KACxC,EAAA,CAAA,CAAA;AAAA,GAEJ;AAGA,EAAM,MAAA,cAAA,GAAiB,aAAa,WAAa,EAAA,cAAA,CAAA;AACjD,EAAA,MAAM,qBACJ,cACA,IAAA,cAAA,CAAe,WAAW,CAC1B,IAAA,cAAA,CAAe,CAAC,CAAM,KAAA,cAAA,CAAA;AAExB,EAAM,MAAA,QAAA,GAAW,qBACb,eAAgB,CAAA,MAAA;AAAA,IACd,CAAC,MACC,CAAE,CAAA,EAAA,KAAO,uBAAuB,QAChC,IAAA,CAAA,CAAE,OAAO,sBAAuB,CAAA,OAAA;AAAA,GAEpC,GAAA,eAAA,CAAA;AAEJ,EAAA,MAAM,OAAU,GAAA,QAAA,CAAS,GAAI,CAAA,CAAC,MAAY,MAAA;AAAA,IACxC,IAAI,MAAO,CAAA,EAAA;AAAA,IACX,OAAO,MAAO,CAAA,GAAA;AAAA,IACd,KAAA,EAAO,CAAC,MAAA,CAAO,OAAO,CAAA;AAAA,IACtB,SAAS,MAAM;AACb,MAAA,yBAAA,CAA0B,MAAM,CAAA,CAAA;AAChC,MAAA,MAAM,OAAO,EAAE,KAAA,EAAO,cAAgB,EAAA,MAAA,EAAQ,OAAO,EAAG,EAAA,CAAA;AACxD,MAAA,IAAI,aAAa,aAAe,EAAA;AAC9B,QAAS,QAAA,CAAA,MAAA,CAAO,wBAAwB,IAAI,CAAA,CAAA;AAAA,OACvC,MAAA;AACL,QAAS,QAAA,CAAA,MAAA,CAAO,kBAAkB,IAAI,CAAA,CAAA;AAAA,OACxC;AAAA,KACF;AAAA,IACA,UAAU,MAAO,CAAA,QAAA;AAAA,IACjB,UAAU,MAAO,CAAA,OAAA;AAAA,GACjB,CAAA,CAAA,CAAA;AAEF,EAAA,4BACG,WACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,WAAY,EAAA,EAAA,QAAA,EAAQ,IAAC,EAAA,IAAA,EAAK,OAAQ,EAAA,CAAA;AAAA,oBACnC,GAAA,CAAC,eAAY,OAAkB,EAAA,CAAA;AAAA,GACjC,EAAA,CAAA,CAAA;AAEJ;;;;"}
@@ -2,10 +2,10 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { ROUTES } from '../../../constants/routes.js';
3
3
  import { usePayContext } from '../../../hooks/usePayContext.js';
4
4
  import { PageContent } from '../../Common/Modal/styles.js';
5
- import { getAddressContraction } from '@daimo/pay-common';
5
+ import { DepositAddressPaymentOptions, getAddressContraction } from '@daimo/pay-common';
6
6
  import { useWallet } from '@solana/wallet-adapter-react';
7
7
  import { useAccount, useDisconnect } from 'wagmi';
8
- import { Ethereum, Solana, Tron, Base } from '../../../assets/chains.js';
8
+ import { Ethereum, Solana, Polygon, Base, Tron } from '../../../assets/chains.js';
9
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';
@@ -19,7 +19,7 @@ import WalletChainLogo from '../../Common/WalletChainLogo/index.js';
19
19
  function SelectMethod() {
20
20
  const locales = useLocales();
21
21
  const payWithString = flattenChildren(locales.payWith).join("");
22
- const { isMobile, isIOS, isAndroid } = useIsMobile();
22
+ const { isMobile } = useIsMobile();
23
23
  const {
24
24
  address,
25
25
  chain,
@@ -34,7 +34,7 @@ function SelectMethod() {
34
34
  } = useWallet();
35
35
  const { setRoute, paymentState, log, disableMobileInjector } = usePayContext();
36
36
  const { disconnectAsync } = useDisconnect();
37
- const { externalPaymentOptions, senderEnsName } = paymentState;
37
+ const { externalPaymentOptions, senderEnsName, topOptionsOrder } = paymentState;
38
38
  const showConnectedEth = isEthConnected && (!isMobile || !disableMobileInjector);
39
39
  const showConnectedSolana = isSolanaConnected && (!isMobile || !disableMobileInjector);
40
40
  const getConnectedWalletOptions = () => {
@@ -129,28 +129,36 @@ function SelectMethod() {
129
129
  return connectedOptions;
130
130
  };
131
131
  const connectedWalletOptions = getConnectedWalletOptions();
132
+ const walletOrder = paymentState.externalPaymentOptions.parsedConfig.walletOrder;
132
133
  const unconnectedWalletOption = {
133
134
  id: "unconnectedWallet",
134
135
  title: isEthConnected || isSolanaConnected ? locales.payWithAnotherWallet : locales.payWithWallet,
135
- icons: getBestUnconnectedWalletIcons(connector, isMobile),
136
+ icons: getBestUnconnectedWalletIcons(connector, isMobile, walletOrder),
136
137
  onClick: async () => {
137
138
  await disconnectAsync();
138
139
  await disconnectSolana();
139
140
  setRoute(ROUTES.CONNECTORS);
140
141
  }
141
142
  };
142
- const options = [];
143
- options.push(...connectedWalletOptions);
144
- options.push(unconnectedWalletOption);
145
143
  log(
146
144
  `[SELECT_METHOD] loading: ${externalPaymentOptions.loading}, options: ${JSON.stringify(
147
145
  externalPaymentOptions.options
148
146
  )}`
149
147
  );
148
+ const categorizedOptions = [];
149
+ connectedWalletOptions.forEach(
150
+ (opt) => categorizedOptions.push({ ...opt, category: "connected" })
151
+ );
152
+ if (topOptionsOrder.includes("AllWallets")) {
153
+ categorizedOptions.push({
154
+ ...unconnectedWalletOption,
155
+ category: "AllWallets"
156
+ });
157
+ }
150
158
  const exchangeOptions = externalPaymentOptions.options.get("exchange") ?? [];
151
- const showExchangePaymentMethod = exchangeOptions.length > 0;
159
+ const showExchangePaymentMethod = exchangeOptions.length > 0 && topOptionsOrder.includes("AllExchanges");
152
160
  if (showExchangePaymentMethod) {
153
- options.push({
161
+ categorizedOptions.push({
154
162
  id: "exchange",
155
163
  title: locales.payWithExchange,
156
164
  icons: exchangeOptions.slice(0, 3).map((option) => option.logoURI),
@@ -159,23 +167,67 @@ function SelectMethod() {
159
167
  event: "click-option",
160
168
  option: "exchange"
161
169
  });
162
- }
170
+ },
171
+ category: "AllExchanges"
172
+ });
173
+ }
174
+ if (topOptionsOrder.includes("Tron")) {
175
+ const tronOption = paymentState.depositAddressOptions.options?.find(
176
+ (option) => option.id === DepositAddressPaymentOptions.TRON_USDT
177
+ );
178
+ if (tronOption) {
179
+ categorizedOptions.push({
180
+ id: "tron",
181
+ title: tronOption.id,
182
+ // Use the actual title like "USDT on Tron"
183
+ icons: [tronOption.logoURI],
184
+ onClick: () => {
185
+ paymentState.setSelectedDepositAddressOption(tronOption);
186
+ setRoute(
187
+ paymentState.isDepositFlow ? ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT : ROUTES.WAITING_DEPOSIT_ADDRESS,
188
+ { event: "select_tron" }
189
+ );
190
+ },
191
+ category: "Tron"
192
+ });
193
+ }
194
+ }
195
+ if (topOptionsOrder.includes("AllAddresses")) {
196
+ const depositAddressOption = getDepositAddressOption(
197
+ setRoute,
198
+ locales,
199
+ topOptionsOrder.includes("Tron")
200
+ // exclude Tron if shown separately
201
+ );
202
+ categorizedOptions.push({
203
+ ...depositAddressOption,
204
+ category: "AllAddresses"
163
205
  });
164
206
  }
165
- const depositAddressOption = getDepositAddressOption(setRoute, locales);
166
- options.push(depositAddressOption);
167
207
  const zkp2pOptions = externalPaymentOptions.options.get("zkp2p") ?? [];
168
- const showZkp2pPaymentMethod = !isMobile && zkp2pOptions.length > 0;
208
+ const showZkp2pPaymentMethod = !isMobile && zkp2pOptions.length > 0 && topOptionsOrder.includes("AllPaymentApps");
169
209
  if (showZkp2pPaymentMethod) {
170
- options.push({
210
+ categorizedOptions.push({
171
211
  id: "ZKP2P",
172
212
  title: locales.payViaPaymentApp,
173
213
  icons: zkp2pOptions.slice(0, 2).map((option) => option.logoURI),
174
214
  onClick: () => {
175
215
  setRoute(ROUTES.SELECT_ZKP2P);
176
- }
216
+ },
217
+ category: "AllPaymentApps"
177
218
  });
178
219
  }
220
+ const sortedOptions = categorizedOptions.sort((a, b) => {
221
+ if (a.category === "connected") return -1;
222
+ if (b.category === "connected") return 1;
223
+ const aIndex = topOptionsOrder.indexOf(a.category);
224
+ const bIndex = topOptionsOrder.indexOf(b.category);
225
+ if (aIndex === -1 && bIndex === -1) return 0;
226
+ if (aIndex === -1) return 1;
227
+ if (bIndex === -1) return -1;
228
+ return aIndex - bIndex;
229
+ });
230
+ const options = sortedOptions.map(({ category, ...opt }) => opt);
179
231
  options.sort((a, b) => (a.disabled ? 1 : 0) - (b.disabled ? 1 : 0));
180
232
  return /* @__PURE__ */ jsxs(PageContent, { children: [
181
233
  /* @__PURE__ */ jsx(OrderHeader, {}),
@@ -190,22 +242,50 @@ function SelectMethod() {
190
242
  /* @__PURE__ */ jsx(PoweredByFooter, {})
191
243
  ] });
192
244
  }
193
- function getBestUnconnectedWalletIcons(connector, isMobile) {
245
+ function getBestUnconnectedWalletIcons(connector, isMobile, walletOrder) {
194
246
  const icons = [];
195
247
  const strippedId = connector?.id.toLowerCase();
196
- const [isRainbow, isPhantom, isRabby, isMetaMask] = [
248
+ if (walletOrder && walletOrder.length > 0 && isMobile) {
249
+ const maxIcons = 3;
250
+ for (const walletName of walletOrder) {
251
+ if (icons.length >= maxIcons) break;
252
+ if (strippedId?.includes(walletName.toLowerCase())) continue;
253
+ const walletId = Object.keys(walletConfigs).find((id) => {
254
+ const wallet = walletConfigs[id];
255
+ const nameLower = walletName.toLowerCase();
256
+ return wallet.name?.toLowerCase().includes(nameLower) || wallet.shortName?.toLowerCase().includes(nameLower) || id.toLowerCase().includes(nameLower);
257
+ });
258
+ if (walletId) {
259
+ const wallet = walletConfigs[walletId];
260
+ const icon = wallet.iconConnector || wallet.icon;
261
+ if (icon) {
262
+ icons.push(
263
+ /* @__PURE__ */ jsx(
264
+ "div",
265
+ {
266
+ style: { borderRadius: "22.5%", overflow: "hidden" },
267
+ children: icon
268
+ },
269
+ walletId
270
+ )
271
+ );
272
+ }
273
+ }
274
+ }
275
+ if (icons.length > 0) return icons;
276
+ }
277
+ const [isRainbow, isTrust, isPhantom, isCoinbase, isMetaMask, isRabby] = [
197
278
  strippedId?.includes("rainbow"),
198
279
  strippedId?.includes("trust"),
199
280
  strippedId?.includes("phantom"),
200
281
  strippedId?.includes("coinbase"),
201
282
  strippedId?.includes("metamask"),
202
- strippedId?.includes("rabby"),
203
- strippedId?.includes("metamask")
283
+ strippedId?.includes("rabby")
204
284
  ];
205
285
  if (isMobile) {
206
- icons.push(/* @__PURE__ */ jsx(MetaMask, {}));
207
- icons.push(/* @__PURE__ */ jsx(Trust, { background: true }));
208
- icons.push(/* @__PURE__ */ jsx(Rainbow, {}));
286
+ if (!isMetaMask) icons.push(/* @__PURE__ */ jsx(MetaMask, {}));
287
+ if (!isTrust) icons.push(/* @__PURE__ */ jsx(Trust, { background: true }));
288
+ if (!isRainbow && icons.length < 3) icons.push(/* @__PURE__ */ jsx(Rainbow, {}));
209
289
  } else {
210
290
  if (!isMetaMask) icons.push(/* @__PURE__ */ jsx(MetaMask, {}));
211
291
  if (!isRainbow) icons.push(/* @__PURE__ */ jsx(Rainbow, {}));
@@ -214,11 +294,12 @@ function getBestUnconnectedWalletIcons(connector, isMobile) {
214
294
  }
215
295
  return icons;
216
296
  }
217
- function getDepositAddressOption(setRoute, locales) {
297
+ function getDepositAddressOption(setRoute, locales, excludeTron = false) {
298
+ const icons = excludeTron ? [/* @__PURE__ */ jsx(Ethereum, {}, "eth"), /* @__PURE__ */ jsx(Polygon, {}, "polygon"), /* @__PURE__ */ jsx(Base, {}, "base")] : [/* @__PURE__ */ jsx(Ethereum, {}, "eth"), /* @__PURE__ */ jsx(Tron, {}, "tron"), /* @__PURE__ */ jsx(Base, {}, "base")];
218
299
  return {
219
300
  id: "depositAddress",
220
301
  title: locales.payToAddress,
221
- icons: [/* @__PURE__ */ jsx(Ethereum, {}, "eth"), /* @__PURE__ */ jsx(Tron, {}, "tron"), /* @__PURE__ */ jsx(Base, {}, "base")],
302
+ icons,
222
303
  onClick: () => {
223
304
  setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);
224
305
  }
@@ -1 +1 @@
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 disconnect: disconnectSolana,\n publicKey,\n } = useWallet();\n const { setRoute, paymentState, log, disableMobileInjector } =\n usePayContext();\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 = isEthConnected && isSolanaConnected;\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) {\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 ? 3 : 4}\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
+ {"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 {\n DepositAddressPaymentOptions,\n getAddressContraction,\n} from \"@daimo/pay-common\";\nimport { useWallet } from \"@solana/wallet-adapter-react\";\nimport { Connector, useAccount, useDisconnect } from \"wagmi\";\nimport { Base, Ethereum, Polygon, 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 } = useIsMobile();\n\n const {\n address,\n chain,\n isConnected: isEthConnected,\n connector,\n } = useAccount();\n const {\n connected: isSolanaConnected,\n wallet: solanaWallet,\n disconnect: disconnectSolana,\n publicKey,\n } = useWallet();\n const { setRoute, paymentState, log, disableMobileInjector } =\n usePayContext();\n const { disconnectAsync } = useDisconnect();\n\n const { externalPaymentOptions, senderEnsName, topOptionsOrder } =\n 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 = isEthConnected && isSolanaConnected;\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) {\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\n // Get custom wallet list if specified\n const walletOrder =\n paymentState.externalPaymentOptions.parsedConfig.walletOrder;\n\n const unconnectedWalletOption = {\n id: \"unconnectedWallet\",\n title:\n isEthConnected || isSolanaConnected\n ? locales.payWithAnotherWallet\n : locales.payWithWallet,\n icons: getBestUnconnectedWalletIcons(connector, isMobile, walletOrder),\n onClick: async () => {\n await disconnectAsync();\n await disconnectSolana();\n setRoute(ROUTES.CONNECTORS);\n },\n };\n\n log(\n `[SELECT_METHOD] loading: ${externalPaymentOptions.loading}, options: ${JSON.stringify(\n externalPaymentOptions.options,\n )}`,\n );\n\n // Build categorized options\n type CategorizedOption = {\n id: string;\n title: string;\n subtitle?: string;\n icons: (React.ReactNode | string)[];\n onClick: () => void;\n disabled?: boolean;\n category: string;\n };\n\n const categorizedOptions: CategorizedOption[] = [];\n\n // Connected wallets always appear first\n connectedWalletOptions.forEach((opt) =>\n categorizedOptions.push({ ...opt, category: \"connected\" }),\n );\n\n // Wallet options (unconnected) - only if AllWallets is in topOptionsOrder\n if (topOptionsOrder.includes(\"AllWallets\")) {\n categorizedOptions.push({\n ...unconnectedWalletOption,\n category: \"AllWallets\",\n });\n }\n\n // Exchange options - only if AllExchanges is in topOptionsOrder\n const exchangeOptions = externalPaymentOptions.options.get(\"exchange\") ?? [];\n const showExchangePaymentMethod =\n exchangeOptions.length > 0 && topOptionsOrder.includes(\"AllExchanges\");\n if (showExchangePaymentMethod) {\n categorizedOptions.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 category: \"AllExchanges\",\n });\n }\n\n // Tron option - only if Tron is in topOptionsOrder\n if (topOptionsOrder.includes(\"Tron\")) {\n const tronOption = paymentState.depositAddressOptions.options?.find(\n (option) => option.id === DepositAddressPaymentOptions.TRON_USDT,\n );\n if (tronOption) {\n categorizedOptions.push({\n id: \"tron\",\n title: tronOption.id, // Use the actual title like \"USDT on Tron\"\n icons: [tronOption.logoURI],\n onClick: () => {\n paymentState.setSelectedDepositAddressOption(tronOption);\n setRoute(\n paymentState.isDepositFlow\n ? ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT\n : ROUTES.WAITING_DEPOSIT_ADDRESS,\n { event: \"select_tron\" },\n );\n },\n category: \"Tron\",\n });\n }\n }\n\n // Deposit address options - only if AllAddresses is in topOptionsOrder\n if (topOptionsOrder.includes(\"AllAddresses\")) {\n const depositAddressOption = getDepositAddressOption(\n setRoute,\n locales,\n topOptionsOrder.includes(\"Tron\"), // exclude Tron if shown separately\n );\n categorizedOptions.push({\n ...depositAddressOption,\n category: \"AllAddresses\",\n });\n }\n\n // ZKP2P options - only if AllPaymentApps is in topOptionsOrder\n const zkp2pOptions = externalPaymentOptions.options.get(\"zkp2p\") ?? [];\n const showZkp2pPaymentMethod =\n !isMobile &&\n zkp2pOptions.length > 0 &&\n topOptionsOrder.includes(\"AllPaymentApps\");\n if (showZkp2pPaymentMethod) {\n categorizedOptions.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 category: \"AllPaymentApps\",\n });\n }\n\n // Sort based on topOptionsOrder, keeping connected wallets first\n const sortedOptions = categorizedOptions.sort((a, b) => {\n // Connected wallets always first\n if (a.category === \"connected\") return -1;\n if (b.category === \"connected\") return 1;\n\n // Then sort by topOptionsOrder\n const aIndex = topOptionsOrder.indexOf(a.category);\n const bIndex = topOptionsOrder.indexOf(b.category);\n\n // If not in order list, put at the end\n if (aIndex === -1 && bIndex === -1) return 0;\n if (aIndex === -1) return 1;\n if (bIndex === -1) return -1;\n\n return aIndex - bIndex;\n });\n\n // Remove category field for final options\n const options = sortedOptions.map(({ category, ...opt }) => opt);\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 ? 3 : 4}\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 walletOrder?: string[],\n) {\n const icons: JSX.Element[] = [];\n const strippedId = connector?.id.toLowerCase();\n\n // If custom wallet list is provided, use those wallets\n if (walletOrder && walletOrder.length > 0 && isMobile) {\n const maxIcons = 3;\n for (const walletName of walletOrder) {\n if (icons.length >= maxIcons) break;\n\n // Skip if this wallet is already connected\n if (strippedId?.includes(walletName.toLowerCase())) continue;\n\n // Find wallet config\n const walletId = Object.keys(walletConfigs).find((id) => {\n const wallet = walletConfigs[id];\n const nameLower = walletName.toLowerCase();\n return (\n wallet.name?.toLowerCase().includes(nameLower) ||\n wallet.shortName?.toLowerCase().includes(nameLower) ||\n id.toLowerCase().includes(nameLower)\n );\n });\n\n if (walletId) {\n const wallet = walletConfigs[walletId];\n const icon = wallet.iconConnector || wallet.icon;\n if (icon) {\n icons.push(\n <div\n key={walletId}\n style={{ borderRadius: \"22.5%\", overflow: \"hidden\" }}\n >\n {icon}\n </div>,\n );\n }\n }\n }\n\n if (icons.length > 0) return icons;\n }\n\n // Default icons (fallback)\n const [isRainbow, isTrust, isPhantom, isCoinbase, isMetaMask, isRabby] = [\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 ];\n\n if (isMobile) {\n if (!isMetaMask) icons.push(<MetaMask />);\n if (!isTrust) icons.push(<Trust background />);\n if (!isRainbow && icons.length < 3) 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 excludeTron: boolean = false,\n) {\n const icons = excludeTron\n ? [<Ethereum key=\"eth\" />, <Polygon key=\"polygon\" />, <Base key=\"base\" />]\n : [<Ethereum key=\"eth\" />, <Tron key=\"tron\" />, <Base key=\"base\" />];\n\n return {\n id: \"depositAddress\",\n title: locales.payToAddress,\n icons,\n onClick: () => {\n setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);\n },\n };\n}\n"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import useIsMobile from '../../../hooks/useIsMobile.js';
8
8
  import styled from '../../../styles/styled/index.js';
9
9
  import { USD_DECIMALS } from '../../../utils/format.js';
10
10
  import { isValidNumber, sanitizeNumber } from '../../../utils/validateInput.js';
11
- import { WALLET_ID_MOBILE_WALLETS } from '../../../wallets/useWallets.js';
11
+ import { isExternalWallet } from '../../../wallets/useWallets.js';
12
12
  import AmountInputField from '../../Common/AmountInput/AmountInputField.js';
13
13
  import Button from '../../Common/Button/index.js';
14
14
  import WalletPaymentSpinner from '../../Spinners/WalletPaymentSpinner/index.js';
@@ -16,7 +16,11 @@ import WalletPaymentSpinner from '../../Spinners/WalletPaymentSpinner/index.js';
16
16
  const SelectWalletAmount = () => {
17
17
  const { paymentState, setPendingConnectorId, setRoute } = usePayContext();
18
18
  const { selectedWallet, openInWalletBrowser } = paymentState;
19
- const { setChosenUsd, hydrateOrder } = useDaimoPay();
19
+ const {
20
+ setChosenUsd,
21
+ hydrateOrder,
22
+ paymentState: payFsmState
23
+ } = useDaimoPay();
20
24
  const { isMobile } = useIsMobile();
21
25
  const maxUsdLimit = paymentState.getOrderUsdLimit();
22
26
  const [usdInput, setUsdInput] = useState("");
@@ -24,6 +28,7 @@ const SelectWalletAmount = () => {
24
28
  if (selectedWallet == null) {
25
29
  return /* @__PURE__ */ jsx(PageContent, {});
26
30
  }
31
+ const walletId = selectedWallet?.id;
27
32
  const handleAmountChange = (e) => {
28
33
  const value = e.target.value;
29
34
  if (value !== "" && !isValidNumber(value, USD_DECIMALS)) return;
@@ -34,12 +39,12 @@ const SelectWalletAmount = () => {
34
39
  const handleContinue = async () => {
35
40
  const amountUsd = Number(sanitizeNumber(usdInput));
36
41
  setChosenUsd(amountUsd);
37
- await hydrateOrder();
38
- if (selectedWallet.id === WALLET_ID_MOBILE_WALLETS || selectedWallet.id === "world" && !isMobile) {
39
- setPendingConnectorId(selectedWallet.id);
42
+ if (isExternalWallet(selectedWallet) && !isMobile) {
43
+ await hydrateOrder();
44
+ setPendingConnectorId(walletId);
40
45
  setRoute(ROUTES.CONNECT);
41
46
  } else {
42
- openInWalletBrowser(selectedWallet, amountUsd);
47
+ await openInWalletBrowser(selectedWallet, amountUsd);
43
48
  }
44
49
  };
45
50
  return /* @__PURE__ */ jsxs(PageContent, { children: [