@daimo/sdk 1.4.2 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/dist/client/createDaimoClient.d.ts +24 -6
  2. package/dist/client/createDaimoClient.d.ts.map +1 -1
  3. package/dist/client/createDaimoClient.js +47 -0
  4. package/dist/client/createDaimoClient.js.map +1 -1
  5. package/dist/common/account.d.ts +160 -21
  6. package/dist/common/account.d.ts.map +1 -1
  7. package/dist/common/account.js +12 -1
  8. package/dist/common/account.js.map +1 -1
  9. package/dist/common/api.d.ts +25 -12
  10. package/dist/common/api.d.ts.map +1 -1
  11. package/dist/common/api.js +11 -1
  12. package/dist/common/api.js.map +1 -1
  13. package/dist/common/index.d.ts +1 -0
  14. package/dist/common/index.d.ts.map +1 -1
  15. package/dist/common/index.js +1 -0
  16. package/dist/common/index.js.map +1 -1
  17. package/dist/common/session.d.ts +27 -3
  18. package/dist/common/session.d.ts.map +1 -1
  19. package/dist/common/session.js.map +1 -1
  20. package/dist/common/theme.d.ts +47 -0
  21. package/dist/common/theme.d.ts.map +1 -0
  22. package/dist/common/theme.js +230 -0
  23. package/dist/common/theme.js.map +1 -0
  24. package/dist/common/token.d.ts +6 -0
  25. package/dist/common/token.d.ts.map +1 -1
  26. package/dist/common/token.js +47 -1
  27. package/dist/common/token.js.map +1 -1
  28. package/dist/version.d.ts +1 -1
  29. package/dist/version.js +1 -1
  30. package/dist/web/accountWallet.d.ts +15 -0
  31. package/dist/web/accountWallet.d.ts.map +1 -0
  32. package/dist/web/accountWallet.js +44 -0
  33. package/dist/web/accountWallet.js.map +1 -0
  34. package/dist/web/api/index.d.ts +17 -11
  35. package/dist/web/api/index.d.ts.map +1 -1
  36. package/dist/web/api/navTree.d.ts +27 -5
  37. package/dist/web/api/navTree.d.ts.map +1 -1
  38. package/dist/web/components/ApplePayLogo.d.ts +9 -0
  39. package/dist/web/components/ApplePayLogo.d.ts.map +1 -0
  40. package/dist/web/components/ApplePayLogo.js +15 -0
  41. package/dist/web/components/ApplePayLogo.js.map +1 -0
  42. package/dist/web/components/ChooseChainPage.d.ts.map +1 -1
  43. package/dist/web/components/ChooseChainPage.js +3 -3
  44. package/dist/web/components/ChooseChainPage.js.map +1 -1
  45. package/dist/web/components/ChooseOptionPage.d.ts.map +1 -1
  46. package/dist/web/components/ChooseOptionPage.js +20 -7
  47. package/dist/web/components/ChooseOptionPage.js.map +1 -1
  48. package/dist/web/components/ChooseWalletPage.js +12 -3
  49. package/dist/web/components/ChooseWalletPage.js.map +1 -1
  50. package/dist/web/components/ConfirmationPage.d.ts.map +1 -1
  51. package/dist/web/components/ConfirmationPage.js +2 -1
  52. package/dist/web/components/ConfirmationPage.js.map +1 -1
  53. package/dist/web/components/ConfirmationSpinner.d.ts +3 -1
  54. package/dist/web/components/ConfirmationSpinner.d.ts.map +1 -1
  55. package/dist/web/components/ConfirmationSpinner.js +7 -2
  56. package/dist/web/components/ConfirmationSpinner.js.map +1 -1
  57. package/dist/web/components/DaimoFrame.d.ts +51 -0
  58. package/dist/web/components/DaimoFrame.d.ts.map +1 -0
  59. package/dist/web/components/DaimoFrame.js +173 -0
  60. package/dist/web/components/DaimoFrame.js.map +1 -0
  61. package/dist/web/components/DaimoModal.d.ts.map +1 -1
  62. package/dist/web/components/DaimoModal.js +127 -52
  63. package/dist/web/components/DaimoModal.js.map +1 -1
  64. package/dist/web/components/DaimoModalPreview.d.ts +11 -0
  65. package/dist/web/components/DaimoModalPreview.d.ts.map +1 -0
  66. package/dist/web/components/DaimoModalPreview.js +98 -0
  67. package/dist/web/components/DaimoModalPreview.js.map +1 -0
  68. package/dist/web/components/DeeplinkPage.d.ts.map +1 -1
  69. package/dist/web/components/DeeplinkPage.js +4 -3
  70. package/dist/web/components/DeeplinkPage.js.map +1 -1
  71. package/dist/web/components/ErrorPage.d.ts.map +1 -1
  72. package/dist/web/components/ErrorPage.js +4 -1
  73. package/dist/web/components/ErrorPage.js.map +1 -1
  74. package/dist/web/components/ExchangePage.d.ts.map +1 -1
  75. package/dist/web/components/ExchangePage.js +8 -23
  76. package/dist/web/components/ExchangePage.js.map +1 -1
  77. package/dist/web/components/ExternalPaymentPage.d.ts +22 -0
  78. package/dist/web/components/ExternalPaymentPage.d.ts.map +1 -0
  79. package/dist/web/components/ExternalPaymentPage.js +24 -0
  80. package/dist/web/components/ExternalPaymentPage.js.map +1 -0
  81. package/dist/web/components/ModalChrome.d.ts +28 -0
  82. package/dist/web/components/ModalChrome.d.ts.map +1 -0
  83. package/dist/web/components/ModalChrome.js +64 -0
  84. package/dist/web/components/ModalChrome.js.map +1 -0
  85. package/dist/web/components/ModalSkeleton.d.ts.map +1 -1
  86. package/dist/web/components/ModalSkeleton.js +2 -4
  87. package/dist/web/components/ModalSkeleton.js.map +1 -1
  88. package/dist/web/components/SelectAmountPage.d.ts.map +1 -1
  89. package/dist/web/components/SelectAmountPage.js +2 -2
  90. package/dist/web/components/SelectAmountPage.js.map +1 -1
  91. package/dist/web/components/SelectTokenPage.d.ts.map +1 -1
  92. package/dist/web/components/SelectTokenPage.js +8 -7
  93. package/dist/web/components/SelectTokenPage.js.map +1 -1
  94. package/dist/web/components/Skeleton.d.ts +19 -0
  95. package/dist/web/components/Skeleton.d.ts.map +1 -0
  96. package/dist/web/components/Skeleton.js +21 -0
  97. package/dist/web/components/Skeleton.js.map +1 -0
  98. package/dist/web/components/StripeOnrampPage.d.ts +3 -27
  99. package/dist/web/components/StripeOnrampPage.d.ts.map +1 -1
  100. package/dist/web/components/StripeOnrampPage.js +7 -116
  101. package/dist/web/components/StripeOnrampPage.js.map +1 -1
  102. package/dist/web/components/TokenAmountEntry.d.ts +9 -3
  103. package/dist/web/components/TokenAmountEntry.d.ts.map +1 -1
  104. package/dist/web/components/TokenAmountEntry.js +49 -27
  105. package/dist/web/components/TokenAmountEntry.js.map +1 -1
  106. package/dist/web/components/WaitingDepositAddressPage.d.ts +39 -0
  107. package/dist/web/components/WaitingDepositAddressPage.d.ts.map +1 -1
  108. package/dist/web/components/WaitingDepositAddressPage.js +61 -32
  109. package/dist/web/components/WaitingDepositAddressPage.js.map +1 -1
  110. package/dist/web/components/WalletAmountPage.d.ts.map +1 -1
  111. package/dist/web/components/WalletAmountPage.js +7 -4
  112. package/dist/web/components/WalletAmountPage.js.map +1 -1
  113. package/dist/web/components/account/AccountApplePayPage.d.ts +1 -1
  114. package/dist/web/components/account/AccountApplePayPage.d.ts.map +1 -1
  115. package/dist/web/components/account/AccountApplePayPage.js +26 -14
  116. package/dist/web/components/account/AccountApplePayPage.js.map +1 -1
  117. package/dist/web/components/account/AccountBankDetailsPage.d.ts +2 -1
  118. package/dist/web/components/account/AccountBankDetailsPage.d.ts.map +1 -1
  119. package/dist/web/components/account/AccountBankDetailsPage.js +166 -54
  120. package/dist/web/components/account/AccountBankDetailsPage.js.map +1 -1
  121. package/dist/web/components/account/AccountBankPickerPage.d.ts.map +1 -1
  122. package/dist/web/components/account/AccountBankPickerPage.js +15 -13
  123. package/dist/web/components/account/AccountBankPickerPage.js.map +1 -1
  124. package/dist/web/components/account/AccountBankTransferSubmittedPage.d.ts +3 -1
  125. package/dist/web/components/account/AccountBankTransferSubmittedPage.d.ts.map +1 -1
  126. package/dist/web/components/account/AccountBankTransferSubmittedPage.js +9 -3
  127. package/dist/web/components/account/AccountBankTransferSubmittedPage.js.map +1 -1
  128. package/dist/web/components/account/AccountCreatingWalletPage.d.ts.map +1 -1
  129. package/dist/web/components/account/AccountCreatingWalletPage.js +6 -4
  130. package/dist/web/components/account/AccountCreatingWalletPage.js.map +1 -1
  131. package/dist/web/components/account/AccountEmailPage.d.ts.map +1 -1
  132. package/dist/web/components/account/AccountEmailPage.js +20 -14
  133. package/dist/web/components/account/AccountEmailPage.js.map +1 -1
  134. package/dist/web/components/account/AccountEnrollmentPage.d.ts +7 -3
  135. package/dist/web/components/account/AccountEnrollmentPage.d.ts.map +1 -1
  136. package/dist/web/components/account/AccountEnrollmentPage.js +142 -107
  137. package/dist/web/components/account/AccountEnrollmentPage.js.map +1 -1
  138. package/dist/web/components/account/AccountEnrollmentUpdatePage.d.ts +10 -0
  139. package/dist/web/components/account/AccountEnrollmentUpdatePage.d.ts.map +1 -0
  140. package/dist/web/components/account/AccountEnrollmentUpdatePage.js +214 -0
  141. package/dist/web/components/account/AccountEnrollmentUpdatePage.js.map +1 -0
  142. package/dist/web/components/account/AccountFlowProvider.d.ts +1 -1
  143. package/dist/web/components/account/AccountFlowProvider.d.ts.map +1 -1
  144. package/dist/web/components/account/AccountFlowProvider.js +26 -20
  145. package/dist/web/components/account/AccountFlowProvider.js.map +1 -1
  146. package/dist/web/components/account/AccountKycInfoPage.d.ts +13 -0
  147. package/dist/web/components/account/AccountKycInfoPage.d.ts.map +1 -0
  148. package/dist/web/components/account/AccountKycInfoPage.js +37 -0
  149. package/dist/web/components/account/AccountKycInfoPage.js.map +1 -0
  150. package/dist/web/components/account/AccountOtpCodeEntry.d.ts +4 -1
  151. package/dist/web/components/account/AccountOtpCodeEntry.d.ts.map +1 -1
  152. package/dist/web/components/account/AccountOtpCodeEntry.js +46 -43
  153. package/dist/web/components/account/AccountOtpCodeEntry.js.map +1 -1
  154. package/dist/web/components/account/AccountPaymentPage.d.ts +3 -2
  155. package/dist/web/components/account/AccountPaymentPage.d.ts.map +1 -1
  156. package/dist/web/components/account/AccountPaymentPage.js +30 -18
  157. package/dist/web/components/account/AccountPaymentPage.js.map +1 -1
  158. package/dist/web/components/account/AccountPhoneOtpPage.d.ts.map +1 -1
  159. package/dist/web/components/account/AccountPhoneOtpPage.js +22 -9
  160. package/dist/web/components/account/AccountPhoneOtpPage.js.map +1 -1
  161. package/dist/web/components/account/AccountPhonePage.d.ts.map +1 -1
  162. package/dist/web/components/account/AccountPhonePage.js +30 -12
  163. package/dist/web/components/account/AccountPhonePage.js.map +1 -1
  164. package/dist/web/components/account/AccountRipioOtpPage.d.ts +7 -0
  165. package/dist/web/components/account/AccountRipioOtpPage.d.ts.map +1 -0
  166. package/dist/web/components/account/AccountRipioOtpPage.js +53 -0
  167. package/dist/web/components/account/AccountRipioOtpPage.js.map +1 -0
  168. package/dist/web/components/account/AccountStatusPage.d.ts +1 -3
  169. package/dist/web/components/account/AccountStatusPage.d.ts.map +1 -1
  170. package/dist/web/components/account/AccountStatusPage.js +29 -39
  171. package/dist/web/components/account/AccountStatusPage.js.map +1 -1
  172. package/dist/web/components/account/accountNav.d.ts +1 -1
  173. package/dist/web/components/account/accountNav.d.ts.map +1 -1
  174. package/dist/web/components/account/accountNav.js +5 -1
  175. package/dist/web/components/account/accountNav.js.map +1 -1
  176. package/dist/web/components/account/formSchemas.d.ts +81 -0
  177. package/dist/web/components/account/formSchemas.d.ts.map +1 -0
  178. package/dist/web/components/account/formSchemas.js +80 -0
  179. package/dist/web/components/account/formSchemas.js.map +1 -0
  180. package/dist/web/components/account/formSchemas.test.d.ts +2 -0
  181. package/dist/web/components/account/formSchemas.test.d.ts.map +1 -0
  182. package/dist/web/components/account/formSchemas.test.js +57 -0
  183. package/dist/web/components/account/formSchemas.test.js.map +1 -0
  184. package/dist/web/components/account/kycRequirement.d.ts +14 -0
  185. package/dist/web/components/account/kycRequirement.d.ts.map +1 -0
  186. package/dist/web/components/account/kycRequirement.js +48 -0
  187. package/dist/web/components/account/kycRequirement.js.map +1 -0
  188. package/dist/web/components/account/phone.d.ts +2 -1
  189. package/dist/web/components/account/phone.d.ts.map +1 -1
  190. package/dist/web/components/account/phone.js +11 -2
  191. package/dist/web/components/account/phone.js.map +1 -1
  192. package/dist/web/components/buttons.d.ts +3 -2
  193. package/dist/web/components/buttons.d.ts.map +1 -1
  194. package/dist/web/components/buttons.js +4 -4
  195. package/dist/web/components/buttons.js.map +1 -1
  196. package/dist/web/components/containers.d.ts +7 -2
  197. package/dist/web/components/containers.d.ts.map +1 -1
  198. package/dist/web/components/containers.js +73 -30
  199. package/dist/web/components/containers.js.map +1 -1
  200. package/dist/web/components/formFields.d.ts +39 -0
  201. package/dist/web/components/formFields.d.ts.map +1 -0
  202. package/dist/web/components/formFields.js +70 -0
  203. package/dist/web/components/formFields.js.map +1 -0
  204. package/dist/web/components/icons.d.ts +17 -1
  205. package/dist/web/components/icons.d.ts.map +1 -1
  206. package/dist/web/components/icons.js +30 -2
  207. package/dist/web/components/icons.js.map +1 -1
  208. package/dist/web/components/shared.d.ts +1 -1
  209. package/dist/web/components/shared.d.ts.map +1 -1
  210. package/dist/web/components/shared.js +22 -22
  211. package/dist/web/components/shared.js.map +1 -1
  212. package/dist/web/formatAmount.d.ts +5 -0
  213. package/dist/web/formatAmount.d.ts.map +1 -0
  214. package/dist/web/formatAmount.js +53 -0
  215. package/dist/web/formatAmount.js.map +1 -0
  216. package/dist/web/formatAmount.test.d.ts +2 -0
  217. package/dist/web/formatAmount.test.d.ts.map +1 -0
  218. package/dist/web/formatAmount.test.js +43 -0
  219. package/dist/web/formatAmount.test.js.map +1 -0
  220. package/dist/web/hooks/accountAuthNav.d.ts +3 -0
  221. package/dist/web/hooks/accountAuthNav.d.ts.map +1 -0
  222. package/dist/web/hooks/accountAuthNav.js +24 -0
  223. package/dist/web/hooks/accountAuthNav.js.map +1 -0
  224. package/dist/web/hooks/accountAuthNav.test.d.ts +2 -0
  225. package/dist/web/hooks/accountAuthNav.test.d.ts.map +1 -0
  226. package/dist/web/hooks/accountAuthNav.test.js +32 -0
  227. package/dist/web/hooks/accountAuthNav.test.js.map +1 -0
  228. package/dist/web/hooks/formatUserError.d.ts.map +1 -1
  229. package/dist/web/hooks/formatUserError.js +13 -2
  230. package/dist/web/hooks/formatUserError.js.map +1 -1
  231. package/dist/web/hooks/locale.d.ts +2 -0
  232. package/dist/web/hooks/locale.d.ts.map +1 -1
  233. package/dist/web/hooks/locale.js +41 -4
  234. package/dist/web/hooks/locale.js.map +1 -1
  235. package/dist/web/hooks/locale.test.d.ts +2 -0
  236. package/dist/web/hooks/locale.test.d.ts.map +1 -0
  237. package/dist/web/hooks/locale.test.js +41 -0
  238. package/dist/web/hooks/locale.test.js.map +1 -0
  239. package/dist/web/hooks/locales/en.d.ts +26 -2
  240. package/dist/web/hooks/locales/en.d.ts.map +1 -1
  241. package/dist/web/hooks/locales/en.js +36 -12
  242. package/dist/web/hooks/locales/en.js.map +1 -1
  243. package/dist/web/hooks/locales/es.d.ts.map +1 -1
  244. package/dist/web/hooks/locales/es.js +35 -11
  245. package/dist/web/hooks/locales/es.js.map +1 -1
  246. package/dist/web/hooks/locales/ja.d.ts.map +1 -1
  247. package/dist/web/hooks/locales/ja.js +36 -12
  248. package/dist/web/hooks/locales/ja.js.map +1 -1
  249. package/dist/web/hooks/locales/ko.d.ts.map +1 -1
  250. package/dist/web/hooks/locales/ko.js +36 -12
  251. package/dist/web/hooks/locales/ko.js.map +1 -1
  252. package/dist/web/hooks/locales/pt.d.ts +4 -0
  253. package/dist/web/hooks/locales/pt.d.ts.map +1 -0
  254. package/dist/web/hooks/locales/pt.js +164 -0
  255. package/dist/web/hooks/locales/pt.js.map +1 -0
  256. package/dist/web/hooks/locales/zh.d.ts.map +1 -1
  257. package/dist/web/hooks/locales/zh.js +36 -12
  258. package/dist/web/hooks/locales/zh.js.map +1 -1
  259. package/dist/web/hooks/navEvent.js +2 -2
  260. package/dist/web/hooks/navEvent.js.map +1 -1
  261. package/dist/web/hooks/types.d.ts +15 -3
  262. package/dist/web/hooks/types.d.ts.map +1 -1
  263. package/dist/web/hooks/types.js.map +1 -1
  264. package/dist/web/hooks/useAccountFlow.d.ts +17 -11
  265. package/dist/web/hooks/useAccountFlow.d.ts.map +1 -1
  266. package/dist/web/hooks/useAccountFlow.js +71 -28
  267. package/dist/web/hooks/useAccountFlow.js.map +1 -1
  268. package/dist/web/hooks/useCreateDeposit.d.ts +1 -1
  269. package/dist/web/hooks/useCreateDeposit.d.ts.map +1 -1
  270. package/dist/web/hooks/useCreateDeposit.js +15 -103
  271. package/dist/web/hooks/useCreateDeposit.js.map +1 -1
  272. package/dist/web/hooks/useDraftDeposit.d.ts +2 -1
  273. package/dist/web/hooks/useDraftDeposit.d.ts.map +1 -1
  274. package/dist/web/hooks/useDraftDeposit.js +18 -1
  275. package/dist/web/hooks/useDraftDeposit.js.map +1 -1
  276. package/dist/web/hooks/useSessionNav.d.ts +6 -3
  277. package/dist/web/hooks/useSessionNav.d.ts.map +1 -1
  278. package/dist/web/hooks/useSessionNav.js +131 -39
  279. package/dist/web/hooks/useSessionNav.js.map +1 -1
  280. package/dist/web/hooks/useWalletFlow.d.ts.map +1 -1
  281. package/dist/web/hooks/useWalletFlow.js +74 -26
  282. package/dist/web/hooks/useWalletFlow.js.map +1 -1
  283. package/dist/web/hooks/walletError.d.ts +9 -0
  284. package/dist/web/hooks/walletError.d.ts.map +1 -0
  285. package/dist/web/hooks/walletError.js +16 -0
  286. package/dist/web/hooks/walletError.js.map +1 -0
  287. package/dist/web/index.d.ts +7 -1
  288. package/dist/web/index.d.ts.map +1 -1
  289. package/dist/web/index.js +3 -0
  290. package/dist/web/index.js.map +1 -1
  291. package/dist/web/styles.css +1 -1
  292. package/dist/web/theme.css +1 -1
  293. package/dist/web/theme.d.ts +7 -0
  294. package/dist/web/theme.d.ts.map +1 -0
  295. package/dist/web/theme.js +23 -0
  296. package/dist/web/theme.js.map +1 -0
  297. package/package.json +7 -4
