@daimo/sdk 1.0.0-rc.2 → 1.0.0-rc.3

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 (260) hide show
  1. package/dist/common/api.d.ts.map +1 -1
  2. package/dist/common/api.js +3 -1
  3. package/dist/common/api.js.map +1 -1
  4. package/dist/common/legacy/assert.d.ts +6 -0
  5. package/dist/common/legacy/assert.d.ts.map +1 -0
  6. package/dist/common/legacy/assert.js +25 -0
  7. package/dist/common/legacy/assert.js.map +1 -0
  8. package/dist/common/legacy/client.d.ts +67 -0
  9. package/dist/common/legacy/client.d.ts.map +1 -0
  10. package/dist/common/legacy/client.js +55 -0
  11. package/dist/common/legacy/client.js.map +1 -0
  12. package/dist/common/legacy/debug.d.ts +5 -0
  13. package/dist/common/legacy/debug.d.ts.map +1 -0
  14. package/dist/common/legacy/debug.js +21 -0
  15. package/dist/common/legacy/debug.js.map +1 -0
  16. package/dist/common/legacy/format.d.ts +16 -0
  17. package/dist/common/legacy/format.d.ts.map +1 -0
  18. package/dist/common/legacy/format.js +34 -0
  19. package/dist/common/legacy/format.js.map +1 -0
  20. package/dist/common/legacy/index.d.ts +11 -0
  21. package/dist/common/legacy/index.d.ts.map +1 -0
  22. package/dist/common/legacy/index.js +11 -0
  23. package/dist/common/legacy/index.js.map +1 -0
  24. package/dist/common/legacy/primitiveTypes.d.ts +11 -0
  25. package/dist/common/legacy/primitiveTypes.d.ts.map +1 -0
  26. package/dist/common/legacy/primitiveTypes.js +14 -0
  27. package/dist/common/legacy/primitiveTypes.js.map +1 -0
  28. package/dist/common/legacy/session.d.ts +246 -0
  29. package/dist/common/legacy/session.d.ts.map +1 -0
  30. package/dist/common/legacy/session.js +124 -0
  31. package/dist/common/legacy/session.js.map +1 -0
  32. package/dist/common/legacy/try.d.ts +4 -0
  33. package/dist/common/legacy/try.d.ts.map +1 -0
  34. package/dist/common/legacy/try.js +26 -0
  35. package/dist/common/legacy/try.js.map +1 -0
  36. package/dist/common/primitives.d.ts +2 -2
  37. package/dist/common/primitives.d.ts.map +1 -1
  38. package/dist/common/primitives.js +13 -4
  39. package/dist/common/primitives.js.map +1 -1
  40. package/dist/common/session.d.ts +2 -0
  41. package/dist/common/session.d.ts.map +1 -1
  42. package/dist/common/session.js +4 -0
  43. package/dist/common/session.js.map +1 -1
  44. package/dist/hooks/DaimoClientContext.d.ts +7 -0
  45. package/dist/hooks/DaimoClientContext.d.ts.map +1 -0
  46. package/dist/hooks/DaimoClientContext.js +15 -0
  47. package/dist/hooks/DaimoClientContext.js.map +1 -0
  48. package/dist/hooks/formatUserError.d.ts +3 -0
  49. package/dist/hooks/formatUserError.d.ts.map +1 -0
  50. package/dist/hooks/formatUserError.js +30 -0
  51. package/dist/hooks/formatUserError.js.map +1 -0
  52. package/dist/hooks/index.d.ts +12 -0
  53. package/dist/hooks/index.d.ts.map +1 -0
  54. package/dist/hooks/index.js +9 -0
  55. package/dist/hooks/index.js.map +1 -0
  56. package/dist/hooks/locale.d.ts +7 -0
  57. package/dist/hooks/locale.d.ts.map +1 -0
  58. package/dist/hooks/locale.js +15 -0
  59. package/dist/hooks/locale.js.map +1 -0
  60. package/dist/hooks/locales/en.d.ts +60 -0
  61. package/dist/hooks/locales/en.d.ts.map +1 -0
  62. package/dist/hooks/locales/en.js +76 -0
  63. package/dist/hooks/locales/en.js.map +1 -0
  64. package/dist/hooks/locales/es.d.ts +4 -0
  65. package/dist/hooks/locales/es.d.ts.map +1 -0
  66. package/dist/hooks/locales/es.js +60 -0
  67. package/dist/hooks/locales/es.js.map +1 -0
  68. package/dist/hooks/navEvent.d.ts +60 -0
  69. package/dist/hooks/navEvent.d.ts.map +1 -0
  70. package/dist/hooks/navEvent.js +16 -0
  71. package/dist/hooks/navEvent.js.map +1 -0
  72. package/dist/hooks/types.d.ts +71 -0
  73. package/dist/hooks/types.d.ts.map +1 -0
  74. package/dist/hooks/types.js +14 -0
  75. package/dist/hooks/types.js.map +1 -0
  76. package/dist/hooks/usePaymentCallbacks.d.ts +15 -0
  77. package/dist/hooks/usePaymentCallbacks.d.ts.map +1 -0
  78. package/dist/hooks/usePaymentCallbacks.js +27 -0
  79. package/dist/hooks/usePaymentCallbacks.js.map +1 -0
  80. package/dist/hooks/useSessionNav.d.ts +31 -0
  81. package/dist/hooks/useSessionNav.d.ts.map +1 -0
  82. package/dist/hooks/useSessionNav.js +439 -0
  83. package/dist/hooks/useSessionNav.js.map +1 -0
  84. package/dist/hooks/useSessionPolling.d.ts +10 -0
  85. package/dist/hooks/useSessionPolling.d.ts.map +1 -0
  86. package/dist/hooks/useSessionPolling.js +61 -0
  87. package/dist/hooks/useSessionPolling.js.map +1 -0
  88. package/dist/web/ChooseOptionPage.d.ts +9 -0
  89. package/dist/web/ChooseOptionPage.d.ts.map +1 -0
  90. package/dist/web/ChooseOptionPage.js +51 -0
  91. package/dist/web/ChooseOptionPage.js.map +1 -0
  92. package/dist/web/ConfirmationPage.d.ts +32 -0
  93. package/dist/web/ConfirmationPage.d.ts.map +1 -0
  94. package/dist/web/ConfirmationPage.js +72 -0
  95. package/dist/web/ConfirmationPage.js.map +1 -0
  96. package/dist/web/ConfirmationSpinner.d.ts +7 -0
  97. package/dist/web/ConfirmationSpinner.d.ts.map +1 -0
  98. package/dist/web/ConfirmationSpinner.js +20 -0
  99. package/dist/web/ConfirmationSpinner.js.map +1 -0
  100. package/dist/web/DaimoModal.d.ts +15 -0
  101. package/dist/web/DaimoModal.d.ts.map +1 -0
  102. package/dist/web/DaimoModal.js +283 -0
  103. package/dist/web/DaimoModal.js.map +1 -0
  104. package/dist/web/DeeplinkPage.d.ts +8 -0
  105. package/dist/web/DeeplinkPage.d.ts.map +1 -0
  106. package/dist/web/DeeplinkPage.js +13 -0
  107. package/dist/web/DeeplinkPage.js.map +1 -0
  108. package/dist/web/ErrorPage.d.ts +28 -0
  109. package/dist/web/ErrorPage.d.ts.map +1 -0
  110. package/dist/web/ErrorPage.js +47 -0
  111. package/dist/web/ErrorPage.js.map +1 -0
  112. package/dist/web/ExchangePage.d.ts +11 -0
  113. package/dist/web/ExchangePage.d.ts.map +1 -0
  114. package/dist/web/ExchangePage.js +13 -0
  115. package/dist/web/ExchangePage.js.map +1 -0
  116. package/dist/web/ExpiredPage.d.ts +9 -0
  117. package/dist/web/ExpiredPage.d.ts.map +1 -0
  118. package/dist/web/ExpiredPage.js +12 -0
  119. package/dist/web/ExpiredPage.js.map +1 -0
  120. package/dist/web/ModalSkeleton.d.ts +7 -0
  121. package/dist/web/ModalSkeleton.d.ts.map +1 -0
  122. package/dist/web/ModalSkeleton.js +13 -0
  123. package/dist/web/ModalSkeleton.js.map +1 -0
  124. package/dist/web/ProgressDots.d.ts +16 -0
  125. package/dist/web/ProgressDots.d.ts.map +1 -0
  126. package/dist/web/ProgressDots.js +55 -0
  127. package/dist/web/ProgressDots.js.map +1 -0
  128. package/dist/web/QRCode.d.ts +7 -0
  129. package/dist/web/QRCode.d.ts.map +1 -0
  130. package/dist/web/QRCode.js +69 -0
  131. package/dist/web/QRCode.js.map +1 -0
  132. package/dist/web/SelectAmountPage.d.ts +21 -0
  133. package/dist/web/SelectAmountPage.d.ts.map +1 -0
  134. package/dist/web/SelectAmountPage.js +27 -0
  135. package/dist/web/SelectAmountPage.js.map +1 -0
  136. package/dist/web/SelectTokenPage.d.ts +14 -0
  137. package/dist/web/SelectTokenPage.d.ts.map +1 -0
  138. package/dist/web/SelectTokenPage.js +71 -0
  139. package/dist/web/SelectTokenPage.js.map +1 -0
  140. package/dist/web/WaitingDepositAddressPage.d.ts +14 -0
  141. package/dist/web/WaitingDepositAddressPage.d.ts.map +1 -0
  142. package/dist/web/WaitingDepositAddressPage.js +126 -0
  143. package/dist/web/WaitingDepositAddressPage.js.map +1 -0
  144. package/dist/web/WalletAmountPage.d.ts +10 -0
  145. package/dist/web/WalletAmountPage.d.ts.map +1 -0
  146. package/dist/web/WalletAmountPage.js +158 -0
  147. package/dist/web/WalletAmountPage.js.map +1 -0
  148. package/dist/web/api/navTree.d.ts +1 -0
  149. package/dist/web/api/navTree.d.ts.map +1 -1
  150. package/dist/web/buttons.d.ts +15 -0
  151. package/dist/web/buttons.d.ts.map +1 -0
  152. package/dist/web/buttons.js +24 -0
  153. package/dist/web/buttons.js.map +1 -0
  154. package/dist/web/components/ChooseChainPage.d.ts +9 -0
  155. package/dist/web/components/ChooseChainPage.d.ts.map +1 -0
  156. package/dist/web/components/ChooseChainPage.js +10 -0
  157. package/dist/web/components/ChooseChainPage.js.map +1 -0
  158. package/dist/web/components/ChooseOptionPage.d.ts.map +1 -1
  159. package/dist/web/components/ChooseOptionPage.js +2 -10
  160. package/dist/web/components/ChooseOptionPage.js.map +1 -1
  161. package/dist/web/components/ChooseWalletPage.d.ts +13 -0
  162. package/dist/web/components/ChooseWalletPage.d.ts.map +1 -0
  163. package/dist/web/components/ChooseWalletPage.js +15 -0
  164. package/dist/web/components/ChooseWalletPage.js.map +1 -0
  165. package/dist/web/components/ConfirmationPage.d.ts +3 -1
  166. package/dist/web/components/ConfirmationPage.d.ts.map +1 -1
  167. package/dist/web/components/ConfirmationPage.js +3 -2
  168. package/dist/web/components/ConfirmationPage.js.map +1 -1
  169. package/dist/web/components/DaimoModal.d.ts.map +1 -1
  170. package/dist/web/components/DaimoModal.js +72 -137
  171. package/dist/web/components/DaimoModal.js.map +1 -1
  172. package/dist/web/components/DeeplinkPage.d.ts +1 -0
  173. package/dist/web/components/DeeplinkPage.d.ts.map +1 -1
  174. package/dist/web/components/DeeplinkPage.js +13 -2
  175. package/dist/web/components/DeeplinkPage.js.map +1 -1
  176. package/dist/web/components/ExchangePage.js +2 -2
  177. package/dist/web/components/ExchangePage.js.map +1 -1
  178. package/dist/web/components/ExpiredPage.d.ts +2 -1
  179. package/dist/web/components/ExpiredPage.d.ts.map +1 -1
  180. package/dist/web/components/ExpiredPage.js +3 -3
  181. package/dist/web/components/ExpiredPage.js.map +1 -1
  182. package/dist/web/components/SelectTokenPage.d.ts +2 -1
  183. package/dist/web/components/SelectTokenPage.d.ts.map +1 -1
  184. package/dist/web/components/SelectTokenPage.js +5 -9
  185. package/dist/web/components/SelectTokenPage.js.map +1 -1
  186. package/dist/web/components/WalletAmountPage.js +1 -1
  187. package/dist/web/components/WalletAmountPage.js.map +1 -1
  188. package/dist/web/components/containers.d.ts.map +1 -1
  189. package/dist/web/components/containers.js +6 -2
  190. package/dist/web/components/containers.js.map +1 -1
  191. package/dist/web/components/shared.d.ts +9 -4
  192. package/dist/web/components/shared.d.ts.map +1 -1
  193. package/dist/web/components/shared.js +13 -4
  194. package/dist/web/components/shared.js.map +1 -1
  195. package/dist/web/containers.d.ts +19 -0
  196. package/dist/web/containers.d.ts.map +1 -0
  197. package/dist/web/containers.js +77 -0
  198. package/dist/web/containers.js.map +1 -0
  199. package/dist/web/hooks/locales/en.d.ts +2 -0
  200. package/dist/web/hooks/locales/en.d.ts.map +1 -1
  201. package/dist/web/hooks/locales/en.js +2 -0
  202. package/dist/web/hooks/locales/en.js.map +1 -1
  203. package/dist/web/hooks/locales/es.d.ts.map +1 -1
  204. package/dist/web/hooks/locales/es.js +2 -0
  205. package/dist/web/hooks/locales/es.js.map +1 -1
  206. package/dist/web/hooks/types.d.ts +8 -0
  207. package/dist/web/hooks/types.d.ts.map +1 -1
  208. package/dist/web/hooks/types.js.map +1 -1
  209. package/dist/web/hooks/useDepositAddress.d.ts +7 -0
  210. package/dist/web/hooks/useDepositAddress.d.ts.map +1 -0
  211. package/dist/web/hooks/useDepositAddress.js +36 -0
  212. package/dist/web/hooks/useDepositAddress.js.map +1 -0
  213. package/dist/web/hooks/useInjectedWallets.d.ts +14 -0
  214. package/dist/web/hooks/useInjectedWallets.d.ts.map +1 -0
  215. package/dist/web/hooks/useInjectedWallets.js +67 -0
  216. package/dist/web/hooks/useInjectedWallets.js.map +1 -0
  217. package/dist/web/hooks/usePaymentCallbacks.d.ts.map +1 -1
  218. package/dist/web/hooks/usePaymentCallbacks.js +2 -3
  219. package/dist/web/hooks/usePaymentCallbacks.js.map +1 -1
  220. package/dist/web/hooks/useSessionNav.d.ts +5 -3
  221. package/dist/web/hooks/useSessionNav.d.ts.map +1 -1
  222. package/dist/web/hooks/useSessionNav.js +111 -30
  223. package/dist/web/hooks/useSessionNav.js.map +1 -1
  224. package/dist/web/hooks/useSessionPolling.d.ts +1 -1
  225. package/dist/web/hooks/useSessionPolling.d.ts.map +1 -1
  226. package/dist/web/hooks/useSessionPolling.js +14 -19
  227. package/dist/web/hooks/useSessionPolling.js.map +1 -1
  228. package/dist/web/hooks/useWalletFlow.d.ts +4 -0
  229. package/dist/web/hooks/useWalletFlow.d.ts.map +1 -1
  230. package/dist/web/hooks/useWalletFlow.js +66 -11
  231. package/dist/web/hooks/useWalletFlow.js.map +1 -1
  232. package/dist/web/hooks/walletProvider.d.ts +2 -0
  233. package/dist/web/hooks/walletProvider.d.ts.map +1 -1
  234. package/dist/web/hooks/walletProvider.js +9 -0
  235. package/dist/web/hooks/walletProvider.js.map +1 -1
  236. package/dist/web/icons.d.ts +22 -0
  237. package/dist/web/icons.d.ts.map +1 -0
  238. package/dist/web/icons.js +33 -0
  239. package/dist/web/icons.js.map +1 -0
  240. package/dist/web/index.d.ts +3 -0
  241. package/dist/web/index.d.ts.map +1 -1
  242. package/dist/web/index.js +2 -0
  243. package/dist/web/index.js.map +1 -1
  244. package/dist/web/shared.d.ts +93 -0
  245. package/dist/web/shared.d.ts.map +1 -0
  246. package/dist/web/shared.js +202 -0
  247. package/dist/web/shared.js.map +1 -0
  248. package/dist/web/useCopyToClipboard.d.ts +6 -0
  249. package/dist/web/useCopyToClipboard.d.ts.map +1 -0
  250. package/dist/web/useCopyToClipboard.js +20 -0
  251. package/dist/web/useCopyToClipboard.js.map +1 -0
  252. package/dist/web/useWalletFlow.d.ts +23 -0
  253. package/dist/web/useWalletFlow.d.ts.map +1 -0
  254. package/dist/web/useWalletFlow.js +334 -0
  255. package/dist/web/useWalletFlow.js.map +1 -0
  256. package/dist/web/walletProvider.d.ts +34 -0
  257. package/dist/web/walletProvider.d.ts.map +1 -0
  258. package/dist/web/walletProvider.js +14 -0
  259. package/dist/web/walletProvider.js.map +1 -0
  260. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInjectedWallets.js","sourceRoot":"","sources":["../../../src/web/hooks/useInjectedWallets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAsBlF,MAAM,UAAU,kBAAkB;IAChC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAmB,EAAE,CAAC,CAAC;IAE7D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,EAAE;YACtC,MAAM,EAAE,MAAM,EAAE,GAAG,KAA6B,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI;gBAAE,OAAO;YAChC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACpE,MAAM,cAAc,GAAG,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;gBAC/E,OAAO;oBACL,GAAG,IAAI;oBACP;wBACE,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,WAAW,EAAE,MAAM,CAAC,QAAQ;wBAC5B,cAAc;qBACf;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAE3D,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC;QACzE,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,6EAA6E;IAC7E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAC1C,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE;YAClB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC/D,OAAO;gBACL,GAAG,IAAI;gBACP;oBACE,IAAI,EAAE;wBACJ,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,EAAE;wBACR,IAAI,EAAE,mBAAmB;wBACzB,IAAI,EAAE,mBAAmB;qBAC1B;oBACD,cAAc,EAAE,MAAM;iBACvB;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAErB,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePaymentCallbacks.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/usePaymentCallbacks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,KAAK,gBAAgB,GAAG;IACtB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,gBAAgB,QAmB5B"}
