@daimo/pay 1.19.9 → 1.19.11

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 (366) hide show
  1. package/package.json +2 -2
  2. package/build/index.d.ts +0 -619
  3. package/build/package.json.js +0 -118
  4. package/build/package.json.js.map +0 -1
  5. package/build/src/assets/MobileWithLogos.js +0 -329
  6. package/build/src/assets/MobileWithLogos.js.map +0 -1
  7. package/build/src/assets/ScanIconWithLogos.js +0 -243
  8. package/build/src/assets/ScanIconWithLogos.js.map +0 -1
  9. package/build/src/assets/browsers.js +0 -969
  10. package/build/src/assets/browsers.js.map +0 -1
  11. package/build/src/assets/chains.js +0 -661
  12. package/build/src/assets/chains.js.map +0 -1
  13. package/build/src/assets/icons.js +0 -273
  14. package/build/src/assets/icons.js.map +0 -1
  15. package/build/src/assets/logos.js +0 -1694
  16. package/build/src/assets/logos.js.map +0 -1
  17. package/build/src/assets/wave.js +0 -46
  18. package/build/src/assets/wave.js.map +0 -1
  19. package/build/src/components/Common/Alert/index.js +0 -13
  20. package/build/src/components/Common/Alert/index.js.map +0 -1
  21. package/build/src/components/Common/Alert/styles.js +0 -55
  22. package/build/src/components/Common/Alert/styles.js.map +0 -1
  23. package/build/src/components/Common/AmountInput/AmountInputField.js +0 -62
  24. package/build/src/components/Common/AmountInput/AmountInputField.js.map +0 -1
  25. package/build/src/components/Common/AmountInput/index.js +0 -166
  26. package/build/src/components/Common/AmountInput/index.js.map +0 -1
  27. package/build/src/components/Common/Avatar/index.js +0 -78
  28. package/build/src/components/Common/Avatar/index.js.map +0 -1
  29. package/build/src/components/Common/Avatar/styles.js +0 -54
  30. package/build/src/components/Common/Avatar/styles.js.map +0 -1
  31. package/build/src/components/Common/BrowserIcon/index.js +0 -29
  32. package/build/src/components/Common/BrowserIcon/index.js.map +0 -1
  33. package/build/src/components/Common/BrowserIcon/styles.js +0 -20
  34. package/build/src/components/Common/BrowserIcon/styles.js.map +0 -1
  35. package/build/src/components/Common/Button/index.js +0 -144
  36. package/build/src/components/Common/Button/index.js.map +0 -1
  37. package/build/src/components/Common/Button/styles.js +0 -287
  38. package/build/src/components/Common/Button/styles.js.map +0 -1
  39. package/build/src/components/Common/Chain/index.js +0 -141
  40. package/build/src/components/Common/Chain/index.js.map +0 -1
  41. package/build/src/components/Common/Chain/styles.js +0 -90
  42. package/build/src/components/Common/Chain/styles.js.map +0 -1
  43. package/build/src/components/Common/ChainSelectList/index.js +0 -250
  44. package/build/src/components/Common/ChainSelectList/index.js.map +0 -1
  45. package/build/src/components/Common/ChainSelectList/styles.js +0 -226
  46. package/build/src/components/Common/ChainSelectList/styles.js.map +0 -1
  47. package/build/src/components/Common/CircleTimer.js +0 -92
  48. package/build/src/components/Common/CircleTimer.js.map +0 -1
  49. package/build/src/components/Common/ConnectorList/index.js +0 -121
  50. package/build/src/components/Common/ConnectorList/index.js.map +0 -1
  51. package/build/src/components/Common/ConnectorList/styles.js +0 -344
  52. package/build/src/components/Common/ConnectorList/styles.js.map +0 -1
  53. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +0 -78
  54. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +0 -1
  55. package/build/src/components/Common/CustomQRCode/QRCode.js +0 -132
  56. package/build/src/components/Common/CustomQRCode/QRCode.js.map +0 -1
  57. package/build/src/components/Common/CustomQRCode/index.js +0 -89
  58. package/build/src/components/Common/CustomQRCode/index.js.map +0 -1
  59. package/build/src/components/Common/CustomQRCode/styles.js +0 -142
  60. package/build/src/components/Common/CustomQRCode/styles.js.map +0 -1
  61. package/build/src/components/Common/FitText/index.js +0 -34
  62. package/build/src/components/Common/FitText/index.js.map +0 -1
  63. package/build/src/components/Common/Modal/index.js +0 -558
  64. package/build/src/components/Common/Modal/index.js.map +0 -1
  65. package/build/src/components/Common/Modal/styles.js +0 -665
  66. package/build/src/components/Common/Modal/styles.js.map +0 -1
  67. package/build/src/components/Common/OptionsList/index.js +0 -145
  68. package/build/src/components/Common/OptionsList/index.js.map +0 -1
  69. package/build/src/components/Common/OptionsList/styles.js +0 -138
  70. package/build/src/components/Common/OptionsList/styles.js.map +0 -1
  71. package/build/src/components/Common/OrderHeader/index.js +0 -148
  72. package/build/src/components/Common/OrderHeader/index.js.map +0 -1
  73. package/build/src/components/Common/PaymentBreakdown/index.js +0 -70
  74. package/build/src/components/Common/PaymentBreakdown/index.js.map +0 -1
  75. package/build/src/components/Common/Portal/index.js +0 -30
  76. package/build/src/components/Common/Portal/index.js.map +0 -1
  77. package/build/src/components/Common/PoweredByFooter/index.js +0 -39
  78. package/build/src/components/Common/PoweredByFooter/index.js.map +0 -1
  79. package/build/src/components/Common/ScrollArea/index.js +0 -120
  80. package/build/src/components/Common/ScrollArea/index.js.map +0 -1
  81. package/build/src/components/Common/ScrollArea/styles.js +0 -169
  82. package/build/src/components/Common/ScrollArea/styles.js.map +0 -1
  83. package/build/src/components/Common/SelectAnotherMethodButton/index.js +0 -96
  84. package/build/src/components/Common/SelectAnotherMethodButton/index.js.map +0 -1
  85. package/build/src/components/Common/Spinner/index.js +0 -64
  86. package/build/src/components/Common/Spinner/index.js.map +0 -1
  87. package/build/src/components/Common/Spinner/styles.js +0 -22
  88. package/build/src/components/Common/Spinner/styles.js.map +0 -1
  89. package/build/src/components/Common/SwitchButton/index.js +0 -43
  90. package/build/src/components/Common/SwitchButton/index.js.map +0 -1
  91. package/build/src/components/Common/ThemedButton/index.js +0 -46
  92. package/build/src/components/Common/ThemedButton/index.js.map +0 -1
  93. package/build/src/components/Common/ThemedButton/styles.js +0 -152
  94. package/build/src/components/Common/ThemedButton/styles.js.map +0 -1
  95. package/build/src/components/Common/TokenChainLogo/index.js +0 -62
  96. package/build/src/components/Common/TokenChainLogo/index.js.map +0 -1
  97. package/build/src/components/Common/Tooltip/index.js +0 -129
  98. package/build/src/components/Common/Tooltip/index.js.map +0 -1
  99. package/build/src/components/Common/Tooltip/styles.js +0 -81
  100. package/build/src/components/Common/Tooltip/styles.js.map +0 -1
  101. package/build/src/components/Common/WalletChainLogo/index.js +0 -31
  102. package/build/src/components/Common/WalletChainLogo/index.js.map +0 -1
  103. package/build/src/components/DaimoPayButton/index.js +0 -196
  104. package/build/src/components/DaimoPayButton/index.js.map +0 -1
  105. package/build/src/components/DaimoPayButton/styles.js +0 -50
  106. package/build/src/components/DaimoPayButton/styles.js.map +0 -1
  107. package/build/src/components/DaimoPayModal/ConnectUsing.js +0 -70
  108. package/build/src/components/DaimoPayModal/ConnectUsing.js.map +0 -1
  109. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js +0 -339
  110. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +0 -1
  111. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js +0 -131
  112. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +0 -1
  113. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +0 -89
  114. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +0 -1
  115. package/build/src/components/DaimoPayModal/index.js +0 -605
  116. package/build/src/components/DaimoPayModal/index.js.map +0 -1
  117. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +0 -25
  118. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +0 -1
  119. package/build/src/components/Pages/About/graphics.js +0 -853
  120. package/build/src/components/Pages/About/graphics.js.map +0 -1
  121. package/build/src/components/Pages/About/index.js +0 -222
  122. package/build/src/components/Pages/About/index.js.map +0 -1
  123. package/build/src/components/Pages/About/styles.js +0 -140
  124. package/build/src/components/Pages/About/styles.js.map +0 -1
  125. package/build/src/components/Pages/Confirmation/index.js +0 -126
  126. package/build/src/components/Pages/Confirmation/index.js.map +0 -1
  127. package/build/src/components/Pages/Connectors/index.js +0 -26
  128. package/build/src/components/Pages/Connectors/index.js.map +0 -1
  129. package/build/src/components/Pages/Error/index.js +0 -57
  130. package/build/src/components/Pages/Error/index.js.map +0 -1
  131. package/build/src/components/Pages/MobileConnectors/index.js +0 -108
  132. package/build/src/components/Pages/MobileConnectors/index.js.map +0 -1
  133. package/build/src/components/Pages/MobileConnectors/styles.js +0 -64
  134. package/build/src/components/Pages/MobileConnectors/styles.js.map +0 -1
  135. package/build/src/components/Pages/Onboarding/index.js +0 -34
  136. package/build/src/components/Pages/Onboarding/index.js.map +0 -1
  137. package/build/src/components/Pages/Onboarding/styles.js +0 -229
  138. package/build/src/components/Pages/Onboarding/styles.js.map +0 -1
  139. package/build/src/components/Pages/PayWithToken/index.js +0 -157
  140. package/build/src/components/Pages/PayWithToken/index.js.map +0 -1
  141. package/build/src/components/Pages/SelectAmount/index.js +0 -24
  142. package/build/src/components/Pages/SelectAmount/index.js.map +0 -1
  143. package/build/src/components/Pages/SelectDepositAddressAmount/index.js +0 -79
  144. package/build/src/components/Pages/SelectDepositAddressAmount/index.js.map +0 -1
  145. package/build/src/components/Pages/SelectDepositAddressChain/index.js +0 -80
  146. package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +0 -1
  147. package/build/src/components/Pages/SelectExchange/index.js +0 -62
  148. package/build/src/components/Pages/SelectExchange/index.js.map +0 -1
  149. package/build/src/components/Pages/SelectExternalAmount/index.js +0 -80
  150. package/build/src/components/Pages/SelectExternalAmount/index.js.map +0 -1
  151. package/build/src/components/Pages/SelectMethod/index.js +0 -315
  152. package/build/src/components/Pages/SelectMethod/index.js.map +0 -1
  153. package/build/src/components/Pages/SelectToken/index.js +0 -99
  154. package/build/src/components/Pages/SelectToken/index.js.map +0 -1
  155. package/build/src/components/Pages/SelectWalletAmount/index.js +0 -71
  156. package/build/src/components/Pages/SelectWalletAmount/index.js.map +0 -1
  157. package/build/src/components/Pages/SelectWalletChain/index.js +0 -55
  158. package/build/src/components/Pages/SelectWalletChain/index.js.map +0 -1
  159. package/build/src/components/Pages/SelectZKP/index.js +0 -41
  160. package/build/src/components/Pages/SelectZKP/index.js.map +0 -1
  161. package/build/src/components/Pages/Solana/ConnectorSolana/index.js +0 -94
  162. package/build/src/components/Pages/Solana/ConnectorSolana/index.js.map +0 -1
  163. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +0 -92
  164. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +0 -1
  165. package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js +0 -24
  166. package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +0 -1
  167. package/build/src/components/Pages/SwitchNetworks/index.js +0 -45
  168. package/build/src/components/Pages/SwitchNetworks/index.js.map +0 -1
  169. package/build/src/components/Pages/WaitingDepositAddress/index.js +0 -586
  170. package/build/src/components/Pages/WaitingDepositAddress/index.js.map +0 -1
  171. package/build/src/components/Pages/WaitingExternal/index.js +0 -174
  172. package/build/src/components/Pages/WaitingExternal/index.js.map +0 -1
  173. package/build/src/components/Pages/WaitingWallet/index.js +0 -49
  174. package/build/src/components/Pages/WaitingWallet/index.js.map +0 -1
  175. package/build/src/components/Pages/Warning/index.js +0 -56
  176. package/build/src/components/Pages/Warning/index.js.map +0 -1
  177. package/build/src/components/Spinners/CircleSpinner/index.js +0 -104
  178. package/build/src/components/Spinners/CircleSpinner/index.js.map +0 -1
  179. package/build/src/components/Spinners/CircleSpinner/styles.js +0 -117
  180. package/build/src/components/Spinners/CircleSpinner/styles.js.map +0 -1
  181. package/build/src/components/Spinners/ExternalPaymentSpinner/index.js +0 -29
  182. package/build/src/components/Spinners/ExternalPaymentSpinner/index.js.map +0 -1
  183. package/build/src/components/Spinners/SquircleSpinner/index.js +0 -68
  184. package/build/src/components/Spinners/SquircleSpinner/index.js.map +0 -1
  185. package/build/src/components/Spinners/SquircleSpinner/styles.js +0 -66
  186. package/build/src/components/Spinners/SquircleSpinner/styles.js.map +0 -1
  187. package/build/src/components/Spinners/TokenLogoSpinner/index.js +0 -24
  188. package/build/src/components/Spinners/TokenLogoSpinner/index.js.map +0 -1
  189. package/build/src/components/Spinners/TokenLogoSpinner/styles.js +0 -40
  190. package/build/src/components/Spinners/TokenLogoSpinner/styles.js.map +0 -1
  191. package/build/src/components/Spinners/WalletPaymentSpinner/index.js +0 -37
  192. package/build/src/components/Spinners/WalletPaymentSpinner/index.js.map +0 -1
  193. package/build/src/components/Spinners/styles.js +0 -32
  194. package/build/src/components/Spinners/styles.js.map +0 -1
  195. package/build/src/constants/defaultTheme.js +0 -6
  196. package/build/src/constants/defaultTheme.js.map +0 -1
  197. package/build/src/constants/limits.js +0 -4
  198. package/build/src/constants/limits.js.map +0 -1
  199. package/build/src/constants/paymentOptions.js +0 -61
  200. package/build/src/constants/paymentOptions.js.map +0 -1
  201. package/build/src/constants/routes.js +0 -31
  202. package/build/src/constants/routes.js.map +0 -1
  203. package/build/src/constants/wallets.js +0 -7
  204. package/build/src/constants/wallets.js.map +0 -1
  205. package/build/src/defaultConfig.js +0 -65
  206. package/build/src/defaultConfig.js.map +0 -1
  207. package/build/src/defaultConnectors.js +0 -37
  208. package/build/src/defaultConnectors.js.map +0 -1
  209. package/build/src/hooks/useChainIsSupported.js +0 -10
  210. package/build/src/hooks/useChainIsSupported.js.map +0 -1
  211. package/build/src/hooks/useChains.js +0 -10
  212. package/build/src/hooks/useChains.js.map +0 -1
  213. package/build/src/hooks/useConnect.js +0 -61
  214. package/build/src/hooks/useConnect.js.map +0 -1
  215. package/build/src/hooks/useConnectCallback.js +0 -21
  216. package/build/src/hooks/useConnectCallback.js.map +0 -1
  217. package/build/src/hooks/useConnectors.js +0 -20
  218. package/build/src/hooks/useConnectors.js.map +0 -1
  219. package/build/src/hooks/useDaimoPay.js +0 -131
  220. package/build/src/hooks/useDaimoPay.js.map +0 -1
  221. package/build/src/hooks/useDaimoPayStatus.js +0 -12
  222. package/build/src/hooks/useDaimoPayStatus.js.map +0 -1
  223. package/build/src/hooks/useDaimoPayUI.js +0 -15
  224. package/build/src/hooks/useDaimoPayUI.js.map +0 -1
  225. package/build/src/hooks/useEnsFallbackConfig.js +0 -16
  226. package/build/src/hooks/useEnsFallbackConfig.js.map +0 -1
  227. package/build/src/hooks/useFitText.js +0 -133
  228. package/build/src/hooks/useFitText.js.map +0 -1
  229. package/build/src/hooks/useFocusTrap.js +0 -53
  230. package/build/src/hooks/useFocusTrap.js.map +0 -1
  231. package/build/src/hooks/useIsMobile.js +0 -11
  232. package/build/src/hooks/useIsMobile.js.map +0 -1
  233. package/build/src/hooks/useIsMounted.js +0 -10
  234. package/build/src/hooks/useIsMounted.js.map +0 -1
  235. package/build/src/hooks/useLastConnector.js +0 -24
  236. package/build/src/hooks/useLastConnector.js.map +0 -1
  237. package/build/src/hooks/useLocales.js +0 -60
  238. package/build/src/hooks/useLocales.js.map +0 -1
  239. package/build/src/hooks/useLockBodyScroll.js +0 -47
  240. package/build/src/hooks/useLockBodyScroll.js.map +0 -1
  241. package/build/src/hooks/useOrderUsdLimits.js +0 -24
  242. package/build/src/hooks/useOrderUsdLimits.js.map +0 -1
  243. package/build/src/hooks/usePayContext.js +0 -11
  244. package/build/src/hooks/usePayContext.js.map +0 -1
  245. package/build/src/hooks/usePaymentOptions.js +0 -183
  246. package/build/src/hooks/usePaymentOptions.js.map +0 -1
  247. package/build/src/hooks/usePaymentState.js +0 -399
  248. package/build/src/hooks/usePaymentState.js.map +0 -1
  249. package/build/src/hooks/usePrevious.js +0 -13
  250. package/build/src/hooks/usePrevious.js.map +0 -1
  251. package/build/src/hooks/useTokenOptions.js +0 -156
  252. package/build/src/hooks/useTokenOptions.js.map +0 -1
  253. package/build/src/hooks/useUntronAvailability.js +0 -32
  254. package/build/src/hooks/useUntronAvailability.js.map +0 -1
  255. package/build/src/hooks/useWindowSize.js +0 -23
  256. package/build/src/hooks/useWindowSize.js.map +0 -1
  257. package/build/src/index.js +0 -14
  258. package/build/src/index.js.map +0 -1
  259. package/build/src/localizations/index.js +0 -48
  260. package/build/src/localizations/index.js.map +0 -1
  261. package/build/src/localizations/locales/ar-AE.js +0 -95
  262. package/build/src/localizations/locales/ar-AE.js.map +0 -1
  263. package/build/src/localizations/locales/ca-AD.js +0 -93
  264. package/build/src/localizations/locales/ca-AD.js.map +0 -1
  265. package/build/src/localizations/locales/ee-EE.js +0 -101
  266. package/build/src/localizations/locales/ee-EE.js.map +0 -1
  267. package/build/src/localizations/locales/en-US.js +0 -145
  268. package/build/src/localizations/locales/en-US.js.map +0 -1
  269. package/build/src/localizations/locales/es-ES.js +0 -138
  270. package/build/src/localizations/locales/es-ES.js.map +0 -1
  271. package/build/src/localizations/locales/fa-IR.js +0 -93
  272. package/build/src/localizations/locales/fa-IR.js.map +0 -1
  273. package/build/src/localizations/locales/fr-FR.js +0 -93
  274. package/build/src/localizations/locales/fr-FR.js.map +0 -1
  275. package/build/src/localizations/locales/ja-JP.js +0 -93
  276. package/build/src/localizations/locales/ja-JP.js.map +0 -1
  277. package/build/src/localizations/locales/pt-BR.js +0 -145
  278. package/build/src/localizations/locales/pt-BR.js.map +0 -1
  279. package/build/src/localizations/locales/ru-RU.js +0 -97
  280. package/build/src/localizations/locales/ru-RU.js.map +0 -1
  281. package/build/src/localizations/locales/tr-TR.js +0 -101
  282. package/build/src/localizations/locales/tr-TR.js.map +0 -1
  283. package/build/src/localizations/locales/vi-VN.js +0 -101
  284. package/build/src/localizations/locales/vi-VN.js.map +0 -1
  285. package/build/src/localizations/locales/zh-CN.js +0 -93
  286. package/build/src/localizations/locales/zh-CN.js.map +0 -1
  287. package/build/src/payment/paymentEffects.js +0 -270
  288. package/build/src/payment/paymentEffects.js.map +0 -1
  289. package/build/src/payment/paymentFsm.js +0 -234
  290. package/build/src/payment/paymentFsm.js.map +0 -1
  291. package/build/src/payment/paymentStore.js +0 -18
  292. package/build/src/payment/paymentStore.js.map +0 -1
  293. package/build/src/payment/paymentUtils.js +0 -10
  294. package/build/src/payment/paymentUtils.js.map +0 -1
  295. package/build/src/provider/DaimoPayProvider.js +0 -300
  296. package/build/src/provider/DaimoPayProvider.js.map +0 -1
  297. package/build/src/provider/PayContext.js +0 -6
  298. package/build/src/provider/PayContext.js.map +0 -1
  299. package/build/src/provider/PaymentProvider.js +0 -35
  300. package/build/src/provider/PaymentProvider.js.map +0 -1
  301. package/build/src/provider/SolanaContextProvider.js +0 -14
  302. package/build/src/provider/SolanaContextProvider.js.map +0 -1
  303. package/build/src/provider/Web3ContextProvider.js +0 -36
  304. package/build/src/provider/Web3ContextProvider.js.map +0 -1
  305. package/build/src/stateStore.js +0 -36
  306. package/build/src/stateStore.js.map +0 -1
  307. package/build/src/styles/defaultTheme.js +0 -80
  308. package/build/src/styles/defaultTheme.js.map +0 -1
  309. package/build/src/styles/index.js +0 -313
  310. package/build/src/styles/index.js.map +0 -1
  311. package/build/src/styles/styled/index.js +0 -6
  312. package/build/src/styles/styled/index.js.map +0 -1
  313. package/build/src/styles/themes/base.js +0 -141
  314. package/build/src/styles/themes/base.js.map +0 -1
  315. package/build/src/styles/themes/index.js +0 -13
  316. package/build/src/styles/themes/index.js.map +0 -1
  317. package/build/src/styles/themes/midnight.js +0 -76
  318. package/build/src/styles/themes/midnight.js.map +0 -1
  319. package/build/src/styles/themes/minimal.js +0 -96
  320. package/build/src/styles/themes/minimal.js.map +0 -1
  321. package/build/src/styles/themes/nouns.js +0 -81
  322. package/build/src/styles/themes/nouns.js.map +0 -1
  323. package/build/src/styles/themes/retro.js +0 -106
  324. package/build/src/styles/themes/retro.js.map +0 -1
  325. package/build/src/styles/themes/rounded.js +0 -106
  326. package/build/src/styles/themes/rounded.js.map +0 -1
  327. package/build/src/styles/themes/soft.js +0 -71
  328. package/build/src/styles/themes/soft.js.map +0 -1
  329. package/build/src/styles/themes/web95.js +0 -132
  330. package/build/src/styles/themes/web95.js.map +0 -1
  331. package/build/src/utils/exports.js +0 -6
  332. package/build/src/utils/exports.js.map +0 -1
  333. package/build/src/utils/format.js +0 -48
  334. package/build/src/utils/format.js.map +0 -1
  335. package/build/src/utils/index.js +0 -42
  336. package/build/src/utils/index.js.map +0 -1
  337. package/build/src/utils/p3.js +0 -15
  338. package/build/src/utils/p3.js.map +0 -1
  339. package/build/src/utils/platform.js +0 -11
  340. package/build/src/utils/platform.js.map +0 -1
  341. package/build/src/utils/polling.js +0 -44
  342. package/build/src/utils/polling.js.map +0 -1
  343. package/build/src/utils/supportUrl.js +0 -16
  344. package/build/src/utils/supportUrl.js.map +0 -1
  345. package/build/src/utils/trpc.js +0 -19
  346. package/build/src/utils/trpc.js.map +0 -1
  347. package/build/src/utils/validateInput.js +0 -16
  348. package/build/src/utils/validateInput.js.map +0 -1
  349. package/build/src/wallets/index.js +0 -21
  350. package/build/src/wallets/index.js.map +0 -1
  351. package/build/src/wallets/useWallets.js +0 -278
  352. package/build/src/wallets/useWallets.js.map +0 -1
  353. package/build/src/wallets/walletConfigs.js +0 -190
  354. package/build/src/wallets/walletConfigs.js.map +0 -1
  355. package/build/src/world-mini-app/WorldPayButton.js +0 -165
  356. package/build/src/world-mini-app/WorldPayButton.js.map +0 -1
  357. package/build/src/world-mini-app/promptWorldPayment.js +0 -59
  358. package/build/src/world-mini-app/promptWorldPayment.js.map +0 -1
  359. package/build/src/world-mini-app/useWithdrawToWorld.js +0 -76
  360. package/build/src/world-mini-app/useWithdrawToWorld.js.map +0 -1
  361. package/build/src/world-mini-app/useWorldSignIn.js +0 -74
  362. package/build/src/world-mini-app/useWorldSignIn.js.map +0 -1
  363. package/build/src/world.js +0 -4
  364. package/build/src/world.js.map +0 -1
  365. package/build/types-26343050.d.ts +0 -65
  366. package/build/world.d.ts +0 -108