@@ -1,6 +1,7 @@
1
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
1
+ import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState, } from "react";
2
2
  import { getAccountPaymentEntryTarget } from "../components/account/accountNav.js";
3
- import { detectPlatform, isDesktop, } from "../platform.js";
3
+ import { detectPlatform, isDesktop } from "../platform.js";
4
+ import { pruneCompletedAccountAuth } from "./accountAuthNav.js";
4
5
  import { useDaimoClient } from "./DaimoClientContext.js";
5
6
  import { formatUserError } from "./formatUserError.js";
6
7
  import { t } from "./locale.js";
@@ -13,13 +14,36 @@ function isExchangeNode(node) {
13
14
  function isStripeNode(node) {
14
15
  return node?.type === "Stripe";
15
16
  }
17
+ function isTrustTronNode(node) {
18
+ return node?.type === "TronDeposit" && node.id === "Trust-Tron";
19
+ }
16
20
  function getExchangeSelection(node) {
17
21
  if (node.type === "CashApp") {
18
22
  return { exchangeId: "CashApp", nodeType: "CashApp" };
19
23
  }
20
24
  return { exchangeId: node.exchangeId, nodeType: "Exchange" };
21
25
  }
22
- export function useSessionNav(session, setSession, isOpen, platform, walletFlow, accountFlow) {
26
+ function replacePendingAccountEntry(stack, nodeId, rail, entry) {
27
+ for (let index = stack.length - 1; index >= 0; index--) {
28
+ const item = stack[index];
29
+ if (item.type === "account-loading" &&
30
+ item.nodeId === nodeId &&
31
+ item.rail === rail) {
32
+ return [...stack.slice(0, index), entry, ...stack.slice(index + 1)];
33
+ }
34
+ }
35
+ return stack;
36
+ }
37
+ function isSameAccountRailEntry(entry, nodeId, rail) {
38
+ return "rail" in entry && entry.nodeId === nodeId && entry.rail === rail;
39
+ }
40
+ function accountEntry(entry) {
41
+ if (entry == null || !("rail" in entry)) {
42
+ throw new Error("account nav entry required");
43
+ }
44
+ return entry;
45
+ }
46
+ export function useSessionNav(session, setSession, isOpen, accountAuth, platform, walletFlow, accountFlow) {
23
47
  const effectivePlatform = platform ?? detectPlatform();
24
48
  const client = useDaimoClient();
25
49
  const logNavEvent = createNavLogger(client);
@@ -43,6 +67,13 @@ export function useSessionNav(session, setSession, isOpen, platform, walletFlow,
43
67
  if (!result.tron) {
44
68
  throw new Error("tron address not returned");
45
69
  }
70
+ const node = findNode(nodeId, session.navTree);
71
+ const trustWalletDeeplink = isTrustTronNode(node)
72
+ ? result.tron.deeplinks?.trustWallet
73
+ : undefined;
74
+ if (isTrustTronNode(node) && !trustWalletDeeplink) {
75
+ throw new Error("trust wallet deeplink not returned");
76
+ }
46
77
  logNavEvent(session.sessionId, session.clientSecret, {
47
78
  nodeId,
48
79
  nodeType: "TronDeposit",
@@ -50,6 +81,9 @@ export function useSessionNav(session, setSession, isOpen, platform, walletFlow,
50
81
  success: true,
51
82
  address: result.tron.receiverAddress,
52
83
  });
84
+ if (trustWalletDeeplink && !isDesktop(effectivePlatform)) {
85
+ window.open(trustWalletDeeplink.url, "_blank");
86
+ }
53
87
  setStack((prev) => {
54
88
  const top = prev[prev.length - 1];
55
89
  if (top?.type !== "waiting-tron" || top.nodeId !== nodeId)
@@ -60,6 +94,7 @@ export function useSessionNav(session, setSession, isOpen, platform, walletFlow,
60
94
  ...top,
61
95
  address: result.tron.receiverAddress,
62
96
  expiresAt: result.tron.expiresAt,
97
+ trustWalletDeeplink,
63
98
  error: undefined,
64
99
  },
65
100
  ];
@@ -82,7 +117,13 @@ export function useSessionNav(session, setSession, isOpen, platform, walletFlow,
82
117
  return [...prev.slice(0, -1), { ...top, error: errorMsg }];
83
118
  });
84
119
  }
85
- }, [session.sessionId, session.clientSecret, client]);
120
+ }, [
121
+ session.sessionId,
122
+ session.clientSecret,
123
+ session.navTree,
124
+ effectivePlatform,
125
+ client,
126
+ ]);
86
127
  const fetchExchangeUrl = useCallback(async (nodeId, exchangeId, amountUsd, nodeType) => {
87
128
  try {
88
129
  const result = await client.sessions.paymentMethods.create(session.sessionId, {
@@ -148,6 +189,9 @@ export function useSessionNav(session, setSession, isOpen, platform, walletFlow,
148
189
  if (!result.stripe) {
149
190
  throw new Error("stripe onramp session not returned");
150
191
  }
192
+ if (!result.stripe.redirectUrl) {
193
+ throw new Error("stripe onramp url not returned");
194
+ }
151
195
  logNavEvent(session.sessionId, session.clientSecret, {
152
196
  nodeId,
153
197
  nodeType: "Stripe",
@@ -193,17 +237,21 @@ export function useSessionNav(session, setSession, isOpen, platform, walletFlow,
193
237
  // ─── Account deposit handler ────────────────────────────────────────────────
194
238
  const handleAccountNavigate = useCallback(async (nodeId, node, autoNav) => {
195
239
  const rail = node.fiatMethod;
240
+ setStack((prev) => [
241
+ ...prev,
242
+ { type: "account-loading", nodeId, rail, autoNav },
243
+ ]);
244
+ const replaceLoading = (entry) => {
245
+ setStack((prev) => replacePendingAccountEntry(prev, nodeId, rail, entry));
246
+ };
196
247
  if (!accountFlow) {
197
- setStack((prev) => [
198
- ...prev,
199
- {
200
- type: "account-error",
201
- nodeId,
202
- rail,
203
- autoNav,
204
- message: "account deposit is not available for this session.",
205
- },
206
- ]);
248
+ replaceLoading({
249
+ type: "account-error",
250
+ nodeId,
251
+ rail,
252
+ autoNav,
253
+ message: "account deposit is not available for this session.",
254
+ });
207
255
  return;
208
256
  }
209
257
  // Wait for Privy to finish restoring session from storage before
@@ -216,7 +264,10 @@ export function useSessionNav(session, setSession, isOpen, platform, walletFlow,
216
264
  // If user has an active Privy session, check their account status
217
265
  // to skip onboarding steps they've already completed.
218
266
  if (token) {
219
- const sessionCtx = { sessionId: session.sessionId, clientSecret: session.clientSecret };
267
+ const sessionCtx = {
268
+ sessionId: session.sessionId,
269
+ clientSecret: session.clientSecret,
270
+ };
220
271
  const result = await accountFlow.getAccount(client, sessionCtx, {
221
272
  rail,
222
273
  });
@@ -225,27 +276,42 @@ export function useSessionNav(session, setSession, isOpen, platform, walletFlow,
225
276
  // Some rails skip the amount-first step and go straight to a
226
277
  // unified payment page.
227
278
  const entryType = getAccountPaymentEntryTarget(rail);
228
- setStack((prev) => [
229
- ...prev,
230
- { type: entryType, nodeId, rail, autoNav },
231
- ]);
279
+ replaceLoading({ type: entryType, nodeId, rail, autoNav });
232
280
  return;
233
281
  }
234
282
  if (result.nextAction === "enrollment") {
235
- setStack((prev) => [
236
- ...prev,
237
- { type: "account-enrollment", nodeId, rail, autoNav },
238
- ]);
283
+ replaceLoading({
284
+ type: "account-enrollment",
285
+ nodeId,
286
+ rail,
287
+ autoNav,
288
+ });
289
+ return;
290
+ }
291
+ if (result.nextAction === "enrollment_update") {
292
+ replaceLoading({
293
+ type: "account-enrollment-update",
294
+ nodeId,
295
+ rail,
296
+ autoNav,
297
+ update: result.enrollmentUpdate,
298
+ });
239
299
  return;
240
300
  }
241
301
  }
242
302
  }
243
- // New user or no session — start from email
244
- setStack((prev) => [
245
- ...prev,
246
- { type: "account-email", nodeId, rail, autoNav },
247
- ]);
248
- }, [accountFlow, client, session.clientSecret, session.sessionId]);
303
+ if (accountAuth?.email) {
304
+ await accountFlow.logout();
305
+ accountFlow.setEmail(accountAuth.email);
306
+ const sent = await accountFlow.sendOtp(accountAuth.email);
307
+ if (sent) {
308
+ replaceLoading({ type: "account-otp", nodeId, rail, autoNav });
309
+ return;
310
+ }
311
+ }
312
+ // New user or no email hint — start from email
313
+ replaceLoading({ type: "account-email", nodeId, rail, autoNav });
314
+ }, [accountAuth, accountFlow, client, session.clientSecret, session.sessionId]);
249
315
  // ─── Navigation handlers ────────────────────────────────────────────────
250
316
  const handleNavigate = useCallback((nodeId, options) => {
251
317
  const nodeCtx = getNodeCtx();
@@ -393,7 +459,9 @@ export function useSessionNav(session, setSession, isOpen, platform, walletFlow,
393
459
  // Skip auto-advancing account gates on back — these re-poll and
394
460
  // jump forward when revisited, creating a loop.
395
461
  if (top.type === "account-creating-wallet" ||
396
- top.type === "account-enrollment") {
462
+ top.type === "account-enrollment" ||
463
+ top.type === "account-ripio-otp" ||
464
+ top.type === "account-enrollment-update") {
397
465
  next.pop();
398
466
  continue;
399
467
  }
@@ -524,6 +592,7 @@ export function useSessionNav(session, setSession, isOpen, platform, walletFlow,
524
592
  ...top,
525
593
  address: undefined,
526
594
  expiresAt: undefined,
595
+ trustWalletDeeplink: undefined,
527
596
  error: undefined,
528
597
  },
529
598
  ];
@@ -677,15 +746,12 @@ export function useSessionNav(session, setSession, isOpen, platform, walletFlow,
677
746
  fireWalletSend(topEntry.nodeId, token, amountUsd);
678
747
  }, [topEntry, fireWalletSend]);
679
748
  const handleShowMobileWallets = useCallback((nodeId) => {
680
- setStack((prev) => [
681
- ...prev,
682
- { type: "wallet-mobile-grid", nodeId },
683
- ]);
749
+ setStack((prev) => [...prev, { type: "wallet-mobile-grid", nodeId }]);
684
750
  }, []);
685
751
  // ─── Internal effects ──────────────────────────────────────────────────
686
752
  // Auto-navigate through single-option ChooseOption chains
687
753
  const autoNavRef = useRef(null);
688
- useEffect(() => {
754
+ useLayoutEffect(() => {
689
755
  if (!isOpen)
690
756
  return;
691
757
  if (topEntry && topEntry.type !== "choose-option") {
@@ -726,12 +792,36 @@ export function useSessionNav(session, setSession, isOpen, platform, walletFlow,
726
792
  // ─── Account flow handler ────────────────────────────────────────────────
727
793
  /** Advance account flow to the next screen, preserving nodeId + rail. */
728
794
  const handleAccountAdvance = useCallback((nextType) => {
729
- if (!topEntry || !("rail" in topEntry))
795
+ const { nodeId, rail } = accountEntry(topEntry);
796
+ const pushPhoneEntry = (type) => {
797
+ setStack((prev) => {
798
+ const nextStack = pruneCompletedAccountAuth(prev, type);
799
+ return [...nextStack, { type, nodeId, rail }];
800
+ });
801
+ };
802
+ if (nextType === "account-phone" &&
803
+ rail === "apple_pay" &&
804
+ accountAuth?.phone &&
805
+ accountFlow) {
806
+ const phone = accountAuth.phone;
807
+ pushPhoneEntry("account-loading");
808
+ void (async () => {
809
+ accountFlow.setPhoneNumber(phone);
810
+ const sent = await accountFlow.sendPhoneOtp(phone, client);
811
+ pushPhoneEntry(sent ? "account-phone-otp" : "account-phone");
812
+ })();
730
813
  return;
731
- const { nodeId, rail } = topEntry;
814
+ }
815
+ setStack((prev) => {
816
+ const nextStack = pruneCompletedAccountAuth(prev, nextType);
817
+ return [...nextStack, { type: nextType, nodeId, rail }];
818
+ });
819
+ }, [accountAuth, accountFlow, topEntry]);
820
+ const handleAccountLogout = useCallback(() => {
821
+ const { nodeId, rail, autoNav } = accountEntry(topEntry);
732
822
  setStack((prev) => [
733
- ...prev,
734
- { type: nextType, nodeId, rail },
823
+ ...prev.filter((entry) => !isSameAccountRailEntry(entry, nodeId, rail)),
824
+ { type: "account-email", nodeId, rail, autoNav },
735
825
  ]);
736
826
  }, [topEntry]);
737
827
  return useMemo(() => ({
@@ -750,6 +840,7 @@ export function useSessionNav(session, setSession, isOpen, platform, walletFlow,
750
840
  handleWalletSelectToken,
751
841
  handleWalletSending,
752
842
  handleAccountAdvance,
843
+ handleAccountLogout,
753
844
  }), [
754
845
  stack,
755
846
  topEntry,
@@ -766,6 +857,7 @@ export function useSessionNav(session, setSession, isOpen, platform, walletFlow,
766
857
  handleWalletSelectToken,
767
858
  handleWalletSending,
768
859
  handleAccountAdvance,
860
+ handleAccountLogout,
769
861
  ]);
770
862
  }
771
863
  //# sourceMappingURL=useSessionNav.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSessionNav.js","sourceRoot":"","sources":["../../../src/web/hooks/useSessionNav.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSessionNav.js","sourceRoot":"","sources":["../../../src/web/hooks/useSessionNav.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletFlow.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useWalletFlow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAA8C,MAAM,MAAM,CAAC;AAG3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAc5E,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAiBF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,mBAAmB,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,yBAAyB,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,eAAe,EAAE,CACf,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,MAAM,KACd,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EACxC,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,cAAc,EAAE,EACjC,gBAAgB,CAAC,EAAE,OAAO,GACzB,gBAAgB,CAmclB;AAoID,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAcrD"}
1
+ {"version":3,"file":"useWalletFlow.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useWalletFlow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAA8C,MAAM,MAAM,CAAC;AAG3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAc5E,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAiBF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,mBAAmB,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,yBAAyB,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,eAAe,EAAE,CACf,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,MAAM,KACd,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EACxC,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,cAAc,EAAE,EACjC,gBAAgB,CAAC,EAAE,OAAO,GACzB,gBAAgB,CA0elB;AA6JD,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAerD"}
@@ -5,6 +5,7 @@ import { getChainName, solana } from "../../common/chain.js";
5
5
  import { isNativeToken } from "../../common/token.js";
6
6
  import { useDaimoClient } from "./DaimoClientContext.js";
7
7
  import { t } from "./locale.js";
8
+ import { prefixWalletError, WalletError } from "./walletError.js";
8
9
  const erc20TransferAbi = [
9
10
  {
10
11
  name: "transfer",
@@ -38,6 +39,8 @@ export function useWalletFlow(sessionId, destAddr, connectMode, clientSecret, in
38
39
  const currentFetchRef = useRef(null);
39
40
  const evmProviderRef = useRef(null);
40
41
  const solanaProviderRef = useRef(null);
42
+ // Display name of the active wallet, used to prefix provider errors.
43
+ const walletNameRef = useRef(null);
41
44
  const [connectedAddress, setConnectedAddress] = useState(null);
42
45
  const fetchBalances = useCallback(async (walletData, showLoading) => {
43
46
  if (!walletData.evmAddress && !walletData.solAddress)
@@ -103,6 +106,7 @@ export function useWalletFlow(sessionId, destAddr, connectMode, clientSecret, in
103
106
  evmProviderRef.current = evmProvider;
104
107
  if (solProvider)
105
108
  solanaProviderRef.current = solProvider;
109
+ walletNameRef.current = resolveWalletName(injectedWallets, evmProvider ?? solProvider);
106
110
  const [evmAddress, solAddress] = await Promise.all([
107
111
  evmProvider ? requestEvmAccounts(evmProvider) : null,
108
112
  solProvider ? requestSolanaConnect(solProvider) : null,
@@ -119,7 +123,9 @@ export function useWalletFlow(sessionId, destAddr, connectMode, clientSecret, in
119
123
  }
120
124
  catch (err) {
121
125
  console.error("failed to connect wallet:", err);
122
- setConnectError(err instanceof Error ? err.message : unavailableMsg);
126
+ setConnectError(err instanceof Error
127
+ ? prefixWalletError(walletNameRef.current, err.message)
128
+ : unavailableMsg);
123
129
  setIsConnecting(false);
124
130
  }
125
131
  }, [fetchBalances, injectedWallets, unavailableMsg]);
@@ -127,6 +133,7 @@ export function useWalletFlow(sessionId, destAddr, connectMode, clientSecret, in
127
133
  setConnectError(null);
128
134
  setIsConnecting(true);
129
135
  evmProviderRef.current = provider;
136
+ walletNameRef.current = resolveWalletName(injectedWallets, provider);
130
137
  try {
131
138
  const accounts = (await provider.request({
132
139
  method: "eth_requestAccounts",
@@ -144,14 +151,17 @@ export function useWalletFlow(sessionId, destAddr, connectMode, clientSecret, in
144
151
  }
145
152
  catch (err) {
146
153
  console.error("failed to connect wallet:", err);
147
- setConnectError(err instanceof Error ? err.message : unavailableMsg);
154
+ setConnectError(err instanceof Error
155
+ ? prefixWalletError(walletNameRef.current, err.message)
156
+ : unavailableMsg);
148
157
  setIsConnecting(false);
149
158
  }
150
- }, [fetchBalances, unavailableMsg]);
159
+ }, [fetchBalances, injectedWallets, unavailableMsg]);
151
160
  const connectWithSolanaProvider = useCallback(async (provider) => {
152
161
  setConnectError(null);
153
162
  setIsConnecting(true);
154
163
  solanaProviderRef.current = provider;
164
+ walletNameRef.current = resolveWalletName(injectedWallets, provider);
155
165
  try {
156
166
  const pk = provider.publicKey ?? (await provider.connect()).publicKey;
157
167
  const solAddress = pk.toBase58();
@@ -162,10 +172,12 @@ export function useWalletFlow(sessionId, destAddr, connectMode, clientSecret, in
162
172
  }
163
173
  catch (err) {
164
174
  console.error("failed to connect solana wallet:", err);
165
- setConnectError(err instanceof Error ? err.message : unavailableMsg);
175
+ setConnectError(err instanceof Error
176
+ ? prefixWalletError(walletNameRef.current, err.message)
177
+ : unavailableMsg);
166
178
  setIsConnecting(false);
167
179
  }
168
- }, [fetchBalances, unavailableMsg]);
180
+ }, [fetchBalances, injectedWallets, unavailableMsg]);
169
181
  const connectPassive = useCallback(async (targetAddress) => {
170
182
  setConnectError(null);
171
183
  setIsConnecting(true);
@@ -197,7 +209,10 @@ export function useWalletFlow(sessionId, destAddr, connectMode, clientSecret, in
197
209
  }
198
210
  }
199
211
  else if (r.accounts.length > 0) {
200
- match = { provider: r.provider, address: getAddress(r.accounts[0]) };
212
+ match = {
213
+ provider: r.provider,
214
+ address: getAddress(r.accounts[0]),
215
+ };
201
216
  break;
202
217
  }
203
218
  }
@@ -207,6 +222,7 @@ export function useWalletFlow(sessionId, destAddr, connectMode, clientSecret, in
207
222
  return;
208
223
  }
209
224
  evmProviderRef.current = match.provider;
225
+ walletNameRef.current = resolveWalletName(injectedWallets, match.provider);
210
226
  const walletData = { evmAddress: match.address, solAddress: null };
211
227
  setWallet(walletData);
212
228
  setIsConnecting(false);
@@ -229,6 +245,16 @@ export function useWalletFlow(sessionId, destAddr, connectMode, clientSecret, in
229
245
  await connect();
230
246
  }
231
247
  }, [connectWithSolanaProvider, connectWithProvider, connect]);
248
+ // Connection timeout: show error after 2s of connecting
249
+ useEffect(() => {
250
+ if (!isConnecting)
251
+ return;
252
+ const timer = setTimeout(() => {
253
+ setIsConnecting(false);
254
+ setConnectError(unavailableMsg);
255
+ }, 2000);
256
+ return () => clearTimeout(timer);
257
+ }, [isConnecting, unavailableMsg]);
232
258
  // One-shot: test wallet URL params
233
259
  const testWalletInitRef = useRef(false);
234
260
  useEffect(() => {
@@ -391,10 +417,10 @@ export function useWalletFlow(sessionId, destAddr, connectMode, clientSecret, in
391
417
  throw new Error(unavailableMsg);
392
418
  const tokenInfo = token.balance.token;
393
419
  if (tokenInfo.chainId === solana.chainId) {
394
- const txHash = await sendSolanaTransaction(wallet, sessionId, clientSecret, tokenInfo.token, amountUsd, client, solanaProviderRef.current);
420
+ const txHash = await sendSolanaTransaction(wallet, sessionId, clientSecret, tokenInfo.token, amountUsd, client, solanaProviderRef.current, walletNameRef.current);
395
421
  return { txHash };
396
422
  }
397
- const txHash = await sendEvmTransaction(wallet, destAddr, token, amountUsd, evmProviderRef.current);
423
+ const txHash = await sendEvmTransaction(wallet, destAddr, token, amountUsd, evmProviderRef.current, walletNameRef.current);
398
424
  return { txHash };
399
425
  }, [wallet, sessionId, destAddr, clientSecret, client, unavailableMsg]);
400
426
  return {
@@ -412,6 +438,15 @@ export function useWalletFlow(sessionId, destAddr, connectMode, clientSecret, in
412
438
  };
413
439
  }
414
440
  // ─── Connection helpers ─────────────────────────────────────────────────────
441
+ /** Display name of the wallet owning a provider, or null for unidentified/standalone wallets. */
442
+ function resolveWalletName(wallets, provider) {
443
+ if (!provider)
444
+ return null;
445
+ const wallet = wallets.find((w) => w.evmProvider === provider || w.solanaProvider === provider);
446
+ if (!wallet || wallet.info.rdns.startsWith("standalone."))
447
+ return null;
448
+ return wallet.info.name;
449
+ }
415
450
  async function requestEvmAccounts(provider) {
416
451
  try {
417
452
  const accounts = (await provider.request({
@@ -437,11 +472,23 @@ async function requestSolanaConnect(provider) {
437
472
  }
438
473
  }
439
474
  // ─── Transaction helpers ────────────────────────────────────────────────────
440
- async function sendEvmTransaction(wallet, destAddr, token, amountUsd, ethereum) {
475
+ async function sendEvmTransaction(wallet, destAddr, token, amountUsd, ethereum, walletName) {
441
476
  if (!ethereum)
442
477
  throw new Error(t.walletUnavailable);
443
478
  if (!wallet.evmAddress)
444
479
  throw new Error(t.walletDisconnected);
480
+ // Wrap the final provider call so its errors are tagged with the wallet name.
481
+ const send = async (params) => {
482
+ try {
483
+ return (await ethereum.request({
484
+ method: "eth_sendTransaction",
485
+ params,
486
+ }));
487
+ }
488
+ catch (err) {
489
+ throw new WalletError(walletName, err);
490
+ }
491
+ };
445
492
  const tokenInfo = token.balance.token;
446
493
  const chainId = tokenInfo.chainId;
447
494
  const currentChainId = await ethereum.request({ method: "eth_chainId" });
@@ -471,28 +518,22 @@ async function sendEvmTransaction(wallet, destAddr, token, amountUsd, ethereum)
471
518
  }
472
519
  const tokenAddress = getAddress(tokenInfo.token);
473
520
  if (isNativeToken(chainId, tokenAddress)) {
474
- return (await ethereum.request({
475
- method: "eth_sendTransaction",
476
- params: [
477
- {
478
- from: wallet.evmAddress,
479
- to: destAddr,
480
- value: `0x${tokenAmount.toString(16)}`,
481
- },
482
- ],
483
- }));
521
+ return send([
522
+ {
523
+ from: wallet.evmAddress,
524
+ to: destAddr,
525
+ value: `0x${tokenAmount.toString(16)}`,
526
+ },
527
+ ]);
484
528
  }
485
529
  const data = encodeFunctionData({
486
530
  abi: erc20TransferAbi,
487
531
  functionName: "transfer",
488
532
  args: [destAddr, tokenAmount],
489
533
  });
490
- return (await ethereum.request({
491
- method: "eth_sendTransaction",
492
- params: [{ from: wallet.evmAddress, to: tokenAddress, data }],
493
- }));
534
+ return send([{ from: wallet.evmAddress, to: tokenAddress, data }]);
494
535
  }
495
- async function sendSolanaTransaction(wallet, sessionId, clientSecret, inputTokenMint, amountUsd, client, solanaWallet) {
536
+ async function sendSolanaTransaction(wallet, sessionId, clientSecret, inputTokenMint, amountUsd, client, solanaWallet, walletName) {
496
537
  if (!solanaWallet)
497
538
  throw new Error(t.walletUnavailable);
498
539
  if (!wallet.solAddress)
@@ -510,11 +551,18 @@ async function sendSolanaTransaction(wallet, sessionId, clientSecret, inputToken
510
551
  throw new Error("solana transaction not returned");
511
552
  }
512
553
  const tx = VersionedTransaction.deserialize(hexToBytes(result.solana.serializedTx));
513
- const txResult = await solanaWallet.signAndSendTransaction(tx);
514
- return txResult.signature;
554
+ try {
555
+ const txResult = await solanaWallet.signAndSendTransaction(tx);
556
+ return txResult.signature;
557
+ }
558
+ catch (err) {
559
+ throw new WalletError(walletName, err);
560
+ }
515
561
  }
516
562
  /** Check if error is a user rejection/cancellation */
517
563
  export function isUserRejection(err) {
564
+ if (err instanceof WalletError)
565
+ return isUserRejection(err.walletCause);
518
566
  if (!err || typeof err !== "object")
519
567
  return false;
520
568
  if ("code" in err && err.code === 4001)