1
+ {"version":3,"file":"usePaymentCallbacks.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/usePaymentCallbacks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,KAAK,gBAAgB,GAAG;IACtB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,gBAAgB,QAgB5B"}
@@ -1,3 +1,4 @@
1
+ import { isSessionStarted } from "../../common/session.js";
1
2
  import { useEffect } from "react";
2
3
  /**
3
4
  * Manages payment lifecycle callbacks:
@@ -6,9 +7,7 @@ import { useEffect } from "react";
6
7
  * - onPaymentCompleted: when session completes
7
8
  */
8
9
  export function usePaymentCallbacks(session, isOpen, callbacks) {
9
- const isStarted = session.status === "processing" ||
10
- session.status === "succeeded" ||
11
- session.status === "bounced";
10
+ const isStarted = isSessionStarted(session.status);
12
11
  const isCompleted = session.status === "succeeded";
13
12
  const { onOpen, onPaymentStarted, onPaymentCompleted } = callbacks;
14
13
  useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"usePaymentCallbacks.js","sourceRoot":"","sources":["../../../src/web/hooks/usePaymentCallbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUlC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAuB,EACvB,MAAe,EACf,SAA2B;IAE3B,MAAM,SAAS,GACb,OAAO,CAAC,MAAM,KAAK,YAAY;QAC/B,OAAO,CAAC,MAAM,KAAK,WAAW;QAC9B,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;IAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC;IAEnD,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IAEnE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM;YAAE,MAAM,EAAE,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS;YAAE,gBAAgB,EAAE,EAAE,CAAC;IACtC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACrD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW;YAAE,kBAAkB,EAAE,EAAE,CAAC;IAC1C,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"usePaymentCallbacks.js","sourceRoot":"","sources":["../../../src/web/hooks/usePaymentCallbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUlC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAuB,EACvB,MAAe,EACf,SAA2B;IAE3B,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC;IAEnD,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IAEnE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM;YAAE,MAAM,EAAE,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS;YAAE,gBAAgB,EAAE,EAAE,CAAC;IACtC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACrD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW;YAAE,kBAAkB,EAAE,EAAE,CAAC;IAC1C,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAC3D,CAAC"}
@@ -2,6 +2,8 @@ import type { SessionWithNav } from "../api/navTree.js";
2
2
  import type { WalletPaymentOption } from "../api/walletTypes.js";
3
3
  import { type NavNodeType } from "./navEvent.js";
4
4
  import { type NavEntry } from "./types.js";
5
+ import type { InjectedWallet } from "./useInjectedWallets.js";
6
+ import { type WalletFlowResult } from "./useWalletFlow.js";
5
7
  type NodeContext = {
6
8
  nodeId: string | null;
7
9
  nodeType: NavNodeType | null;
@@ -18,11 +20,11 @@ type SessionNavResult = {
18
20
  handleAmountContinue: (amountUsd: number) => void;
19
21
  handleRetry: () => void;
20
22
  handleRefresh: () => Promise<void>;
21
- handleWalletConnected: () => void;
23
+ handleInjectedWalletSelect: (wallet: InjectedWallet) => void;
24
+ handleChainSelect: (chain: "evm" | "solana") => void;
22
25
  handleWalletSelectToken: (token: WalletPaymentOption) => void;
23
26
  handleWalletSending: (token: WalletPaymentOption, amountUsd: number) => void;
24
- handleWalletTxResult: (txHash?: string, error?: string) => void;
25
27
  };
26
- export declare function useSessionNav(session: SessionWithNav, setSession: React.Dispatch<React.SetStateAction<SessionWithNav>>, platform?: "ios" | "android" | "other"): SessionNavResult;
28
+ export declare function useSessionNav(session: SessionWithNav, setSession: React.Dispatch<React.SetStateAction<SessionWithNav>>, isOpen: boolean, platform?: "ios" | "android" | "other", walletFlow?: WalletFlowResult): SessionNavResult;
27
29
  export {};
28
30
  //# sourceMappingURL=useSessionNav.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSessionNav.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useSessionNav.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKjE,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErD,KAAK,WAAW,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAAC;AAE3E,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,WAAW,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IAEnB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1E,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,uBAAuB,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC9D,mBAAmB,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7E,oBAAoB,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACjE,CAAC;AAEF,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,EAChE,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,GACrC,gBAAgB,CAmelB"}
1
+ {"version":3,"file":"useSessionNav.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useSessionNav.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAMjE,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,KAAK,WAAW,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAAC;AAE3E,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,WAAW,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IAEnB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1E,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,0BAA0B,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7D,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC;IACrD,uBAAuB,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC9D,mBAAmB,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9E,CAAC;AAEF,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,EAChE,MAAM,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,EACtC,UAAU,CAAC,EAAE,gBAAgB,GAC5B,gBAAgB,CA0kBlB"}
@@ -1,9 +1,11 @@
1
- import { useCallback, useMemo, useState } from "react";
1
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
2
2
  import { useDaimoClient } from "./DaimoClientContext.js";
3
+ import { formatUserError } from "./formatUserError.js";
3
4
  import { t } from "./locale.js";
4
5
  import { createNavLogger } from "./navEvent.js";
5
6
  import { findNode } from "./types.js";
6
- export function useSessionNav(session, setSession, platform) {
7
+ import { isUserRejection } from "./useWalletFlow.js";
8
+ export function useSessionNav(session, setSession, isOpen, platform, walletFlow) {
7
9
  const client = useDaimoClient();
8
10
  const logNavEvent = createNavLogger(client);
9
11
  const [stack, setStack] = useState([]);
@@ -341,29 +343,77 @@ export function useSessionNav(session, setSession, platform) {
341
343
  }
342
344
  }, [session.sessionId, session.clientSecret, getNodeCtx, setSession, client]);
343
345
  // ─── Wallet flow handlers ───────────────────────────────────────────────
344
- const handleWalletConnected = useCallback(() => {
345
- if (topEntry?.type !== "wallet-connect")
346
+ const pendingWalletRef = useRef(null);
347
+ const handleInjectedWalletSelect = useCallback((wallet) => {
348
+ const { name: walletName, icon: walletIcon } = wallet.info;
349
+ if (wallet.evmProvider && wallet.solanaProvider) {
350
+ pendingWalletRef.current = wallet;
351
+ setStack((prev) => [
352
+ ...prev,
353
+ { type: "wallet-choose-chain", nodeId: "InjectedWallet", walletName, walletIcon },
354
+ ]);
346
355
  return;
356
+ }
347
357
  setStack((prev) => [
348
358
  ...prev,
349
- { type: "wallet-select-token", nodeId: topEntry.nodeId },
359
+ { type: "wallet-connect", nodeId: "InjectedWallet", walletName, walletIcon, autoNav: true },
360
+ ]);
361
+ if (wallet.solanaProvider) {
362
+ walletFlow?.connectWithSolanaProvider(wallet.solanaProvider);
363
+ }
364
+ else if (wallet.evmProvider) {
365
+ walletFlow?.connectWithProvider(wallet.evmProvider);
366
+ }
367
+ }, [walletFlow]);
368
+ const handleChainSelect = useCallback((chain) => {
369
+ const wallet = pendingWalletRef.current;
370
+ if (!wallet)
371
+ return;
372
+ const { name: walletName, icon: walletIcon } = wallet.info;
373
+ setStack((prev) => [
374
+ ...prev,
375
+ { type: "wallet-connect", nodeId: "InjectedWallet", walletName, walletIcon, autoNav: true },
376
+ ]);
377
+ if (chain === "solana" && wallet.solanaProvider) {
378
+ walletFlow?.connectWithSolanaProvider(wallet.solanaProvider);
379
+ }
380
+ else if (wallet.evmProvider) {
381
+ walletFlow?.connectWithProvider(wallet.evmProvider);
382
+ }
383
+ }, [walletFlow]);
384
+ const updateWalletTxResult = useCallback((txHash, error) => {
385
+ setStack((prev) => {
386
+ const top = prev[prev.length - 1];
387
+ if (top?.type !== "wallet-sending")
388
+ return prev;
389
+ return [...prev.slice(0, -1), { ...top, txHash, error }];
390
+ });
391
+ }, []);
392
+ const fireWalletSend = useCallback((nodeId, token, amountUsd) => {
393
+ setStack((prev) => [
394
+ ...prev,
395
+ { type: "wallet-sending", nodeId, token, amountUsd },
350
396
  ]);
351
- }, [topEntry]);
397
+ walletFlow
398
+ ?.sendTransaction(token, amountUsd)
399
+ .then(({ txHash }) => {
400
+ updateWalletTxResult(txHash);
401
+ })
402
+ .catch((err) => {
403
+ if (isUserRejection(err)) {
404
+ handleBack();
405
+ return;
406
+ }
407
+ updateWalletTxResult(undefined, formatUserError(err, t.transactionFailed));
408
+ });
409
+ }, [walletFlow, handleBack, updateWalletTxResult]);
352
410
  const handleWalletSelectToken = useCallback((token) => {
353
411
  if (topEntry?.type !== "wallet-select-token")
354
412
  return;
355
413
  const { amountUnits } = session.destination;
356
414
  const requiredUsd = amountUnits ? parseFloat(amountUnits) : 0;
357
415
  if (requiredUsd > 0) {
358
- setStack((prev) => [
359
- ...prev,
360
- {
361
- type: "wallet-sending",
362
- nodeId: topEntry.nodeId,
363
- token,
364
- amountUsd: requiredUsd,
365
- },
366
- ]);
416
+ fireWalletSend(topEntry.nodeId, token, requiredUsd);
367
417
  }
368
418
  else {
369
419
  setStack((prev) => [
@@ -371,24 +421,55 @@ export function useSessionNav(session, setSession, platform) {
371
421
  { type: "wallet-select-amount", nodeId: topEntry.nodeId, token },
372
422
  ]);
373
423
  }
374
- }, [topEntry, session.destination]);
424
+ }, [topEntry, session.destination, fireWalletSend]);
375
425
  const handleWalletSending = useCallback((token, amountUsd) => {
376
426
  if (topEntry?.type !== "wallet-select-amount" &&
377
427
  topEntry?.type !== "wallet-select-token")
378
428
  return;
429
+ fireWalletSend(topEntry.nodeId, token, amountUsd);
430
+ }, [topEntry, fireWalletSend]);
431
+ // ─── Internal effects ──────────────────────────────────────────────────
432
+ // Auto-navigate through single-option ChooseOption chains
433
+ const autoNavRef = useRef(null);
434
+ useEffect(() => {
435
+ if (!isOpen)
436
+ return;
437
+ if (topEntry &&
438
+ topEntry.type !== "choose-option" &&
439
+ topEntry.type !== "deeplink") {
440
+ return;
441
+ }
442
+ const currentNodeId = topEntry?.nodeId;
443
+ let node = currentNodeId
444
+ ? findNode(currentNodeId, session.navTree)
445
+ : (session.navTree[0] ?? null);
446
+ let targetId = null;
447
+ while (node?.type === "ChooseOption") {
448
+ const chooseNode = node;
449
+ if (chooseNode.options?.length !== 1)
450
+ break;
451
+ targetId = chooseNode.options[0].id;
452
+ node = findNode(targetId, session.navTree);
453
+ }
454
+ if (!targetId && node && node.type !== "ChooseOption") {
455
+ targetId = node.id;
456
+ }
457
+ if (targetId && autoNavRef.current !== targetId) {
458
+ autoNavRef.current = targetId;
459
+ handleNavigate(targetId, { autoNav: true });
460
+ }
461
+ }, [isOpen, topEntry, session.navTree, handleNavigate]);
462
+ // Auto-advance from wallet-connect to wallet-select-token when connected
463
+ useEffect(() => {
464
+ if (topEntry?.type !== "wallet-connect")
465
+ return;
466
+ if (walletFlow?.isConnecting || !walletFlow?.wallet)
467
+ return;
379
468
  setStack((prev) => [
380
469
  ...prev,
381
- { type: "wallet-sending", nodeId: topEntry.nodeId, token, amountUsd },
470
+ { type: "wallet-select-token", nodeId: topEntry.nodeId },
382
471
  ]);
383
- }, [topEntry]);
384
- const handleWalletTxResult = useCallback((txHash, error) => {
385
- setStack((prev) => {
386
- const top = prev[prev.length - 1];
387
- if (top?.type !== "wallet-sending")
388
- return prev;
389
- return [...prev.slice(0, -1), { ...top, txHash, error }];
390
- });
391
- }, []);
472
+ }, [topEntry, walletFlow?.wallet, walletFlow?.isConnecting]);
392
473
  return useMemo(() => ({
393
474
  stack,
394
475
  topEntry,
@@ -399,10 +480,10 @@ export function useSessionNav(session, setSession, platform) {
399
480
  handleAmountContinue,
400
481
  handleRetry,
401
482
  handleRefresh,
402
- handleWalletConnected,
483
+ handleInjectedWalletSelect,
484
+ handleChainSelect,
403
485
  handleWalletSelectToken,
404
486
  handleWalletSending,
405
- handleWalletTxResult,
406
487
  }), [
407
488
  stack,
408
489
  topEntry,
@@ -413,10 +494,10 @@ export function useSessionNav(session, setSession, platform) {
413
494
  handleAmountContinue,
414
495
  handleRetry,
415
496
  handleRefresh,
416
- handleWalletConnected,
497
+ handleInjectedWalletSelect,
498
+ handleChainSelect,
417
499
  handleWalletSelectToken,
418
500
  handleWalletSending,
419
- handleWalletTxResult,
420
501
  ]);
421
502
  }
422
503
  //# 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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"}
@@ -3,7 +3,7 @@ import type { SessionWithNav } from "../api/navTree.js";
3
3
  * Polls session status from the server while modal is open until terminal.
4
4
  * Terminal = expired or completed.
5
5
  */
6
- export declare function useSessionPolling(initialSession: SessionWithNav, isOpen: boolean): {
6
+ export declare function useSessionPolling(initialSession: SessionWithNav, isOpen: boolean, txHash?: string): {
7
7
  session: SessionWithNav;
8
8
  setSession: import("react").Dispatch<import("react").SetStateAction<SessionWithNav>>;
9
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useSessionPolling.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useSessionPolling.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,OAAO;;;EAoDhB"}
1
+ {"version":3,"file":"useSessionPolling.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useSessionPolling.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAUxD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,OAAO,EACf,MAAM,CAAC,EAAE,MAAM;;;EA4ChB"}
@@ -1,36 +1,30 @@
1
- import { isSessionActive } from "../../common/session.js";
1
+ import { isSessionActive, isSessionTerminal } from "../../common/session.js";
2
2
  import { useEffect, useState } from "react";
3
3
  import { useDaimoClient } from "./DaimoClientContext.js";
4
4
  import { createNavLogger } from "./navEvent.js";
5
5
  const POLL_INTERVAL_MS = 3000;
6
+ const terminalAction = {
7
+ expired: "session_expired",
8
+ succeeded: "session_completed",
9
+ bounced: "session_bounced",
10
+ };
6
11
  /**
7
12
  * Polls session status from the server while modal is open until terminal.
8
13
  * Terminal = expired or completed.
9
14
  */
10
- export function useSessionPolling(initialSession, isOpen) {
15
+ export function useSessionPolling(initialSession, isOpen, txHash) {
11
16
  const client = useDaimoClient();
12
17
  const logNavEvent = createNavLogger(client);
13
18
  const [session, setSession] = useState(initialSession);
14
19
  useEffect(() => {
15
- if (session.status === "expired") {
16
- logNavEvent(session.sessionId, session.clientSecret, {
17
- nodeId: null,
18
- nodeType: null,
19
- action: "session_expired",
20
- });
21
- }
22
- else if (session.status === "succeeded") {
23
- logNavEvent(session.sessionId, session.clientSecret, {
24
- nodeId: null,
25
- nodeType: null,
26
- action: "session_completed",
27
- });
28
- }
29
- else if (session.status === "bounced") {
20
+ if (!isSessionTerminal(session.status))
21
+ return;
22
+ const action = terminalAction[session.status];
23
+ if (action) {
30
24
  logNavEvent(session.sessionId, session.clientSecret, {
31
25
  nodeId: null,
32
26
  nodeType: null,
33
- action: "session_bounced",
27
+ action,
34
28
  });
35
29
  }
36
30
  }, [session.status, session.sessionId]);
@@ -41,6 +35,7 @@ export function useSessionPolling(initialSession, isOpen) {
41
35
  try {
42
36
  const result = await client.sessions.check(session.sessionId, {
43
37
  clientSecret: session.clientSecret,
38
+ txHash,
44
39
  });
45
40
  setSession((prev) => ({
46
41
  ...prev,
@@ -54,7 +49,7 @@ export function useSessionPolling(initialSession, isOpen) {
54
49
  };
55
50
  const interval = setInterval(poll, POLL_INTERVAL_MS);
56
51
  return () => clearInterval(interval);
57
- }, [isOpen, session.sessionId, session.status, session.clientSecret, client]);
52
+ }, [isOpen, session.sessionId, session.status, session.clientSecret, client, txHash]);
58
53
  return { session, setSession };
59
54
  }
60
55
  //# sourceMappingURL=useSessionPolling.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSessionPolling.js","sourceRoot":"","sources":["../../../src/web/hooks/useSessionPolling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,cAA8B,EAC9B,MAAe;IAEf,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,EAAE;gBACnD,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,iBAAiB;aAC1B,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC1C,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,EAAE;gBACnD,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,mBAAmB;aAC5B,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACxC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,EAAE;gBACnD,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,iBAAiB;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO;QAExD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE;oBAC5D,YAAY,EAAE,OAAO,CAAC,YAAY;iBACnC,CAAC,CAAC;gBACH,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACpB,GAAG,IAAI;oBACP,GAAG,MAAM,CAAC,OAAO;oBACjB,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAC,CAAC;YACN,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACrD,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAE9E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"useSessionPolling.js","sourceRoot":"","sources":["../../../src/web/hooks/useSessionPolling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,MAAM,cAAc,GAAG;IACrB,OAAO,EAAE,iBAAiB;IAC1B,SAAS,EAAE,mBAAmB;IAC9B,OAAO,EAAE,iBAAiB;CAClB,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,cAA8B,EAC9B,MAAe,EACf,MAAe;IAEf,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO;QAC/C,MAAM,MAAM,GACV,cAAc,CAAC,OAAO,CAAC,MAAqC,CAAC,CAAC;QAChE,IAAI,MAAM,EAAE,CAAC;YACX,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,EAAE;gBACnD,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,IAAI;gBACd,MAAM;aACP,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO;QAExD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE;oBAC5D,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,MAAM;iBACP,CAAC,CAAC;gBACH,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACpB,GAAG,IAAI;oBACP,GAAG,MAAM,CAAC,OAAO;oBACjB,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAC,CAAC;YACN,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACrD,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { WalletPaymentOption } from "../api/walletTypes.js";
2
2
  import { Address } from "viem";
3
+ import { EthereumProvider, SolanaProvider } from "./walletProvider.js";
3
4
  export type WalletData = {
4
5
  evmAddress: Address | null;
5
6
  solAddress: string | null;
@@ -12,6 +13,9 @@ export type WalletFlowResult = {
12
13
  isLoadingBalances: boolean;
13
14
  connectError: string | null;
14
15
  connect: () => Promise<void>;
16
+ connectWithProvider: (provider: EthereumProvider) => Promise<void>;
17
+ connectWithSolanaProvider: (provider: SolanaProvider) => Promise<void>;
18
+ retryConnect: () => Promise<void>;
15
19
  sendTransaction: (token: WalletPaymentOption, amountUsd: number) => Promise<{
16
20
  txHash: string;
17
21
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletFlow.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useWalletFlow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAIjE,OAAO,EAAE,OAAO,EAA8C,MAAM,MAAM,CAAC;AAuB3E,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,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,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,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,OAAO,EACpB,YAAY,CAAC,EAAE,MAAM,GACpB,gBAAgB,CAuOlB;AAyID,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":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAIjE,OAAO,EAAE,OAAO,EAA8C,MAAM,MAAM,CAAC;AAK3E,OAAO,EACL,gBAAgB,EAChB,cAAc,EAGf,MAAM,qBAAqB,CAAC;AAc7B,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,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,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,OAAO,EACpB,YAAY,CAAC,EAAE,MAAM,GACpB,gBAAgB,CAoTlB;AAqID,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAcrD"}
@@ -34,6 +34,8 @@ export function useWalletFlow(sessionId, destAddr, autoConnect, clientSecret) {
34
34
  const [isLoadingBalances, setIsLoadingBalances] = useState(false);
35
35
  const [connectError, setConnectError] = useState(null);
36
36
  const currentFetchRef = useRef(null);
37
+ const evmProviderRef = useRef(null);
38
+ const solanaProviderRef = useRef(null);
37
39
  const hasInjectedWallet = typeof window !== "undefined" &&
38
40
  (getEthereumProvider() !== null || getSolanaProvider() !== null);
39
41
  const fetchBalances = useCallback(async (walletData, showLoading) => {
@@ -114,6 +116,60 @@ export function useWalletFlow(sessionId, destAddr, autoConnect, clientSecret) {
114
116
  setIsConnecting(false);
115
117
  }
116
118
  }, [fetchBalances]);
119
+ const connectWithProvider = useCallback(async (provider) => {
120
+ setConnectError(null);
121
+ setIsConnecting(true);
122
+ evmProviderRef.current = provider;
123
+ try {
124
+ const accounts = (await provider.request({
125
+ method: "eth_requestAccounts",
126
+ }));
127
+ const evmAddress = accounts?.length ? getAddress(accounts[0]) : null;
128
+ if (!evmAddress) {
129
+ setConnectError(t.walletUnavailable);
130
+ setIsConnecting(false);
131
+ return;
132
+ }
133
+ const walletData = { evmAddress, solAddress: null };
134
+ setWallet(walletData);
135
+ setIsConnecting(false);
136
+ fetchBalances(walletData, true);
137
+ }
138
+ catch (err) {
139
+ console.error("failed to connect wallet:", err);
140
+ setConnectError(err instanceof Error ? err.message : t.walletUnavailable);
141
+ setIsConnecting(false);
142
+ }
143
+ }, [fetchBalances]);
144
+ const connectWithSolanaProvider = useCallback(async (provider) => {
145
+ setConnectError(null);
146
+ setIsConnecting(true);
147
+ solanaProviderRef.current = provider;
148
+ try {
149
+ const pk = provider.publicKey ?? (await provider.connect()).publicKey;
150
+ const solAddress = pk.toBase58();
151
+ const walletData = { evmAddress: null, solAddress };
152
+ setWallet(walletData);
153
+ setIsConnecting(false);
154
+ fetchBalances(walletData, true);
155
+ }
156
+ catch (err) {
157
+ console.error("failed to connect solana wallet:", err);
158
+ setConnectError(err instanceof Error ? err.message : t.walletUnavailable);
159
+ setIsConnecting(false);
160
+ }
161
+ }, [fetchBalances]);
162
+ const retryConnect = useCallback(async () => {
163
+ if (solanaProviderRef.current) {
164
+ await connectWithSolanaProvider(solanaProviderRef.current);
165
+ }
166
+ else if (evmProviderRef.current) {
167
+ await connectWithProvider(evmProviderRef.current);
168
+ }
169
+ else {
170
+ await connect();
171
+ }
172
+ }, [connectWithSolanaProvider, connectWithProvider, connect]);
117
173
  const hasInitialized = useRef(false);
118
174
  useEffect(() => {
119
175
  if (hasInitialized.current)
@@ -136,7 +192,7 @@ export function useWalletFlow(sessionId, destAddr, autoConnect, clientSecret) {
136
192
  }
137
193
  }, [autoConnect, connect, fetchBalances, hasInjectedWallet]);
138
194
  useEffect(() => {
139
- const ethereum = getEthereumProvider();
195
+ const ethereum = evmProviderRef.current ?? getEthereumProvider();
140
196
  if (!ethereum?.on)
141
197
  return;
142
198
  const handleAccountsChanged = (accounts) => {
@@ -205,10 +261,10 @@ export function useWalletFlow(sessionId, destAddr, autoConnect, clientSecret) {
205
261
  throw new Error("missing client secret");
206
262
  const tokenInfo = token.balance.token;
207
263
  if (tokenInfo.chainId === solana.chainId) {
208
- const txHash = await sendSolanaTransaction(client, wallet, sessionId, clientSecret, tokenInfo.token, amountUsd);
264
+ const txHash = await sendSolanaTransaction(wallet, sessionId, clientSecret, tokenInfo.token, amountUsd, client, solanaProviderRef.current);
209
265
  return { txHash };
210
266
  }
211
- const txHash = await sendEvmTransaction(wallet, destAddr, token, amountUsd);
267
+ const txHash = await sendEvmTransaction(wallet, destAddr, token, amountUsd, evmProviderRef.current);
212
268
  return { txHash };
213
269
  }, [wallet, sessionId, destAddr, clientSecret, client]);
214
270
  return {
@@ -219,6 +275,9 @@ export function useWalletFlow(sessionId, destAddr, autoConnect, clientSecret) {
219
275
  isLoadingBalances,
220
276
  connectError,
221
277
  connect,
278
+ connectWithProvider,
279
+ connectWithSolanaProvider,
280
+ retryConnect,
222
281
  sendTransaction,
223
282
  };
224
283
  }
@@ -254,8 +313,8 @@ async function connectSolana() {
254
313
  }
255
314
  }
256
315
  // ─── Transaction helpers ────────────────────────────────────────────────────
257
- async function sendEvmTransaction(wallet, destAddr, token, amountUsd) {
258
- const ethereum = getEthereumProvider();
316
+ async function sendEvmTransaction(wallet, destAddr, token, amountUsd, providerOverride) {
317
+ const ethereum = providerOverride ?? getEthereumProvider();
259
318
  if (!ethereum)
260
319
  throw new Error(t.walletUnavailable);
261
320
  if (!wallet.evmAddress)
@@ -306,8 +365,8 @@ async function sendEvmTransaction(wallet, destAddr, token, amountUsd) {
306
365
  params: [{ from: wallet.evmAddress, to: tokenAddress, data }],
307
366
  }));
308
367
  }
309
- async function sendSolanaTransaction(client, wallet, sessionId, clientSecret, inputTokenMint, amountUsd) {
310
- const solanaWallet = getSolanaProvider();
368
+ async function sendSolanaTransaction(wallet, sessionId, clientSecret, inputTokenMint, amountUsd, client, providerOverride) {
369
+ const solanaWallet = providerOverride ?? getSolanaProvider();
311
370
  if (!solanaWallet)
312
371
  throw new Error(t.walletUnavailable);
313
372
  if (!wallet.solAddress)
@@ -326,10 +385,6 @@ async function sendSolanaTransaction(client, wallet, sessionId, clientSecret, in
326
385
  }
327
386
  const tx = VersionedTransaction.deserialize(hexToBytes(result.solana.serializedTx));
328
387
  const txResult = await solanaWallet.signAndSendTransaction(tx);
329
- await client.sessions.check(sessionId, {
330
- clientSecret,
331
- txHash: txResult.signature,
332
- });
333
388
  return txResult.signature;
334
389
  }
335
390
  /** Check if error is a user rejection/cancellation */