@daimo/pay 1.15.0 → 1.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/build/components/DaimoPayButton/index.d.ts +13 -0
  2. package/build/hooks/useConnect.d.ts +8 -8
  3. package/build/hooks/useLocales.d.ts +2 -1
  4. package/build/hooks/useWalletPaymentOptions.d.ts +12 -1
  5. package/build/index.d.ts +626 -15
  6. package/build/localizations/locales/en-US.d.ts +2 -0
  7. package/build/localizations/locales/index.d.ts +1 -0
  8. package/build/package.json.js +6 -4
  9. package/build/package.json.js.map +1 -1
  10. package/build/payment/paymentFsm.d.ts +5 -0
  11. package/build/payment/paymentUtils.d.ts +6 -0
  12. package/build/src/assets/MobileWithLogos.js +320 -1
  13. package/build/src/assets/MobileWithLogos.js.map +1 -1
  14. package/build/src/assets/ScanIconWithLogos.js +216 -10
  15. package/build/src/assets/ScanIconWithLogos.js.map +1 -1
  16. package/build/src/assets/browsers.js +963 -7
  17. package/build/src/assets/browsers.js.map +1 -1
  18. package/build/src/assets/chains.js +633 -103
  19. package/build/src/assets/chains.js.map +1 -1
  20. package/build/src/assets/coins.js +38 -1
  21. package/build/src/assets/coins.js.map +1 -1
  22. package/build/src/assets/crepe.js +35 -1
  23. package/build/src/assets/crepe.js.map +1 -1
  24. package/build/src/assets/icons.js +258 -15
  25. package/build/src/assets/icons.js.map +1 -1
  26. package/build/src/assets/logos.js +1510 -140
  27. package/build/src/assets/logos.js.map +1 -1
  28. package/build/src/assets/wallet.js +32 -1
  29. package/build/src/assets/wallet.js.map +1 -1
  30. package/build/src/assets/wave.js +41 -1
  31. package/build/src/assets/wave.js.map +1 -1
  32. package/build/src/components/Common/Alert/index.js +4 -1
  33. package/build/src/components/Common/Alert/index.js.map +1 -1
  34. package/build/src/components/Common/Alert/styles.js +4 -4
  35. package/build/src/components/Common/Alert/styles.js.map +1 -1
  36. package/build/src/components/Common/AmountInput/AmountInputField.js +29 -18
  37. package/build/src/components/Common/AmountInput/AmountInputField.js.map +1 -1
  38. package/build/src/components/Common/AmountInput/index.js +112 -99
  39. package/build/src/components/Common/AmountInput/index.js.map +1 -1
  40. package/build/src/components/Common/Avatar/index.js +63 -51
  41. package/build/src/components/Common/Avatar/index.js.map +1 -1
  42. package/build/src/components/Common/Avatar/styles.js +9 -14
  43. package/build/src/components/Common/Avatar/styles.js.map +1 -1
  44. package/build/src/components/Common/BrowserIcon/index.js +15 -14
  45. package/build/src/components/Common/BrowserIcon/index.js.map +1 -1
  46. package/build/src/components/Common/BrowserIcon/styles.js +1 -1
  47. package/build/src/components/Common/BrowserIcon/styles.js.map +1 -1
  48. package/build/src/components/Common/Button/index.js +131 -25
  49. package/build/src/components/Common/Button/index.js.map +1 -1
  50. package/build/src/components/Common/Button/styles.js +20 -24
  51. package/build/src/components/Common/Button/styles.js.map +1 -1
  52. package/build/src/components/Common/Chain/index.js +130 -14
  53. package/build/src/components/Common/Chain/index.js.map +1 -1
  54. package/build/src/components/Common/Chain/styles.js +9 -13
  55. package/build/src/components/Common/Chain/styles.js.map +1 -1
  56. package/build/src/components/Common/ChainSelectList/index.js +232 -89
  57. package/build/src/components/Common/ChainSelectList/index.js.map +1 -1
  58. package/build/src/components/Common/ChainSelectList/styles.js +11 -13
  59. package/build/src/components/Common/ChainSelectList/styles.js.map +1 -1
  60. package/build/src/components/Common/CircleTimer.js +85 -41
  61. package/build/src/components/Common/CircleTimer.js.map +1 -1
  62. package/build/src/components/Common/ConnectorList/index.js +106 -80
  63. package/build/src/components/Common/ConnectorList/index.js.map +1 -1
  64. package/build/src/components/Common/ConnectorList/styles.js +28 -36
  65. package/build/src/components/Common/ConnectorList/styles.js.map +1 -1
  66. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +16 -9
  67. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +1 -1
  68. package/build/src/components/Common/CopyToClipboard/index.js +3 -5
  69. package/build/src/components/Common/CopyToClipboard/index.js.map +1 -1
  70. package/build/src/components/Common/CustomQRCode/QRCode.js +120 -57
  71. package/build/src/components/Common/CustomQRCode/QRCode.js.map +1 -1
  72. package/build/src/components/Common/CustomQRCode/index.js +60 -10
  73. package/build/src/components/Common/CustomQRCode/index.js.map +1 -1
  74. package/build/src/components/Common/CustomQRCode/styles.js +6 -6
  75. package/build/src/components/Common/CustomQRCode/styles.js.map +1 -1
  76. package/build/src/components/Common/FitText/index.js +24 -17
  77. package/build/src/components/Common/FitText/index.js.map +1 -1
  78. package/build/src/components/Common/Modal/index.js +481 -267
  79. package/build/src/components/Common/Modal/index.js.map +1 -1
  80. package/build/src/components/Common/Modal/styles.js +44 -48
  81. package/build/src/components/Common/Modal/styles.js.map +1 -1
  82. package/build/src/components/Common/OptionsList/index.js +75 -33
  83. package/build/src/components/Common/OptionsList/index.js.map +1 -1
  84. package/build/src/components/Common/OptionsList/styles.js +7 -8
  85. package/build/src/components/Common/OptionsList/styles.js.map +1 -1
  86. package/build/src/components/Common/OrderHeader/index.js +109 -65
  87. package/build/src/components/Common/OrderHeader/index.js.map +1 -1
  88. package/build/src/components/Common/PaymentBreakdown/index.js +29 -7
  89. package/build/src/components/Common/PaymentBreakdown/index.js.map +1 -1
  90. package/build/src/components/Common/Portal/index.js +21 -22
  91. package/build/src/components/Common/Portal/index.js.map +1 -1
  92. package/build/src/components/Common/PoweredByFooter/index.js +39 -21
  93. package/build/src/components/Common/PoweredByFooter/index.js.map +1 -1
  94. package/build/src/components/Common/ScrollArea/index.js +107 -52
  95. package/build/src/components/Common/ScrollArea/index.js.map +1 -1
  96. package/build/src/components/Common/ScrollArea/styles.js +7 -11
  97. package/build/src/components/Common/ScrollArea/styles.js.map +1 -1
  98. package/build/src/components/Common/SelectAnotherMethodButton/index.js +67 -55
  99. package/build/src/components/Common/SelectAnotherMethodButton/index.js.map +1 -1
  100. package/build/src/components/Common/Spinner/index.js +56 -16
  101. package/build/src/components/Common/Spinner/index.js.map +1 -1
  102. package/build/src/components/Common/Spinner/styles.js +2 -2
  103. package/build/src/components/Common/Spinner/styles.js.map +1 -1
  104. package/build/src/components/Common/SwitchButton/index.js +18 -15
  105. package/build/src/components/Common/SwitchButton/index.js.map +1 -1
  106. package/build/src/components/Common/ThemedButton/index.js +37 -16
  107. package/build/src/components/Common/ThemedButton/index.js.map +1 -1
  108. package/build/src/components/Common/ThemedButton/styles.js +2 -2
  109. package/build/src/components/Common/ThemedButton/styles.js.map +1 -1
  110. package/build/src/components/Common/TokenChainLogo/index.js +14 -8
  111. package/build/src/components/Common/TokenChainLogo/index.js.map +1 -1
  112. package/build/src/components/Common/Tooltip/index.js +115 -83
  113. package/build/src/components/Common/Tooltip/index.js.map +1 -1
  114. package/build/src/components/Common/Tooltip/styles.js +8 -8
  115. package/build/src/components/Common/Tooltip/styles.js.map +1 -1
  116. package/build/src/components/Common/WalletChainLogo/index.js +13 -6
  117. package/build/src/components/Common/WalletChainLogo/index.js.map +1 -1
  118. package/build/src/components/DaimoPayButton/index.js +170 -176
  119. package/build/src/components/DaimoPayButton/index.js.map +1 -1
  120. package/build/src/components/DaimoPayButton/styles.js +4 -4
  121. package/build/src/components/DaimoPayButton/styles.js.map +1 -1
  122. package/build/src/components/DaimoPayModal/ConnectUsing.js +50 -24
  123. package/build/src/components/DaimoPayModal/ConnectUsing.js.map +1 -1
  124. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js +303 -163
  125. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +1 -1
  126. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js +10 -12
  127. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +1 -1
  128. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +69 -39
  129. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -1
  130. package/build/src/components/DaimoPayModal/index.js +409 -416
  131. package/build/src/components/DaimoPayModal/index.js.map +1 -1
  132. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +15 -11
  133. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +1 -1
  134. package/build/src/components/Pages/About/graphics.js +796 -130
  135. package/build/src/components/Pages/About/graphics.js.map +1 -1
  136. package/build/src/components/Pages/About/index.js +203 -110
  137. package/build/src/components/Pages/About/index.js.map +1 -1
  138. package/build/src/components/Pages/About/styles.js +11 -15
  139. package/build/src/components/Pages/About/styles.js.map +1 -1
  140. package/build/src/components/Pages/Confirmation/index.js +72 -41
  141. package/build/src/components/Pages/Confirmation/index.js.map +1 -1
  142. package/build/src/components/Pages/Connectors/index.js +50 -16
  143. package/build/src/components/Pages/Connectors/index.js.map +1 -1
  144. package/build/src/components/Pages/Connectors/styles.js +10 -10
  145. package/build/src/components/Pages/Connectors/styles.js.map +1 -1
  146. package/build/src/components/Pages/DownloadApp/index.js +23 -18
  147. package/build/src/components/Pages/DownloadApp/index.js.map +1 -1
  148. package/build/src/components/Pages/Error/index.js +27 -15
  149. package/build/src/components/Pages/Error/index.js.map +1 -1
  150. package/build/src/components/Pages/MobileConnectors/index.js +50 -44
  151. package/build/src/components/Pages/MobileConnectors/index.js.map +1 -1
  152. package/build/src/components/Pages/MobileConnectors/styles.js +9 -11
  153. package/build/src/components/Pages/MobileConnectors/styles.js.map +1 -1
  154. package/build/src/components/Pages/Onboarding/index.js +20 -4
  155. package/build/src/components/Pages/Onboarding/index.js.map +1 -1
  156. package/build/src/components/Pages/Onboarding/styles.js +13 -13
  157. package/build/src/components/Pages/Onboarding/styles.js.map +1 -1
  158. package/build/src/components/Pages/PayWithToken/index.js +133 -122
  159. package/build/src/components/Pages/PayWithToken/index.js.map +1 -1
  160. package/build/src/components/Pages/SelectAmount/index.js +12 -5
  161. package/build/src/components/Pages/SelectAmount/index.js.map +1 -1
  162. package/build/src/components/Pages/SelectDepositAddressAmount/index.js +56 -38
  163. package/build/src/components/Pages/SelectDepositAddressAmount/index.js.map +1 -1
  164. package/build/src/components/Pages/SelectDepositAddressChain/index.js +57 -40
  165. package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -1
  166. package/build/src/components/Pages/SelectExchange/index.js +29 -24
  167. package/build/src/components/Pages/SelectExchange/index.js.map +1 -1
  168. package/build/src/components/Pages/SelectExternalAmount/index.js +57 -41
  169. package/build/src/components/Pages/SelectExternalAmount/index.js.map +1 -1
  170. package/build/src/components/Pages/SelectMethod/index.js +201 -183
  171. package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
  172. package/build/src/components/Pages/SelectToken/index.js +72 -46
  173. package/build/src/components/Pages/SelectToken/index.js.map +1 -1
  174. package/build/src/components/Pages/SelectWalletAmount/index.js +40 -32
  175. package/build/src/components/Pages/SelectWalletAmount/index.js.map +1 -1
  176. package/build/src/components/Pages/SelectWalletChain/index.js +40 -36
  177. package/build/src/components/Pages/SelectWalletChain/index.js.map +1 -1
  178. package/build/src/components/Pages/SelectZKP/index.js +29 -24
  179. package/build/src/components/Pages/SelectZKP/index.js.map +1 -1
  180. package/build/src/components/Pages/Solana/ConnectorSolana/index.js +60 -45
  181. package/build/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -1
  182. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +73 -61
  183. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -1
  184. package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js +12 -5
  185. package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +1 -1
  186. package/build/src/components/Pages/SwitchNetworks/index.js +29 -10
  187. package/build/src/components/Pages/SwitchNetworks/index.js.map +1 -1
  188. package/build/src/components/Pages/WaitingDepositAddress/index.js +339 -178
  189. package/build/src/components/Pages/WaitingDepositAddress/index.js.map +1 -1
  190. package/build/src/components/Pages/WaitingExternal/index.js +69 -46
  191. package/build/src/components/Pages/WaitingExternal/index.js.map +1 -1
  192. package/build/src/components/Pages/WaitingWallet/index.js +37 -16
  193. package/build/src/components/Pages/WaitingWallet/index.js.map +1 -1
  194. package/build/src/components/Spinners/CircleSpinner/index.js +96 -7
  195. package/build/src/components/Spinners/CircleSpinner/index.js.map +1 -1
  196. package/build/src/components/Spinners/CircleSpinner/styles.js +6 -7
  197. package/build/src/components/Spinners/CircleSpinner/styles.js.map +1 -1
  198. package/build/src/components/Spinners/ExternalPaymentSpinner/index.js +18 -9
  199. package/build/src/components/Spinners/ExternalPaymentSpinner/index.js.map +1 -1
  200. package/build/src/components/Spinners/SquircleSpinner/index.js +60 -7
  201. package/build/src/components/Spinners/SquircleSpinner/index.js.map +1 -1
  202. package/build/src/components/Spinners/SquircleSpinner/styles.js +4 -4
  203. package/build/src/components/Spinners/SquircleSpinner/styles.js.map +1 -1
  204. package/build/src/components/Spinners/TokenLogoSpinner/index.js +12 -1
  205. package/build/src/components/Spinners/TokenLogoSpinner/index.js.map +1 -1
  206. package/build/src/components/Spinners/TokenLogoSpinner/styles.js +1 -1
  207. package/build/src/components/Spinners/TokenLogoSpinner/styles.js.map +1 -1
  208. package/build/src/components/Spinners/WalletPaymentSpinner/index.js +27 -20
  209. package/build/src/components/Spinners/WalletPaymentSpinner/index.js.map +1 -1
  210. package/build/src/components/Spinners/styles.js +3 -4
  211. package/build/src/components/Spinners/styles.js.map +1 -1
  212. package/build/src/constants/defaultTheme.js +1 -1
  213. package/build/src/constants/defaultTheme.js.map +1 -1
  214. package/build/src/constants/routes.js +29 -30
  215. package/build/src/constants/routes.js.map +1 -1
  216. package/build/src/defaultConfig.js +49 -46
  217. package/build/src/defaultConfig.js.map +1 -1
  218. package/build/src/defaultConnectors.js +32 -19
  219. package/build/src/defaultConnectors.js.map +1 -1
  220. package/build/src/hooks/useChainIsSupported.js +3 -5
  221. package/build/src/hooks/useChainIsSupported.js.map +1 -1
  222. package/build/src/hooks/useChains.js +3 -4
  223. package/build/src/hooks/useChains.js.map +1 -1
  224. package/build/src/hooks/useConnect.js +51 -39
  225. package/build/src/hooks/useConnect.js.map +1 -1
  226. package/build/src/hooks/useConnectCallback.js +15 -12
  227. package/build/src/hooks/useConnectCallback.js.map +1 -1
  228. package/build/src/hooks/useConnectors.js +2 -2
  229. package/build/src/hooks/useConnectors.js.map +1 -1
  230. package/build/src/hooks/useDaimoPay.js +98 -82
  231. package/build/src/hooks/useDaimoPay.js.map +1 -1
  232. package/build/src/hooks/useDaimoPayStatus.js +4 -15
  233. package/build/src/hooks/useDaimoPayStatus.js.map +1 -1
  234. package/build/src/hooks/useDaimoPayUI.js +7 -7
  235. package/build/src/hooks/useDaimoPayUI.js.map +1 -1
  236. package/build/src/hooks/useDepositAddressOptions.js +29 -25
  237. package/build/src/hooks/useDepositAddressOptions.js.map +1 -1
  238. package/build/src/hooks/useEnsFallbackConfig.js +5 -5
  239. package/build/src/hooks/useEnsFallbackConfig.js.map +1 -1
  240. package/build/src/hooks/useExternalPaymentOptions.js +57 -52
  241. package/build/src/hooks/useExternalPaymentOptions.js.map +1 -1
  242. package/build/src/hooks/useFitText.js +120 -135
  243. package/build/src/hooks/useFitText.js.map +1 -1
  244. package/build/src/hooks/useFocusTrap.js +33 -37
  245. package/build/src/hooks/useFocusTrap.js.map +1 -1
  246. package/build/src/hooks/useIsMobile.js +3 -3
  247. package/build/src/hooks/useIsMobile.js.map +1 -1
  248. package/build/src/hooks/useIsMounted.js +3 -5
  249. package/build/src/hooks/useIsMounted.js.map +1 -1
  250. package/build/src/hooks/useLastConnector.js +15 -15
  251. package/build/src/hooks/useLastConnector.js.map +1 -1
  252. package/build/src/hooks/useLocales.js +44 -42
  253. package/build/src/hooks/useLocales.js.map +1 -1
  254. package/build/src/hooks/useLockBodyScroll.js +38 -44
  255. package/build/src/hooks/useLockBodyScroll.js.map +1 -1
  256. package/build/src/hooks/useOrderUsdLimits.js +17 -19
  257. package/build/src/hooks/useOrderUsdLimits.js.map +1 -1
  258. package/build/src/hooks/usePayContext.js +3 -5
  259. package/build/src/hooks/usePayContext.js.map +1 -1
  260. package/build/src/hooks/usePaymentState.js +351 -321
  261. package/build/src/hooks/usePaymentState.js.map +1 -1
  262. package/build/src/hooks/usePrevious.js +6 -7
  263. package/build/src/hooks/usePrevious.js.map +1 -1
  264. package/build/src/hooks/useSolanaPaymentOptions.js +33 -33
  265. package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -1
  266. package/build/src/hooks/useTokenOptions.js +131 -95
  267. package/build/src/hooks/useTokenOptions.js.map +1 -1
  268. package/build/src/hooks/useUntronAvailability.js +26 -34
  269. package/build/src/hooks/useUntronAvailability.js.map +1 -1
  270. package/build/src/hooks/useWalletPaymentOptions.js +86 -61
  271. package/build/src/hooks/useWalletPaymentOptions.js.map +1 -1
  272. package/build/src/hooks/useWindowSize.js +16 -16
  273. package/build/src/hooks/useWindowSize.js.map +1 -1
  274. package/build/src/localizations/index.js +28 -31
  275. package/build/src/localizations/index.js.map +1 -1
  276. package/build/src/localizations/locales/ar-AE.js +88 -88
  277. package/build/src/localizations/locales/ar-AE.js.map +1 -1
  278. package/build/src/localizations/locales/ca-AD.js +88 -88
  279. package/build/src/localizations/locales/ca-AD.js.map +1 -1
  280. package/build/src/localizations/locales/ee-EE.js +96 -88
  281. package/build/src/localizations/locales/ee-EE.js.map +1 -1
  282. package/build/src/localizations/locales/en-US.js +134 -124
  283. package/build/src/localizations/locales/en-US.js.map +1 -1
  284. package/build/src/localizations/locales/es-ES.js +126 -124
  285. package/build/src/localizations/locales/es-ES.js.map +1 -1
  286. package/build/src/localizations/locales/fa-IR.js +88 -88
  287. package/build/src/localizations/locales/fa-IR.js.map +1 -1
  288. package/build/src/localizations/locales/fr-FR.js +88 -88
  289. package/build/src/localizations/locales/fr-FR.js.map +1 -1
  290. package/build/src/localizations/locales/ja-JP.js +88 -88
  291. package/build/src/localizations/locales/ja-JP.js.map +1 -1
  292. package/build/src/localizations/locales/pt-BR.js +96 -88
  293. package/build/src/localizations/locales/pt-BR.js.map +1 -1
  294. package/build/src/localizations/locales/ru-RU.js +92 -88
  295. package/build/src/localizations/locales/ru-RU.js.map +1 -1
  296. package/build/src/localizations/locales/tr-TR.js +96 -88
  297. package/build/src/localizations/locales/tr-TR.js.map +1 -1
  298. package/build/src/localizations/locales/vi-VN.js +96 -88
  299. package/build/src/localizations/locales/vi-VN.js.map +1 -1
  300. package/build/src/localizations/locales/zh-CN.js +88 -88
  301. package/build/src/localizations/locales/zh-CN.js.map +1 -1
  302. package/build/src/payment/paymentEffects.js +237 -264
  303. package/build/src/payment/paymentEffects.js.map +1 -1
  304. package/build/src/payment/paymentFsm.js +167 -187
  305. package/build/src/payment/paymentFsm.js.map +1 -1
  306. package/build/src/payment/paymentStore.js +8 -10
  307. package/build/src/payment/paymentStore.js.map +1 -1
  308. package/build/src/payment/paymentUtils.js +10 -0
  309. package/build/src/payment/paymentUtils.js.map +1 -0
  310. package/build/src/provider/DaimoPayProvider.js +258 -245
  311. package/build/src/provider/DaimoPayProvider.js.map +1 -1
  312. package/build/src/provider/PayContext.js +0 -1
  313. package/build/src/provider/PayContext.js.map +1 -1
  314. package/build/src/provider/PaymentProvider.js +18 -17
  315. package/build/src/provider/PaymentProvider.js.map +1 -1
  316. package/build/src/provider/SolanaContextProvider.js +6 -3
  317. package/build/src/provider/SolanaContextProvider.js.map +1 -1
  318. package/build/src/provider/Web3ContextProvider.js +23 -23
  319. package/build/src/provider/Web3ContextProvider.js.map +1 -1
  320. package/build/src/stateStore.js +28 -74
  321. package/build/src/stateStore.js.map +1 -1
  322. package/build/src/styles/defaultTheme.js +64 -73
  323. package/build/src/styles/defaultTheme.js.map +1 -1
  324. package/build/src/styles/index.js +202 -217
  325. package/build/src/styles/index.js.map +1 -1
  326. package/build/src/styles/styled/index.js +0 -10
  327. package/build/src/styles/styled/index.js.map +1 -1
  328. package/build/src/styles/themes/base.js +136 -136
  329. package/build/src/styles/themes/base.js.map +1 -1
  330. package/build/src/styles/themes/index.js.map +1 -1
  331. package/build/src/styles/themes/midnight.js +71 -71
  332. package/build/src/styles/themes/midnight.js.map +1 -1
  333. package/build/src/styles/themes/minimal.js +75 -75
  334. package/build/src/styles/themes/minimal.js.map +1 -1
  335. package/build/src/styles/themes/nouns.js +76 -76
  336. package/build/src/styles/themes/nouns.js.map +1 -1
  337. package/build/src/styles/themes/retro.js +88 -88
  338. package/build/src/styles/themes/retro.js.map +1 -1
  339. package/build/src/styles/themes/rounded.js +84 -84
  340. package/build/src/styles/themes/rounded.js.map +1 -1
  341. package/build/src/styles/themes/soft.js +66 -66
  342. package/build/src/styles/themes/soft.js.map +1 -1
  343. package/build/src/styles/themes/web95.js +95 -95
  344. package/build/src/styles/themes/web95.js.map +1 -1
  345. package/build/src/utils/exports.js +0 -1
  346. package/build/src/utils/exports.js.map +1 -1
  347. package/build/src/utils/format.js +25 -63
  348. package/build/src/utils/format.js.map +1 -1
  349. package/build/src/utils/index.js +23 -20
  350. package/build/src/utils/index.js.map +1 -1
  351. package/build/src/utils/p3.js +8 -9
  352. package/build/src/utils/p3.js.map +1 -1
  353. package/build/src/utils/platform.js +6 -8
  354. package/build/src/utils/platform.js.map +1 -1
  355. package/build/src/utils/polling.js +31 -31
  356. package/build/src/utils/polling.js.map +1 -1
  357. package/build/src/utils/supportUrl.js +9 -9
  358. package/build/src/utils/supportUrl.js.map +1 -1
  359. package/build/src/utils/trpc.js +11 -11
  360. package/build/src/utils/trpc.js.map +1 -1
  361. package/build/src/utils/validateInput.js +9 -29
  362. package/build/src/utils/validateInput.js.map +1 -1
  363. package/build/src/wallets/index.js +13 -22
  364. package/build/src/wallets/index.js.map +1 -1
  365. package/build/src/wallets/useWallets.js +183 -181
  366. package/build/src/wallets/useWallets.js.map +1 -1
  367. package/build/src/wallets/walletConfigs.js +230 -235
  368. package/build/src/wallets/walletConfigs.js.map +1 -1
  369. package/build/src/world-mini-app/WorldPayButton.js +113 -118
  370. package/build/src/world-mini-app/WorldPayButton.js.map +1 -1
  371. package/build/src/world-mini-app/promptWorldPayment.js +49 -47
  372. package/build/src/world-mini-app/promptWorldPayment.js.map +1 -1
  373. package/build/types-7ed033b6.d.ts +66 -0
  374. package/build/world.d.ts +89 -1
  375. package/package.json +6 -4
