@daimo/pay 1.19.0 → 1.19.2

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 (385) hide show
  1. package/build/package.json.js +2 -2
  2. package/build/src/components/DaimoPayModal/index.js +17 -3
  3. package/build/src/components/DaimoPayModal/index.js.map +1 -1
  4. package/build/src/components/Pages/SelectExchange/index.js +20 -5
  5. package/build/src/components/Pages/SelectExchange/index.js.map +1 -1
  6. package/build/src/components/Pages/SelectMethod/index.js +7 -4
  7. package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
  8. package/build/src/hooks/useConnectors.js +12 -1
  9. package/build/src/hooks/useConnectors.js.map +1 -1
  10. package/build/src/hooks/usePaymentState.js +4 -1
  11. package/build/src/hooks/usePaymentState.js.map +1 -1
  12. package/build/src/wallets/useWallets.js +1 -0
  13. package/build/src/wallets/useWallets.js.map +1 -1
  14. package/package.json +2 -2
  15. package/build/connectkit/package.json.js +0 -117
  16. package/build/connectkit/package.json.js.map +0 -1
  17. package/build/connectkit/src/assets/MobileWithLogos.js +0 -329
  18. package/build/connectkit/src/assets/MobileWithLogos.js.map +0 -1
  19. package/build/connectkit/src/assets/ScanIconWithLogos.js +0 -243
  20. package/build/connectkit/src/assets/ScanIconWithLogos.js.map +0 -1
  21. package/build/connectkit/src/assets/browsers.js +0 -969
  22. package/build/connectkit/src/assets/browsers.js.map +0 -1
  23. package/build/connectkit/src/assets/chains.js +0 -648
  24. package/build/connectkit/src/assets/chains.js.map +0 -1
  25. package/build/connectkit/src/assets/coins.js +0 -43
  26. package/build/connectkit/src/assets/coins.js.map +0 -1
  27. package/build/connectkit/src/assets/icons.js +0 -273
  28. package/build/connectkit/src/assets/icons.js.map +0 -1
  29. package/build/connectkit/src/assets/logos.js +0 -1620
  30. package/build/connectkit/src/assets/logos.js.map +0 -1
  31. package/build/connectkit/src/assets/wave.js +0 -46
  32. package/build/connectkit/src/assets/wave.js.map +0 -1
  33. package/build/connectkit/src/components/Common/Alert/index.js +0 -13
  34. package/build/connectkit/src/components/Common/Alert/index.js.map +0 -1
  35. package/build/connectkit/src/components/Common/Alert/styles.js +0 -55
  36. package/build/connectkit/src/components/Common/Alert/styles.js.map +0 -1
  37. package/build/connectkit/src/components/Common/AmountInput/AmountInputField.js +0 -71
  38. package/build/connectkit/src/components/Common/AmountInput/AmountInputField.js.map +0 -1
  39. package/build/connectkit/src/components/Common/AmountInput/index.js +0 -159
  40. package/build/connectkit/src/components/Common/AmountInput/index.js.map +0 -1
  41. package/build/connectkit/src/components/Common/Avatar/index.js +0 -78
  42. package/build/connectkit/src/components/Common/Avatar/index.js.map +0 -1
  43. package/build/connectkit/src/components/Common/Avatar/styles.js +0 -54
  44. package/build/connectkit/src/components/Common/Avatar/styles.js.map +0 -1
  45. package/build/connectkit/src/components/Common/BrowserIcon/index.js +0 -29
  46. package/build/connectkit/src/components/Common/BrowserIcon/index.js.map +0 -1
  47. package/build/connectkit/src/components/Common/BrowserIcon/styles.js +0 -20
  48. package/build/connectkit/src/components/Common/BrowserIcon/styles.js.map +0 -1
  49. package/build/connectkit/src/components/Common/Button/index.js +0 -144
  50. package/build/connectkit/src/components/Common/Button/index.js.map +0 -1
  51. package/build/connectkit/src/components/Common/Button/styles.js +0 -287
  52. package/build/connectkit/src/components/Common/Button/styles.js.map +0 -1
  53. package/build/connectkit/src/components/Common/Chain/index.js +0 -141
  54. package/build/connectkit/src/components/Common/Chain/index.js.map +0 -1
  55. package/build/connectkit/src/components/Common/Chain/styles.js +0 -90
  56. package/build/connectkit/src/components/Common/Chain/styles.js.map +0 -1
  57. package/build/connectkit/src/components/Common/ChainSelectList/index.js +0 -250
  58. package/build/connectkit/src/components/Common/ChainSelectList/index.js.map +0 -1
  59. package/build/connectkit/src/components/Common/ChainSelectList/styles.js +0 -226
  60. package/build/connectkit/src/components/Common/ChainSelectList/styles.js.map +0 -1
  61. package/build/connectkit/src/components/Common/CircleTimer.js +0 -92
  62. package/build/connectkit/src/components/Common/CircleTimer.js.map +0 -1
  63. package/build/connectkit/src/components/Common/ConnectorList/index.js +0 -120
  64. package/build/connectkit/src/components/Common/ConnectorList/index.js.map +0 -1
  65. package/build/connectkit/src/components/Common/ConnectorList/styles.js +0 -344
  66. package/build/connectkit/src/components/Common/ConnectorList/styles.js.map +0 -1
  67. package/build/connectkit/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +0 -78
  68. package/build/connectkit/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +0 -1
  69. package/build/connectkit/src/components/Common/CopyToClipboard/index.js +0 -33
  70. package/build/connectkit/src/components/Common/CopyToClipboard/index.js.map +0 -1
  71. package/build/connectkit/src/components/Common/CustomQRCode/QRCode.js +0 -128
  72. package/build/connectkit/src/components/Common/CustomQRCode/QRCode.js.map +0 -1
  73. package/build/connectkit/src/components/Common/CustomQRCode/index.js +0 -71
  74. package/build/connectkit/src/components/Common/CustomQRCode/index.js.map +0 -1
  75. package/build/connectkit/src/components/Common/CustomQRCode/styles.js +0 -139
  76. package/build/connectkit/src/components/Common/CustomQRCode/styles.js.map +0 -1
  77. package/build/connectkit/src/components/Common/FitText/index.js +0 -34
  78. package/build/connectkit/src/components/Common/FitText/index.js.map +0 -1
  79. package/build/connectkit/src/components/Common/Modal/index.js +0 -523
  80. package/build/connectkit/src/components/Common/Modal/index.js.map +0 -1
  81. package/build/connectkit/src/components/Common/Modal/styles.js +0 -665
  82. package/build/connectkit/src/components/Common/Modal/styles.js.map +0 -1
  83. package/build/connectkit/src/components/Common/OptionsList/index.js +0 -145
  84. package/build/connectkit/src/components/Common/OptionsList/index.js.map +0 -1
  85. package/build/connectkit/src/components/Common/OptionsList/styles.js +0 -138
  86. package/build/connectkit/src/components/Common/OptionsList/styles.js.map +0 -1
  87. package/build/connectkit/src/components/Common/OrderHeader/index.js +0 -192
  88. package/build/connectkit/src/components/Common/OrderHeader/index.js.map +0 -1
  89. package/build/connectkit/src/components/Common/PaymentBreakdown/index.js +0 -70
  90. package/build/connectkit/src/components/Common/PaymentBreakdown/index.js.map +0 -1
  91. package/build/connectkit/src/components/Common/Portal/index.js +0 -30
  92. package/build/connectkit/src/components/Common/Portal/index.js.map +0 -1
  93. package/build/connectkit/src/components/Common/PoweredByFooter/index.js +0 -66
  94. package/build/connectkit/src/components/Common/PoweredByFooter/index.js.map +0 -1
  95. package/build/connectkit/src/components/Common/ScrollArea/index.js +0 -120
  96. package/build/connectkit/src/components/Common/ScrollArea/index.js.map +0 -1
  97. package/build/connectkit/src/components/Common/ScrollArea/styles.js +0 -169
  98. package/build/connectkit/src/components/Common/ScrollArea/styles.js.map +0 -1
  99. package/build/connectkit/src/components/Common/SelectAnotherMethodButton/index.js +0 -96
  100. package/build/connectkit/src/components/Common/SelectAnotherMethodButton/index.js.map +0 -1
  101. package/build/connectkit/src/components/Common/Spinner/index.js +0 -64
  102. package/build/connectkit/src/components/Common/Spinner/index.js.map +0 -1
  103. package/build/connectkit/src/components/Common/Spinner/styles.js +0 -22
  104. package/build/connectkit/src/components/Common/Spinner/styles.js.map +0 -1
  105. package/build/connectkit/src/components/Common/SwitchButton/index.js +0 -43
  106. package/build/connectkit/src/components/Common/SwitchButton/index.js.map +0 -1
  107. package/build/connectkit/src/components/Common/ThemedButton/index.js +0 -46
  108. package/build/connectkit/src/components/Common/ThemedButton/index.js.map +0 -1
  109. package/build/connectkit/src/components/Common/ThemedButton/styles.js +0 -152
  110. package/build/connectkit/src/components/Common/ThemedButton/styles.js.map +0 -1
  111. package/build/connectkit/src/components/Common/TokenChainLogo/index.js +0 -62
  112. package/build/connectkit/src/components/Common/TokenChainLogo/index.js.map +0 -1
  113. package/build/connectkit/src/components/Common/Tooltip/index.js +0 -129
  114. package/build/connectkit/src/components/Common/Tooltip/index.js.map +0 -1
  115. package/build/connectkit/src/components/Common/Tooltip/styles.js +0 -81
  116. package/build/connectkit/src/components/Common/Tooltip/styles.js.map +0 -1
  117. package/build/connectkit/src/components/Common/WalletChainLogo/index.js +0 -31
  118. package/build/connectkit/src/components/Common/WalletChainLogo/index.js.map +0 -1
  119. package/build/connectkit/src/components/DaimoPayButton/index.js +0 -197
  120. package/build/connectkit/src/components/DaimoPayButton/index.js.map +0 -1
  121. package/build/connectkit/src/components/DaimoPayButton/styles.js +0 -50
  122. package/build/connectkit/src/components/DaimoPayButton/styles.js.map +0 -1
  123. package/build/connectkit/src/components/DaimoPayModal/ConnectUsing.js +0 -68
  124. package/build/connectkit/src/components/DaimoPayModal/ConnectUsing.js.map +0 -1
  125. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/index.js +0 -335
  126. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +0 -1
  127. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/styles.js +0 -131
  128. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +0 -1
  129. package/build/connectkit/src/components/DaimoPayModal/ConnectWithQRCode.js +0 -99
  130. package/build/connectkit/src/components/DaimoPayModal/ConnectWithQRCode.js.map +0 -1
  131. package/build/connectkit/src/components/DaimoPayModal/index.js +0 -462
  132. package/build/connectkit/src/components/DaimoPayModal/index.js.map +0 -1
  133. package/build/connectkit/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +0 -25
  134. package/build/connectkit/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +0 -1
  135. package/build/connectkit/src/components/Pages/About/graphics.js +0 -853
  136. package/build/connectkit/src/components/Pages/About/graphics.js.map +0 -1
  137. package/build/connectkit/src/components/Pages/About/index.js +0 -222
  138. package/build/connectkit/src/components/Pages/About/index.js.map +0 -1
  139. package/build/connectkit/src/components/Pages/About/styles.js +0 -140
  140. package/build/connectkit/src/components/Pages/About/styles.js.map +0 -1
  141. package/build/connectkit/src/components/Pages/Confirmation/index.js +0 -128
  142. package/build/connectkit/src/components/Pages/Confirmation/index.js.map +0 -1
  143. package/build/connectkit/src/components/Pages/Connectors/index.js +0 -28
  144. package/build/connectkit/src/components/Pages/Connectors/index.js.map +0 -1
  145. package/build/connectkit/src/components/Pages/DownloadApp/index.js +0 -35
  146. package/build/connectkit/src/components/Pages/DownloadApp/index.js.map +0 -1
  147. package/build/connectkit/src/components/Pages/Error/index.js +0 -57
  148. package/build/connectkit/src/components/Pages/Error/index.js.map +0 -1
  149. package/build/connectkit/src/components/Pages/MobileConnectors/index.js +0 -65
  150. package/build/connectkit/src/components/Pages/MobileConnectors/index.js.map +0 -1
  151. package/build/connectkit/src/components/Pages/MobileConnectors/styles.js +0 -64
  152. package/build/connectkit/src/components/Pages/MobileConnectors/styles.js.map +0 -1
  153. package/build/connectkit/src/components/Pages/Onboarding/index.js +0 -34
  154. package/build/connectkit/src/components/Pages/Onboarding/index.js.map +0 -1
  155. package/build/connectkit/src/components/Pages/Onboarding/styles.js +0 -229
  156. package/build/connectkit/src/components/Pages/Onboarding/styles.js.map +0 -1
  157. package/build/connectkit/src/components/Pages/PayWithToken/index.js +0 -157
  158. package/build/connectkit/src/components/Pages/PayWithToken/index.js.map +0 -1
  159. package/build/connectkit/src/components/Pages/SelectAmount/index.js +0 -24
  160. package/build/connectkit/src/components/Pages/SelectAmount/index.js.map +0 -1
  161. package/build/connectkit/src/components/Pages/SelectDepositAddressAmount/index.js +0 -79
  162. package/build/connectkit/src/components/Pages/SelectDepositAddressAmount/index.js.map +0 -1
  163. package/build/connectkit/src/components/Pages/SelectDepositAddressChain/index.js +0 -72
  164. package/build/connectkit/src/components/Pages/SelectDepositAddressChain/index.js.map +0 -1
  165. package/build/connectkit/src/components/Pages/SelectExchange/index.js +0 -41
  166. package/build/connectkit/src/components/Pages/SelectExchange/index.js.map +0 -1
  167. package/build/connectkit/src/components/Pages/SelectExternalAmount/index.js +0 -80
  168. package/build/connectkit/src/components/Pages/SelectExternalAmount/index.js.map +0 -1
  169. package/build/connectkit/src/components/Pages/SelectMethod/index.js +0 -230
  170. package/build/connectkit/src/components/Pages/SelectMethod/index.js.map +0 -1
  171. package/build/connectkit/src/components/Pages/SelectToken/index.js +0 -97
  172. package/build/connectkit/src/components/Pages/SelectToken/index.js.map +0 -1
  173. package/build/connectkit/src/components/Pages/SelectWalletAmount/index.js +0 -66
  174. package/build/connectkit/src/components/Pages/SelectWalletAmount/index.js.map +0 -1
  175. package/build/connectkit/src/components/Pages/SelectWalletChain/index.js +0 -55
  176. package/build/connectkit/src/components/Pages/SelectWalletChain/index.js.map +0 -1
  177. package/build/connectkit/src/components/Pages/SelectZKP/index.js +0 -41
  178. package/build/connectkit/src/components/Pages/SelectZKP/index.js.map +0 -1
  179. package/build/connectkit/src/components/Pages/Solana/ConnectorSolana/index.js +0 -94
  180. package/build/connectkit/src/components/Pages/Solana/ConnectorSolana/index.js.map +0 -1
  181. package/build/connectkit/src/components/Pages/Solana/PayWithSolanaToken/index.js +0 -92
  182. package/build/connectkit/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +0 -1
  183. package/build/connectkit/src/components/Pages/Solana/SelectSolanaAmount/index.js +0 -24
  184. package/build/connectkit/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +0 -1
  185. package/build/connectkit/src/components/Pages/SwitchNetworks/index.js +0 -45
  186. package/build/connectkit/src/components/Pages/SwitchNetworks/index.js.map +0 -1
  187. package/build/connectkit/src/components/Pages/WaitingDepositAddress/index.js +0 -503
  188. package/build/connectkit/src/components/Pages/WaitingDepositAddress/index.js.map +0 -1
  189. package/build/connectkit/src/components/Pages/WaitingExternal/index.js +0 -89
  190. package/build/connectkit/src/components/Pages/WaitingExternal/index.js.map +0 -1
  191. package/build/connectkit/src/components/Pages/WaitingWallet/index.js +0 -49
  192. package/build/connectkit/src/components/Pages/WaitingWallet/index.js.map +0 -1
  193. package/build/connectkit/src/components/Spinners/CircleSpinner/index.js +0 -104
  194. package/build/connectkit/src/components/Spinners/CircleSpinner/index.js.map +0 -1
  195. package/build/connectkit/src/components/Spinners/CircleSpinner/styles.js +0 -117
  196. package/build/connectkit/src/components/Spinners/CircleSpinner/styles.js.map +0 -1
  197. package/build/connectkit/src/components/Spinners/ExternalPaymentSpinner/index.js +0 -29
  198. package/build/connectkit/src/components/Spinners/ExternalPaymentSpinner/index.js.map +0 -1
  199. package/build/connectkit/src/components/Spinners/SquircleSpinner/index.js +0 -68
  200. package/build/connectkit/src/components/Spinners/SquircleSpinner/index.js.map +0 -1
  201. package/build/connectkit/src/components/Spinners/SquircleSpinner/styles.js +0 -66
  202. package/build/connectkit/src/components/Spinners/SquircleSpinner/styles.js.map +0 -1
  203. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/index.js +0 -24
  204. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/index.js.map +0 -1
  205. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/styles.js +0 -40
  206. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/styles.js.map +0 -1
  207. package/build/connectkit/src/components/Spinners/WalletPaymentSpinner/index.js +0 -37
  208. package/build/connectkit/src/components/Spinners/WalletPaymentSpinner/index.js.map +0 -1
  209. package/build/connectkit/src/components/Spinners/styles.js +0 -32
  210. package/build/connectkit/src/components/Spinners/styles.js.map +0 -1
  211. package/build/connectkit/src/constants/defaultTheme.js +0 -6
  212. package/build/connectkit/src/constants/defaultTheme.js.map +0 -1
  213. package/build/connectkit/src/constants/routes.js +0 -32
  214. package/build/connectkit/src/constants/routes.js.map +0 -1
  215. package/build/connectkit/src/defaultConfig.js +0 -63
  216. package/build/connectkit/src/defaultConfig.js.map +0 -1
  217. package/build/connectkit/src/defaultConnectors.js +0 -37
  218. package/build/connectkit/src/defaultConnectors.js.map +0 -1
  219. package/build/connectkit/src/hooks/useChainIsSupported.js +0 -10
  220. package/build/connectkit/src/hooks/useChainIsSupported.js.map +0 -1
  221. package/build/connectkit/src/hooks/useChains.js +0 -10
  222. package/build/connectkit/src/hooks/useChains.js.map +0 -1
  223. package/build/connectkit/src/hooks/useConnect.js +0 -61
  224. package/build/connectkit/src/hooks/useConnect.js.map +0 -1
  225. package/build/connectkit/src/hooks/useConnectCallback.js +0 -21
  226. package/build/connectkit/src/hooks/useConnectCallback.js.map +0 -1
  227. package/build/connectkit/src/hooks/useConnectors.js +0 -9
  228. package/build/connectkit/src/hooks/useConnectors.js.map +0 -1
  229. package/build/connectkit/src/hooks/useDaimoPay.js +0 -107
  230. package/build/connectkit/src/hooks/useDaimoPay.js.map +0 -1
  231. package/build/connectkit/src/hooks/useDaimoPayStatus.js +0 -12
  232. package/build/connectkit/src/hooks/useDaimoPayStatus.js.map +0 -1
  233. package/build/connectkit/src/hooks/useDaimoPayUI.js +0 -15
  234. package/build/connectkit/src/hooks/useDaimoPayUI.js.map +0 -1
  235. package/build/connectkit/src/hooks/useDepositAddressOptions.js +0 -35
  236. package/build/connectkit/src/hooks/useDepositAddressOptions.js.map +0 -1
  237. package/build/connectkit/src/hooks/useEnsFallbackConfig.js +0 -16
  238. package/build/connectkit/src/hooks/useEnsFallbackConfig.js.map +0 -1
  239. package/build/connectkit/src/hooks/useExternalPaymentOptions.js +0 -64
  240. package/build/connectkit/src/hooks/useExternalPaymentOptions.js.map +0 -1
  241. package/build/connectkit/src/hooks/useFitText.js +0 -133
  242. package/build/connectkit/src/hooks/useFitText.js.map +0 -1
  243. package/build/connectkit/src/hooks/useFocusTrap.js +0 -53
  244. package/build/connectkit/src/hooks/useFocusTrap.js.map +0 -1
  245. package/build/connectkit/src/hooks/useIsMobile.js +0 -11
  246. package/build/connectkit/src/hooks/useIsMobile.js.map +0 -1
  247. package/build/connectkit/src/hooks/useIsMounted.js +0 -10
  248. package/build/connectkit/src/hooks/useIsMounted.js.map +0 -1
  249. package/build/connectkit/src/hooks/useLastConnector.js +0 -24
  250. package/build/connectkit/src/hooks/useLastConnector.js.map +0 -1
  251. package/build/connectkit/src/hooks/useLocales.js +0 -60
  252. package/build/connectkit/src/hooks/useLocales.js.map +0 -1
  253. package/build/connectkit/src/hooks/useLockBodyScroll.js +0 -47
  254. package/build/connectkit/src/hooks/useLockBodyScroll.js.map +0 -1
  255. package/build/connectkit/src/hooks/useOrderUsdLimits.js +0 -24
  256. package/build/connectkit/src/hooks/useOrderUsdLimits.js.map +0 -1
  257. package/build/connectkit/src/hooks/usePayContext.js +0 -11
  258. package/build/connectkit/src/hooks/usePayContext.js.map +0 -1
  259. package/build/connectkit/src/hooks/usePaymentState.js +0 -376
  260. package/build/connectkit/src/hooks/usePaymentState.js.map +0 -1
  261. package/build/connectkit/src/hooks/usePrevious.js +0 -13
  262. package/build/connectkit/src/hooks/usePrevious.js.map +0 -1
  263. package/build/connectkit/src/hooks/useSolanaPaymentOptions.js +0 -40
  264. package/build/connectkit/src/hooks/useSolanaPaymentOptions.js.map +0 -1
  265. package/build/connectkit/src/hooks/useTokenOptions.js +0 -152
  266. package/build/connectkit/src/hooks/useTokenOptions.js.map +0 -1
  267. package/build/connectkit/src/hooks/useUntronAvailability.js +0 -32
  268. package/build/connectkit/src/hooks/useUntronAvailability.js.map +0 -1
  269. package/build/connectkit/src/hooks/useWalletPaymentOptions.js +0 -97
  270. package/build/connectkit/src/hooks/useWalletPaymentOptions.js.map +0 -1
  271. package/build/connectkit/src/hooks/useWindowSize.js +0 -23
  272. package/build/connectkit/src/hooks/useWindowSize.js.map +0 -1
  273. package/build/connectkit/src/index.js +0 -14
  274. package/build/connectkit/src/index.js.map +0 -1
  275. package/build/connectkit/src/localizations/index.js +0 -48
  276. package/build/connectkit/src/localizations/index.js.map +0 -1
  277. package/build/connectkit/src/localizations/locales/ar-AE.js +0 -95
  278. package/build/connectkit/src/localizations/locales/ar-AE.js.map +0 -1
  279. package/build/connectkit/src/localizations/locales/ca-AD.js +0 -93
  280. package/build/connectkit/src/localizations/locales/ca-AD.js.map +0 -1
  281. package/build/connectkit/src/localizations/locales/ee-EE.js +0 -101
  282. package/build/connectkit/src/localizations/locales/ee-EE.js.map +0 -1
  283. package/build/connectkit/src/localizations/locales/en-US.js +0 -139
  284. package/build/connectkit/src/localizations/locales/en-US.js.map +0 -1
  285. package/build/connectkit/src/localizations/locales/es-ES.js +0 -131
  286. package/build/connectkit/src/localizations/locales/es-ES.js.map +0 -1
  287. package/build/connectkit/src/localizations/locales/fa-IR.js +0 -93
  288. package/build/connectkit/src/localizations/locales/fa-IR.js.map +0 -1
  289. package/build/connectkit/src/localizations/locales/fr-FR.js +0 -93
  290. package/build/connectkit/src/localizations/locales/fr-FR.js.map +0 -1
  291. package/build/connectkit/src/localizations/locales/ja-JP.js +0 -93
  292. package/build/connectkit/src/localizations/locales/ja-JP.js.map +0 -1
  293. package/build/connectkit/src/localizations/locales/pt-BR.js +0 -101
  294. package/build/connectkit/src/localizations/locales/pt-BR.js.map +0 -1
  295. package/build/connectkit/src/localizations/locales/ru-RU.js +0 -97
  296. package/build/connectkit/src/localizations/locales/ru-RU.js.map +0 -1
  297. package/build/connectkit/src/localizations/locales/tr-TR.js +0 -101
  298. package/build/connectkit/src/localizations/locales/tr-TR.js.map +0 -1
  299. package/build/connectkit/src/localizations/locales/vi-VN.js +0 -101
  300. package/build/connectkit/src/localizations/locales/vi-VN.js.map +0 -1
  301. package/build/connectkit/src/localizations/locales/zh-CN.js +0 -93
  302. package/build/connectkit/src/localizations/locales/zh-CN.js.map +0 -1
  303. package/build/connectkit/src/payment/paymentEffects.js +0 -269
  304. package/build/connectkit/src/payment/paymentEffects.js.map +0 -1
  305. package/build/connectkit/src/payment/paymentFsm.js +0 -194
  306. package/build/connectkit/src/payment/paymentFsm.js.map +0 -1
  307. package/build/connectkit/src/payment/paymentStore.js +0 -18
  308. package/build/connectkit/src/payment/paymentStore.js.map +0 -1
  309. package/build/connectkit/src/payment/paymentUtils.js +0 -10
  310. package/build/connectkit/src/payment/paymentUtils.js.map +0 -1
  311. package/build/connectkit/src/provider/DaimoPayProvider.js +0 -293
  312. package/build/connectkit/src/provider/DaimoPayProvider.js.map +0 -1
  313. package/build/connectkit/src/provider/PayContext.js +0 -6
  314. package/build/connectkit/src/provider/PayContext.js.map +0 -1
  315. package/build/connectkit/src/provider/PaymentProvider.js +0 -29
  316. package/build/connectkit/src/provider/PaymentProvider.js.map +0 -1
  317. package/build/connectkit/src/provider/SolanaContextProvider.js +0 -14
  318. package/build/connectkit/src/provider/SolanaContextProvider.js.map +0 -1
  319. package/build/connectkit/src/provider/Web3ContextProvider.js +0 -36
  320. package/build/connectkit/src/provider/Web3ContextProvider.js.map +0 -1
  321. package/build/connectkit/src/stateStore.js +0 -36
  322. package/build/connectkit/src/stateStore.js.map +0 -1
  323. package/build/connectkit/src/styles/defaultTheme.js +0 -80
  324. package/build/connectkit/src/styles/defaultTheme.js.map +0 -1
  325. package/build/connectkit/src/styles/index.js +0 -313
  326. package/build/connectkit/src/styles/index.js.map +0 -1
  327. package/build/connectkit/src/styles/styled/index.js +0 -6
  328. package/build/connectkit/src/styles/styled/index.js.map +0 -1
  329. package/build/connectkit/src/styles/themes/base.js +0 -141
  330. package/build/connectkit/src/styles/themes/base.js.map +0 -1
  331. package/build/connectkit/src/styles/themes/index.js +0 -13
  332. package/build/connectkit/src/styles/themes/index.js.map +0 -1
  333. package/build/connectkit/src/styles/themes/midnight.js +0 -76
  334. package/build/connectkit/src/styles/themes/midnight.js.map +0 -1
  335. package/build/connectkit/src/styles/themes/minimal.js +0 -96
  336. package/build/connectkit/src/styles/themes/minimal.js.map +0 -1
  337. package/build/connectkit/src/styles/themes/nouns.js +0 -81
  338. package/build/connectkit/src/styles/themes/nouns.js.map +0 -1
  339. package/build/connectkit/src/styles/themes/retro.js +0 -106
  340. package/build/connectkit/src/styles/themes/retro.js.map +0 -1
  341. package/build/connectkit/src/styles/themes/rounded.js +0 -106
  342. package/build/connectkit/src/styles/themes/rounded.js.map +0 -1
  343. package/build/connectkit/src/styles/themes/soft.js +0 -71
  344. package/build/connectkit/src/styles/themes/soft.js.map +0 -1
  345. package/build/connectkit/src/styles/themes/web95.js +0 -132
  346. package/build/connectkit/src/styles/themes/web95.js.map +0 -1
  347. package/build/connectkit/src/utils/exports.js +0 -6
  348. package/build/connectkit/src/utils/exports.js.map +0 -1
  349. package/build/connectkit/src/utils/format.js +0 -45
  350. package/build/connectkit/src/utils/format.js.map +0 -1
  351. package/build/connectkit/src/utils/index.js +0 -42
  352. package/build/connectkit/src/utils/index.js.map +0 -1
  353. package/build/connectkit/src/utils/p3.js +0 -15
  354. package/build/connectkit/src/utils/p3.js.map +0 -1
  355. package/build/connectkit/src/utils/platform.js +0 -11
  356. package/build/connectkit/src/utils/platform.js.map +0 -1
  357. package/build/connectkit/src/utils/polling.js +0 -35
  358. package/build/connectkit/src/utils/polling.js.map +0 -1
  359. package/build/connectkit/src/utils/supportUrl.js +0 -16
  360. package/build/connectkit/src/utils/supportUrl.js.map +0 -1
  361. package/build/connectkit/src/utils/trpc.js +0 -19
  362. package/build/connectkit/src/utils/trpc.js.map +0 -1
  363. package/build/connectkit/src/utils/validateInput.js +0 -16
  364. package/build/connectkit/src/utils/validateInput.js.map +0 -1
  365. package/build/connectkit/src/wallets/index.js +0 -21
  366. package/build/connectkit/src/wallets/index.js.map +0 -1
  367. package/build/connectkit/src/wallets/useWallets.js +0 -207
  368. package/build/connectkit/src/wallets/useWallets.js.map +0 -1
  369. package/build/connectkit/src/wallets/walletConfigs.js +0 -277
  370. package/build/connectkit/src/wallets/walletConfigs.js.map +0 -1
  371. package/build/connectkit/src/world-mini-app/WorldPayButton.js +0 -148
  372. package/build/connectkit/src/world-mini-app/WorldPayButton.js.map +0 -1
  373. package/build/connectkit/src/world-mini-app/promptWorldPayment.js +0 -59
  374. package/build/connectkit/src/world-mini-app/promptWorldPayment.js.map +0 -1
  375. package/build/connectkit/src/world.js +0 -2
  376. package/build/connectkit/src/world.js.map +0 -1
  377. package/build/pay-common/src/chain.js +0 -9
  378. package/build/pay-common/src/chain.js.map +0 -1
  379. package/build/src/assets/coins.js +0 -43
  380. package/build/src/assets/coins.js.map +0 -1
  381. package/build/src/components/Common/CopyToClipboard/index.js +0 -33
  382. package/build/src/components/Common/CopyToClipboard/index.js.map +0 -1
  383. package/build/src/components/Pages/DownloadApp/index.js +0 -35
  384. package/build/src/components/Pages/DownloadApp/index.js.map +0 -1
  385. package/build/types-20835014.d.ts +0 -68