@@ -1,60 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import React, { useMemo } from 'react';
3
- import { usePayContext } from './usePayContext.js';
4
- import { getLocale } from '../localizations/index.js';
5
-
6
- function useLocales(replacements) {
7
- const context = usePayContext();
8
- const language = context.options?.language ?? "en-US";
9
- const translations = useMemo(() => {
10
- return getLocale(language);
11
- }, [language]);
12
- if (!translations) {
13
- console.error(`Missing translations for: ${language}`);
14
- throw new Error(`Missing translations for: ${language}`);
15
- }
16
- const translated = {};
17
- Object.keys(translations).map((key) => {
18
- const string = translations[key];
19
- return translated[key] = localize(string, replacements);
20
- });
21
- return translated;
22
- }
23
- const localize = (text, replacements) => {
24
- let parsedText = text;
25
- if (replacements) {
26
- Object.keys(replacements).forEach((key) => {
27
- parsedText = parsedText.replace(
28
- new RegExp(`({{ ${key} }})`, "g"),
29
- replacements[key]
30
- );
31
- });
32
- }
33
- return replaceMarkdown(parsedText);
34
- };
35
- const replaceMarkdown = (markdownText) => {
36
- let text = markdownText;
37
- text = text.split("\n");
38
- text = text.map((t, i) => {
39
- return /* @__PURE__ */ jsxs(React.Fragment, { children: [
40
- wrapTags(t),
41
- i < text.length - 1 && /* @__PURE__ */ jsx("br", {})
42
- ] }, i);
43
- });
44
- return text;
45
- };
46
- const wrapTags = (text) => {
47
- const textArray = text.split(/(\*\*[^\*]*\*\*)/g);
48
- let result = textArray.map((str, i) => {
49
- if (/(\*\*.*\*\*)/g.test(str)) {
50
- return /* @__PURE__ */ jsx("strong", { children: str.replace(/\*\*/g, "") }, i);
51
- }
52
- return `${str}`;
53
- });
54
- return result.map((r) => {
55
- return r;
56
- });
57
- };
58
-
59
- export { useLocales as default };
60
- //# sourceMappingURL=useLocales.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLocales.js","sources":["../../../src/hooks/useLocales.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\n\nimport { usePayContext } from \"./usePayContext\";\n\nimport { LocaleFull } from \"../localizations/locales\";\nimport { getLocale } from \"./../localizations\";\n\nexport default function useLocales(replacements?: any): LocaleFull {\n const context = usePayContext();\n const language = context.options?.language ?? \"en-US\";\n\n const translations = useMemo(() => {\n return getLocale(language);\n }, [language]);\n\n if (!translations) {\n console.error(`Missing translations for: ${language}`);\n throw new Error(`Missing translations for: ${language}`);\n }\n\n const translated: any = {};\n Object.keys(translations).map((key) => {\n const string = translations[key];\n return (translated[key] = localize(string, replacements));\n });\n\n return translated;\n}\n\nconst localize = (text: string, replacements?: any[string]) => {\n let parsedText: string = text;\n if (replacements) {\n Object.keys(replacements).forEach((key) => {\n // use `replace` instead of `replaceAll` to support Node 14\n parsedText = parsedText.replace(\n new RegExp(`({{ ${key} }})`, \"g\"),\n replacements[key as keyof typeof replacements],\n );\n });\n }\n return replaceMarkdown(parsedText);\n};\n\nconst replaceMarkdown = (markdownText: string) => {\n let text: any = markdownText;\n text = text.split(\"\\n\");\n text = text.map((t: string, i: number) => {\n return (\n <React.Fragment key={i}>\n {wrapTags(t)}\n {i < text.length - 1 && <br />}\n </React.Fragment>\n );\n });\n return text;\n};\n\nconst wrapTags = (text: string) => {\n // Bold markdown handling\n const textArray = text.split(/(\\*\\*[^\\*]*\\*\\*)/g);\n let result = textArray.map((str, i) => {\n if (/(\\*\\*.*\\*\\*)/g.test(str)) {\n // use `replace` instead of `replaceAll` to support Node 14\n return <strong key={i}>{str.replace(/\\*\\*/g, \"\")}</strong>;\n }\n return `${str}`;\n });\n\n // Replace text with logo\n return result.map((r) => {\n return r;\n });\n};\n"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- import { useState, useEffect, useLayoutEffect } from 'react';
2
- import { usePayContext } from './usePayContext.js';
3
-
4
- const useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
5
- function useLockBodyScroll(initialLocked) {
6
- const [locked, setLocked] = useState(initialLocked);
7
- const context = usePayContext();
8
- useIsomorphicLayoutEffect(() => {
9
- if (!locked) return;
10
- const original = {
11
- overflow: document.body.style.overflow,
12
- position: document.body.style.position,
13
- touchAction: document.body.style.touchAction,
14
- paddingRight: document.body.style.paddingRight
15
- //htmlOverflow: document.documentElement.style.overflow,
16
- };
17
- const style = getComputedStyle(document.body);
18
- const offsetX = parseInt(style.marginRight) + parseInt(style.paddingRight) + parseInt(style.borderRight) + parseInt(style.marginLeft) + parseInt(style.paddingLeft) + parseInt(style.borderLeft);
19
- const scrollBarWidth = window.innerWidth - document.body.offsetWidth - offsetX;
20
- document.documentElement.style.setProperty(
21
- "--ck-scrollbar-width",
22
- `${scrollBarWidth}px`
23
- );
24
- document.body.style.overflow = "hidden";
25
- document.body.style.position = "relative";
26
- document.body.style.touchAction = "none";
27
- if (context.options?.avoidLayoutShift) {
28
- document.body.style.paddingRight = `${scrollBarWidth}px`;
29
- }
30
- return () => {
31
- document.documentElement.style.removeProperty("--ck-scrollbar-width");
32
- document.body.style.overflow = original.overflow;
33
- document.body.style.position = original.position;
34
- document.body.style.touchAction = original.touchAction;
35
- if (context.options?.avoidLayoutShift) {
36
- document.body.style.paddingRight = original.paddingRight;
37
- }
38
- };
39
- }, [locked]);
40
- useEffect(() => {
41
- if (locked !== initialLocked) setLocked(initialLocked);
42
- }, [initialLocked]);
43
- return [locked, setLocked];
44
- }
45
-
46
- export { useLockBodyScroll as default };
47
- //# sourceMappingURL=useLockBodyScroll.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLockBodyScroll.js","sources":["../../../src/hooks/useLockBodyScroll.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useState } from \"react\";\nimport { usePayContext } from \"./usePayContext\";\n\nconst useIsomorphicLayoutEffect =\n typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n\nexport default function useLockBodyScroll(initialLocked: boolean) {\n const [locked, setLocked] = useState(initialLocked);\n\n const context = usePayContext();\n\n useIsomorphicLayoutEffect(() => {\n if (!locked) return;\n\n const original = {\n overflow: document.body.style.overflow,\n position: document.body.style.position,\n touchAction: document.body.style.touchAction,\n paddingRight: document.body.style.paddingRight,\n //htmlOverflow: document.documentElement.style.overflow,\n };\n\n const style = getComputedStyle(document.body);\n const offsetX =\n parseInt(style.marginRight) +\n parseInt(style.paddingRight) +\n parseInt(style.borderRight) +\n parseInt(style.marginLeft) +\n parseInt(style.paddingLeft) +\n parseInt(style.borderLeft);\n\n const scrollBarWidth =\n window.innerWidth - document.body.offsetWidth - offsetX;\n document.documentElement.style.setProperty(\n \"--ck-scrollbar-width\",\n `${scrollBarWidth}px`,\n );\n\n document.body.style.overflow = \"hidden\";\n document.body.style.position = \"relative\";\n document.body.style.touchAction = \"none\";\n //document.documentElement.style.overflow = 'hidden'; // overflow:hidden; on <html> breaks position:sticky;\n if (context.options?.avoidLayoutShift) {\n document.body.style.paddingRight = `${scrollBarWidth}px`;\n }\n\n return () => {\n document.documentElement.style.removeProperty(\"--ck-scrollbar-width\");\n\n document.body.style.overflow = original.overflow;\n document.body.style.position = original.position;\n document.body.style.touchAction = original.touchAction;\n //document.documentElement.style.overflow = original.htmlOverflow;\n if (context.options?.avoidLayoutShift) {\n document.body.style.paddingRight = original.paddingRight;\n }\n };\n }, [locked]);\n\n useEffect(() => {\n if (locked !== initialLocked) setLocked(initialLocked);\n }, [initialLocked]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return [locked, setLocked];\n}\n"],"names":[],"mappings":";;;AAGA,MAAM,yBACJ,GAAA,OAAO,MAAW,KAAA,WAAA,GAAc,eAAkB,GAAA,SAAA,CAAA;AAEpD,SAAwB,kBAAkB,aAAwB,EAAA;AAChE,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,aAAa,CAAA,CAAA;AAElD,EAAA,MAAM,UAAU,aAAc,EAAA,CAAA;AAE9B,EAAA,yBAAA,CAA0B,MAAM;AAC9B,IAAA,IAAI,CAAC,MAAQ,EAAA,OAAA;AAEb,IAAA,MAAM,QAAW,GAAA;AAAA,MACf,QAAA,EAAU,QAAS,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA;AAAA,MAC9B,QAAA,EAAU,QAAS,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA;AAAA,MAC9B,WAAA,EAAa,QAAS,CAAA,IAAA,CAAK,KAAM,CAAA,WAAA;AAAA,MACjC,YAAA,EAAc,QAAS,CAAA,IAAA,CAAK,KAAM,CAAA,YAAA;AAAA;AAAA,KAEpC,CAAA;AAEA,IAAM,MAAA,KAAA,GAAQ,gBAAiB,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAC5C,IAAM,MAAA,OAAA,GACJ,SAAS,KAAM,CAAA,WAAW,IAC1B,QAAS,CAAA,KAAA,CAAM,YAAY,CAAA,GAC3B,QAAS,CAAA,KAAA,CAAM,WAAW,CAC1B,GAAA,QAAA,CAAS,KAAM,CAAA,UAAU,CACzB,GAAA,QAAA,CAAS,MAAM,WAAW,CAAA,GAC1B,QAAS,CAAA,KAAA,CAAM,UAAU,CAAA,CAAA;AAE3B,IAAA,MAAM,cACJ,GAAA,MAAA,CAAO,UAAa,GAAA,QAAA,CAAS,KAAK,WAAc,GAAA,OAAA,CAAA;AAClD,IAAA,QAAA,CAAS,gBAAgB,KAAM,CAAA,WAAA;AAAA,MAC7B,sBAAA;AAAA,MACA,GAAG,cAAc,CAAA,EAAA,CAAA;AAAA,KACnB,CAAA;AAEA,IAAS,QAAA,CAAA,IAAA,CAAK,MAAM,QAAW,GAAA,QAAA,CAAA;AAC/B,IAAS,QAAA,CAAA,IAAA,CAAK,MAAM,QAAW,GAAA,UAAA,CAAA;AAC/B,IAAS,QAAA,CAAA,IAAA,CAAK,MAAM,WAAc,GAAA,MAAA,CAAA;AAElC,IAAI,IAAA,OAAA,CAAQ,SAAS,gBAAkB,EAAA;AACrC,MAAA,QAAA,CAAS,IAAK,CAAA,KAAA,CAAM,YAAe,GAAA,CAAA,EAAG,cAAc,CAAA,EAAA,CAAA,CAAA;AAAA,KACtD;AAEA,IAAA,OAAO,MAAM;AACX,MAAS,QAAA,CAAA,eAAA,CAAgB,KAAM,CAAA,cAAA,CAAe,sBAAsB,CAAA,CAAA;AAEpE,MAAS,QAAA,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA,GAAW,QAAS,CAAA,QAAA,CAAA;AACxC,MAAS,QAAA,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA,GAAW,QAAS,CAAA,QAAA,CAAA;AACxC,MAAS,QAAA,CAAA,IAAA,CAAK,KAAM,CAAA,WAAA,GAAc,QAAS,CAAA,WAAA,CAAA;AAE3C,MAAI,IAAA,OAAA,CAAQ,SAAS,gBAAkB,EAAA;AACrC,QAAS,QAAA,CAAA,IAAA,CAAK,KAAM,CAAA,YAAA,GAAe,QAAS,CAAA,YAAA,CAAA;AAAA,OAC9C;AAAA,KACF,CAAA;AAAA,GACF,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,MAAA,KAAW,aAAe,EAAA,SAAA,CAAU,aAAa,CAAA,CAAA;AAAA,GACvD,EAAG,CAAC,aAAa,CAAC,CAAA,CAAA;AAElB,EAAO,OAAA,CAAC,QAAQ,SAAS,CAAA,CAAA;AAC3B;;;;"}
@@ -1,24 +0,0 @@
1
- import { useState, useEffect } from 'react';
2
-
3
- function useOrderUsdLimits({ trpc }) {
4
- const [limits, setLimits] = useState({});
5
- const [loading, setLoading] = useState(false);
6
- useEffect(() => {
7
- const refreshOrderUsdLimits = async () => {
8
- setLoading(true);
9
- try {
10
- const { limits: newLimits } = await trpc.getOrderUsdLimits.query();
11
- setLimits(newLimits);
12
- } catch (e) {
13
- console.error(e);
14
- } finally {
15
- setLoading(false);
16
- }
17
- };
18
- refreshOrderUsdLimits();
19
- }, []);
20
- return { limits, loading };
21
- }
22
-
23
- export { useOrderUsdLimits };
24
- //# sourceMappingURL=useOrderUsdLimits.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useOrderUsdLimits.js","sources":["../../../src/hooks/useOrderUsdLimits.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { TrpcClient } from \"../utils/trpc\";\n\nexport function useOrderUsdLimits({ trpc }: { trpc: TrpcClient }) {\n const [limits, setLimits] = useState<Record<string, number>>({});\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n const refreshOrderUsdLimits = async () => {\n setLoading(true);\n try {\n const { limits: newLimits } = await trpc.getOrderUsdLimits.query();\n setLimits(newLimits);\n } catch (e) {\n console.error(e);\n } finally {\n setLoading(false);\n }\n };\n\n refreshOrderUsdLimits();\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return { limits, loading };\n}\n"],"names":[],"mappings":";;AAGgB,SAAA,iBAAA,CAAkB,EAAE,IAAA,EAA8B,EAAA;AAChE,EAAA,MAAM,CAAC,MAAQ,EAAA,SAAS,CAAI,GAAA,QAAA,CAAiC,EAAE,CAAA,CAAA;AAC/D,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAE5C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,wBAAwB,YAAY;AACxC,MAAA,UAAA,CAAW,IAAI,CAAA,CAAA;AACf,MAAI,IAAA;AACF,QAAA,MAAM,EAAE,MAAQ,EAAA,SAAA,KAAc,MAAM,IAAA,CAAK,kBAAkB,KAAM,EAAA,CAAA;AACjE,QAAA,SAAA,CAAU,SAAS,CAAA,CAAA;AAAA,eACZ,CAAG,EAAA;AACV,QAAA,OAAA,CAAQ,MAAM,CAAC,CAAA,CAAA;AAAA,OACf,SAAA;AACA,QAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,OAClB;AAAA,KACF,CAAA;AAEA,IAAsB,qBAAA,EAAA,CAAA;AAAA,GACxB,EAAG,EAAE,CAAA,CAAA;AAEL,EAAO,OAAA,EAAE,QAAQ,OAAQ,EAAA,CAAA;AAC3B;;;;"}
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import { PayContext } from '../provider/PayContext.js';
3
-
4
- const usePayContext = () => {
5
- const context = React.useContext(PayContext);
6
- if (!context) throw Error("DaimoPay Hook must be inside a Provider.");
7
- return context;
8
- };
9
-
10
- export { usePayContext };
11
- //# sourceMappingURL=usePayContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePayContext.js","sources":["../../../src/hooks/usePayContext.ts"],"sourcesContent":["import React from \"react\";\nimport { PayContext } from \"../provider/PayContext\";\n\n/** Daimo Pay internal context. */\nexport const usePayContext = () => {\n const context = React.useContext(PayContext);\n if (!context) throw Error(\"DaimoPay Hook must be inside a Provider.\");\n return context;\n};\n"],"names":[],"mappings":";;;AAIO,MAAM,gBAAgB,MAAM;AACjC,EAAM,MAAA,OAAA,GAAU,KAAM,CAAA,UAAA,CAAW,UAAU,CAAA,CAAA;AAC3C,EAAA,IAAI,CAAC,OAAA,EAAe,MAAA,KAAA,CAAM,0CAA0C,CAAA,CAAA;AACpE,EAAO,OAAA,OAAA,CAAA;AACT;;;;"}
@@ -1,183 +0,0 @@
1
- import { ExternalPaymentOptions, supportedChains } from '@daimo/pay-common';
2
- import { useState, useMemo, useEffect } from 'react';
3
- import { inferTopLevelFromArray } from '../constants/paymentOptions.js';
4
-
5
- const DEFAULT_EXTERNAL_PAYMENT_OPTIONS = Object.values(
6
- ExternalPaymentOptions
7
- ).filter(
8
- (opt) => opt !== ExternalPaymentOptions.AllAddresses && opt !== ExternalPaymentOptions.AllPaymentApps
9
- );
10
- function usePaymentOptions({
11
- trpc,
12
- appId,
13
- orderId,
14
- isDepositFlow,
15
- usdRequired,
16
- solanaPubKey,
17
- ethWalletAddress,
18
- platform,
19
- // For filtering/preferences from order metadata
20
- filterIds,
21
- preferredChains,
22
- preferredTokens,
23
- evmChains,
24
- destChainId,
25
- passthroughTokens,
26
- destAddress,
27
- log
28
- }) {
29
- const [externalOptions, setExternalOptions] = useState(/* @__PURE__ */ new Map());
30
- const [walletOptions, setWalletOptions] = useState(null);
31
- const [solanaOptions, setSolanaOptions] = useState(null);
32
- const [depositOptions, setDepositOptions] = useState([]);
33
- const [parsedConfig, setParsedConfig] = useState({
34
- walletOrder: []
35
- });
36
- const [loading, setLoading] = useState(false);
37
- const memoizedPreferredChains = useMemo(
38
- () => preferredChains,
39
- // eslint-disable-next-line react-hooks/exhaustive-deps
40
- [JSON.stringify(preferredChains)]
41
- );
42
- const memoizedPreferredTokens = useMemo(
43
- () => preferredTokens,
44
- // eslint-disable-next-line react-hooks/exhaustive-deps
45
- [JSON.stringify(preferredTokens)]
46
- );
47
- const memoizedEvmChains = useMemo(
48
- () => evmChains,
49
- // eslint-disable-next-line react-hooks/exhaustive-deps
50
- [JSON.stringify(evmChains)]
51
- );
52
- const memoizedFilterIds = useMemo(
53
- () => filterIds,
54
- // eslint-disable-next-line react-hooks/exhaustive-deps
55
- [JSON.stringify(filterIds)]
56
- );
57
- useEffect(() => {
58
- const fetchPaymentOptions = async () => {
59
- if (!platform || !appId && !orderId) return;
60
- setLoading(true);
61
- try {
62
- const result = await trpc.getPaymentOptionsV1.query({
63
- appId,
64
- orderId: orderId?.toString(),
65
- platform,
66
- ethWalletAddress,
67
- preferredChains: memoizedPreferredChains,
68
- preferredTokens: memoizedPreferredTokens,
69
- evmChains: memoizedEvmChains,
70
- destChainId,
71
- solanaPubKey,
72
- usdRequired,
73
- isDepositFlow
74
- });
75
- let walletOrder = [];
76
- if (memoizedFilterIds) {
77
- const nestedArray = memoizedFilterIds.find(
78
- (opt) => Array.isArray(opt)
79
- );
80
- if (nestedArray && Array.isArray(nestedArray)) {
81
- walletOrder = nestedArray;
82
- }
83
- }
84
- setParsedConfig({ walletOrder });
85
- const flatFilterIds = memoizedFilterIds ? memoizedFilterIds.flatMap(
86
- (opt) => Array.isArray(opt) ? inferTopLevelFromArray(opt) ?? "AllWallets" : opt
87
- ) : null;
88
- const enabledExtPaymentOptions = flatFilterIds || DEFAULT_EXTERNAL_PAYMENT_OPTIONS;
89
- const hasAllPaymentApps = enabledExtPaymentOptions.includes(
90
- ExternalPaymentOptions.AllPaymentApps
91
- );
92
- const hasAllExchanges = enabledExtPaymentOptions.includes(
93
- ExternalPaymentOptions.AllExchanges
94
- );
95
- const filteredExternal = result.externalOptions.filter(
96
- (option) => enabledExtPaymentOptions.includes(option.id) || hasAllPaymentApps && option.optionType === "zkp2p" || hasAllExchanges && option.optionType === "exchange"
97
- );
98
- const optionsByType = /* @__PURE__ */ new Map();
99
- filteredExternal.forEach((option) => {
100
- const { optionType } = option;
101
- if (!optionsByType.has(optionType)) {
102
- optionsByType.set(optionType, []);
103
- }
104
- optionsByType.get(optionType).push(option);
105
- });
106
- setExternalOptions(optionsByType);
107
- if (result.walletOptions.length > 0) {
108
- const isSupported = (o) => supportedChains.some((c) => c.chainId === o.balance.token.chainId);
109
- const filtered = result.walletOptions.filter(isSupported);
110
- if (filtered.length < result.walletOptions.length) {
111
- log(
112
- `[WALLET]: skipping ${result.walletOptions.length - filtered.length} unsupported-chain balances`
113
- );
114
- }
115
- if (destAddress) {
116
- addPassthroughTokens(filtered, passthroughTokens, destAddress);
117
- }
118
- setWalletOptions(filtered);
119
- } else {
120
- setWalletOptions(ethWalletAddress ? [] : null);
121
- }
122
- setSolanaOptions(solanaPubKey ? result.solanaOptions : null);
123
- setDepositOptions(result.depositAddressOptions);
124
- } catch (error) {
125
- console.error("[usePaymentOptions] error:", error);
126
- } finally {
127
- setLoading(false);
128
- }
129
- };
130
- fetchPaymentOptions();
131
- }, [
132
- trpc,
133
- appId,
134
- orderId,
135
- isDepositFlow,
136
- usdRequired,
137
- solanaPubKey,
138
- ethWalletAddress,
139
- platform,
140
- memoizedPreferredChains,
141
- memoizedPreferredTokens,
142
- memoizedEvmChains,
143
- memoizedFilterIds,
144
- destChainId,
145
- destAddress,
146
- passthroughTokens,
147
- log
148
- ]);
149
- return {
150
- externalPaymentOptions: {
151
- options: externalOptions,
152
- loading,
153
- parsedConfig
154
- },
155
- walletPaymentOptions: {
156
- options: walletOptions,
157
- isLoading: loading
158
- },
159
- solanaPaymentOptions: {
160
- options: solanaOptions,
161
- isLoading: loading
162
- },
163
- depositAddressOptions: {
164
- options: depositOptions,
165
- loading
166
- }
167
- };
168
- }
169
- function addPassthroughTokens(options, passthroughTokens, passthroughAddress) {
170
- if (passthroughTokens == null) return;
171
- for (const option of options) {
172
- const tok = option.balance.token;
173
- if (option.disabledReason != null) continue;
174
- const found = passthroughTokens.find(
175
- (t) => t.address === tok.token && t.chain == tok.chainId
176
- );
177
- if (found == null) continue;
178
- option.passthroughAddress = passthroughAddress;
179
- }
180
- }
181
-
182
- export { addPassthroughTokens, usePaymentOptions };
183
- //# sourceMappingURL=usePaymentOptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePaymentOptions.js","sources":["../../../src/hooks/usePaymentOptions.ts"],"sourcesContent":["import {\n DepositAddressPaymentOptionMetadata,\n ExternalPaymentOptionMetadata,\n ExternalPaymentOptions,\n PlatformType,\n supportedChains,\n WalletPaymentOption,\n} from \"@daimo/pay-common\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { Address } from \"viem\";\nimport { inferTopLevelFromArray } from \"../constants/paymentOptions\";\nimport { TrpcClient } from \"../utils/trpc\";\n\nconst DEFAULT_EXTERNAL_PAYMENT_OPTIONS = Object.values(\n ExternalPaymentOptions,\n).filter(\n (opt) =>\n opt !== ExternalPaymentOptions.AllAddresses &&\n opt !== ExternalPaymentOptions.AllPaymentApps,\n);\n\nexport type PaymentOptionsResult = {\n externalPaymentOptions: {\n options: Map<\n \"external\" | \"zkp2p\" | \"exchange\",\n ExternalPaymentOptionMetadata[]\n >;\n loading: boolean;\n parsedConfig: { walletOrder: string[] };\n };\n walletPaymentOptions: {\n options: WalletPaymentOption[] | null;\n isLoading: boolean;\n };\n solanaPaymentOptions: {\n options: WalletPaymentOption[] | null;\n isLoading: boolean;\n };\n depositAddressOptions: {\n options: DepositAddressPaymentOptionMetadata[];\n loading: boolean;\n };\n};\n\nexport function usePaymentOptions({\n trpc,\n appId,\n orderId,\n isDepositFlow,\n usdRequired,\n solanaPubKey,\n ethWalletAddress,\n platform,\n // For filtering/preferences from order metadata\n filterIds,\n preferredChains,\n preferredTokens,\n evmChains,\n destChainId,\n passthroughTokens,\n destAddress,\n log,\n}: {\n trpc: TrpcClient;\n appId: string | undefined;\n orderId: bigint | undefined;\n isDepositFlow: boolean;\n usdRequired: number | undefined;\n solanaPubKey: string | undefined;\n ethWalletAddress: string | undefined;\n platform: PlatformType | undefined;\n filterIds: (string | string[])[] | undefined;\n preferredChains: number[] | undefined;\n preferredTokens: { chain: number; address: string }[] | undefined;\n evmChains: number[] | undefined;\n destChainId: number | undefined;\n passthroughTokens: { chain: number; address: string }[] | undefined;\n destAddress: Address | undefined;\n log: (msg: string) => void;\n}): PaymentOptionsResult {\n // State for each option type\n const [externalOptions, setExternalOptions] = useState<\n Map<\"external\" | \"zkp2p\" | \"exchange\", ExternalPaymentOptionMetadata[]>\n >(new Map());\n const [walletOptions, setWalletOptions] = useState<\n WalletPaymentOption[] | null\n >(null);\n const [solanaOptions, setSolanaOptions] = useState<\n WalletPaymentOption[] | null\n >(null);\n const [depositOptions, setDepositOptions] = useState<\n DepositAddressPaymentOptionMetadata[]\n >([]);\n const [parsedConfig, setParsedConfig] = useState<{ walletOrder: string[] }>({\n walletOrder: [],\n });\n const [loading, setLoading] = useState(false);\n\n // Memoize array dependencies\n const memoizedPreferredChains = useMemo(\n () => preferredChains,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(preferredChains)],\n );\n const memoizedPreferredTokens = useMemo(\n () => preferredTokens,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(preferredTokens)],\n );\n const memoizedEvmChains = useMemo(\n () => evmChains,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(evmChains)],\n );\n const memoizedFilterIds = useMemo(\n () => filterIds,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(filterIds)],\n );\n\n useEffect(() => {\n const fetchPaymentOptions = async () => {\n // Must have platform and at least one of appId or orderId\n if (!platform || (!appId && !orderId)) return;\n\n setLoading(true);\n try {\n const result = await trpc.getPaymentOptionsV1.query({\n appId,\n orderId: orderId?.toString(),\n platform,\n ethWalletAddress: ethWalletAddress as Address | undefined,\n preferredChains: memoizedPreferredChains,\n preferredTokens: memoizedPreferredTokens,\n evmChains: memoizedEvmChains,\n destChainId,\n solanaPubKey,\n usdRequired,\n isDepositFlow,\n });\n\n // Process external options (filter and group by type)\n let walletOrder: string[] = [];\n if (memoizedFilterIds) {\n const nestedArray = memoizedFilterIds.find((opt) =>\n Array.isArray(opt),\n );\n if (nestedArray && Array.isArray(nestedArray)) {\n walletOrder = nestedArray as string[];\n }\n }\n setParsedConfig({ walletOrder });\n\n const flatFilterIds = memoizedFilterIds\n ? memoizedFilterIds.flatMap((opt) =>\n Array.isArray(opt)\n ? (inferTopLevelFromArray(opt as string[]) ?? \"AllWallets\")\n : opt,\n )\n : null;\n const enabledExtPaymentOptions =\n flatFilterIds || DEFAULT_EXTERNAL_PAYMENT_OPTIONS;\n const hasAllPaymentApps = enabledExtPaymentOptions.includes(\n ExternalPaymentOptions.AllPaymentApps,\n );\n const hasAllExchanges = enabledExtPaymentOptions.includes(\n ExternalPaymentOptions.AllExchanges,\n );\n\n const filteredExternal = result.externalOptions.filter(\n (option: ExternalPaymentOptionMetadata) =>\n enabledExtPaymentOptions.includes(option.id) ||\n (hasAllPaymentApps && option.optionType === \"zkp2p\") ||\n (hasAllExchanges && option.optionType === \"exchange\"),\n );\n const optionsByType = new Map<\n \"external\" | \"zkp2p\" | \"exchange\",\n ExternalPaymentOptionMetadata[]\n >();\n filteredExternal.forEach((option: ExternalPaymentOptionMetadata) => {\n const { optionType } = option;\n if (!optionsByType.has(optionType)) {\n optionsByType.set(optionType, []);\n }\n optionsByType.get(optionType)!.push(option);\n });\n setExternalOptions(optionsByType);\n\n // Process wallet options (filter unsupported chains, add passthrough)\n if (result.walletOptions.length > 0) {\n const isSupported = (o: WalletPaymentOption) =>\n supportedChains.some((c) => c.chainId === o.balance.token.chainId);\n const filtered = result.walletOptions.filter(isSupported);\n if (filtered.length < result.walletOptions.length) {\n log(\n `[WALLET]: skipping ${result.walletOptions.length - filtered.length} unsupported-chain balances`,\n );\n }\n if (destAddress) {\n addPassthroughTokens(filtered, passthroughTokens, destAddress);\n }\n setWalletOptions(filtered);\n } else {\n setWalletOptions(ethWalletAddress ? [] : null);\n }\n\n // Solana options\n setSolanaOptions(solanaPubKey ? result.solanaOptions : null);\n\n // Deposit address options\n setDepositOptions(result.depositAddressOptions);\n } catch (error) {\n console.error(\"[usePaymentOptions] error:\", error);\n } finally {\n setLoading(false);\n }\n };\n\n fetchPaymentOptions();\n }, [\n trpc,\n appId,\n orderId,\n isDepositFlow,\n usdRequired,\n solanaPubKey,\n ethWalletAddress,\n platform,\n memoizedPreferredChains,\n memoizedPreferredTokens,\n memoizedEvmChains,\n memoizedFilterIds,\n destChainId,\n destAddress,\n passthroughTokens,\n log,\n ]);\n\n return {\n externalPaymentOptions: {\n options: externalOptions,\n loading,\n parsedConfig,\n },\n walletPaymentOptions: {\n options: walletOptions,\n isLoading: loading,\n },\n solanaPaymentOptions: {\n options: solanaOptions,\n isLoading: loading,\n },\n depositAddressOptions: {\n options: depositOptions,\n loading,\n },\n };\n}\n\n/** Updates and sorts `options`, marking the relevant oneas as pass-through. */\nexport function addPassthroughTokens(\n options: WalletPaymentOption[],\n passthroughTokens: { chain: number; address: string }[] | undefined,\n passthroughAddress: Address,\n) {\n if (passthroughTokens == null) return;\n\n for (const option of options) {\n const tok = option.balance.token;\n if (option.disabledReason != null) continue;\n const found = passthroughTokens.find(\n (t) => t.address === tok.token && t.chain == tok.chainId,\n );\n if (found == null) continue;\n\n option.passthroughAddress = passthroughAddress;\n }\n}\n"],"names":[],"mappings":"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"}