@@ -1 +1 @@
1
- {"version":3,"file":"usePaymentState.js","sources":["../../../src/hooks/usePaymentState.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePaymentState.js","sources":["../../../src/hooks/usePaymentState.ts"],"sourcesContent":["import {\n assert,\n assertNotNull,\n DaimoPayHydratedOrderWithOrg,\n debugJson,\n DepositAddressPaymentOptionData,\n DepositAddressPaymentOptionMetadata,\n DepositAddressPaymentOptions,\n ethereum,\n ExternalPaymentOptionMetadata,\n ExternalPaymentOptions,\n getOrderDestChainId,\n isCCTPV1Chain,\n PlatformType,\n readDaimoPayOrderID,\n SolanaPublicKey,\n WalletPaymentOption,\n writeDaimoPayOrderID,\n} from \"@daimo/pay-common\";\nimport { useConnection, useWallet } from \"@solana/wallet-adapter-react\";\nimport { VersionedTransaction } from \"@solana/web3.js\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport {\n erc20Abi,\n getAddress,\n Hex,\n hexToBytes,\n isHex,\n zeroAddress,\n} from \"viem\";\nimport {\n useAccount,\n useEnsName,\n useSendTransaction,\n useWriteContract,\n} from \"wagmi\";\n\nimport { PayButtonPaymentProps } from \"../components/DaimoPayButton\";\nimport { ROUTES } from \"../constants/routes\";\nimport { PayParams } from \"../payment/paymentFsm\";\nimport { detectPlatform } from \"../utils/platform\";\nimport { TrpcClient } from \"../utils/trpc\";\nimport { WalletConfigProps } from \"../wallets/walletConfigs\";\nimport { useDaimoPay } from \"./useDaimoPay\";\nimport { useDepositAddressOptions } from \"./useDepositAddressOptions\";\nimport { useExternalPaymentOptions } from \"./useExternalPaymentOptions\";\nimport useIsMobile from \"./useIsMobile\";\nimport { useOrderUsdLimits } from \"./useOrderUsdLimits\";\nimport { useSolanaPaymentOptions } from \"./useSolanaPaymentOptions\";\nimport { useUntronAvailability } from \"./useUntronAvailability\";\nimport { useWalletPaymentOptions } from \"./useWalletPaymentOptions\";\n\n/** Wallet payment details, sent to processSourcePayment after submitting tx. */\nexport type SourcePayment = Parameters<\n TrpcClient[\"processSourcePayment\"][\"mutate\"]\n>[0];\n\n/** Creates (or loads) a payment and manages the corresponding modal. */\nexport interface PaymentState {\n generatePreviewOrder: () => void;\n resetOrder: (payParams?: Partial<PayParams>) => Promise<void>;\n\n /// DaimoPayButton props\n buttonProps: PayButtonPaymentProps | undefined;\n setButtonProps: (props: PayButtonPaymentProps | undefined) => void;\n\n /// Pay ID for loading an existing order\n setPayId: (id: string | undefined) => void;\n /// Pay params for creating an order on the fly,\n setPayParams: (payParams: PayParams | undefined) => Promise<void>;\n\n /// True if the user is entering an amount (deposit) vs preset (checkout).\n isDepositFlow: boolean;\n paymentWaitingMessage: string | undefined;\n /// External payment options, loaded from server and filtered by EITHER\n /// 1. the DaimoPayButton paymentOptions, or 2. those of daimoPayOrder\n externalPaymentOptions: ReturnType<typeof useExternalPaymentOptions>;\n selectedWallet: WalletConfigProps | undefined;\n selectedWalletDeepLink: string | undefined;\n showSolanaPaymentMethod: boolean;\n walletPaymentOptions: ReturnType<typeof useWalletPaymentOptions>;\n solanaPaymentOptions: ReturnType<typeof useSolanaPaymentOptions>;\n depositAddressOptions: ReturnType<typeof useDepositAddressOptions>;\n /** Whether Untron receivers are currently available. `null` when unknown. */\n untronAvailable: boolean | null;\n selectedExternalOption: ExternalPaymentOptionMetadata | undefined;\n selectedTokenOption: WalletPaymentOption | undefined;\n selectedSolanaTokenOption: WalletPaymentOption | undefined;\n selectedDepositAddressOption: DepositAddressPaymentOptionMetadata | undefined;\n getOrderUsdLimit: () => number;\n setPaymentWaitingMessage: (message: string | undefined) => void;\n tokenMode: \"evm\" | \"solana\" | \"all\";\n setTokenMode: (mode: \"evm\" | \"solana\" | \"all\") => void;\n setSelectedWallet: (wallet: WalletConfigProps | undefined) => void;\n setSelectedWalletDeepLink: (deepLink: string | undefined) => void;\n setSelectedExternalOption: (\n option: ExternalPaymentOptionMetadata | undefined,\n ) => void;\n setSelectedTokenOption: (option: WalletPaymentOption | undefined) => void;\n setSelectedSolanaTokenOption: (\n option: WalletPaymentOption | undefined,\n ) => void;\n setSelectedDepositAddressOption: (\n option: DepositAddressPaymentOptionMetadata | undefined,\n ) => void;\n setChosenUsd: (usd: number) => void;\n payWithToken: (\n walletOption: WalletPaymentOption,\n ) => Promise<{ txHash?: Hex; success: boolean }>;\n payWithExternal: (option: ExternalPaymentOptions) => Promise<string>;\n payWithDepositAddress: (\n option: DepositAddressPaymentOptions,\n ) => Promise<DepositAddressPaymentOptionData | null>;\n payWithSolanaToken: (\n inputToken: SolanaPublicKey,\n ) => Promise<{ txHash: string; success: boolean }>;\n openInWalletBrowser: (wallet: WalletConfigProps, amountUsd?: number) => void;\n senderEnsName: string | undefined;\n}\n\nexport function usePaymentState({\n trpc,\n lockPayParams,\n setRoute,\n log,\n redirectReturnUrl,\n}: {\n trpc: TrpcClient;\n lockPayParams: boolean;\n setRoute: (route: ROUTES, data?: Record<string, any>) => void;\n log: (...args: any[]) => void;\n redirectReturnUrl?: string;\n}): PaymentState {\n const pay = useDaimoPay();\n\n // Browser state.\n const [platform, setPlatform] = useState<PlatformType>();\n useEffect(() => {\n setPlatform(detectPlatform(window.navigator.userAgent));\n }, []);\n\n // Wallet state.\n const { address: ethWalletAddress } = useAccount();\n const { data: senderEnsName } = useEnsName({\n chainId: ethereum.chainId,\n address: ethWalletAddress,\n });\n const { sendTransactionAsync } = useSendTransaction();\n const { writeContractAsync } = useWriteContract();\n\n // Solana wallet state.\n const solanaWallet = useWallet();\n const { connection } = useConnection();\n const solanaPubKey = solanaWallet.publicKey?.toBase58();\n\n // Solana bridging is only supported on CCTPv1 chains.\n const destChainId = pay.order == null ? null : getOrderDestChainId(pay.order);\n const showSolanaPaymentMethod =\n destChainId != null && isCCTPV1Chain(destChainId);\n\n // From DaimoPayButton props\n const [buttonProps, setButtonProps] = useState<PayButtonPaymentProps>();\n const [currPayParams, setCurrPayParams] = useState<PayParams>();\n\n const [paymentWaitingMessage, setPaymentWaitingMessage] = useState<string>();\n const [isDepositFlow, setIsDepositFlow] = useState<boolean>(false);\n\n // UI state. Selection for external payment (Binance, etc) vs wallet payment.\n const externalPaymentOptions = useExternalPaymentOptions({\n trpc,\n // allow <DaimoPayButton payId={...} paymentOptions={override} />\n filterIds:\n buttonProps?.paymentOptions ?? pay.order?.metadata.payer?.paymentOptions,\n platform,\n usdRequired: pay.order?.destFinalCallTokenAmount.usd,\n mode: pay.order?.mode,\n });\n const walletPaymentOptions = useWalletPaymentOptions({\n trpc,\n address: ethWalletAddress,\n usdRequired: pay.order?.destFinalCallTokenAmount.usd,\n destChainId: pay.order?.destFinalCallTokenAmount.token.chainId,\n destAddress: pay.order?.destFinalCall.to,\n preferredChains: pay.order?.metadata.payer?.preferredChains,\n preferredTokens: pay.order?.metadata.payer?.preferredTokens,\n evmChains: pay.order?.metadata.payer?.evmChains,\n passthroughTokens: pay.order?.metadata.payer?.passthroughTokens,\n isDepositFlow,\n log,\n });\n const solanaPaymentOptions = useSolanaPaymentOptions({\n trpc,\n address: solanaPubKey,\n usdRequired: pay.order?.destFinalCallTokenAmount.usd,\n isDepositFlow,\n showSolanaPaymentMethod,\n });\n const depositAddressOptions = useDepositAddressOptions({\n trpc,\n usdRequired: pay.order?.destFinalCallTokenAmount.usd,\n mode: pay.order?.mode,\n });\n\n // Poll for Untron receiver availability so components can disable unsupported chains promptly.\n const { available: untronAvailable } = useUntronAvailability({ trpc });\n\n const chainOrderUsdLimits = useOrderUsdLimits({ trpc });\n\n const [selectedExternalOption, setSelectedExternalOption] =\n useState<ExternalPaymentOptionMetadata>();\n\n const [selectedTokenOption, setSelectedTokenOption] =\n useState<WalletPaymentOption>();\n\n const [selectedSolanaTokenOption, setSelectedSolanaTokenOption] =\n useState<WalletPaymentOption>();\n\n const [selectedDepositAddressOption, setSelectedDepositAddressOption] =\n useState<DepositAddressPaymentOptionMetadata>();\n\n const [selectedWallet, setSelectedWallet] = useState<WalletConfigProps>();\n const [selectedWalletDeepLink, setSelectedWalletDeepLink] =\n useState<string>();\n\n const getOrderUsdLimit = () => {\n const DEFAULT_USD_LIMIT = 20000;\n if (pay.order == null || chainOrderUsdLimits.loading) {\n return DEFAULT_USD_LIMIT;\n }\n const destChainId = pay.order.destFinalCallTokenAmount.token.chainId;\n return destChainId in chainOrderUsdLimits.limits\n ? chainOrderUsdLimits.limits[destChainId]\n : DEFAULT_USD_LIMIT;\n };\n\n /** Commit to a token + amount = initiate payment. */\n const payWithToken = async (\n walletOption: WalletPaymentOption,\n ): Promise<{ txHash?: Hex; success: boolean }> => {\n assert(\n ethWalletAddress != null,\n `[PAY TOKEN] null ethWalletAddress when paying on ethereum`,\n );\n assert(\n pay.paymentState === \"preview\" ||\n pay.paymentState === \"unhydrated\" ||\n pay.paymentState === \"payment_unpaid\",\n `[PAY TOKEN] paymentState is ${pay.paymentState}, must be preview or unhydrated or payment_unpaid`,\n );\n\n let hydratedOrder: DaimoPayHydratedOrderWithOrg;\n const { required, fees } = walletOption;\n const paymentAmount = BigInt(required.amount) + BigInt(fees.amount);\n if (pay.paymentState !== \"payment_unpaid\") {\n assert(\n required.token.token === fees.token.token,\n `[PAY TOKEN] required token ${debugJson(required)} does not match fees token ${debugJson(fees)}`,\n );\n\n // Will refund to ethWalletAddress if refundAddress was not set in payParams\n const res = await pay.hydrateOrder(ethWalletAddress);\n hydratedOrder = res.order;\n\n log(\n `[PAY TOKEN] hydrated order: ${debugJson(\n hydratedOrder,\n )}, paying ${paymentAmount} of token ${required.token.token}`,\n );\n } else {\n hydratedOrder = pay.order;\n }\n\n const paymentTxHash = await (async () => {\n const dest = walletOption.passthroughAddress ?? hydratedOrder.intentAddr;\n try {\n if (required.token.token === zeroAddress) {\n return await sendTransactionAsync({\n to: dest,\n value: paymentAmount,\n });\n } else {\n return await writeContractAsync({\n abi: erc20Abi,\n address: getAddress(required.token.token),\n functionName: \"transfer\",\n args: [dest, paymentAmount],\n });\n }\n } catch (e) {\n console.error(`[PAY TOKEN] error sending token: ${e}`);\n throw e;\n }\n })();\n\n // Special case. Handle Rabby bug, where it returns the *Safe signature*\n // instead of a txHash for a queued, unsubmitted Safe transaction.\n if (!isHex(paymentTxHash) || paymentTxHash.length !== 66) {\n log(\n `[PAY TOKEN] wallet bug detected. ignoring invalid payment txHash: ${paymentTxHash}`,\n );\n return { success: true };\n }\n\n try {\n await pay.payEthSource({\n paymentTxHash,\n sourceChainId: required.token.chainId,\n payerAddress: ethWalletAddress,\n sourceToken: getAddress(required.token.token),\n sourceAmount: paymentAmount,\n });\n return { txHash: paymentTxHash, success: true };\n } catch {\n console.error(\n `[PAY TOKEN] could not verify payment tx on chain: ${paymentTxHash}`,\n );\n return { txHash: paymentTxHash, success: false };\n }\n };\n\n const payWithSolanaToken = async (\n inputToken: SolanaPublicKey,\n ): Promise<{ txHash: string; success: boolean }> => {\n const payerPublicKey = solanaWallet.publicKey;\n assert(\n payerPublicKey != null,\n \"[PAY SOLANA] null payerPublicKey when paying on solana\",\n );\n assert(\n pay.order?.id != null,\n \"[PAY SOLANA] null orderId when paying on solana\",\n );\n assert(\n pay.paymentState === \"preview\" ||\n pay.paymentState === \"unhydrated\" ||\n pay.paymentState === \"payment_unpaid\",\n `[PAY SOLANA] paymentState is ${pay.paymentState}, must be preview or unhydrated or payment_unpaid`,\n );\n\n let hydratedOrder: DaimoPayHydratedOrderWithOrg;\n if (pay.paymentState !== \"payment_unpaid\") {\n const res = await pay.hydrateOrder();\n hydratedOrder = res.order;\n\n log(\n `[PAY SOLANA] Hydrated order: ${JSON.stringify(\n hydratedOrder,\n )}, checking out with Solana ${inputToken}`,\n );\n } else {\n hydratedOrder = pay.order;\n }\n\n const paymentTxHash = await (async () => {\n try {\n const serializedTx = await trpc.getSolanaSwapAndBurnTx.query({\n orderId: pay.order.id.toString(),\n userPublicKey: assertNotNull(\n payerPublicKey,\n \"[PAY SOLANA] wallet.publicKey cannot be null\",\n ).toString(),\n inputTokenMint: inputToken,\n });\n const tx = VersionedTransaction.deserialize(hexToBytes(serializedTx));\n const txHash = await solanaWallet.sendTransaction(tx, connection);\n return txHash;\n } catch (e) {\n console.error(e);\n throw e;\n }\n })();\n\n try {\n await pay.paySolanaSource({\n paymentTxHash: paymentTxHash,\n sourceToken: inputToken,\n });\n return { txHash: paymentTxHash, success: true };\n } catch {\n console.error(\n `[PAY SOLANA] could not verify payment tx on chain: ${paymentTxHash}`,\n );\n return { txHash: paymentTxHash, success: false };\n }\n };\n\n const payWithExternal = async (option: ExternalPaymentOptions) => {\n assert(pay.order != null, \"[PAY EXTERNAL] order cannot be null\");\n assert(platform != null, \"[PAY EXTERNAL] platform cannot be null\");\n\n const { order } = await pay.hydrateOrder();\n const externalPaymentOptionData =\n await trpc.getExternalPaymentOptionData.query({\n id: order.id.toString(),\n externalPaymentOption: option,\n platform,\n redirectReturnUrl,\n });\n assert(\n externalPaymentOptionData != null,\n \"[PAY EXTERNAL] missing externalPaymentOptionData\",\n );\n\n log(\n `[PAY EXTERNAL] hydrated order: ${debugJson(\n order,\n )}, checking out with external payment: ${option}`,\n );\n\n setPaymentWaitingMessage(externalPaymentOptionData.waitingMessage);\n\n return externalPaymentOptionData.url;\n };\n\n const payWithDepositAddress = async (\n option: DepositAddressPaymentOptions,\n ) => {\n const { order } = await pay.hydrateOrder();\n\n log(\n `[PAY DEPOSIT ADDRESS] hydrated order ${order.id} for ${order.usdValue} USD, checking out with deposit address: ${option}`,\n );\n\n const result = await trpc.getDepositAddressForOrder.query({\n orderId: order.id.toString(),\n option,\n });\n\n return \"error\" in result ? null : result;\n };\n\n const { isIOS } = useIsMobile();\n\n const openInWalletBrowser = (\n wallet: WalletConfigProps,\n amountUsd?: number,\n ) => {\n const paymentState = pay.paymentState;\n assert(\n paymentState === \"payment_unpaid\",\n `[OPEN IN WALLET BROWSER] paymentState is ${paymentState}, must be payment_unpaid`,\n );\n assert(\n wallet.getDaimoPayDeeplink != null,\n `openInWalletBrowser: missing deeplink for ${wallet.name}`,\n );\n\n const payId = writeDaimoPayOrderID(pay.order.id);\n const deeplink = wallet.getDaimoPayDeeplink(payId);\n // If we are in IOS, we don't open the deeplink in a new window, because it\n // will not work, the link will be opened in the page WAITING_WALLET\n if (!isIOS) {\n window.open(deeplink, \"_blank\");\n }\n setSelectedWallet(wallet);\n setSelectedWalletDeepLink(deeplink);\n setRoute(ROUTES.WAITING_WALLET, {\n amountUsd,\n payId,\n wallet_name: wallet.name,\n });\n };\n\n /** User picked a different deposit amount. */\n const setChosenUsd = (usd: number) => {\n assert(\n pay.paymentState === \"preview\",\n \"[SET CHOSEN USD] paymentState is not preview\",\n );\n\n // Too expensive to make an API call to regenerate preview order each time\n // the user changes the amount. Instead, we modify the order in memory.\n pay.setChosenUsd(usd);\n };\n\n const setPayId = useCallback(\n async (payId: string | undefined) => {\n if (lockPayParams || payId == null) return;\n const id = readDaimoPayOrderID(payId).toString();\n\n if (pay.order?.id && BigInt(id) == pay.order.id) {\n // Already loaded, ignore.\n return;\n }\n\n pay.reset();\n pay.setPayId(payId);\n },\n [lockPayParams, pay],\n );\n\n /** Called whenever params change. */\n const setPayParams = async (payParams: PayParams | undefined) => {\n if (lockPayParams) return;\n assert(payParams != null, \"[SET PAY PARAMS] payParams cannot be null\");\n\n log(\"[SET PAY PARAMS] setting payParams\", payParams);\n pay.reset();\n await pay.createPreviewOrder(payParams);\n setCurrPayParams(payParams);\n setIsDepositFlow(payParams.toUnits == null);\n };\n\n const generatePreviewOrder = async () => {\n pay.reset();\n if (currPayParams == null) return;\n await pay.createPreviewOrder(currPayParams);\n };\n\n const resetOrder = useCallback(\n async (payParams?: Partial<PayParams>) => {\n const mergedPayParams: PayParams | undefined =\n payParams != null && currPayParams != null\n ? { ...currPayParams, ...payParams }\n : currPayParams;\n\n // Clear the old order & state\n pay.reset();\n setSelectedExternalOption(undefined);\n setSelectedTokenOption(undefined);\n setSelectedSolanaTokenOption(undefined);\n setSelectedDepositAddressOption(undefined);\n setSelectedWallet(undefined);\n setSelectedWalletDeepLink(undefined);\n setPaymentWaitingMessage(undefined);\n\n // Set the new payParams\n if (mergedPayParams) {\n await pay.createPreviewOrder(mergedPayParams);\n setCurrPayParams(mergedPayParams);\n setIsDepositFlow(mergedPayParams.toUnits == null);\n }\n\n setRoute(ROUTES.SELECT_METHOD);\n },\n [setRoute, pay, currPayParams],\n );\n\n const [tokenMode, setTokenMode] = useState<\"evm\" | \"solana\" | \"all\">(\"evm\");\n\n return {\n buttonProps,\n setButtonProps,\n setPayId,\n setPayParams,\n tokenMode,\n setTokenMode,\n generatePreviewOrder,\n isDepositFlow,\n paymentWaitingMessage,\n selectedExternalOption,\n selectedTokenOption,\n selectedSolanaTokenOption,\n externalPaymentOptions,\n showSolanaPaymentMethod,\n selectedWallet,\n selectedWalletDeepLink,\n walletPaymentOptions,\n solanaPaymentOptions,\n depositAddressOptions,\n selectedDepositAddressOption,\n getOrderUsdLimit,\n resetOrder,\n setSelectedWallet,\n setSelectedWalletDeepLink,\n setPaymentWaitingMessage,\n setSelectedExternalOption,\n setSelectedTokenOption,\n setSelectedSolanaTokenOption,\n setSelectedDepositAddressOption,\n setChosenUsd,\n payWithToken,\n payWithExternal,\n payWithDepositAddress,\n payWithSolanaToken,\n openInWalletBrowser,\n senderEnsName: senderEnsName ?? undefined,\n untronAvailable,\n };\n}\n"],"names":["destChainId"],"mappings":"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"}
@@ -1,13 +1,12 @@
1
1
  import { useRef } from 'react';
2
2
 
3
3
  function usePrevious(value, initial) {
4
- const ref = useRef({ target: value, previous: initial });
5
- if (ref.current.target !== value) {
6
- // The value changed.
7
- ref.current.previous = ref.current.target;
8
- ref.current.target = value;
9
- }
10
- return ref.current.previous;
4
+ const ref = useRef({ target: value, previous: initial });
5
+ if (ref.current.target !== value) {
6
+ ref.current.previous = ref.current.target;
7
+ ref.current.target = value;
8
+ }
9
+ return ref.current.previous;
11
10
  }
12
11
 
13
12
  export { usePrevious as default };
@@ -1 +1 @@
1
- {"version":3,"file":"usePrevious.js","sources":["../../../src/hooks/usePrevious.tsx"],"sourcesContent":[null],"names":[],"mappings":";;AAEc,SAAU,WAAW,CAAC,KAAU,EAAE,OAAa,EAAA;AAC3D,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAEzD,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE;;QAEhC,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;AAC1C,QAAA,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;KAC5B;AAED,IAAA,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC9B;;;;"}
1
+ {"version":3,"file":"usePrevious.js","sources":["../../../src/hooks/usePrevious.tsx"],"sourcesContent":["import { useRef } from \"react\";\n\nexport default function usePrevious(value: any, initial?: any) {\n const ref = useRef({ target: value, previous: initial });\n\n if (ref.current.target !== value) {\n // The value changed.\n ref.current.previous = ref.current.target;\n ref.current.target = value;\n }\n\n return ref.current.previous;\n}\n"],"names":[],"mappings":";;AAEwB,SAAA,WAAA,CAAY,OAAY,OAAe,EAAA;AAC7D,EAAA,MAAM,MAAM,MAAO,CAAA,EAAE,QAAQ,KAAO,EAAA,QAAA,EAAU,SAAS,CAAA,CAAA;AAEvD,EAAI,IAAA,GAAA,CAAI,OAAQ,CAAA,MAAA,KAAW,KAAO,EAAA;AAEhC,IAAI,GAAA,CAAA,OAAA,CAAQ,QAAW,GAAA,GAAA,CAAI,OAAQ,CAAA,MAAA,CAAA;AACnC,IAAA,GAAA,CAAI,QAAQ,MAAS,GAAA,KAAA,CAAA;AAAA,GACvB;AAEA,EAAA,OAAO,IAAI,OAAQ,CAAA,QAAA,CAAA;AACrB;;;;"}
@@ -1,39 +1,39 @@
1
1
  import { useState, useEffect } from 'react';
2
2
 
3
- /** Wallet payment options. User picks one. */
4
- function useSolanaPaymentOptions({ trpc, address, usdRequired, isDepositFlow, showSolanaPaymentMethod, }) {
5
- const [options, setOptions] = useState(null);
6
- const [isLoading, setIsLoading] = useState(false);
7
- useEffect(() => {
8
- if (!showSolanaPaymentMethod)
9
- return;
10
- const refreshWalletPaymentOptions = async () => {
11
- if (address == null || usdRequired == null)
12
- return;
13
- setOptions(null);
14
- setIsLoading(true);
15
- try {
16
- const newOptions = await trpc.getSolanaPaymentOptions.query({
17
- pubKey: address,
18
- // API expects undefined for deposit flow.
19
- usdRequired: isDepositFlow ? undefined : usdRequired,
20
- });
21
- setOptions(newOptions);
22
- }
23
- catch (error) {
24
- console.error(error);
25
- }
26
- finally {
27
- setIsLoading(false);
28
- }
29
- };
30
- refreshWalletPaymentOptions();
31
- // eslint-disable-next-line react-hooks/exhaustive-deps
32
- }, [address, usdRequired, isDepositFlow, showSolanaPaymentMethod]);
33
- return {
34
- options,
35
- isLoading,
3
+ function useSolanaPaymentOptions({
4
+ trpc,
5
+ address,
6
+ usdRequired,
7
+ isDepositFlow,
8
+ showSolanaPaymentMethod
9
+ }) {
10
+ const [options, setOptions] = useState(null);
11
+ const [isLoading, setIsLoading] = useState(false);
12
+ useEffect(() => {
13
+ if (!showSolanaPaymentMethod) return;
14
+ const refreshWalletPaymentOptions = async () => {
15
+ if (address == null || usdRequired == null) return;
16
+ setOptions(null);
17
+ setIsLoading(true);
18
+ try {
19
+ const newOptions = await trpc.getSolanaPaymentOptions.query({
20
+ pubKey: address,
21
+ // API expects undefined for deposit flow.
22
+ usdRequired: isDepositFlow ? void 0 : usdRequired
23
+ });
24
+ setOptions(newOptions);
25
+ } catch (error) {
26
+ console.error(error);
27
+ } finally {
28
+ setIsLoading(false);
29
+ }
36
30
  };
31
+ refreshWalletPaymentOptions();
32
+ }, [address, usdRequired, isDepositFlow, showSolanaPaymentMethod]);
33
+ return {
34
+ options,
35
+ isLoading
36
+ };
37
37
  }
38
38
 
39
39
  export { useSolanaPaymentOptions };
@@ -1 +1 @@
1
- {"version":3,"file":"useSolanaPaymentOptions.js","sources":["../../../src/hooks/useSolanaPaymentOptions.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIA;AACgB,SAAA,uBAAuB,CAAC,EACtC,IAAI,EACJ,OAAO,EACP,WAAW,EACX,aAAa,EACb,uBAAuB,GAOxB,EAAA;IACC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA+B,IAAI,CAAC,CAAC;IAC3E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,uBAAuB;YAAE,OAAO;AAErC,QAAA,MAAM,2BAA2B,GAAG,YAAW;AAC7C,YAAA,IAAI,OAAO,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI;gBAAE,OAAO;YAEnD,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,YAAY,CAAC,IAAI,CAAC,CAAC;AACnB,YAAA,IAAI;gBACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;AAC1D,oBAAA,MAAM,EAAE,OAAO;;oBAEf,WAAW,EAAE,aAAa,GAAG,SAAS,GAAG,WAAW;AACrD,iBAAA,CAAC,CAAC;gBACH,UAAU,CAAC,UAAU,CAAC,CAAC;aACxB;YAAC,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACtB;oBAAS;gBACR,YAAY,CAAC,KAAK,CAAC,CAAC;aACrB;AACH,SAAC,CAAC;AAEF,QAAA,2BAA2B,EAAE,CAAC;;KAE/B,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAEnE,OAAO;QACL,OAAO;QACP,SAAS;KACV,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"useSolanaPaymentOptions.js","sources":["../../../src/hooks/useSolanaPaymentOptions.ts"],"sourcesContent":["import { WalletPaymentOption } from \"@daimo/pay-common\";\nimport { useEffect, useState } from \"react\";\nimport { TrpcClient } from \"../utils/trpc\";\n\n/** Wallet payment options. User picks one. */\nexport function useSolanaPaymentOptions({\n trpc,\n address,\n usdRequired,\n isDepositFlow,\n showSolanaPaymentMethod,\n}: {\n trpc: TrpcClient;\n address: string | undefined;\n usdRequired: number | undefined;\n isDepositFlow: boolean;\n showSolanaPaymentMethod: boolean;\n}) {\n const [options, setOptions] = useState<WalletPaymentOption[] | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n if (!showSolanaPaymentMethod) return;\n\n const refreshWalletPaymentOptions = async () => {\n if (address == null || usdRequired == null) return;\n\n setOptions(null);\n setIsLoading(true);\n try {\n const newOptions = await trpc.getSolanaPaymentOptions.query({\n pubKey: address,\n // API expects undefined for deposit flow.\n usdRequired: isDepositFlow ? undefined : usdRequired,\n });\n setOptions(newOptions);\n } catch (error) {\n console.error(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n refreshWalletPaymentOptions();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [address, usdRequired, isDepositFlow, showSolanaPaymentMethod]);\n\n return {\n options,\n isLoading,\n };\n}\n"],"names":[],"mappings":";;AAKO,SAAS,uBAAwB,CAAA;AAAA,EACtC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,uBAAA;AACF,CAMG,EAAA;AACD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAuC,IAAI,CAAA,CAAA;AACzE,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAEhD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,uBAAyB,EAAA,OAAA;AAE9B,IAAA,MAAM,8BAA8B,YAAY;AAC9C,MAAI,IAAA,OAAA,IAAW,IAAQ,IAAA,WAAA,IAAe,IAAM,EAAA,OAAA;AAE5C,MAAA,UAAA,CAAW,IAAI,CAAA,CAAA;AACf,MAAA,YAAA,CAAa,IAAI,CAAA,CAAA;AACjB,MAAI,IAAA;AACF,QAAA,MAAM,UAAa,GAAA,MAAM,IAAK,CAAA,uBAAA,CAAwB,KAAM,CAAA;AAAA,UAC1D,MAAQ,EAAA,OAAA;AAAA;AAAA,UAER,WAAA,EAAa,gBAAgB,KAAY,CAAA,GAAA,WAAA;AAAA,SAC1C,CAAA,CAAA;AACD,QAAA,UAAA,CAAW,UAAU,CAAA,CAAA;AAAA,eACd,KAAO,EAAA;AACd,QAAA,OAAA,CAAQ,MAAM,KAAK,CAAA,CAAA;AAAA,OACnB,SAAA;AACA,QAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAAA,OACpB;AAAA,KACF,CAAA;AAEA,IAA4B,2BAAA,EAAA,CAAA;AAAA,KAE3B,CAAC,OAAA,EAAS,WAAa,EAAA,aAAA,EAAe,uBAAuB,CAAC,CAAA,CAAA;AAEjE,EAAO,OAAA;AAAA,IACL,OAAA;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AACF;;;;"}
@@ -4,112 +4,148 @@ import TokenChainLogo from '../components/Common/TokenChainLogo/index.js';
4
4
  import { ROUTES } from '../constants/routes.js';
5
5
  import { flattenChildren } from '../utils/index.js';
6
6
  import { formatUsd, roundTokenAmount } from '../utils/format.js';
7
+ import { useDaimoPay } from './useDaimoPay.js';
7
8
  import useLocales from './useLocales.js';
8
9
  import { usePayContext } from './usePayContext.js';
9
10
 
10
- /// and Solana tokens. See OptionsList.
11
11
  function useTokenOptions(mode) {
12
- const { setRoute, paymentState } = usePayContext();
13
- const { isDepositFlow, walletPaymentOptions, solanaPaymentOptions, setSelectedTokenOption, setSelectedSolanaTokenOption, } = paymentState;
14
- // Get translations once and pass down to helpers to avoid violating
15
- // the Rules-of-Hooks (hooks can only be called inside React components
16
- // or custom hooks).
17
- const locales = useLocales();
18
- const onString = flattenChildren(locales.on).join("");
19
- let optionsList = [];
20
- let isLoading = false;
21
- if (["evm", "all"].includes(mode)) {
22
- optionsList.push(...getEvmTokenOptions(walletPaymentOptions.options ?? [], isDepositFlow, setSelectedTokenOption, setRoute, onString));
23
- isLoading ||= walletPaymentOptions.isLoading;
24
- }
25
- if (["solana", "all"].includes(mode)) {
26
- optionsList.push(...getSolanaTokenOptions(solanaPaymentOptions.options ?? [], isDepositFlow, setSelectedSolanaTokenOption, setRoute, onString));
27
- isLoading ||= solanaPaymentOptions.isLoading;
28
- }
29
- optionsList.sort((a, b) => {
30
- const dDisabled = (a.disabled ? 1 : 0) - (b.disabled ? 1 : 0);
31
- if (dDisabled !== 0)
32
- return dDisabled;
33
- const dSort = (b.sortValue ?? 0) - (a.sortValue ?? 0);
34
- return dSort;
35
- });
36
- return { optionsList, isLoading };
12
+ const { setRoute, paymentState } = usePayContext();
13
+ const {
14
+ isDepositFlow,
15
+ walletPaymentOptions,
16
+ solanaPaymentOptions,
17
+ setSelectedTokenOption,
18
+ setSelectedSolanaTokenOption
19
+ } = paymentState;
20
+ const locales = useLocales();
21
+ const onString = flattenChildren(locales.on).join("");
22
+ const pay = useDaimoPay();
23
+ const isPassthrough = !!pay.order?.metadata.payer?.passthroughTokens?.length;
24
+ const nonPassthroughToken = isPassthrough ? pay.order?.destFinalCallTokenAmount.token : void 0;
25
+ let optionsList = [];
26
+ let isLoading = false;
27
+ if (["evm", "all"].includes(mode)) {
28
+ optionsList.push(
29
+ ...getEvmTokenOptions(
30
+ walletPaymentOptions.options ?? [],
31
+ isDepositFlow,
32
+ setSelectedTokenOption,
33
+ setRoute,
34
+ onString,
35
+ nonPassthroughToken
36
+ )
37
+ );
38
+ isLoading ||= walletPaymentOptions.isLoading;
39
+ }
40
+ if (["solana", "all"].includes(mode)) {
41
+ optionsList.push(
42
+ ...getSolanaTokenOptions(
43
+ solanaPaymentOptions.options ?? [],
44
+ isDepositFlow,
45
+ setSelectedSolanaTokenOption,
46
+ setRoute,
47
+ onString
48
+ )
49
+ );
50
+ isLoading ||= solanaPaymentOptions.isLoading;
51
+ }
52
+ optionsList.sort((a, b) => {
53
+ const dDisabled = (a.disabled ? 1 : 0) - (b.disabled ? 1 : 0);
54
+ if (dDisabled !== 0) return dDisabled;
55
+ const dSort = (b.sortValue ?? 0) - (a.sortValue ?? 0);
56
+ return dSort;
57
+ });
58
+ return { optionsList, isLoading };
37
59
  }
38
- function getEvmTokenOptions(options, isDepositFlow, setSelectedTokenOption, setRoute, onString) {
39
- return options.map((option) => {
40
- const chainName = getChainName(option.balance.token.chainId);
41
- const titlePrice = isDepositFlow
42
- ? formatUsd(option.balance.usd)
43
- : roundTokenAmount(option.required.amount, option.required.token);
44
- const title = `${titlePrice} ${option.balance.token.symbol} ${onString} ${chainName}`;
45
- const balanceStr = `${roundTokenAmount(option.balance.amount, option.balance.token)} ${option.balance.token.symbol}`;
46
- const subtitle = option.disabledReason ??
47
- `${isDepositFlow ? "" : "Balance: "}${balanceStr}`;
48
- const disabled = option.disabledReason != null;
49
- return {
50
- id: getDaimoTokenKey(option.balance.token),
51
- sortValue: option.balance.usd,
52
- title,
53
- subtitle,
54
- icons: [
55
- jsx(TokenChainLogo, { token: option.balance.token }, getDaimoTokenKey(option.balance.token)),
56
- ],
57
- onClick: () => {
58
- setSelectedTokenOption(option);
59
- const meta = {
60
- event: "click-token",
61
- tokenSymbol: option.balance.token.symbol,
62
- chainId: option.balance.token.chainId,
63
- };
64
- if (isDepositFlow) {
65
- setRoute(ROUTES.SELECT_AMOUNT, meta);
66
- }
67
- else {
68
- setRoute(ROUTES.PAY_WITH_TOKEN, meta);
69
- }
70
- },
71
- disabled,
60
+ function getEvmTokenOptions(options, isDepositFlow, setSelectedTokenOption, setRoute, onString, nonPassthroughToken) {
61
+ return options.map((option) => {
62
+ const chainName = getChainName(option.balance.token.chainId);
63
+ const titlePrice = isDepositFlow ? formatUsd(option.balance.usd) : roundTokenAmount(option.required.amount, option.required.token);
64
+ const title = `${titlePrice} ${option.balance.token.symbol} ${onString} ${chainName}`;
65
+ const balanceStr = `${roundTokenAmount(option.balance.amount, option.balance.token)} ${option.balance.token.symbol}`;
66
+ let subtitle = option.disabledReason ?? `${isDepositFlow ? "" : "Balance: "}${balanceStr}`;
67
+ const disabled = option.disabledReason != null;
68
+ if (nonPassthroughToken != null) {
69
+ const defaultSym = nonPassthroughToken.symbol;
70
+ const optSym = option.balance.token.symbol;
71
+ if (option.passthroughAddress == null && optSym !== defaultSym) {
72
+ subtitle = `Convert to ${defaultSym}`;
73
+ } else {
74
+ subtitle = `Deposit ${optSym}`;
75
+ }
76
+ }
77
+ const sortValue = option.balance.usd + (option.passthroughAddress == null ? 0 : 1e9);
78
+ return {
79
+ id: getDaimoTokenKey(option.balance.token),
80
+ sortValue,
81
+ title,
82
+ subtitle,
83
+ icons: [
84
+ /* @__PURE__ */ jsx(
85
+ TokenChainLogo,
86
+ {
87
+ token: option.balance.token
88
+ },
89
+ getDaimoTokenKey(option.balance.token)
90
+ )
91
+ ],
92
+ onClick: () => {
93
+ setSelectedTokenOption(option);
94
+ const meta = {
95
+ event: "click-token",
96
+ tokenSymbol: option.balance.token.symbol,
97
+ chainId: option.balance.token.chainId
72
98
  };
73
- });
99
+ if (isDepositFlow) {
100
+ setRoute(ROUTES.SELECT_AMOUNT, meta);
101
+ } else {
102
+ setRoute(ROUTES.PAY_WITH_TOKEN, meta);
103
+ }
104
+ },
105
+ disabled
106
+ };
107
+ });
74
108
  }
75
109
  function getSolanaTokenOptions(options, isDepositFlow, setSelectedSolanaTokenOption, setRoute, onString) {
76
- return options.map((option) => {
77
- const titlePrice = isDepositFlow
78
- ? formatUsd(option.balance.usd)
79
- : roundTokenAmount(option.required.amount, option.required.token);
80
- const title = `${titlePrice} ${option.balance.token.symbol} ${onString} Solana`;
81
- const balanceStr = `${roundTokenAmount(option.balance.amount, option.balance.token)} ${option.balance.token.symbol}`;
82
- const subtitle = option.disabledReason ??
83
- `${isDepositFlow ? "" : "Balance: "}${balanceStr}`;
84
- const disabled = option.disabledReason != null;
85
- return {
86
- id: getDaimoTokenKey(option.balance.token),
87
- sortValue: option.balance.usd,
88
- title,
89
- subtitle,
90
- icons: [
91
- jsx(TokenChainLogo, { token: option.balance.token }, getDaimoTokenKey(option.balance.token)),
92
- ],
93
- onClick: () => {
94
- setSelectedSolanaTokenOption(option);
95
- const meta = {
96
- event: "click-solana-token",
97
- tokenSymbol: option.balance.token.symbol,
98
- chainId: option.balance.token.chainId,
99
- };
100
- if (isDepositFlow) {
101
- setRoute(ROUTES.SOLANA_SELECT_AMOUNT, meta);
102
- }
103
- else {
104
- setRoute(ROUTES.SOLANA_PAY_WITH_TOKEN, meta);
105
- }
106
- },
107
- disabled,
110
+ return options.map((option) => {
111
+ const titlePrice = isDepositFlow ? formatUsd(option.balance.usd) : roundTokenAmount(option.required.amount, option.required.token);
112
+ const title = `${titlePrice} ${option.balance.token.symbol} ${onString} Solana`;
113
+ const balanceStr = `${roundTokenAmount(option.balance.amount, option.balance.token)} ${option.balance.token.symbol}`;
114
+ const subtitle = option.disabledReason ?? `${isDepositFlow ? "" : "Balance: "}${balanceStr}`;
115
+ const disabled = option.disabledReason != null;
116
+ return {
117
+ id: getDaimoTokenKey(option.balance.token),
118
+ sortValue: option.balance.usd,
119
+ title,
120
+ subtitle,
121
+ icons: [
122
+ /* @__PURE__ */ jsx(
123
+ TokenChainLogo,
124
+ {
125
+ token: option.balance.token
126
+ },
127
+ getDaimoTokenKey(option.balance.token)
128
+ )
129
+ ],
130
+ onClick: () => {
131
+ setSelectedSolanaTokenOption(option);
132
+ const meta = {
133
+ event: "click-solana-token",
134
+ tokenSymbol: option.balance.token.symbol,
135
+ chainId: option.balance.token.chainId
108
136
  };
109
- });
137
+ if (isDepositFlow) {
138
+ setRoute(ROUTES.SOLANA_SELECT_AMOUNT, meta);
139
+ } else {
140
+ setRoute(ROUTES.SOLANA_PAY_WITH_TOKEN, meta);
141
+ }
142
+ },
143
+ disabled
144
+ };
145
+ });
110
146
  }
111
147
  function getDaimoTokenKey(token) {
112
- return `${token.chainId}-${token.token}`;
148
+ return `${token.chainId}-${token.token}`;
113
149
  }
114
150
 
115
151
  export { useTokenOptions };
@@ -1 +1 @@
1
- {"version":3,"file":"useTokenOptions.js","sources":["../../../src/hooks/useTokenOptions.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"useTokenOptions.js","sources":["../../../src/hooks/useTokenOptions.tsx"],"sourcesContent":["/// Gets token options when paying from a connected wallet. Supports both EVM\n\nimport {\n DaimoPayToken,\n getChainName,\n Token,\n WalletPaymentOption,\n} from \"@daimo/pay-common\";\nimport { Option } from \"../components/Common/OptionsList\";\nimport TokenChainLogo from \"../components/Common/TokenChainLogo\";\nimport { ROUTES } from \"../constants/routes\";\nimport { flattenChildren } from \"../utils\";\nimport { formatUsd, roundTokenAmount } from \"../utils/format\";\nimport { useDaimoPay } from \"./useDaimoPay\";\nimport useLocales from \"./useLocales\";\nimport { usePayContext } from \"./usePayContext\";\n\n/// and Solana tokens. See OptionsList.\nexport function useTokenOptions(mode: \"evm\" | \"solana\" | \"all\"): {\n optionsList: Option[];\n isLoading: boolean;\n} {\n const { setRoute, paymentState } = usePayContext();\n const {\n isDepositFlow,\n walletPaymentOptions,\n solanaPaymentOptions,\n setSelectedTokenOption,\n setSelectedSolanaTokenOption,\n } = paymentState;\n\n // Get translations once and pass down to helpers to avoid violating\n // the Rules-of-Hooks (hooks can only be called inside React components\n // or custom hooks).\n const locales = useLocales();\n const onString = flattenChildren(locales.on).join(\"\");\n\n // HACK: special handling for portfolio deposits\n const pay = useDaimoPay();\n const isPassthrough = !!pay.order?.metadata.payer?.passthroughTokens?.length;\n const nonPassthroughToken = isPassthrough\n ? pay.order?.destFinalCallTokenAmount.token\n : undefined;\n\n let optionsList: Option[] = [];\n let isLoading = false;\n if ([\"evm\", \"all\"].includes(mode)) {\n optionsList.push(\n ...getEvmTokenOptions(\n walletPaymentOptions.options ?? [],\n isDepositFlow,\n setSelectedTokenOption,\n setRoute,\n onString,\n nonPassthroughToken,\n ),\n );\n isLoading ||= walletPaymentOptions.isLoading;\n }\n if ([\"solana\", \"all\"].includes(mode)) {\n optionsList.push(\n ...getSolanaTokenOptions(\n solanaPaymentOptions.options ?? [],\n isDepositFlow,\n setSelectedSolanaTokenOption,\n setRoute,\n onString,\n ),\n );\n isLoading ||= solanaPaymentOptions.isLoading;\n }\n\n optionsList.sort((a, b) => {\n const dDisabled = (a.disabled ? 1 : 0) - (b.disabled ? 1 : 0);\n if (dDisabled !== 0) return dDisabled;\n const dSort = (b.sortValue ?? 0) - (a.sortValue ?? 0);\n return dSort;\n });\n\n return { optionsList, isLoading };\n}\n\nfunction getEvmTokenOptions(\n options: WalletPaymentOption[],\n isDepositFlow: boolean,\n setSelectedTokenOption: (option: WalletPaymentOption) => void,\n setRoute: (route: ROUTES, meta?: any) => void,\n onString: string,\n nonPassthroughToken?: Token,\n) {\n return options.map((option) => {\n const chainName = getChainName(option.balance.token.chainId);\n const titlePrice = isDepositFlow\n ? formatUsd(option.balance.usd)\n : roundTokenAmount(option.required.amount, option.required.token);\n const title = `${titlePrice} ${option.balance.token.symbol} ${onString} ${chainName}`;\n\n const balanceStr = `${roundTokenAmount(option.balance.amount, option.balance.token)} ${option.balance.token.symbol}`;\n let subtitle =\n option.disabledReason ??\n `${isDepositFlow ? \"\" : \"Balance: \"}${balanceStr}`;\n const disabled = option.disabledReason != null;\n\n // HACK: special handling for portfolio deposits\n if (nonPassthroughToken != null) {\n const defaultSym = nonPassthroughToken.symbol;\n const optSym = option.balance.token.symbol;\n if (option.passthroughAddress == null && optSym !== defaultSym) {\n subtitle = `Convert to ${defaultSym}`;\n } else {\n subtitle = `Deposit ${optSym}`;\n }\n }\n const sortValue =\n option.balance.usd + (option.passthroughAddress == null ? 0 : 1e9);\n\n return {\n id: getDaimoTokenKey(option.balance.token),\n sortValue,\n title,\n subtitle,\n icons: [\n <TokenChainLogo\n key={getDaimoTokenKey(option.balance.token)}\n token={option.balance.token}\n />,\n ],\n onClick: () => {\n setSelectedTokenOption(option);\n const meta = {\n event: \"click-token\",\n tokenSymbol: option.balance.token.symbol,\n chainId: option.balance.token.chainId,\n };\n if (isDepositFlow) {\n setRoute(ROUTES.SELECT_AMOUNT, meta);\n } else {\n setRoute(ROUTES.PAY_WITH_TOKEN, meta);\n }\n },\n disabled,\n };\n });\n}\n\nfunction getSolanaTokenOptions(\n options: WalletPaymentOption[],\n isDepositFlow: boolean,\n setSelectedSolanaTokenOption: (option: WalletPaymentOption) => void,\n setRoute: (route: ROUTES, meta?: any) => void,\n onString: string,\n) {\n return options.map((option) => {\n const titlePrice = isDepositFlow\n ? formatUsd(option.balance.usd)\n : roundTokenAmount(option.required.amount, option.required.token);\n const title = `${titlePrice} ${option.balance.token.symbol} ${onString} Solana`;\n const balanceStr = `${roundTokenAmount(option.balance.amount, option.balance.token)} ${option.balance.token.symbol}`;\n const subtitle =\n option.disabledReason ??\n `${isDepositFlow ? \"\" : \"Balance: \"}${balanceStr}`;\n const disabled = option.disabledReason != null;\n\n return {\n id: getDaimoTokenKey(option.balance.token),\n sortValue: option.balance.usd,\n title,\n subtitle,\n icons: [\n <TokenChainLogo\n key={getDaimoTokenKey(option.balance.token)}\n token={option.balance.token}\n />,\n ],\n onClick: () => {\n setSelectedSolanaTokenOption(option);\n const meta = {\n event: \"click-solana-token\",\n tokenSymbol: option.balance.token.symbol,\n chainId: option.balance.token.chainId,\n };\n if (isDepositFlow) {\n setRoute(ROUTES.SOLANA_SELECT_AMOUNT, meta);\n } else {\n setRoute(ROUTES.SOLANA_PAY_WITH_TOKEN, meta);\n }\n },\n disabled,\n };\n });\n}\n\nfunction getDaimoTokenKey(token: DaimoPayToken) {\n return `${token.chainId}-${token.token}`;\n}\n"],"names":[],"mappings":"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"}
@@ -1,39 +1,31 @@
1
1
  import { useState, useEffect } from 'react';
2
2
 
3
- /**
4
- * Polls the backend for Untron receiver availability.
5
- * - Prefetches immediately on mount so downstream components can use the value ASAP.
6
- * - Continues polling at `pollIntervalMs` to keep the value fresh.
7
- *
8
- * Returns `null` while loading for the first time.
9
- */
10
- function useUntronAvailability({ trpc, pollIntervalMs = 5_000, }) {
11
- const [available, setAvailable] = useState(null);
12
- useEffect(() => {
13
- let cancelled = false;
14
- let intervalId;
15
- const fetchAvailability = async () => {
16
- try {
17
- const result = await trpc.untronHasAvailableReceivers.query();
18
- if (!cancelled) {
19
- setAvailable(result);
20
- }
21
- }
22
- catch (e) {
23
- console.error("Failed to fetch Untron availability", e);
24
- }
25
- };
26
- // Initial fetch
27
- fetchAvailability();
28
- // Subsequent polling
29
- intervalId = setInterval(fetchAvailability, pollIntervalMs);
30
- return () => {
31
- cancelled = true;
32
- clearInterval(intervalId);
33
- };
34
- // eslint-disable-next-line react-hooks/exhaustive-deps
35
- }, []);
36
- return { available };
3
+ function useUntronAvailability({
4
+ trpc,
5
+ pollIntervalMs = 5e3
6
+ }) {
7
+ const [available, setAvailable] = useState(null);
8
+ useEffect(() => {
9
+ let cancelled = false;
10
+ let intervalId;
11
+ const fetchAvailability = async () => {
12
+ try {
13
+ const result = await trpc.untronHasAvailableReceivers.query();
14
+ if (!cancelled) {
15
+ setAvailable(result);
16
+ }
17
+ } catch (e) {
18
+ console.error("Failed to fetch Untron availability", e);
19
+ }
20
+ };
21
+ fetchAvailability();
22
+ intervalId = setInterval(fetchAvailability, pollIntervalMs);
23
+ return () => {
24
+ cancelled = true;
25
+ clearInterval(intervalId);
26
+ };
27
+ }, []);
28
+ return { available };
37
29
  }
38
30
 
39
31
  export { useUntronAvailability };
@@ -1 +1 @@
1
- {"version":3,"file":"useUntronAvailability.js","sources":["../../../src/hooks/useUntronAvailability.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;;;;;AAMG;AACG,SAAU,qBAAqB,CAAC,EACpC,IAAI,EACJ,cAAc,GAAG,KAAK,GAIvB,EAAA;IACC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAiB,IAAI,CAAC,CAAC;IAEjE,SAAS,CAAC,MAAK;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,UAA0C,CAAC;AAE/C,QAAA,MAAM,iBAAiB,GAAG,YAAW;AACnC,YAAA,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;gBAC9D,IAAI,CAAC,SAAS,EAAE;oBACd,YAAY,CAAC,MAAM,CAAC,CAAC;iBACtB;aACF;YAAC,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;aACzD;AACH,SAAC,CAAC;;AAGF,QAAA,iBAAiB,EAAE,CAAC;;AAEpB,QAAA,UAAU,GAAG,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;AAE5D,QAAA,OAAO,MAAK;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,aAAa,CAAC,UAAU,CAAC,CAAC;AAC5B,SAAC,CAAC;;KAEH,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB;;;;"}
1
+ {"version":3,"file":"useUntronAvailability.js","sources":["../../../src/hooks/useUntronAvailability.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { TrpcClient } from \"../utils/trpc\";\n\n/**\n * Polls the backend for Untron receiver availability.\n * - Prefetches immediately on mount so downstream components can use the value ASAP.\n * - Continues polling at `pollIntervalMs` to keep the value fresh.\n *\n * Returns `null` while loading for the first time.\n */\nexport function useUntronAvailability({\n trpc,\n pollIntervalMs = 5_000,\n}: {\n trpc: TrpcClient;\n pollIntervalMs?: number;\n}): { available: boolean | null } {\n const [available, setAvailable] = useState<boolean | null>(null);\n\n useEffect(() => {\n let cancelled = false;\n let intervalId: ReturnType<typeof setInterval>;\n\n const fetchAvailability = async () => {\n try {\n const result = await trpc.untronHasAvailableReceivers.query();\n if (!cancelled) {\n setAvailable(result);\n }\n } catch (e) {\n console.error(\"Failed to fetch Untron availability\", e);\n }\n };\n\n // Initial fetch\n fetchAvailability();\n // Subsequent polling\n intervalId = setInterval(fetchAvailability, pollIntervalMs);\n\n return () => {\n cancelled = true;\n clearInterval(intervalId);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return { available };\n}\n"],"names":[],"mappings":";;AAUO,SAAS,qBAAsB,CAAA;AAAA,EACpC,IAAA;AAAA,EACA,cAAiB,GAAA,GAAA;AACnB,CAGkC,EAAA;AAChC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAyB,IAAI,CAAA,CAAA;AAE/D,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,SAAY,GAAA,KAAA,CAAA;AAChB,IAAI,IAAA,UAAA,CAAA;AAEJ,IAAA,MAAM,oBAAoB,YAAY;AACpC,MAAI,IAAA;AACF,QAAA,MAAM,MAAS,GAAA,MAAM,IAAK,CAAA,2BAAA,CAA4B,KAAM,EAAA,CAAA;AAC5D,QAAA,IAAI,CAAC,SAAW,EAAA;AACd,UAAA,YAAA,CAAa,MAAM,CAAA,CAAA;AAAA,SACrB;AAAA,eACO,CAAG,EAAA;AACV,QAAQ,OAAA,CAAA,KAAA,CAAM,uCAAuC,CAAC,CAAA,CAAA;AAAA,OACxD;AAAA,KACF,CAAA;AAGA,IAAkB,iBAAA,EAAA,CAAA;AAElB,IAAa,UAAA,GAAA,WAAA,CAAY,mBAAmB,cAAc,CAAA,CAAA;AAE1D,IAAA,OAAO,MAAM;AACX,MAAY,SAAA,GAAA,IAAA,CAAA;AACZ,MAAA,aAAA,CAAc,UAAU,CAAA,CAAA;AAAA,KAC1B,CAAA;AAAA,GAEF,EAAG,EAAE,CAAA,CAAA;AAEL,EAAA,OAAO,EAAE,SAAU,EAAA,CAAA;AACrB;;;;"}