@@ -1,376 +0,0 @@
1
- import { ethereum, getOrderDestChainId, isCCTPV1Chain, readDaimoPayOrderID, assert, debugJson, isNativeToken, assertNotNull, writeDaimoPayOrderID } from '@daimo/pay-common';
2
- import { useWallet, useConnection } from '@solana/wallet-adapter-react';
3
- import { VersionedTransaction } from '@solana/web3.js';
4
- import { useState, useEffect, useCallback } from 'react';
5
- import { getAddress, erc20Abi, isHex, hexToBytes } from 'viem';
6
- import { useAccount, useEnsName, useSendTransaction, useWriteContract } from 'wagmi';
7
- import { ROUTES } from '../constants/routes.js';
8
- import { detectPlatform } from '../utils/platform.js';
9
- import { useDaimoPay } from './useDaimoPay.js';
10
- import { useDepositAddressOptions } from './useDepositAddressOptions.js';
11
- import { useExternalPaymentOptions } from './useExternalPaymentOptions.js';
12
- import useIsMobile from './useIsMobile.js';
13
- import { useOrderUsdLimits } from './useOrderUsdLimits.js';
14
- import { useSolanaPaymentOptions } from './useSolanaPaymentOptions.js';
15
- import { useUntronAvailability } from './useUntronAvailability.js';
16
- import { useWalletPaymentOptions } from './useWalletPaymentOptions.js';
17
-
18
- function usePaymentState({
19
- trpc,
20
- lockPayParams,
21
- setRoute,
22
- log,
23
- redirectReturnUrl
24
- }) {
25
- const pay = useDaimoPay();
26
- const [platform, setPlatform] = useState();
27
- useEffect(() => {
28
- setPlatform(detectPlatform(window.navigator.userAgent));
29
- }, []);
30
- const { address: ethWalletAddress } = useAccount();
31
- const { data: senderEnsName } = useEnsName({
32
- chainId: ethereum.chainId,
33
- address: ethWalletAddress
34
- });
35
- const { sendTransactionAsync } = useSendTransaction();
36
- const { writeContractAsync } = useWriteContract();
37
- const solanaWallet = useWallet();
38
- const { connection } = useConnection();
39
- const solanaPubKey = solanaWallet.publicKey?.toBase58();
40
- const destChainId = pay.order == null ? null : getOrderDestChainId(pay.order);
41
- const showSolanaPaymentMethod = destChainId != null && isCCTPV1Chain(destChainId);
42
- const [buttonProps, setButtonProps] = useState();
43
- const [currPayParams, setCurrPayParams] = useState();
44
- const [paymentWaitingMessage, setPaymentWaitingMessage] = useState();
45
- const [isDepositFlow, setIsDepositFlow] = useState(false);
46
- const externalPaymentOptions = useExternalPaymentOptions({
47
- trpc,
48
- // allow <DaimoPayButton payId={...} paymentOptions={override} />
49
- filterIds: buttonProps?.paymentOptions ?? pay.order?.metadata.payer?.paymentOptions,
50
- platform,
51
- usdRequired: pay.order?.destFinalCallTokenAmount.usd,
52
- mode: pay.order?.mode
53
- });
54
- const walletPaymentOptions = useWalletPaymentOptions({
55
- trpc,
56
- address: ethWalletAddress,
57
- usdRequired: pay.order?.destFinalCallTokenAmount.usd,
58
- destChainId: pay.order?.destFinalCallTokenAmount.token.chainId,
59
- destAddress: pay.order?.destFinalCall.to,
60
- preferredChains: pay.order?.metadata.payer?.preferredChains,
61
- preferredTokens: pay.order?.metadata.payer?.preferredTokens,
62
- evmChains: pay.order?.metadata.payer?.evmChains,
63
- passthroughTokens: pay.order?.metadata.payer?.passthroughTokens,
64
- isDepositFlow,
65
- log
66
- });
67
- const solanaPaymentOptions = useSolanaPaymentOptions({
68
- trpc,
69
- address: solanaPubKey,
70
- usdRequired: pay.order?.destFinalCallTokenAmount.usd,
71
- isDepositFlow,
72
- showSolanaPaymentMethod
73
- });
74
- const depositAddressOptions = useDepositAddressOptions({
75
- trpc,
76
- usdRequired: pay.order?.destFinalCallTokenAmount.usd,
77
- mode: pay.order?.mode
78
- });
79
- const { available: untronAvailable } = useUntronAvailability({ trpc });
80
- const chainOrderUsdLimits = useOrderUsdLimits({ trpc });
81
- const [selectedExternalOption, setSelectedExternalOption] = useState();
82
- const [selectedTokenOption, setSelectedTokenOption] = useState();
83
- const [selectedSolanaTokenOption, setSelectedSolanaTokenOption] = useState();
84
- const [selectedDepositAddressOption, setSelectedDepositAddressOption] = useState();
85
- const [selectedWallet, setSelectedWallet] = useState();
86
- const [selectedWalletDeepLink, setSelectedWalletDeepLink] = useState();
87
- const getOrderUsdLimit = () => {
88
- const DEFAULT_USD_LIMIT = 2e4;
89
- if (pay.order == null || chainOrderUsdLimits.loading) {
90
- return DEFAULT_USD_LIMIT;
91
- }
92
- const destChainId2 = pay.order.destFinalCallTokenAmount.token.chainId;
93
- return destChainId2 in chainOrderUsdLimits.limits ? chainOrderUsdLimits.limits[destChainId2] : DEFAULT_USD_LIMIT;
94
- };
95
- const payWithToken = async (walletOption) => {
96
- assert(
97
- ethWalletAddress != null,
98
- `[PAY TOKEN] null ethWalletAddress when paying on ethereum`
99
- );
100
- assert(
101
- pay.paymentState === "preview" || pay.paymentState === "unhydrated" || pay.paymentState === "payment_unpaid",
102
- `[PAY TOKEN] paymentState is ${pay.paymentState}, must be preview or unhydrated or payment_unpaid`
103
- );
104
- let hydratedOrder;
105
- const { required, fees } = walletOption;
106
- const paymentAmount = BigInt(required.amount) + BigInt(fees.amount);
107
- if (pay.paymentState !== "payment_unpaid") {
108
- assert(
109
- required.token.token === fees.token.token,
110
- `[PAY TOKEN] required token ${debugJson(required)} does not match fees token ${debugJson(fees)}`
111
- );
112
- const res = await pay.hydrateOrder(ethWalletAddress);
113
- hydratedOrder = res.order;
114
- log(
115
- `[PAY TOKEN] hydrated order: ${debugJson(
116
- hydratedOrder
117
- )}, paying ${paymentAmount} of token ${required.token.token}`
118
- );
119
- } else {
120
- hydratedOrder = pay.order;
121
- }
122
- const paymentTxHash = await (async () => {
123
- const dest = walletOption.passthroughAddress ?? hydratedOrder.intentAddr;
124
- try {
125
- if (isNativeToken(getAddress(required.token.token))) {
126
- return await sendTransactionAsync({
127
- to: dest,
128
- value: paymentAmount
129
- });
130
- } else {
131
- return await writeContractAsync({
132
- abi: erc20Abi,
133
- address: getAddress(required.token.token),
134
- functionName: "transfer",
135
- args: [dest, paymentAmount]
136
- });
137
- }
138
- } catch (e) {
139
- console.error(`[PAY TOKEN] error sending token: ${e}`);
140
- throw e;
141
- }
142
- })();
143
- if (!isHex(paymentTxHash) || paymentTxHash.length !== 66) {
144
- log(
145
- `[PAY TOKEN] wallet bug detected. ignoring invalid payment txHash: ${paymentTxHash}`
146
- );
147
- return { success: true };
148
- }
149
- try {
150
- await pay.payEthSource({
151
- paymentTxHash,
152
- sourceChainId: required.token.chainId,
153
- payerAddress: ethWalletAddress,
154
- sourceToken: getAddress(required.token.token),
155
- sourceAmount: paymentAmount
156
- });
157
- return { txHash: paymentTxHash, success: true };
158
- } catch {
159
- console.error(
160
- `[PAY TOKEN] could not verify payment tx on chain: ${paymentTxHash}`
161
- );
162
- return { txHash: paymentTxHash, success: false };
163
- }
164
- };
165
- const payWithSolanaToken = async (inputToken) => {
166
- const payerPublicKey = solanaWallet.publicKey;
167
- assert(
168
- payerPublicKey != null,
169
- "[PAY SOLANA] null payerPublicKey when paying on solana"
170
- );
171
- assert(
172
- pay.order?.id != null,
173
- "[PAY SOLANA] null orderId when paying on solana"
174
- );
175
- assert(
176
- pay.paymentState === "preview" || pay.paymentState === "unhydrated" || pay.paymentState === "payment_unpaid",
177
- `[PAY SOLANA] paymentState is ${pay.paymentState}, must be preview or unhydrated or payment_unpaid`
178
- );
179
- let hydratedOrder;
180
- if (pay.paymentState !== "payment_unpaid") {
181
- const res = await pay.hydrateOrder();
182
- hydratedOrder = res.order;
183
- log(
184
- `[PAY SOLANA] Hydrated order: ${JSON.stringify(
185
- hydratedOrder
186
- )}, checking out with Solana ${inputToken}`
187
- );
188
- } else {
189
- hydratedOrder = pay.order;
190
- }
191
- const paymentTxHash = await (async () => {
192
- try {
193
- const serializedTx = await trpc.getSolanaSwapAndBurnTx.query({
194
- orderId: pay.order.id.toString(),
195
- userPublicKey: assertNotNull(
196
- payerPublicKey,
197
- "[PAY SOLANA] wallet.publicKey cannot be null"
198
- ).toString(),
199
- inputTokenMint: inputToken
200
- });
201
- const tx = VersionedTransaction.deserialize(hexToBytes(serializedTx));
202
- const txHash = await solanaWallet.sendTransaction(tx, connection);
203
- return txHash;
204
- } catch (e) {
205
- console.error(e);
206
- throw e;
207
- }
208
- })();
209
- try {
210
- await pay.paySolanaSource({
211
- paymentTxHash,
212
- sourceToken: inputToken
213
- });
214
- return { txHash: paymentTxHash, success: true };
215
- } catch {
216
- console.error(
217
- `[PAY SOLANA] could not verify payment tx on chain: ${paymentTxHash}`
218
- );
219
- return { txHash: paymentTxHash, success: false };
220
- }
221
- };
222
- const payWithExternal = async (option) => {
223
- assert(pay.order != null, "[PAY EXTERNAL] order cannot be null");
224
- assert(platform != null, "[PAY EXTERNAL] platform cannot be null");
225
- const { order } = await pay.hydrateOrder();
226
- const externalPaymentOptionData = await trpc.getExternalPaymentOptionData.query({
227
- id: order.id.toString(),
228
- externalPaymentOption: option,
229
- platform,
230
- redirectReturnUrl
231
- });
232
- assert(
233
- externalPaymentOptionData != null,
234
- "[PAY EXTERNAL] missing externalPaymentOptionData"
235
- );
236
- log(
237
- `[PAY EXTERNAL] hydrated order: ${debugJson(
238
- order
239
- )}, checking out with external payment: ${option}`
240
- );
241
- setPaymentWaitingMessage(externalPaymentOptionData.waitingMessage);
242
- return externalPaymentOptionData.url;
243
- };
244
- const payWithDepositAddress = async (option) => {
245
- const { order } = await pay.hydrateOrder();
246
- log(
247
- `[PAY DEPOSIT ADDRESS] hydrated order ${order.id} for ${order.usdValue} USD, checking out with deposit address: ${option}`
248
- );
249
- const result = await trpc.getDepositAddressForOrder.query({
250
- orderId: order.id.toString(),
251
- option
252
- });
253
- return "error" in result ? null : result;
254
- };
255
- const { isIOS } = useIsMobile();
256
- const openInWalletBrowser = (wallet, amountUsd) => {
257
- const paymentState = pay.paymentState;
258
- assert(
259
- paymentState === "payment_unpaid",
260
- `[OPEN IN WALLET BROWSER] paymentState is ${paymentState}, must be payment_unpaid`
261
- );
262
- assert(
263
- wallet.getDaimoPayDeeplink != null,
264
- `openInWalletBrowser: missing deeplink for ${wallet.name}`
265
- );
266
- const payId = writeDaimoPayOrderID(pay.order.id);
267
- const deeplink = wallet.getDaimoPayDeeplink(payId);
268
- if (!isIOS) {
269
- window.open(deeplink, "_blank");
270
- }
271
- setSelectedWallet(wallet);
272
- setSelectedWalletDeepLink(deeplink);
273
- setRoute(ROUTES.WAITING_WALLET, {
274
- amountUsd,
275
- payId,
276
- wallet_name: wallet.name
277
- });
278
- };
279
- const setChosenUsd = (usd) => {
280
- assert(
281
- pay.paymentState === "preview",
282
- "[SET CHOSEN USD] paymentState is not preview"
283
- );
284
- pay.setChosenUsd(usd);
285
- };
286
- const setPayId = useCallback(
287
- async (payId) => {
288
- if (lockPayParams || payId == null) return;
289
- const id = readDaimoPayOrderID(payId).toString();
290
- if (pay.order?.id && BigInt(id) == pay.order.id) {
291
- return;
292
- }
293
- pay.reset();
294
- pay.setPayId(payId);
295
- setIsDepositFlow(false);
296
- },
297
- [lockPayParams, pay]
298
- );
299
- const setPayParams = async (payParams) => {
300
- if (lockPayParams) return;
301
- assert(payParams != null, "[SET PAY PARAMS] payParams cannot be null");
302
- log("[SET PAY PARAMS] setting payParams", payParams);
303
- pay.reset();
304
- setCurrPayParams(payParams);
305
- setIsDepositFlow(payParams.toUnits == null);
306
- await pay.createPreviewOrder(payParams);
307
- };
308
- const generatePreviewOrder = async () => {
309
- pay.reset();
310
- if (currPayParams == null) return;
311
- await pay.createPreviewOrder(currPayParams);
312
- };
313
- const resetOrder = useCallback(
314
- async (payParams) => {
315
- const mergedPayParams = payParams != null && currPayParams != null ? { ...currPayParams, ...payParams } : currPayParams;
316
- pay.reset();
317
- setSelectedExternalOption(void 0);
318
- setSelectedTokenOption(void 0);
319
- setSelectedSolanaTokenOption(void 0);
320
- setSelectedDepositAddressOption(void 0);
321
- setSelectedWallet(void 0);
322
- setSelectedWalletDeepLink(void 0);
323
- setPaymentWaitingMessage(void 0);
324
- if (mergedPayParams) {
325
- setCurrPayParams(mergedPayParams);
326
- setIsDepositFlow(mergedPayParams.toUnits == null);
327
- await pay.createPreviewOrder(mergedPayParams);
328
- }
329
- setRoute(ROUTES.SELECT_METHOD);
330
- },
331
- [setRoute, pay, currPayParams]
332
- );
333
- const [tokenMode, setTokenMode] = useState("evm");
334
- return {
335
- buttonProps,
336
- setButtonProps,
337
- setPayId,
338
- setPayParams,
339
- tokenMode,
340
- setTokenMode,
341
- generatePreviewOrder,
342
- isDepositFlow,
343
- paymentWaitingMessage,
344
- selectedExternalOption,
345
- selectedTokenOption,
346
- selectedSolanaTokenOption,
347
- externalPaymentOptions,
348
- showSolanaPaymentMethod,
349
- selectedWallet,
350
- selectedWalletDeepLink,
351
- walletPaymentOptions,
352
- solanaPaymentOptions,
353
- depositAddressOptions,
354
- selectedDepositAddressOption,
355
- getOrderUsdLimit,
356
- resetOrder,
357
- setSelectedWallet,
358
- setSelectedWalletDeepLink,
359
- setPaymentWaitingMessage,
360
- setSelectedExternalOption,
361
- setSelectedTokenOption,
362
- setSelectedSolanaTokenOption,
363
- setSelectedDepositAddressOption,
364
- setChosenUsd,
365
- payWithToken,
366
- payWithExternal,
367
- payWithDepositAddress,
368
- payWithSolanaToken,
369
- openInWalletBrowser,
370
- senderEnsName: senderEnsName ?? void 0,
371
- untronAvailable
372
- };
373
- }
374
-
375
- export { usePaymentState };
376
- //# sourceMappingURL=usePaymentState.js.map
@@ -1 +0,0 @@
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 isNativeToken,\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 { erc20Abi, getAddress, Hex, hexToBytes, isHex } 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 (isNativeToken(getAddress(required.token.token))) {\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 setIsDepositFlow(false);\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 setCurrPayParams(payParams);\n setIsDepositFlow(payParams.toUnits == null);\n await pay.createPreviewOrder(payParams);\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 setCurrPayParams(mergedPayParams);\n setIsDepositFlow(mergedPayParams.toUnits == null);\n await pay.createPreviewOrder(mergedPayParams);\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 +0,0 @@
1
- import { useRef } from 'react';
2
-
3
- function usePrevious(value, initial) {
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;
10
- }
11
-
12
- export { usePrevious as default };
13
- //# sourceMappingURL=usePrevious.js.map
@@ -1 +0,0 @@
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,40 +0,0 @@
1
- import { useState, useEffect } from 'react';
2
-
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
- }
30
- };
31
- refreshWalletPaymentOptions();
32
- }, [address, usdRequired, isDepositFlow, showSolanaPaymentMethod]);
33
- return {
34
- options,
35
- isLoading
36
- };
37
- }
38
-
39
- export { useSolanaPaymentOptions };
40
- //# sourceMappingURL=useSolanaPaymentOptions.js.map
@@ -1 +0,0 @@
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;;;;"}
@@ -1,152 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { getChainName } from '@daimo/pay-common';
3
- import TokenChainLogo from '../components/Common/TokenChainLogo/index.js';
4
- import { ROUTES } from '../constants/routes.js';
5
- import { flattenChildren } from '../utils/index.js';
6
- import { formatUsd, roundTokenAmount } from '../utils/format.js';
7
- import { useDaimoPay } from './useDaimoPay.js';
8
- import useLocales from './useLocales.js';
9
- import { usePayContext } from './usePayContext.js';
10
-
11
- function useTokenOptions(mode) {
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 };
59
- }
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
98
- };
99
- if (isDepositFlow) {
100
- setRoute(ROUTES.SELECT_AMOUNT, meta);
101
- } else {
102
- setRoute(ROUTES.PAY_WITH_TOKEN, meta);
103
- }
104
- },
105
- disabled
106
- };
107
- });
108
- }
109
- function getSolanaTokenOptions(options, isDepositFlow, setSelectedSolanaTokenOption, setRoute, onString) {
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
136
- };
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
- });
146
- }
147
- function getDaimoTokenKey(token) {
148
- return `${token.chainId}-${token.token}`;
149
- }
150
-
151
- export { useTokenOptions };
152
- //# sourceMappingURL=useTokenOptions.js.map