@n1xyz/wallet-widget 0.0.35-alpha.0 → 0.0.35-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (574) hide show
  1. package/dist/bridge-assist/cctp-solana.d.ts +33 -0
  2. package/dist/bridge-assist/cctp-solana.js +392 -0
  3. package/dist/bridge-assist/cctp-solana.js.map +1 -0
  4. package/dist/main.css +1 -2
  5. package/dist/src/adapters/evm.d.ts +39 -0
  6. package/dist/src/adapters/evm.js +338 -0
  7. package/dist/src/adapters/evm.js.map +1 -0
  8. package/dist/src/adapters/factory.d.ts +37 -0
  9. package/dist/src/adapters/factory.js +82 -0
  10. package/dist/src/adapters/factory.js.map +1 -0
  11. package/dist/src/adapters/index.d.ts +33 -0
  12. package/dist/src/adapters/index.js +36 -0
  13. package/dist/src/adapters/index.js.map +1 -0
  14. package/dist/src/adapters/solana.d.ts +37 -0
  15. package/dist/src/adapters/solana.js +359 -0
  16. package/dist/src/adapters/solana.js.map +1 -0
  17. package/dist/src/adapters/types.d.ts +160 -0
  18. package/dist/src/adapters/types.js +20 -0
  19. package/dist/src/adapters/types.js.map +1 -0
  20. package/dist/src/animations/N1Loader.js.map +1 -0
  21. package/dist/src/animations/N1Loader.json +1 -0
  22. package/dist/src/animations/Processing.js.map +1 -0
  23. package/dist/src/animations/Processing.json +1 -0
  24. package/dist/{components → src/components}/LoadingFallback.d.ts +3 -0
  25. package/dist/{components → src/components}/LoadingFallback.js +3 -0
  26. package/dist/src/components/LoadingFallback.js.map +1 -0
  27. package/dist/{components → src/components}/Logo.d.ts +4 -0
  28. package/dist/{components → src/components}/Logo.js +4 -0
  29. package/dist/src/components/Logo.js.map +1 -0
  30. package/dist/src/components/N1ConnectButton.d.ts +13 -0
  31. package/dist/src/components/N1ConnectButton.js +66 -0
  32. package/dist/src/components/N1ConnectButton.js.map +1 -0
  33. package/dist/src/components/logos/ArbitrumLogo.js.map +1 -0
  34. package/dist/src/components/logos/BaseLogo.js +6 -0
  35. package/dist/src/components/logos/BaseLogo.js.map +1 -0
  36. package/dist/src/components/logos/BeraLogo.js.map +1 -0
  37. package/dist/src/components/logos/BitcoinLogo.js.map +1 -0
  38. package/dist/src/components/logos/EthereumLogo.js.map +1 -0
  39. package/dist/{components → src/components}/logos/HyperliquidLogo.js +1 -1
  40. package/dist/src/components/logos/HyperliquidLogo.js.map +1 -0
  41. package/dist/src/components/logos/OptimismLogo.js.map +1 -0
  42. package/dist/src/components/logos/SolanaLogo.js.map +1 -0
  43. package/dist/src/components/logos/ZeroOneLogo.js.map +1 -0
  44. package/dist/src/components/logos/index.js.map +1 -0
  45. package/dist/src/config/chains.d.ts +18 -0
  46. package/dist/src/config/chains.js +58 -0
  47. package/dist/src/config/chains.js.map +1 -0
  48. package/dist/src/config/dynamic.d.ts +1 -0
  49. package/dist/src/config/dynamic.js +18 -0
  50. package/dist/src/config/dynamic.js.map +1 -0
  51. package/dist/src/config/solana.js.map +1 -0
  52. package/dist/src/config/turnkey.d.ts +2 -0
  53. package/dist/src/config/turnkey.js +32 -0
  54. package/dist/src/config/turnkey.js.map +1 -0
  55. package/dist/src/context/n1-wallet-context.js.map +1 -0
  56. package/dist/src/errors/types.d.ts +72 -0
  57. package/dist/src/errors/types.js +140 -0
  58. package/dist/src/errors/types.js.map +1 -0
  59. package/dist/{features → src/features}/onboarding-flow/N1WalletModal.js +44 -29
  60. package/dist/src/features/onboarding-flow/N1WalletModal.js.map +1 -0
  61. package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.d.ts +2 -1
  62. package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.js +54 -8
  63. package/dist/src/features/onboarding-flow/OnboardingFlow.js.map +1 -0
  64. package/dist/src/features/onboarding-flow/bridge-assist/client.d.ts +42 -0
  65. package/dist/src/features/onboarding-flow/bridge-assist/client.js +268 -0
  66. package/dist/src/features/onboarding-flow/bridge-assist/client.js.map +1 -0
  67. package/dist/src/features/onboarding-flow/bridge-assist/config.d.ts +4 -0
  68. package/dist/src/features/onboarding-flow/bridge-assist/config.js +11 -0
  69. package/dist/src/features/onboarding-flow/bridge-assist/config.js.map +1 -0
  70. package/dist/src/features/onboarding-flow/bridge-assist/index.d.ts +1 -0
  71. package/dist/src/features/onboarding-flow/bridge-assist/index.js +2 -0
  72. package/dist/src/features/onboarding-flow/bridge-assist/index.js.map +1 -0
  73. package/dist/src/features/onboarding-flow/bridge-assist/types.d.ts +5 -0
  74. package/dist/src/features/onboarding-flow/bridge-assist/types.js +28 -0
  75. package/dist/src/features/onboarding-flow/bridge-assist/types.js.map +1 -0
  76. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.d.ts +35 -0
  77. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js +391 -0
  78. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js.map +1 -0
  79. package/dist/src/features/onboarding-flow/cctp/clientFactory.d.ts +6 -0
  80. package/dist/src/features/onboarding-flow/cctp/clientFactory.js +9 -0
  81. package/dist/src/features/onboarding-flow/cctp/clientFactory.js.map +1 -0
  82. package/dist/src/features/onboarding-flow/cctp/config.d.ts +16 -0
  83. package/dist/src/features/onboarding-flow/cctp/config.js +55 -0
  84. package/dist/src/features/onboarding-flow/cctp/config.js.map +1 -0
  85. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.d.ts +11 -0
  86. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js +85 -0
  87. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js.map +1 -0
  88. package/dist/src/features/onboarding-flow/cctp/solanaClaim.d.ts +1 -0
  89. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js +2 -0
  90. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js.map +1 -0
  91. package/dist/src/features/onboarding-flow/cctp/types.d.ts +50 -0
  92. package/dist/src/features/onboarding-flow/cctp/types.js +2 -0
  93. package/dist/src/features/onboarding-flow/cctp/types.js.map +1 -0
  94. package/dist/{features → src/features}/onboarding-flow/components/ChainButton.d.ts +5 -2
  95. package/dist/src/features/onboarding-flow/components/ChainButton.js +14 -0
  96. package/dist/src/features/onboarding-flow/components/ChainButton.js.map +1 -0
  97. package/dist/{features → src/features}/onboarding-flow/components/Header.d.ts +2 -2
  98. package/dist/src/features/onboarding-flow/components/Header.js +69 -0
  99. package/dist/src/features/onboarding-flow/components/Header.js.map +1 -0
  100. package/dist/{features → src/features}/onboarding-flow/components/ImageWithFallback.d.ts +2 -5
  101. package/dist/src/features/onboarding-flow/components/ImageWithFallback.js +33 -0
  102. package/dist/src/features/onboarding-flow/components/ImageWithFallback.js.map +1 -0
  103. package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.d.ts +5 -0
  104. package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.js +8 -3
  105. package/dist/src/features/onboarding-flow/components/TransactionTable.js.map +1 -0
  106. package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.d.ts +4 -0
  107. package/dist/src/features/onboarding-flow/components/WaitingMessage.js.map +1 -0
  108. package/dist/src/features/onboarding-flow/components/index.js.map +1 -0
  109. package/dist/src/features/onboarding-flow/errors/depositError.d.ts +36 -0
  110. package/dist/src/features/onboarding-flow/errors/depositError.js +134 -0
  111. package/dist/src/features/onboarding-flow/errors/depositError.js.map +1 -0
  112. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.d.ts +35 -0
  113. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js +585 -0
  114. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js.map +1 -0
  115. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.d.ts +6 -0
  116. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js +141 -0
  117. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js.map +1 -0
  118. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.d.ts +15 -0
  119. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js +83 -0
  120. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js.map +1 -0
  121. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.d.ts +6 -0
  122. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js +45 -0
  123. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js.map +1 -0
  124. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.d.ts +13 -0
  125. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js +161 -0
  126. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js.map +1 -0
  127. package/dist/src/features/onboarding-flow/index.js.map +1 -0
  128. package/dist/{features → src/features}/onboarding-flow/providers/DepositFlowProvider.d.ts +10 -3
  129. package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js +762 -0
  130. package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -0
  131. package/dist/{features → src/features}/onboarding-flow/providers/OnboardingStateProvider.d.ts +5 -0
  132. package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js +399 -0
  133. package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -0
  134. package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.d.ts +2 -2
  135. package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.js +2 -2
  136. package/dist/src/features/onboarding-flow/providers/StateProvider.js.map +1 -0
  137. package/dist/{features → src/features}/onboarding-flow/providers/WalletConnectionProvider.d.ts +8 -0
  138. package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js +938 -0
  139. package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -0
  140. package/dist/{features → src/features}/onboarding-flow/providers/debug.js +5 -1
  141. package/dist/src/features/onboarding-flow/providers/debug.js.map +1 -0
  142. package/dist/src/features/onboarding-flow/providers/index.js.map +1 -0
  143. package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.d.ts +28 -1
  144. package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.js +38 -4
  145. package/dist/src/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -0
  146. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.d.ts +4 -0
  147. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js +32 -0
  148. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js.map +1 -0
  149. package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +5 -0
  150. package/dist/{features → src/features}/onboarding-flow/screens/01-ConnectWalletScreen.js +5 -0
  151. package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -0
  152. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.d.ts +1 -0
  153. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js +25 -0
  154. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +1 -0
  155. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.d.ts +1 -0
  156. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js +25 -0
  157. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +1 -0
  158. package/dist/{features/onboarding-flow/screens/02-ChainSelectionScreen.d.ts → src/features/onboarding-flow/screens/04-ChainSelectionScreen.d.ts} +11 -11
  159. package/dist/{features/onboarding-flow/screens/02-ChainSelectionScreen.js → src/features/onboarding-flow/screens/04-ChainSelectionScreen.js} +60 -30
  160. package/dist/src/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +1 -0
  161. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.d.ts +11 -0
  162. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js +585 -0
  163. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js.map +1 -0
  164. package/dist/{features/onboarding-flow/screens/04-DepositProgressScreen.d.ts → src/features/onboarding-flow/screens/06-DepositProgressScreen.d.ts} +5 -0
  165. package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js +367 -0
  166. package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +1 -0
  167. package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +6 -0
  168. package/dist/{features/onboarding-flow/screens/05-DepositSuccessScreen.js → src/features/onboarding-flow/screens/07-DepositSuccessScreen.js} +12 -6
  169. package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +1 -0
  170. package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +5 -0
  171. package/dist/{features/onboarding-flow/screens/06-AuthLoadingScreen.js → src/features/onboarding-flow/screens/08-AuthLoadingScreen.js} +6 -2
  172. package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +1 -0
  173. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.d.ts +5 -0
  174. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js +43 -0
  175. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js.map +1 -0
  176. package/dist/src/features/onboarding-flow/screens/index.d.ts +10 -0
  177. package/dist/src/features/onboarding-flow/screens/index.js +11 -0
  178. package/dist/src/features/onboarding-flow/screens/index.js.map +1 -0
  179. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.d.ts +1 -0
  180. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js +2 -0
  181. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js.map +1 -0
  182. package/dist/{features → src/features}/onboarding-flow/types.d.ts +38 -11
  183. package/dist/{features → src/features}/onboarding-flow/types.js +5 -0
  184. package/dist/src/features/onboarding-flow/types.js.map +1 -0
  185. package/dist/src/features/onboarding-flow/utils/bridgeUtils.d.ts +6 -0
  186. package/dist/src/features/onboarding-flow/utils/bridgeUtils.js +34 -0
  187. package/dist/src/features/onboarding-flow/utils/bridgeUtils.js.map +1 -0
  188. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.d.ts +29 -0
  189. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js +82 -0
  190. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js.map +1 -0
  191. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.d.ts +5 -0
  192. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js +10 -0
  193. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js.map +1 -0
  194. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.d.ts +14 -0
  195. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js +94 -0
  196. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js.map +1 -0
  197. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.d.ts +25 -0
  198. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js +212 -0
  199. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js.map +1 -0
  200. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.d.ts +37 -0
  201. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js +199 -0
  202. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js.map +1 -0
  203. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.d.ts +27 -0
  204. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js +149 -0
  205. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js.map +1 -0
  206. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.d.ts +5 -0
  207. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js +121 -0
  208. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js.map +1 -0
  209. package/dist/{features/onboarding-flow/utils/transaction.d.ts → src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.d.ts} +3 -3
  210. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js +8 -0
  211. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js.map +1 -0
  212. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.d.ts +12 -0
  213. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js +150 -0
  214. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js.map +1 -0
  215. package/dist/src/features/onboarding-flow/utils/deposit/storage.d.ts +52 -0
  216. package/dist/src/features/onboarding-flow/utils/deposit/storage.js +243 -0
  217. package/dist/src/features/onboarding-flow/utils/deposit/storage.js.map +1 -0
  218. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.d.ts +36 -0
  219. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js +304 -0
  220. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js.map +1 -0
  221. package/dist/src/features/onboarding-flow/utils/depositPolling.d.ts +1 -0
  222. package/dist/src/features/onboarding-flow/utils/depositPolling.js +3 -0
  223. package/dist/src/features/onboarding-flow/utils/depositPolling.js.map +1 -0
  224. package/dist/src/features/onboarding-flow/utils/explorerUrl.d.ts +14 -0
  225. package/dist/src/features/onboarding-flow/utils/explorerUrl.js +44 -0
  226. package/dist/src/features/onboarding-flow/utils/explorerUrl.js.map +1 -0
  227. package/dist/src/features/onboarding-flow/utils/nordUtils.d.ts +8 -0
  228. package/dist/{features/onboarding-flow/utils/nordUser.js → src/features/onboarding-flow/utils/nordUtils.js} +14 -1
  229. package/dist/src/features/onboarding-flow/utils/nordUtils.js.map +1 -0
  230. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.d.ts +13 -0
  231. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js +15 -0
  232. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js.map +1 -0
  233. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.d.ts +15 -0
  234. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js +94 -0
  235. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js.map +1 -0
  236. package/dist/{features → src/features}/onboarding-flow/utils/utils.d.ts +9 -2
  237. package/dist/{features → src/features}/onboarding-flow/utils/utils.js +9 -4
  238. package/dist/src/features/onboarding-flow/utils/utils.js.map +1 -0
  239. package/dist/src/features/onboarding-flow/utils/withImageFallback.d.ts +6 -0
  240. package/dist/{features → src/features}/onboarding-flow/utils/withImageFallback.js +2 -3
  241. package/dist/src/features/onboarding-flow/utils/withImageFallback.js.map +1 -0
  242. package/dist/src/hooks/index.js.map +1 -0
  243. package/dist/src/hooks/useN1Wallet.d.ts +12 -0
  244. package/dist/{hooks → src/hooks}/useN1Wallet.js +10 -0
  245. package/dist/src/hooks/useN1Wallet.js.map +1 -0
  246. package/dist/src/hooks/useNordUserInitialization.d.ts +12 -0
  247. package/dist/{hooks → src/hooks}/useNordUserInitialization.js +74 -33
  248. package/dist/src/hooks/useNordUserInitialization.js.map +1 -0
  249. package/dist/src/index.d.ts +9 -0
  250. package/dist/src/index.js +16 -0
  251. package/dist/src/index.js.map +1 -0
  252. package/dist/src/providers/LazyWalletProvider.d.ts +4 -0
  253. package/dist/src/providers/LazyWalletProvider.js +404 -0
  254. package/dist/src/providers/LazyWalletProvider.js.map +1 -0
  255. package/dist/src/providers/N1WalletProvider/ContextBridge.d.ts +28 -0
  256. package/dist/src/providers/N1WalletProvider/ContextBridge.js +273 -0
  257. package/dist/src/providers/N1WalletProvider/ContextBridge.js.map +1 -0
  258. package/dist/src/providers/N1WalletProvider/ModalProvider.d.ts +113 -0
  259. package/dist/src/providers/N1WalletProvider/ModalProvider.js +319 -0
  260. package/dist/src/providers/N1WalletProvider/ModalProvider.js.map +1 -0
  261. package/dist/src/providers/N1WalletProvider/NetworkProvider.d.ts +88 -0
  262. package/dist/src/providers/N1WalletProvider/NetworkProvider.js +252 -0
  263. package/dist/src/providers/N1WalletProvider/NetworkProvider.js.map +1 -0
  264. package/dist/src/providers/N1WalletProvider/SessionProvider.d.ts +71 -0
  265. package/dist/src/providers/N1WalletProvider/SessionProvider.js +187 -0
  266. package/dist/src/providers/N1WalletProvider/SessionProvider.js.map +1 -0
  267. package/dist/src/providers/N1WalletProvider/SigningProvider.d.ts +58 -0
  268. package/dist/src/providers/N1WalletProvider/SigningProvider.js +134 -0
  269. package/dist/src/providers/N1WalletProvider/SigningProvider.js.map +1 -0
  270. package/dist/src/providers/N1WalletProvider/ThemingProvider.d.ts +50 -0
  271. package/dist/src/providers/N1WalletProvider/ThemingProvider.js +102 -0
  272. package/dist/src/providers/N1WalletProvider/ThemingProvider.js.map +1 -0
  273. package/dist/src/providers/N1WalletProvider/index.d.ts +21 -0
  274. package/dist/src/providers/N1WalletProvider/index.js +27 -0
  275. package/dist/src/providers/N1WalletProvider/index.js.map +1 -0
  276. package/dist/src/providers/N1WalletProvider.d.ts +17 -0
  277. package/dist/src/providers/N1WalletProvider.js +102 -0
  278. package/dist/src/providers/N1WalletProvider.js.map +1 -0
  279. package/dist/{providers → src/providers}/ShadowRootWrapper.d.ts +4 -0
  280. package/dist/{providers → src/providers}/ShadowRootWrapper.js +4 -5
  281. package/dist/src/providers/ShadowRootWrapper.js.map +1 -0
  282. package/dist/{providers → src/providers}/WalletErrorBoundary.d.ts +7 -2
  283. package/dist/{providers → src/providers}/WalletErrorBoundary.js +5 -1
  284. package/dist/src/providers/WalletErrorBoundary.js.map +1 -0
  285. package/dist/src/services/bootstrap/DepositRecoveryService.d.ts +64 -0
  286. package/dist/src/services/bootstrap/DepositRecoveryService.js +245 -0
  287. package/dist/src/services/bootstrap/DepositRecoveryService.js.map +1 -0
  288. package/dist/src/services/bootstrap/DynamicSdkService.d.ts +62 -0
  289. package/dist/src/services/bootstrap/DynamicSdkService.js +335 -0
  290. package/dist/src/services/bootstrap/DynamicSdkService.js.map +1 -0
  291. package/dist/src/services/bootstrap/SessionBootstrapService.d.ts +78 -0
  292. package/dist/src/services/bootstrap/SessionBootstrapService.js +280 -0
  293. package/dist/src/services/bootstrap/SessionBootstrapService.js.map +1 -0
  294. package/dist/src/services/bootstrap/TurnkeyBootstrapService.d.ts +92 -0
  295. package/dist/src/services/bootstrap/TurnkeyBootstrapService.js +253 -0
  296. package/dist/src/services/bootstrap/TurnkeyBootstrapService.js.map +1 -0
  297. package/dist/src/services/bootstrap/index.d.ts +13 -0
  298. package/dist/src/services/bootstrap/index.js +16 -0
  299. package/dist/src/services/bootstrap/index.js.map +1 -0
  300. package/dist/src/services/bootstrap/types.d.ts +92 -0
  301. package/dist/src/services/bootstrap/types.js +7 -0
  302. package/dist/src/services/bootstrap/types.js.map +1 -0
  303. package/dist/src/services/storage/StorageService.d.ts +98 -0
  304. package/dist/src/services/storage/StorageService.js +360 -0
  305. package/dist/src/services/storage/StorageService.js.map +1 -0
  306. package/dist/src/services/storage/index.d.ts +9 -0
  307. package/dist/src/services/storage/index.js +10 -0
  308. package/dist/src/services/storage/index.js.map +1 -0
  309. package/dist/src/services/storage/keys.d.ts +28 -0
  310. package/dist/src/services/storage/keys.js +45 -0
  311. package/dist/src/services/storage/keys.js.map +1 -0
  312. package/dist/src/services/storage/types.d.ts +73 -0
  313. package/dist/src/services/storage/types.js +23 -0
  314. package/dist/src/services/storage/types.js.map +1 -0
  315. package/dist/src/store/index.d.ts +8 -0
  316. package/dist/src/store/index.js +24 -0
  317. package/dist/src/store/index.js.map +1 -0
  318. package/dist/src/store/selectors.d.ts +105 -0
  319. package/dist/src/store/selectors.js +183 -0
  320. package/dist/src/store/selectors.js.map +1 -0
  321. package/dist/src/store/slices/bootstrapSlice.d.ts +64 -0
  322. package/dist/src/store/slices/bootstrapSlice.js +78 -0
  323. package/dist/src/store/slices/bootstrapSlice.js.map +1 -0
  324. package/dist/src/store/slices/configSlice.d.ts +7 -0
  325. package/dist/src/store/slices/configSlice.js +14 -0
  326. package/dist/src/store/slices/configSlice.js.map +1 -0
  327. package/dist/src/store/slices/index.d.ts +10 -0
  328. package/dist/src/store/slices/index.js +10 -0
  329. package/dist/src/store/slices/index.js.map +1 -0
  330. package/dist/src/store/slices/sessionSlice.d.ts +7 -0
  331. package/dist/src/store/slices/sessionSlice.js +17 -0
  332. package/dist/src/store/slices/sessionSlice.js.map +1 -0
  333. package/dist/src/store/slices/signingSlice.d.ts +7 -0
  334. package/dist/src/store/slices/signingSlice.js +14 -0
  335. package/dist/src/store/slices/signingSlice.js.map +1 -0
  336. package/dist/src/store/slices/uiSlice.d.ts +9 -0
  337. package/dist/src/store/slices/uiSlice.js +25 -0
  338. package/dist/src/store/slices/uiSlice.js.map +1 -0
  339. package/dist/src/store/slices/walletSlice.d.ts +7 -0
  340. package/dist/src/store/slices/walletSlice.js +21 -0
  341. package/dist/src/store/slices/walletSlice.js.map +1 -0
  342. package/dist/src/store/store.d.ts +50 -0
  343. package/dist/src/store/store.js +259 -0
  344. package/dist/src/store/store.js.map +1 -0
  345. package/dist/src/store/subscriptions/depositPersistence.d.ts +32 -0
  346. package/dist/src/store/subscriptions/depositPersistence.js +106 -0
  347. package/dist/src/store/subscriptions/depositPersistence.js.map +1 -0
  348. package/dist/src/store/subscriptions/index.d.ts +34 -0
  349. package/dist/src/store/subscriptions/index.js +73 -0
  350. package/dist/src/store/subscriptions/index.js.map +1 -0
  351. package/dist/src/store/subscriptions/turnkeyPersistence.d.ts +42 -0
  352. package/dist/src/store/subscriptions/turnkeyPersistence.js +127 -0
  353. package/dist/src/store/subscriptions/turnkeyPersistence.js.map +1 -0
  354. package/dist/src/store/types.d.ts +166 -0
  355. package/dist/src/store/types.js +7 -0
  356. package/dist/src/store/types.js.map +1 -0
  357. package/dist/src/styles/cdn-fonts.d.ts +12 -0
  358. package/dist/{styles → src/styles}/cdn-fonts.js +20 -2
  359. package/dist/src/styles/cdn-fonts.js.map +1 -0
  360. package/dist/src/styles/embedded-main-css.d.ts +2 -0
  361. package/dist/src/styles/embedded-main-css.js +3 -0
  362. package/dist/src/styles/embedded-main-css.js.map +1 -0
  363. package/dist/src/turnkey/TurnkeyProvider.d.ts +21 -0
  364. package/dist/src/turnkey/TurnkeyProvider.js +695 -0
  365. package/dist/src/turnkey/TurnkeyProvider.js.map +1 -0
  366. package/dist/src/turnkey/createTurnkeyWallet.d.ts +39 -0
  367. package/dist/src/turnkey/createTurnkeyWallet.js +319 -0
  368. package/dist/src/turnkey/createTurnkeyWallet.js.map +1 -0
  369. package/dist/src/turnkey/createWalletProvider.d.ts +8 -0
  370. package/dist/src/turnkey/createWalletProvider.js +286 -0
  371. package/dist/src/turnkey/createWalletProvider.js.map +1 -0
  372. package/dist/src/turnkey/index.d.ts +3 -0
  373. package/dist/src/turnkey/index.js +3 -0
  374. package/dist/src/turnkey/index.js.map +1 -0
  375. package/dist/src/turnkey/turnkeySessionMachine.d.ts +39 -0
  376. package/dist/src/turnkey/turnkeySessionMachine.js +77 -0
  377. package/dist/src/turnkey/turnkeySessionMachine.js.map +1 -0
  378. package/dist/src/turnkey/turnkeySessionStorage.d.ts +48 -0
  379. package/dist/src/turnkey/turnkeySessionStorage.js +183 -0
  380. package/dist/src/turnkey/turnkeySessionStorage.js.map +1 -0
  381. package/dist/src/turnkey/types.d.ts +61 -0
  382. package/dist/src/turnkey/types.js +12 -0
  383. package/dist/src/turnkey/types.js.map +1 -0
  384. package/dist/{types → src/types}/wallet.d.ts +39 -13
  385. package/dist/src/types/wallet.js.map +1 -0
  386. package/dist/src/utils/address.d.ts +130 -0
  387. package/dist/src/utils/address.js +274 -0
  388. package/dist/src/utils/address.js.map +1 -0
  389. package/dist/src/utils/chain.d.ts +89 -0
  390. package/dist/src/utils/chain.js +282 -0
  391. package/dist/src/utils/chain.js.map +1 -0
  392. package/dist/{utils → src/utils}/ed25519.d.ts +0 -2
  393. package/dist/{utils → src/utils}/ed25519.js +5 -20
  394. package/dist/src/utils/ed25519.js.map +1 -0
  395. package/dist/src/utils/errors.d.ts +68 -0
  396. package/dist/src/utils/errors.js +190 -0
  397. package/dist/src/utils/errors.js.map +1 -0
  398. package/dist/src/utils/events.d.ts +124 -0
  399. package/dist/src/utils/events.js +155 -0
  400. package/dist/src/utils/events.js.map +1 -0
  401. package/dist/src/utils/formatAmount.d.ts +4 -0
  402. package/dist/src/utils/formatAmount.js +9 -0
  403. package/dist/src/utils/formatAmount.js.map +1 -0
  404. package/dist/src/utils/logger.d.ts +45 -0
  405. package/dist/{utils → src/utils}/logger.js +68 -2
  406. package/dist/src/utils/logger.js.map +1 -0
  407. package/dist/src/utils/shortenString.d.ts +5 -0
  408. package/dist/src/utils/shortenString.js +16 -0
  409. package/dist/src/utils/shortenString.js.map +1 -0
  410. package/package.json +45 -29
  411. package/dist/animations/N1Loader.js.map +0 -1
  412. package/dist/animations/Processing.js.map +0 -1
  413. package/dist/components/LoadingFallback.js.map +0 -1
  414. package/dist/components/Logo.js.map +0 -1
  415. package/dist/components/N1ConnectButton.d.ts +0 -5
  416. package/dist/components/N1ConnectButton.js +0 -49
  417. package/dist/components/N1ConnectButton.js.map +0 -1
  418. package/dist/components/logos/ArbitrumLogo.js.map +0 -1
  419. package/dist/components/logos/BaseLogo.js +0 -6
  420. package/dist/components/logos/BaseLogo.js.map +0 -1
  421. package/dist/components/logos/BeraLogo.js.map +0 -1
  422. package/dist/components/logos/BitcoinLogo.js.map +0 -1
  423. package/dist/components/logos/EthereumLogo.js.map +0 -1
  424. package/dist/components/logos/HyperliquidLogo.js.map +0 -1
  425. package/dist/components/logos/OptimismLogo.js.map +0 -1
  426. package/dist/components/logos/SolanaLogo.js.map +0 -1
  427. package/dist/components/logos/ZeroOneLogo.js.map +0 -1
  428. package/dist/components/logos/index.js.map +0 -1
  429. package/dist/config/chains.d.ts +0 -0
  430. package/dist/config/chains.js +0 -2
  431. package/dist/config/chains.js.map +0 -1
  432. package/dist/config/solana.js.map +0 -1
  433. package/dist/config.d.ts +0 -2
  434. package/dist/config.js +0 -3
  435. package/dist/config.js.map +0 -1
  436. package/dist/context/n1-wallet-context.js.map +0 -1
  437. package/dist/errors/types.d.ts +0 -25
  438. package/dist/errors/types.js +0 -77
  439. package/dist/errors/types.js.map +0 -1
  440. package/dist/features/onboarding-flow/N1WalletModal.js.map +0 -1
  441. package/dist/features/onboarding-flow/OnboardingFlow.js.map +0 -1
  442. package/dist/features/onboarding-flow/components/ChainButton.js +0 -21
  443. package/dist/features/onboarding-flow/components/ChainButton.js.map +0 -1
  444. package/dist/features/onboarding-flow/components/Header.js +0 -45
  445. package/dist/features/onboarding-flow/components/Header.js.map +0 -1
  446. package/dist/features/onboarding-flow/components/ImageWithFallback.js +0 -63
  447. package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +0 -1
  448. package/dist/features/onboarding-flow/components/TransactionTable.js.map +0 -1
  449. package/dist/features/onboarding-flow/components/WaitingMessage.js.map +0 -1
  450. package/dist/features/onboarding-flow/components/index.js.map +0 -1
  451. package/dist/features/onboarding-flow/index.js.map +0 -1
  452. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +0 -525
  453. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +0 -1
  454. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +0 -185
  455. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +0 -1
  456. package/dist/features/onboarding-flow/providers/StateProvider.js.map +0 -1
  457. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +0 -394
  458. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +0 -1
  459. package/dist/features/onboarding-flow/providers/debug.js.map +0 -1
  460. package/dist/features/onboarding-flow/providers/index.js.map +0 -1
  461. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +0 -1
  462. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +0 -1
  463. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +0 -1
  464. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +0 -1
  465. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.d.ts +0 -6
  466. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +0 -360
  467. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +0 -1
  468. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +0 -31
  469. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +0 -1
  470. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.d.ts +0 -1
  471. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +0 -1
  472. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.d.ts +0 -1
  473. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +0 -1
  474. package/dist/features/onboarding-flow/screens/07-ErrorScreen.d.ts +0 -1
  475. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +0 -14
  476. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +0 -1
  477. package/dist/features/onboarding-flow/screens/index.d.ts +0 -7
  478. package/dist/features/onboarding-flow/screens/index.js +0 -8
  479. package/dist/features/onboarding-flow/screens/index.js.map +0 -1
  480. package/dist/features/onboarding-flow/types.js.map +0 -1
  481. package/dist/features/onboarding-flow/utils/depositStorage.d.ts +0 -4
  482. package/dist/features/onboarding-flow/utils/depositStorage.js +0 -48
  483. package/dist/features/onboarding-flow/utils/depositStorage.js.map +0 -1
  484. package/dist/features/onboarding-flow/utils/imageUtils.d.ts +0 -21
  485. package/dist/features/onboarding-flow/utils/imageUtils.js +0 -110
  486. package/dist/features/onboarding-flow/utils/imageUtils.js.map +0 -1
  487. package/dist/features/onboarding-flow/utils/nordUser.d.ts +0 -1
  488. package/dist/features/onboarding-flow/utils/nordUser.js.map +0 -1
  489. package/dist/features/onboarding-flow/utils/nordUtils.d.ts +0 -40
  490. package/dist/features/onboarding-flow/utils/nordUtils.js +0 -64
  491. package/dist/features/onboarding-flow/utils/nordUtils.js.map +0 -1
  492. package/dist/features/onboarding-flow/utils/session.d.ts +0 -17
  493. package/dist/features/onboarding-flow/utils/session.js +0 -69
  494. package/dist/features/onboarding-flow/utils/session.js.map +0 -1
  495. package/dist/features/onboarding-flow/utils/transaction.js +0 -8
  496. package/dist/features/onboarding-flow/utils/transaction.js.map +0 -1
  497. package/dist/features/onboarding-flow/utils/utils.js.map +0 -1
  498. package/dist/features/onboarding-flow/utils/withImageFallback.d.ts +0 -7
  499. package/dist/features/onboarding-flow/utils/withImageFallback.js.map +0 -1
  500. package/dist/hooks/index.js.map +0 -1
  501. package/dist/hooks/useN1Wallet.d.ts +0 -2
  502. package/dist/hooks/useN1Wallet.js.map +0 -1
  503. package/dist/hooks/useNordUserInitialization.d.ts +0 -1
  504. package/dist/hooks/useNordUserInitialization.js.map +0 -1
  505. package/dist/index.d.ts +0 -7
  506. package/dist/index.js +0 -8
  507. package/dist/index.js.map +0 -1
  508. package/dist/polyfills/windowEthereumGuard.d.ts +0 -6
  509. package/dist/polyfills/windowEthereumGuard.js +0 -28
  510. package/dist/polyfills/windowEthereumGuard.js.map +0 -1
  511. package/dist/providers/LazyWalletProvider.d.ts +0 -1
  512. package/dist/providers/LazyWalletProvider.js +0 -230
  513. package/dist/providers/LazyWalletProvider.js.map +0 -1
  514. package/dist/providers/N1WalletProvider.d.ts +0 -3
  515. package/dist/providers/N1WalletProvider.js +0 -271
  516. package/dist/providers/N1WalletProvider.js.map +0 -1
  517. package/dist/providers/ShadowRootWrapper.js.map +0 -1
  518. package/dist/providers/WalletErrorBoundary.js.map +0 -1
  519. package/dist/styles/cdn-fonts.d.ts +0 -1
  520. package/dist/styles/cdn-fonts.js.map +0 -1
  521. package/dist/styles/embedded-main-css.d.ts +0 -2
  522. package/dist/styles/embedded-main-css.js +0 -3
  523. package/dist/styles/embedded-main-css.js.map +0 -1
  524. package/dist/types/wallet.js.map +0 -1
  525. package/dist/utils/ed25519.js.map +0 -1
  526. package/dist/utils/getPseudoName.d.ts +0 -1
  527. package/dist/utils/getPseudoName.js +0 -5826
  528. package/dist/utils/getPseudoName.js.map +0 -1
  529. package/dist/utils/logger.d.ts +0 -21
  530. package/dist/utils/logger.js.map +0 -1
  531. package/dist/utils/shortenString.d.ts +0 -2
  532. package/dist/utils/shortenString.js +0 -9
  533. package/dist/utils/shortenString.js.map +0 -1
  534. package/dist/utils/words.d.ts +0 -9
  535. package/dist/utils/words.js +0 -93572
  536. package/dist/utils/words.js.map +0 -1
  537. /package/dist/{animations → src/animations}/N1Loader.d.ts +0 -0
  538. /package/dist/{animations → src/animations}/N1Loader.js +0 -0
  539. /package/dist/{animations → src/animations}/Processing.d.ts +0 -0
  540. /package/dist/{animations → src/animations}/Processing.js +0 -0
  541. /package/dist/{components → src/components}/logos/ArbitrumLogo.d.ts +0 -0
  542. /package/dist/{components → src/components}/logos/ArbitrumLogo.js +0 -0
  543. /package/dist/{components → src/components}/logos/BaseLogo.d.ts +0 -0
  544. /package/dist/{components → src/components}/logos/BeraLogo.d.ts +0 -0
  545. /package/dist/{components → src/components}/logos/BeraLogo.js +0 -0
  546. /package/dist/{components → src/components}/logos/BitcoinLogo.d.ts +0 -0
  547. /package/dist/{components → src/components}/logos/BitcoinLogo.js +0 -0
  548. /package/dist/{components → src/components}/logos/EthereumLogo.d.ts +0 -0
  549. /package/dist/{components → src/components}/logos/EthereumLogo.js +0 -0
  550. /package/dist/{components → src/components}/logos/HyperliquidLogo.d.ts +0 -0
  551. /package/dist/{components → src/components}/logos/OptimismLogo.d.ts +0 -0
  552. /package/dist/{components → src/components}/logos/OptimismLogo.js +0 -0
  553. /package/dist/{components → src/components}/logos/SolanaLogo.d.ts +0 -0
  554. /package/dist/{components → src/components}/logos/SolanaLogo.js +0 -0
  555. /package/dist/{components → src/components}/logos/ZeroOneLogo.d.ts +0 -0
  556. /package/dist/{components → src/components}/logos/ZeroOneLogo.js +0 -0
  557. /package/dist/{components → src/components}/logos/index.d.ts +0 -0
  558. /package/dist/{components → src/components}/logos/index.js +0 -0
  559. /package/dist/{config → src/config}/solana.d.ts +0 -0
  560. /package/dist/{config → src/config}/solana.js +0 -0
  561. /package/dist/{context → src/context}/n1-wallet-context.d.ts +0 -0
  562. /package/dist/{context → src/context}/n1-wallet-context.js +0 -0
  563. /package/dist/{features → src/features}/onboarding-flow/N1WalletModal.d.ts +0 -0
  564. /package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.js +0 -0
  565. /package/dist/{features → src/features}/onboarding-flow/components/index.d.ts +0 -0
  566. /package/dist/{features → src/features}/onboarding-flow/components/index.js +0 -0
  567. /package/dist/{features → src/features}/onboarding-flow/index.d.ts +0 -0
  568. /package/dist/{features → src/features}/onboarding-flow/index.js +0 -0
  569. /package/dist/{features → src/features}/onboarding-flow/providers/debug.d.ts +0 -0
  570. /package/dist/{features → src/features}/onboarding-flow/providers/index.d.ts +0 -0
  571. /package/dist/{features → src/features}/onboarding-flow/providers/index.js +0 -0
  572. /package/dist/{hooks → src/hooks}/index.d.ts +0 -0
  573. /package/dist/{hooks → src/hooks}/index.js +0 -0
  574. /package/dist/{types → src/types}/wallet.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DepositFlowProvider.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/providers/DepositFlowProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { useN1WalletContext } from '../../../hooks';\nimport { logger } from '../../../utils/logger';\nimport { EVENTS, createDepositEvent } from '../../../utils/events';\nimport { createDepositError } from '../../../utils/errors';\nimport { useBridgeDeposit } from '../hooks/useBridgeDeposit';\nimport { useDepositAuth } from '../hooks/useDepositAuth';\nimport { useDepositHydration } from '../hooks/useDepositHydration';\nimport { usePendingDepositState } from '../hooks/usePendingDepositState';\nimport { useSolanaDeposit } from '../hooks/useSolanaDeposit';\nimport { DepositProgressPhase, OnboardingStep } from '../types';\nimport { deriveChainLabel, formatBridgeError } from '../utils/deposit/bridgeUtils';\nimport { toDepositError } from '../errors/depositError';\nimport {\n getSolanaExplorerUrl,\n SolanaDepositTransactionResult,\n} from '../utils/deposit/solanaDepositTransaction';\nimport {\n advancePendingDeposit, clearLastDepositRecord, clearPendingDeposit,\n createPendingDepositDraft, readPendingDeposit, saveLastDepositRecord\n} from '../utils/deposit/storage';\nimport { isLikelyLedgerSolanaWallet } from '../utils/deposit/walletUtils';\nimport { explorerBaseForChain, pickExplorerUrl } from '../utils/explorerUrl';\nimport { useOnboardingState } from './OnboardingStateProvider';\nimport { useWalletConnection } from './WalletConnectionProvider';\nimport { useNetwork } from '../../../providers/N1WalletProvider/NetworkProvider';\nimport { useSession } from '../../../providers/N1WalletProvider/SessionProvider';\n\n// Define the shape of the deposit state value\nexport interface DepositFlowContextValue {\n amount: string;\n isDepositing: boolean;\n depositProgressPhase: DepositProgressPhase;\n pendingBridgeExplorerUrl: string | null;\n pendingBridgeTx: string | null;\n pendingMintTx: string | null;\n bridgeRetryable: boolean;\n bridgeApprovalPending: boolean;\n bridgeApprovalError: string | null;\n bridgeError: string | null;\n transactionId: string | null;\n transactionResult: SolanaDepositTransactionResult | null;\n authStatus: 'loading' | 'success' | 'error';\n authErrorMessage: string | null;\n authStatusMessage: string | null;\n updateAmount: (newAmount: string) => void;\n startDeposit: () => Promise<void>;\n completeDeposit: () => void;\n performAuth: () => Promise<void>;\n}\n\n// Create the context with a default value\nconst DepositFlowContext = createContext<DepositFlowContextValue | undefined>(undefined);\n\n// Props for the provider component\ninterface DepositFlowProviderProps {\n children: React.ReactNode;\n}\n\n/**\n * Provider component for the deposit flow state\n */\nexport const DepositFlowProvider: React.FC<DepositFlowProviderProps> = ({\n children,\n}) => {\n // Get flow state context\n const {\n state,\n context,\n actions: flowActions,\n updateContext,\n isDebugOverride,\n } = useOnboardingState();\n\n // Get wallet context\n const { nord } = useN1WalletContext();\n const { solanaAddress: address, evmAddress, solanaWallet, evmWallet, solanaAdapter } = useNetwork();\n const { nordUser, turnkeyEnabled } = useSession();\n const { turnkeyAddress, turnkeyStatus } = useWalletConnection();\n\n // chain\n const [selectedChain, setSelectedChain] = useState<string | null>(\n context.selectedChain\n );\n\n // transaction & deposit\n const [amount, setAmount] = useState(context.amount);\n const [isDepositing, setIsDepositing] = useState(false);\n\n // Initialize phase - only check deposit ID, determine bridge flow from context\n const getInitialPhase = (): DepositProgressPhase => {\n const pending = readPendingDeposit();\n if (!pending?.depositId) return 'solana';\n\n // Determine if it's a bridge flow from context (not from localStorage)\n const entryNetwork = context.entryNetwork ?? 'solana';\n const selectedChainId = context.selectedChainId ?? '';\n const isBridgeFlow = entryNetwork === 'evm' && selectedChainId.toLowerCase() !== 'solana';\n\n if (isBridgeFlow) {\n // Bridge flow with deposit ID -> claim phase (we'll determine actual state by checking attestation)\n return 'claim';\n }\n\n // Direct Solana flow\n return 'solana';\n };\n\n const [depositProgressPhase, setDepositProgressPhase] =\n useState<DepositProgressPhase>(getInitialPhase());\n const [transactionId, setTransactionId] = useState<string | null>(context.transactionId);\n const [transactionResult, setTransactionResult] = useState<SolanaDepositTransactionResult | null>(null);\n\n const [pendingBridgeExplorerUrl, setPendingBridgeExplorerUrl] = useState<string | null>(null);\n const [pendingBridgeTx, setPendingBridgeTx] = useState<string | null>(null);\n const [pendingMintTx, setPendingMintTx] = useState<string | null>(null);\n\n const bridgeCompletionRef = useRef(false);\n const startDepositInFlightRef = useRef(false);\n\n // Use refs to track previous values\n const prevContextRef = useRef(context);\n\n /**\n * Handle an error by transitioning to error state\n */\n const handleError = useCallback(\n (error: Error) => {\n const normalized = toDepositError(error);\n logger.logError(createDepositError('BRIDGE_FAILED', normalized.message, {\n recoverable: normalized.retryable,\n cause: error,\n context: {\n code: normalized.code,\n userMessage: normalized.userMessage,\n details: normalized.details,\n },\n }));\n flowActions.setErrorState(normalized);\n },\n [flowActions]\n );\n\n const {\n authStatus,\n authErrorMessage,\n authStatusMessage,\n performAuth,\n } = useDepositAuth();\n\n const {\n setPendingDepositId,\n ensurePendingDraft,\n } = usePendingDepositState();\n\n const finalizeBridgeSuccess = useCallback(\n (status: { tx?: string | null; mintTx?: string | null; bridgeTx?: string | null; solanaTx?: string | null; depositId?: string | null }) => {\n logger.info('[DepositFlow] finalizeBridgeSuccess called', status);\n if (bridgeCompletionRef.current) {\n logger.warn('[DepositFlow] finalizeBridgeSuccess skipped - already completed');\n return;\n }\n\n const pending = readPendingDeposit();\n const draft = pending;\n const chainInfo = deriveChainLabel(draft?.chain ?? context.selectedChainId ?? selectedChain);\n const txId =\n status.tx ??\n status.solanaTx ??\n status.mintTx ??\n status.bridgeTx ??\n draft?.tx ??\n draft?.mintTx ??\n null;\n\n logger.debug('[DepositFlow] Finalizing bridge success', { txId, draft, chainInfo });\n\n const depositAmount =\n (draft?.amount && draft.amount !== '' ? draft.amount : null) ??\n amount;\n const record = {\n transactionId: txId ?? 'pending-bridge',\n amount: depositAmount,\n tokenSymbol: 'USDC',\n chainId: chainInfo.id,\n chainName: chainInfo.name,\n chainNetwork: context.selectedChainNetwork ?? null,\n timestamp: Date.now(),\n };\n const result: SolanaDepositTransactionResult = {\n success: true,\n transactionId: record.transactionId,\n amount: depositAmount,\n tokenSymbol: 'USDC',\n fromAddress: address || 'Your Wallet',\n toAddress: 'Exchange Account',\n networkName: chainInfo.name,\n status: 'Completed',\n explorerUrl:\n pickExplorerUrl(\n draft?.explorerUrl ?? null,\n explorerBaseForChain(chainInfo.id),\n record.transactionId\n ) ?? getSolanaExplorerUrl(record.transactionId) ?? undefined,\n };\n\n logger.info('[DepositFlow] marking bridge completion', { record });\n\n bridgeCompletionRef.current = true;\n setTransactionId(txId ?? null);\n setTransactionResult(result);\n setDepositProgressPhase('nord');\n setIsDepositing(false);\n clearPendingDeposit();\n saveLastDepositRecord(address, record);\n\n logger.info('[DepositFlow] dispatching markDepositSuccess');\n flowActions.markDepositSuccess({\n transactionId: record.transactionId,\n record,\n });\n },\n [address, amount, context.selectedChainId, context.selectedChainNetwork, evmAddress, flowActions, selectedChain]\n );\n\n const { runSolanaDeposit } = useSolanaDeposit({\n setDepositProgressPhase,\n ensurePendingDraft,\n });\n\n const {\n startCctpBridge,\n resumeClaimProcess,\n bridgeRetryable,\n setBridgeRetryable,\n bridgeError,\n setBridgeError,\n bridgeApprovalPending,\n setBridgeApprovalPending,\n bridgeApprovalError,\n setBridgeApprovalError,\n } = useBridgeDeposit({\n setDepositProgressPhase,\n setPendingBridgeTx,\n setPendingMintTx,\n setPendingDepositId,\n setPendingBridgeExplorerUrl,\n ensurePendingDraft,\n finalizeBridgeSuccess,\n setIsDepositing,\n runSolanaDeposit,\n });\n\n useDepositHydration({\n setPendingDepositId,\n setAmount,\n setTransactionId,\n setIsDepositing,\n setPendingBridgeExplorerUrl,\n setPendingBridgeTx,\n setPendingMintTx,\n setDepositProgressPhase,\n setBridgeError,\n setBridgeRetryable,\n });\n\n /**\n * Update amount for deposit\n */\n const updateAmount = useCallback(\n (newAmount: string) => {\n setAmount(newAmount);\n updateContext({ amount: newAmount });\n },\n [updateContext]\n );\n\n /**\n * Helper to handle resuming a pending deposit\n */\n const handleResumePendingDeposit = useCallback(async (\n pending: any,\n walletMatches: boolean\n ) => {\n // If user is connected with a different wallet, do not start a new deposit.\n // Ask them to connect the correct wallet (or clear the pending deposit) first.\n if (!walletMatches) {\n logger.logError(createDepositError('WALLET_MISMATCH', 'Pending deposit exists but connected wallet does not match', {\n recoverable: false,\n context: {\n pendingWallet: pending.wallet,\n depositId: pending.depositId,\n },\n }));\n setBridgeError('You have a pending deposit. Please connect the same wallet that started it to continue.');\n setBridgeRetryable(false);\n setIsDepositing(false);\n setDepositProgressPhase('claim');\n setPendingDepositId(pending.depositId);\n return;\n }\n\n if (solanaWallet) {\n try {\n if (await isLikelyLedgerSolanaWallet(solanaWallet, solanaAdapter)) {\n logger.logError(createDepositError('LEDGER_UNSUPPORTED', 'Ledger-like wallet detected during resume', {\n recoverable: false,\n }));\n setBridgeError('Ledger wallets are not supported. Please connect a standard wallet to continue.');\n setBridgeRetryable(false);\n setIsDepositing(false);\n return;\n }\n } catch (e: any) {\n if (e?.code === 'N1_SIGNATURE_CANCELLED') {\n setIsDepositing(false);\n flowActions.markDepositFailed('Signature cancelled');\n return;\n }\n throw e;\n }\n }\n\n // Determine if this is a Solana native flow or a Bridge flow\n // We check context.entryNetwork first, but for pending deposits we should trust the stored chain/stage\n const pendingChain = (pending.chain ?? '').toLowerCase();\n const pendingStage = (pending.stage ?? '').toLowerCase();\n const isSolanaNative =\n pendingChain === 'solana' ||\n pendingStage.includes('solana') ||\n ((!pendingChain || pendingChain === 'solana') && !pendingStage.includes('bridge'));\n\n if (isSolanaNative) {\n logger.info('[Deposit] ===== SOLANA RESUME DETECTED =====', {\n depositId: pending.depositId,\n chain: pending.chain,\n stage: pending.stage\n });\n\n // If the deposit is already confirmed, transition to success immediately\n if (pending.stage === 'solana_confirmed') {\n logger.info('[Deposit] Solana deposit already confirmed - transitioning to success', {\n depositId: pending.depositId,\n tx: pending.tx,\n mintTx: pending.mintTx,\n });\n const txId = pending.mintTx || pending.tx || pending.depositId;\n clearPendingDeposit();\n flowActions.markDepositSuccess({\n transactionId: txId,\n record: {\n transactionId: txId,\n amount: pending.amount ?? '0',\n tokenSymbol: 'USDC',\n chainId: pending.chain ?? 'solana',\n chainName: pending.chain === 'solana' ? 'Solana' : (pending.chain ?? 'Solana'),\n chainNetwork: null,\n timestamp: Date.now(),\n },\n });\n return;\n }\n\n setPendingDepositId(pending.depositId);\n setDepositProgressPhase('solana');\n\n // If we have a transaction hash, we can try to \"resume\" monitoring,\n // but typically the UI just needs to be in 'solana' phase and useSolanaDeposit internals\n // or the user interaction will handle the rest.\n // If there's NO tx hash, it just means they started but didn't sign.\n // In that case, we should probably allow them to just \"Retry\" (sign again)\n // rather than showing a \"missing bridge hash\" error.\n\n if (pending.tx) {\n setTransactionId(pending.tx);\n // We could try to auto-monitor here if we had a dedicated \"resumeSolana\" function,\n // but for now, setting phase to 'solana' allows the user to see the state.\n // If it was already confirmed, the initial hydration might have caught it?\n // or we just let them \"Retry\" if it seems stuck.\n setBridgeError('Transaction submitted. Please wait for confirmation.');\n setBridgeRetryable(false); // Maybe true if they want to try again?\n setIsDepositing(true);\n } else {\n // No TX hash yet - likely interrupted before signing\n logger.info('[Deposit] Solana deposit resumed without TX - allowing retry');\n setBridgeError(null);\n setBridgeRetryable(true); // Allow them to click \"Sign\" / \"Retry\" \n setIsDepositing(false);\n }\n return;\n }\n\n // --- EVM / CCTP FLOW BELOW ---\n\n // STATE 1: Pending deposit ID exists and matches wallet address (EVM or Solana) -> CLAIM\n logger.info('[Deposit] ===== CLAIM MODE DETECTED (CCTP) =====', {\n depositId: pending.depositId,\n });\n\n // For EVM flows with Turnkey, ensure Turnkey is ready before attempting claim.\n const isEvmFlow = context.entryNetwork === 'evm';\n const turnkeyReady = !turnkeyEnabled || !!solanaWallet;\n const canClaim = !isEvmFlow || turnkeyReady;\n\n if (!canClaim) {\n const errorMsg =\n turnkeyEnabled && !solanaWallet\n ? 'Preparing Solana wallet... Please wait.'\n : 'Wallet not ready. Please try again.';\n setBridgeError(errorMsg);\n setBridgeRetryable(true);\n setIsDepositing(false);\n return;\n }\n\n // Clear previous errors\n setBridgeError(null);\n setBridgeRetryable(false);\n setBridgeApprovalError(null);\n\n // Restore bridge tx from pending state\n const bridgeTxFromPending = pending.tx ?? null;\n if (bridgeTxFromPending) {\n setPendingBridgeTx(bridgeTxFromPending);\n\n const explorerUrl = pending.explorerUrl ??\n pickExplorerUrl(\n null,\n explorerBaseForChain(pending.chain),\n bridgeTxFromPending\n );\n if (explorerUrl) {\n setPendingBridgeExplorerUrl(explorerUrl);\n }\n } else {\n logger.warn('[DepositFlow] Pending deposit missing bridge tx hash');\n setPendingDepositId(pending.depositId);\n setDepositProgressPhase('claim');\n setBridgeError('Pending deposit found, but the bridge transaction hash is missing. Please retry from the progress screen.');\n setBridgeRetryable(true);\n setIsDepositing(false);\n return;\n }\n\n // Restore mint tx\n if (pending.mintTx) {\n setPendingMintTx(pending.mintTx);\n }\n\n setPendingDepositId(pending.depositId);\n setDepositProgressPhase('claim');\n setIsDepositing(true);\n\n try {\n await resumeClaimProcess(pending);\n } catch (claimError) {\n const normalized = toDepositError(claimError, { depositId: pending.depositId, stage: 'claim' });\n setIsDepositing(false);\n setBridgeError(normalized.userMessage);\n setBridgeRetryable(normalized.retryable);\n throw claimError;\n }\n }, [\n context.entryNetwork,\n solanaWallet,\n turnkeyEnabled,\n setBridgeError,\n setBridgeRetryable,\n setIsDepositing,\n setDepositProgressPhase,\n setPendingDepositId,\n setBridgeApprovalError,\n setPendingBridgeTx,\n setPendingBridgeExplorerUrl,\n setPendingMintTx,\n resumeClaimProcess,\n setTransactionId\n ]);\n\n\n /**\n * Helper to validate conditions for a new deposit\n */\n const validateNewDeposit = useCallback((\n amountStr: string,\n isBridgeFlow: boolean,\n targetChainId: string | null\n ) => {\n if (!amountStr || parseFloat(amountStr) <= 0) {\n throw new Error('Invalid amount');\n }\n if (!nord) {\n throw new Error('Nord client is unavailable. Please check your configuration and try again.');\n }\n if (!nordUser) {\n throw new Error('Your Nord session is not ready yet. Reconnect your wallet to retry.');\n }\n if (!address && !turnkeyAddress) {\n throw new Error('We were unable to determine your Solana deposit address. Please reconnect your wallet and try again.');\n }\n if (isBridgeFlow && !evmAddress) {\n throw new Error('No connected EVM wallet was found for bridging. Please reconnect your EVM wallet.');\n }\n }, [nord, nordUser, address, turnkeyAddress, evmAddress]);\n\n\n /**\n * Helper to handle starting a NEW deposit\n */\n const handleNewDeposit = useCallback(async () => {\n logger.debug('[DepositFlow] SUBMIT MODE: Starting new deposit');\n\n // Cleanup previous state\n bridgeCompletionRef.current = false;\n setPendingBridgeTx(null);\n setPendingMintTx(null);\n setPendingBridgeExplorerUrl(null);\n setBridgeError(null);\n setBridgeRetryable(false);\n setBridgeApprovalError(null);\n\n // Chain resolution\n const targetChainId =\n context.selectedChainId ??\n (context.selectedChain ? context.selectedChain.toLowerCase() : null) ??\n (selectedChain ? selectedChain.toLowerCase() : null);\n\n const normalizedTargetChainIdRaw = (targetChainId ?? context.entryNetwork ?? 'solana').toLowerCase();\n const normalizedTargetChainId =\n normalizedTargetChainIdRaw === 'evm'\n ? 'ethereum'\n : normalizedTargetChainIdRaw === 'arb' || normalizedTargetChainIdRaw === 'arbitrum-one'\n ? 'arbitrum'\n : normalizedTargetChainIdRaw;\n\n // Bridge flow determination\n const hasEvmWallet = !!evmAddress;\n const isEvmChain = normalizedTargetChainId !== 'solana';\n const isBridgeFlow = hasEvmWallet && isEvmChain;\n\n // Only run the signMessage probe for direct Solana deposits.\n // Bridge flow will run through the resume/claim path where the check already exists.\n if (!isBridgeFlow && solanaWallet) {\n try {\n if (await isLikelyLedgerSolanaWallet(solanaWallet, solanaAdapter)) {\n handleError(new Error('Ledger wallets are not supported for this action'));\n return;\n }\n } catch (e: any) {\n if (e?.code === 'N1_SIGNATURE_CANCELLED') {\n setIsDepositing(false);\n flowActions.markDepositFailed('Signature cancelled');\n return;\n }\n handleError(e instanceof Error ? e : new Error(String(e)));\n return;\n }\n }\n\n try {\n validateNewDeposit(amount, isBridgeFlow, targetChainId);\n } catch (validationError: any) {\n handleError(validationError);\n return;\n }\n\n logger.event(createDepositEvent(EVENTS.DEPOSIT.START, {\n amount,\n chain: selectedChain || context.selectedChain,\n isBridgeFlow,\n }));\n setIsDepositing(true);\n flowActions.startDeposit();\n\n try {\n if (isBridgeFlow) {\n await startCctpBridge(amount);\n setDepositProgressPhase('bridge');\n return;\n }\n\n // Direct Solana Deposit\n const pendingState = ensurePendingDraft(amount);\n const { txId } = await runSolanaDeposit(amount, pendingState);\n\n // Construct success record\n const result: SolanaDepositTransactionResult = {\n success: true,\n transactionId: txId,\n amount,\n tokenSymbol: 'USDC',\n fromAddress: address || 'Your Wallet',\n toAddress: 'Exchange Account',\n networkName: selectedChain ?? context.selectedChain ?? 'Solana',\n status: 'Completed',\n explorerUrl: getSolanaExplorerUrl(txId),\n };\n const depositRecord = {\n transactionId: txId,\n amount,\n tokenSymbol: 'USDC',\n chainId: context.selectedChainId ?? (selectedChain ?? 'solana'),\n chainName: context.selectedChain ?? (selectedChain ?? 'Solana'),\n chainNetwork: context.selectedChainNetwork ?? null,\n timestamp: Date.now(),\n };\n\n saveLastDepositRecord(address, depositRecord);\n clearPendingDeposit();\n setPendingDepositId(null);\n setBridgeRetryable(false);\n setBridgeError(null);\n setTransactionId(txId);\n setTransactionResult(result);\n\n logger.event(createDepositEvent(EVENTS.DEPOSIT.COMPLETE, {\n transactionId: txId,\n amount,\n chain: selectedChain || context.selectedChain,\n }));\n flowActions.markDepositSuccess({\n transactionId: txId,\n record: depositRecord,\n });\n\n } catch (depositError) {\n const normalized = toDepositError(depositError, {\n stage: depositProgressPhase,\n isBridgeFlow: depositProgressPhase === 'bridge' || depositProgressPhase === 'claim',\n });\n\n logger.event(createDepositEvent(EVENTS.DEPOSIT.FAILED, {\n code: normalized.code,\n message: normalized.message,\n retryable: normalized.retryable,\n stage: depositProgressPhase,\n }));\n logger.logError(createDepositError('BRIDGE_FAILED', normalized.message || 'Deposit failed', {\n recoverable: normalized.retryable,\n context: { code: normalized.code, stage: depositProgressPhase },\n cause: depositError instanceof Error ? depositError : undefined,\n }));\n\n // Try to persist failure state\n try {\n const existing = readPendingDeposit();\n if (existing) {\n advancePendingDeposit(existing, {\n stage: normalized.retryable ? existing.stage : 'failed',\n reason: normalized.message || 'Deposit failed',\n });\n }\n } catch (e) { /* ignore */ }\n\n // Set errors\n const isBridgeError = depositProgressPhase === 'bridge' || depositProgressPhase === 'claim';\n if (isBridgeError) {\n setBridgeError(normalized.userMessage);\n setBridgeRetryable(normalized.retryable);\n if (bridgeApprovalPending) {\n setBridgeApprovalError(normalized.userMessage);\n setBridgeApprovalPending(false);\n }\n }\n\n if (normalized.retryable) {\n setBridgeError(normalized.userMessage);\n setBridgeRetryable(true);\n return;\n }\n\n flowActions.markDepositFailed(normalized.message || 'Failed to process deposit');\n } finally {\n setIsDepositing(false);\n }\n }, [\n context,\n selectedChain,\n evmAddress,\n solanaWallet,\n evmWallet,\n amount,\n address,\n turnkeyAddress,\n nord,\n nordUser,\n handleError,\n setBridgeError,\n setBridgeRetryable,\n setBridgeApprovalError,\n setPendingBridgeTx,\n setPendingMintTx,\n setPendingBridgeExplorerUrl,\n setPendingDepositId,\n setDepositProgressPhase,\n startCctpBridge,\n runSolanaDeposit,\n ensurePendingDraft,\n flowActions,\n depositProgressPhase,\n bridgeApprovalPending,\n validateNewDeposit,\n setTransactionId,\n setTransactionResult,\n bridgeApprovalPending\n ]);\n\n /**\n * Main entry point for starting a deposit\n */\n const startDeposit = useCallback(async () => {\n if (startDepositInFlightRef.current) {\n logger.debug('[DepositFlow] startDeposit ignored (already in flight)');\n return;\n }\n\n startDepositInFlightRef.current = true;\n try {\n logger.debug('[DepositFlow] startDeposit called');\n updateContext({ depositError: undefined });\n\n const pending = readPendingDeposit();\n\n // Check if we should resume a pending deposit\n if (pending?.depositId) {\n const pendingWalletLower = pending.wallet?.toLowerCase() ?? '';\n const evmAddressLower = evmAddress?.toLowerCase() ?? '';\n const addressLower = address?.toLowerCase() ?? '';\n const walletMatches = pendingWalletLower && (\n evmAddressLower === pendingWalletLower ||\n addressLower === pendingWalletLower\n );\n\n await handleResumePendingDeposit(pending, !!walletMatches);\n return;\n }\n\n // Otherwise, start a new one\n await handleNewDeposit();\n } finally {\n startDepositInFlightRef.current = false;\n }\n\n }, [\n readPendingDeposit,\n evmAddress,\n address,\n handleResumePendingDeposit,\n handleNewDeposit,\n updateContext\n ]);\n\n /**\n * Complete the deposit process and move to the next screen\n */\n const completeDeposit = useCallback(() => {\n clearLastDepositRecord(address);\n clearPendingDeposit();\n setPendingDepositId(null);\n updateContext({ lastDeposit: null });\n\n if (context.isDepositOnlyFlow) {\n flowActions.completeFlow({\n hasNordAccount: true,\n hasActiveSession: true,\n });\n return;\n }\n\n // Check if user has an active session to determine the next state\n if (context.hasActiveSession) {\n // If user has an active session, go directly to FINAL_SUCCESS\n flowActions.completeFlow({\n hasNordAccount: true,\n hasActiveSession: true,\n });\n } else {\n // If user doesn't have an active session, go to authentication flow\n flowActions.requireAuth({ hasNordAccount: true });\n }\n }, [context.hasActiveSession, context.isDepositOnlyFlow, flowActions, address, updateContext, evmAddress, setPendingDepositId]);\n\n\n /**\n * Update state based on context changes\n */\n useEffect(() => {\n const prevContext = prevContextRef.current;\n\n // Only update state if the relevant context values have actually changed\n if (context.selectedChain !== prevContext.selectedChain) {\n setSelectedChain(context.selectedChain);\n }\n\n if (context.amount !== prevContext.amount) {\n setAmount(context.amount);\n }\n\n if (context.transactionId !== prevContext.transactionId) {\n setTransactionId(context.transactionId);\n }\n\n // Update the ref to the current context\n prevContextRef.current = context;\n }, [context]);\n\n // Phase correction logic removed.\n // We now rely on correct hydration in useDepositHydration.ts.\n\n useEffect(() => {\n if (!isDebugOverride || state !== OnboardingStep.DEPOSIT_SUCCESS || transactionResult) {\n return;\n }\n\n const mockTransactionId = context.transactionId ?? 'debug-tx-12345';\n const fallbackChain = context.selectedChain ?? 'Solana';\n setTransactionId(mockTransactionId);\n setTransactionResult({\n success: true,\n transactionId: mockTransactionId,\n amount: context.amount || '1,250',\n tokenSymbol: 'USDC',\n fromAddress: address || 'Debug Wallet',\n toAddress: 'Nord Account',\n networkName: fallbackChain,\n status: 'Completed',\n explorerUrl: getSolanaExplorerUrl(mockTransactionId),\n });\n }, [isDebugOverride, state, transactionResult, context, address]);\n\n // Create the context value\n const contextValue: DepositFlowContextValue = {\n amount,\n isDepositing,\n depositProgressPhase,\n pendingBridgeExplorerUrl,\n pendingBridgeTx,\n pendingMintTx,\n bridgeRetryable,\n bridgeApprovalPending,\n bridgeApprovalError,\n bridgeError,\n transactionId,\n transactionResult,\n authStatus,\n authErrorMessage,\n authStatusMessage,\n updateAmount,\n startDeposit,\n completeDeposit,\n performAuth,\n };\n\n return (\n <DepositFlowContext.Provider value={contextValue}>\n {children}\n </DepositFlowContext.Provider>\n );\n};\n\n/**\n * Hook to use the deposit flow context\n */\nexport const useDepositFlow = (): DepositFlowContextValue => {\n const context = useContext(DepositFlowContext);\n if (context === undefined) {\n throw new Error('useDepositFlow must be used within a DepositFlowProvider');\n }\n return context;\n};\n"]}
@@ -2,9 +2,14 @@ import React from 'react';
2
2
  import { OnboardingContext, OnboardingStep, StoredDepositRecord } from '../types';
3
3
  export interface OnboardingStateActions {
4
4
  updateContext: (updates: Partial<OnboardingContext>) => void;
5
+ beginWalletConnection: (entryNetwork: 'evm' | 'solana') => void;
5
6
  goToChainSelection: (options?: {
6
7
  resetSelection?: boolean;
7
8
  }) => void;
9
+ goToAmountInput: () => void;
10
+ enterTurnkeyAuth: () => void;
11
+ enterTurnkeyPreparing: () => void;
12
+ returnToWalletConnection: () => void;
8
13
  selectChain: (selection: {
9
14
  id: string;
10
15
  name: string;
@@ -0,0 +1,399 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { createContext, useCallback, useContext, useEffect, useMemo, useReducer, useRef, useState, } from 'react';
14
+ import { OnboardingStep, initialOnboardingContext, } from '../types';
15
+ import { logger } from '../../../utils/logger';
16
+ import { readPendingDeposit } from '../utils/deposit/storage';
17
+ import { SolanaNetwork } from '../../../config/solana';
18
+ import { useNetwork } from '../../../providers/N1WalletProvider/NetworkProvider';
19
+ import { useSession } from '../../../providers/N1WalletProvider/SessionProvider';
20
+ import { useModal, useModalActions } from '../../../providers/N1WalletProvider/ModalProvider';
21
+ import { N1ModalViewMode } from '../../../types/wallet';
22
+ import { DEBUG_VIEW_TO_FLOW } from './debug';
23
+ import { createInitialOnboardingState, onboardingStateReducer, } from './onboardingStateMachine';
24
+ /**
25
+ * Shared utility to check if the connected wallet has a pending deposit.
26
+ */
27
+ var walletMatchesPendingDeposit = function (address, evmAddress, pendingDeposit) {
28
+ var _a, _b;
29
+ if (!pendingDeposit || !pendingDeposit.wallet) {
30
+ return false;
31
+ }
32
+ var pendingWalletLower = pendingDeposit.wallet.toLowerCase();
33
+ var addressLower = (_a = address === null || address === void 0 ? void 0 : address.toLowerCase()) !== null && _a !== void 0 ? _a : '';
34
+ var evmAddressLower = (_b = evmAddress === null || evmAddress === void 0 ? void 0 : evmAddress.toLowerCase()) !== null && _b !== void 0 ? _b : '';
35
+ return ((!!addressLower && addressLower === pendingWalletLower) ||
36
+ (!!evmAddressLower && evmAddressLower === pendingWalletLower));
37
+ };
38
+ var WALLET_CONNECTION_STEPS = new Set([
39
+ OnboardingStep.CONNECTING_WALLET,
40
+ OnboardingStep.TURNKEY_AUTH,
41
+ OnboardingStep.TURNKEY_PREPARING,
42
+ ]);
43
+ var isWalletConnectionStep = function (step) {
44
+ return WALLET_CONNECTION_STEPS.has(step);
45
+ };
46
+ var OnboardingStateContext = createContext(undefined);
47
+ /**
48
+ * Provider component for the onboarding state machine
49
+ */
50
+ export var OnboardingStateProvider = function (_a) {
51
+ var children = _a.children;
52
+ var _b = useReducer(onboardingStateReducer, undefined, createInitialOnboardingState), machineState = _b[0], dispatch = _b[1];
53
+ var state = machineState.state, context = machineState.context;
54
+ var _c = useState(false), isDebugOverride = _c[0], setIsDebugOverride = _c[1];
55
+ // Get isClosing from modal state machine
56
+ var isClosing = useModal().isClosing;
57
+ var contextRef = useRef(context);
58
+ var debugOverrideRef = useRef(false);
59
+ var lastDepositRequestRef = useRef(0);
60
+ var prevStateRef = useRef(null);
61
+ // Use new providers for wallet/session state
62
+ var _d = useNetwork(), solanaAddress = _d.solanaAddress, evmAddress = _d.evmAddress, solanaWallet = _d.solanaWallet;
63
+ var _e = useSession(), nordUser = _e.nordUser, dynamicSdkHasLoaded = _e.dynamicSdkHasLoaded, turnkeyEnabled = _e.turnkeyEnabled;
64
+ var _f = useModal(), showLogin = _f.showLogin, viewMode = _f.viewMode, depositFlowRequestId = _f.depositFlowRequestId;
65
+ // setWalletConnectCancelledHandler from ModalProvider
66
+ var setWalletConnectCancelledHandler = useModalActions().setWalletConnectCancelledHandler;
67
+ // For EVM flows with Turnkey, we check solanaWallet availability instead of turnkeyStatus
68
+ // If solanaWallet exists, Turnkey is ready (for EVM flows)
69
+ // Hydrate state from local storage on mount to resume pending deposits
70
+ // Only deposit ID and wallet are stored, so we can't fully restore context
71
+ // The deposit flow will determine the chain from current context
72
+ // BUT: Don't navigate to DEPOSIT_PROGRESS on mount - let the wallet connection flow handle it
73
+ // This ensures Turnkey flow completes first if needed
74
+ useEffect(function () {
75
+ var pending = readPendingDeposit();
76
+ if (pending === null || pending === void 0 ? void 0 : pending.depositId) {
77
+ logger.debug('Hydrating pending deposit from storage (will navigate after wallet/Turnkey ready)', {
78
+ depositId: pending.depositId,
79
+ wallet: pending.wallet,
80
+ });
81
+ // Don't navigate here - let the wallet connection effect handle navigation
82
+ // after Turnkey is ready (if required)
83
+ }
84
+ }, []);
85
+ useEffect(function () {
86
+ contextRef.current = context;
87
+ }, [context]);
88
+ var guardedDispatch = useCallback(function (action) {
89
+ if (isDebugOverride) {
90
+ logger.debug("Transition suppressed (debug override \u2192 ".concat(N1ModalViewMode[viewMode], ")"));
91
+ return;
92
+ }
93
+ if (!dynamicSdkHasLoaded) {
94
+ logger.debug("Ignoring action ".concat(action.type, " until Dynamic SDK is ready"));
95
+ return;
96
+ }
97
+ if (action.type === 'DEPOSIT_SUCCESS') {
98
+ logger.info('[OnboardingState] Processing DEPOSIT_SUCCESS', {
99
+ state: state,
100
+ payload: action.payload
101
+ });
102
+ }
103
+ // Check if wallet is connected and has pending deposit - force DEPOSIT_PROGRESS
104
+ // BUT: Only if solanaWallet is ready (needed for claim signing)
105
+ var pending = readPendingDeposit();
106
+ var hasWallet = !!(solanaAddress || evmAddress);
107
+ var walletMatches = walletMatchesPendingDeposit(solanaAddress, evmAddress, pending);
108
+ // Don't force DEPOSIT_PROGRESS while we're inside the wallet/Turnkey connection flow.
109
+ // If the user is missing a Solana wallet (needed for claim), the progress screen will
110
+ // show a clear message and wait instead of sending them back to chain selection.
111
+ var isInTurnkeyFlow = state === OnboardingStep.TURNKEY_AUTH || state === OnboardingStep.TURNKEY_PREPARING;
112
+ var isInWalletConnection = state === OnboardingStep.CONNECTING_WALLET || isInTurnkeyFlow;
113
+ var canForceDepositProgress = !isInWalletConnection;
114
+ // If wallet is connected and has matching pending deposit, intercept transitions
115
+ // to non-DEPOSIT_PROGRESS screens (except ERROR which we allow)
116
+ // BUT: Only if solanaWallet is ready (for EVM/Turnkey flows)
117
+ if (hasWallet && walletMatches && pending && canForceDepositProgress) {
118
+ var isTransitioningToDepositProgress = action.type === 'START_DEPOSIT' ||
119
+ action.type === 'APPLY_SNAPSHOT' && action.snapshot.state === OnboardingStep.DEPOSIT_PROGRESS;
120
+ var isErrorState = action.type === 'SET_ERROR' || action.type === 'APPLY_SNAPSHOT' && action.snapshot.state === OnboardingStep.ERROR;
121
+ // Allow transitions to DEPOSIT_PROGRESS and ERROR, block others
122
+ if (!isTransitioningToDepositProgress && !isErrorState && state !== OnboardingStep.DEPOSIT_PROGRESS) {
123
+ logger.info('[OnboardingState] Wallet has pending deposit - forcing DEPOSIT_PROGRESS', {
124
+ currentState: state,
125
+ attemptedAction: action.type,
126
+ pendingStage: pending.stage,
127
+ hasSolanaWallet: !!solanaWallet,
128
+ });
129
+ // Force transition to DEPOSIT_PROGRESS
130
+ // Don't try to restore chain/amount from localStorage - use current context
131
+ dispatch({
132
+ type: 'APPLY_SNAPSHOT',
133
+ snapshot: {
134
+ state: OnboardingStep.DEPOSIT_PROGRESS,
135
+ context: __assign(__assign({}, context), {
136
+ // Keep current context values - don't override from localStorage
137
+ hasNordAccount: true }),
138
+ },
139
+ });
140
+ return;
141
+ }
142
+ }
143
+ dispatch(action);
144
+ }, [dynamicSdkHasLoaded, isDebugOverride, viewMode, solanaAddress, evmAddress, state, context, solanaWallet, turnkeyEnabled]);
145
+ useEffect(function () {
146
+ var prevState = prevStateRef.current;
147
+ if (prevState && prevState !== state) {
148
+ logger.debug("State changed from ".concat(prevState, " to ").concat(state));
149
+ }
150
+ prevStateRef.current = state;
151
+ if (state === OnboardingStep.CONNECTING_WALLET) {
152
+ forcedAuthRequestedRef.current = false;
153
+ }
154
+ }, [state]);
155
+ var forcedAuthRequestedRef = useRef(false);
156
+ // Check for pending deposit when wallet is connected - force DEPOSIT_PROGRESS
157
+ // BUT: Ensure Turnkey flow completes first if required for EVM flows
158
+ // NOTE: showLogin is in deps so this effect re-runs when modal opens (handles recovery from localStorage)
159
+ useEffect(function () {
160
+ var _a;
161
+ if (isDebugOverride || !dynamicSdkHasLoaded || !showLogin) {
162
+ return;
163
+ }
164
+ var pending = readPendingDeposit();
165
+ var hasWallet = !!(solanaAddress || evmAddress);
166
+ // Only show deposit progress if the connected wallet matches the pending deposit's wallet
167
+ var walletMatchesPending = walletMatchesPendingDeposit(solanaAddress, evmAddress, pending);
168
+ var hasPendingDeposit = !!(pending === null || pending === void 0 ? void 0 : pending.depositId) && walletMatchesPending;
169
+ // Check if we're in a Turnkey flow state - don't navigate away from it
170
+ var isInTurnkeyFlow = state === OnboardingStep.TURNKEY_AUTH || state === OnboardingStep.TURNKEY_PREPARING;
171
+ if (isInTurnkeyFlow) {
172
+ logger.info('[OnboardingState] In Turnkey flow - not navigating to DEPOSIT_PROGRESS yet', {
173
+ currentState: state,
174
+ hasPending: !!pending,
175
+ });
176
+ return;
177
+ }
178
+ // If wallet is connected and has matching pending deposit, ensure we're on DEPOSIT_PROGRESS
179
+ // AND we're not in a wallet connection step (let Turnkey complete first)
180
+ var isWalletConnectionStep = state === OnboardingStep.CONNECTING_WALLET;
181
+ if (hasWallet && hasPendingDeposit && !isWalletConnectionStep && state !== OnboardingStep.DEPOSIT_PROGRESS && state !== OnboardingStep.ERROR) {
182
+ logger.info('[OnboardingState] Wallet connected with pending deposit - navigating to DEPOSIT_PROGRESS', {
183
+ currentState: state,
184
+ pendingStage: pending === null || pending === void 0 ? void 0 : pending.stage,
185
+ wallet: (_a = (solanaAddress || evmAddress)) !== null && _a !== void 0 ? _a : null,
186
+ });
187
+ // Don't try to restore chain/amount from localStorage - use current context
188
+ dispatch({
189
+ type: 'APPLY_SNAPSHOT',
190
+ snapshot: {
191
+ state: OnboardingStep.DEPOSIT_PROGRESS,
192
+ context: __assign(__assign({}, context), {
193
+ // Keep current context values - don't override from localStorage
194
+ hasNordAccount: true }),
195
+ },
196
+ });
197
+ }
198
+ }, [solanaAddress, evmAddress, state, context, isDebugOverride, dynamicSdkHasLoaded, dispatch, showLogin]);
199
+ // Auto-advance to auth screen when wallet is connected and user has Nord account
200
+ // Skips deposit-only flows and prevents duplicate auth requests
201
+ useEffect(function () {
202
+ // Skip if we have a pending deposit - that takes priority
203
+ var pending = readPendingDeposit();
204
+ var hasWallet = !!(solanaAddress || evmAddress);
205
+ var walletMatches = walletMatchesPendingDeposit(solanaAddress, evmAddress, pending);
206
+ if (!solanaWallet ||
207
+ !isWalletConnectionStep(state) ||
208
+ context.isDepositOnlyFlow ||
209
+ forcedAuthRequestedRef.current ||
210
+ !context.hasNordAccount ||
211
+ (hasWallet && walletMatches && pending) // Skip if pending deposit exists
212
+ ) {
213
+ return;
214
+ }
215
+ forcedAuthRequestedRef.current = true;
216
+ logger.debug('Auto-advancing to auth screen (wallet connected, Nord account exists)');
217
+ guardedDispatch({
218
+ type: 'GO_TO_AUTH',
219
+ hasNordAccount: context.hasNordAccount || undefined,
220
+ });
221
+ }, [solanaWallet, state, context.isDepositOnlyFlow, context.hasNordAccount, guardedDispatch, solanaAddress, evmAddress]);
222
+ var updateContext = useCallback(function (updates) {
223
+ if (!updates || Object.keys(updates).length === 0) {
224
+ return;
225
+ }
226
+ var prev = contextRef.current;
227
+ var hasChanges = Object.keys(updates).some(function (key) { return prev[key] !== updates[key]; });
228
+ if (!hasChanges) {
229
+ return;
230
+ }
231
+ dispatch({ type: 'SET_CONTEXT', updates: updates });
232
+ }, [dispatch]);
233
+ var actions = useMemo(function () { return ({
234
+ updateContext: updateContext,
235
+ beginWalletConnection: function (entryNetwork) {
236
+ return guardedDispatch({
237
+ type: 'BEGIN_WALLET_CONNECTION',
238
+ entryNetwork: entryNetwork,
239
+ });
240
+ },
241
+ goToChainSelection: function (options) {
242
+ var _a;
243
+ return guardedDispatch({
244
+ type: 'GO_TO_CHAIN_SELECTION',
245
+ resetSelection: (_a = options === null || options === void 0 ? void 0 : options.resetSelection) !== null && _a !== void 0 ? _a : false,
246
+ });
247
+ },
248
+ goToAmountInput: function () { return guardedDispatch({ type: 'GO_TO_AMOUNT_INPUT' }); },
249
+ enterTurnkeyAuth: function () {
250
+ return guardedDispatch({
251
+ type: 'ENTER_TURNKEY_AUTH',
252
+ });
253
+ },
254
+ enterTurnkeyPreparing: function () {
255
+ return guardedDispatch({
256
+ type: 'ENTER_TURNKEY_PREPARING',
257
+ });
258
+ },
259
+ returnToWalletConnection: function () {
260
+ return guardedDispatch({
261
+ type: 'RETURN_TO_CONNECTING',
262
+ });
263
+ },
264
+ selectChain: function (selection) {
265
+ return guardedDispatch({ type: 'SELECT_CHAIN', selection: selection });
266
+ },
267
+ startDeposit: function () { return guardedDispatch({ type: 'START_DEPOSIT' }); },
268
+ markDepositSuccess: function (payload) {
269
+ return guardedDispatch({ type: 'DEPOSIT_SUCCESS', payload: payload });
270
+ },
271
+ markDepositFailed: function (message) {
272
+ return guardedDispatch({ type: 'DEPOSIT_FAILED', message: message });
273
+ },
274
+ requireAuth: function (options) {
275
+ return guardedDispatch({
276
+ type: 'GO_TO_AUTH',
277
+ hasNordAccount: options === null || options === void 0 ? void 0 : options.hasNordAccount,
278
+ });
279
+ },
280
+ completeFlow: function (options) {
281
+ return guardedDispatch({
282
+ type: 'COMPLETE_FLOW',
283
+ hasActiveSession: options === null || options === void 0 ? void 0 : options.hasActiveSession,
284
+ hasNordAccount: options === null || options === void 0 ? void 0 : options.hasNordAccount,
285
+ });
286
+ },
287
+ setErrorState: function (error) { return guardedDispatch({ type: 'SET_ERROR', error: error }); },
288
+ resetFlow: function (overrideContext) {
289
+ return guardedDispatch({ type: 'RESET', context: overrideContext });
290
+ },
291
+ }); }, [guardedDispatch, updateContext]);
292
+ useEffect(function () {
293
+ setWalletConnectCancelledHandler(function () { return function () {
294
+ if (debugOverrideRef.current) {
295
+ return;
296
+ }
297
+ // Reset flow when wallet connection is cancelled
298
+ dispatch({ type: 'RESET' });
299
+ }; });
300
+ return function () { return setWalletConnectCancelledHandler(function () { return function () { }; }); };
301
+ }, [setWalletConnectCancelledHandler, dispatch]);
302
+ // Handle deposit-only flow requests (skips wallet connection for authenticated users)
303
+ useEffect(function () {
304
+ if (!depositFlowRequestId ||
305
+ depositFlowRequestId === lastDepositRequestRef.current) {
306
+ return;
307
+ }
308
+ lastDepositRequestRef.current = depositFlowRequestId;
309
+ if (!nordUser || !nordUser.sessionId) {
310
+ logger.warn('Ignoring deposit flow request without an active Nord session');
311
+ return;
312
+ }
313
+ logger.debug('Activating deposit-only flow', { depositFlowRequestId: depositFlowRequestId });
314
+ var nextContext = __assign(__assign({}, initialOnboardingContext), { hasNordAccount: true, hasActiveSession: true, isDepositOnlyFlow: true });
315
+ debugOverrideRef.current = false;
316
+ setIsDebugOverride(false);
317
+ // Check if we have a pending deposit (e.g. recovery flow)
318
+ var pending = readPendingDeposit();
319
+ var hasWallet = !!(solanaAddress || evmAddress);
320
+ dispatch({ type: 'RESET', context: nextContext });
321
+ if ((pending === null || pending === void 0 ? void 0 : pending.depositId) && pending.chain) {
322
+ var isSolana = pending.chain.toLowerCase() === 'solana';
323
+ // If wallet is already connected and matches the pending deposit, go directly to DEPOSIT_PROGRESS
324
+ var walletMatches = walletMatchesPendingDeposit(solanaAddress, evmAddress, pending);
325
+ if (hasWallet && walletMatches) {
326
+ logger.debug('Wallet already connected for pending deposit, going directly to DEPOSIT_PROGRESS', {
327
+ depositId: pending.depositId,
328
+ chain: pending.chain,
329
+ wallet: solanaAddress || evmAddress,
330
+ });
331
+ dispatch({
332
+ type: 'APPLY_SNAPSHOT',
333
+ snapshot: {
334
+ state: OnboardingStep.DEPOSIT_PROGRESS,
335
+ context: __assign(__assign({}, nextContext), { entryNetwork: isSolana ? 'solana' : 'evm', selectedChain: pending.chain, selectedChainId: pending.chain.toLowerCase(), selectedChainNetwork: isSolana ? SolanaNetwork.MAINNET : null }),
336
+ },
337
+ });
338
+ }
339
+ else {
340
+ logger.debug('Pending deposit found in deposit-only flow, directing to wallet connection', {
341
+ depositId: pending.depositId,
342
+ chain: pending.chain
343
+ });
344
+ dispatch({
345
+ type: 'BEGIN_WALLET_CONNECTION',
346
+ entryNetwork: isSolana ? 'solana' : 'evm'
347
+ });
348
+ }
349
+ }
350
+ else {
351
+ dispatch({ type: 'GO_TO_CHAIN_SELECTION', resetSelection: false });
352
+ }
353
+ logger.debug('Deposit-only flow activated');
354
+ }, [depositFlowRequestId, nordUser, dispatch, solanaAddress, evmAddress]);
355
+ // Debug-only: allow external callers (e.g. UI playground) to jump to a specific view
356
+ useEffect(function () {
357
+ var debugTarget = viewMode === N1ModalViewMode.Automatic ? undefined : DEBUG_VIEW_TO_FLOW[viewMode];
358
+ if (debugTarget) {
359
+ debugOverrideRef.current = true;
360
+ setIsDebugOverride(true);
361
+ var snapshot = {
362
+ state: debugTarget.state,
363
+ context: debugTarget.context,
364
+ };
365
+ dispatch({ type: 'APPLY_SNAPSHOT', snapshot: snapshot });
366
+ logger.debug("Debug view override: ".concat(N1ModalViewMode[viewMode], " \u2192 ").concat(debugTarget.state));
367
+ return;
368
+ }
369
+ if (debugOverrideRef.current) {
370
+ debugOverrideRef.current = false;
371
+ setIsDebugOverride(false);
372
+ dispatch({
373
+ type: 'APPLY_SNAPSHOT',
374
+ snapshot: createInitialOnboardingState(),
375
+ });
376
+ logger.debug('Debug view override cleared; returning to state machine');
377
+ }
378
+ }, [viewMode, dispatch]);
379
+ var contextValue = {
380
+ state: state,
381
+ context: context,
382
+ isClosing: isClosing,
383
+ isDebugOverride: isDebugOverride,
384
+ actions: actions,
385
+ updateContext: updateContext,
386
+ };
387
+ return (_jsx(OnboardingStateContext.Provider, { value: contextValue, children: children }));
388
+ };
389
+ /**
390
+ * Custom hook to use the onboarding state context
391
+ */
392
+ export var useOnboardingState = function () {
393
+ var contextValue = useContext(OnboardingStateContext);
394
+ if (contextValue === undefined) {
395
+ throw new Error('useOnboardingState must be used within an OnboardingStateProvider');
396
+ }
397
+ return contextValue;
398
+ };
399
+ //# sourceMappingURL=OnboardingStateProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnboardingStateProvider.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/providers/OnboardingStateProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react';\nimport {\n OnboardingContext,\n OnboardingStep,\n StoredDepositRecord,\n initialOnboardingContext,\n} from '../types';\nimport { logger } from '../../../utils/logger';\nimport { readPendingDeposit } from '../utils/deposit/storage';\nimport { deriveChainLabel } from '../utils/deposit/bridgeUtils';\nimport { SolanaNetwork } from '../../../config/solana';\nimport { useNetwork } from '../../../providers/N1WalletProvider/NetworkProvider';\nimport { useSession } from '../../../providers/N1WalletProvider/SessionProvider';\nimport { useModal, useModalActions } from '../../../providers/N1WalletProvider/ModalProvider';\nimport { N1ModalViewMode } from '../../../types/wallet';\nimport { DEBUG_VIEW_TO_FLOW } from './debug';\nimport {\n OnboardingStateAction,\n OnboardingStateSnapshot,\n createInitialOnboardingState,\n onboardingStateReducer,\n} from './onboardingStateMachine';\n\n/**\n * Shared utility to check if the connected wallet has a pending deposit.\n */\nconst walletMatchesPendingDeposit = (\n address: string | null | undefined,\n evmAddress: string | null | undefined,\n pendingDeposit: { wallet: string } | null\n): boolean => {\n if (!pendingDeposit || !pendingDeposit.wallet) {\n return false;\n }\n\n const pendingWalletLower = pendingDeposit.wallet.toLowerCase();\n const addressLower = address?.toLowerCase() ?? '';\n const evmAddressLower = evmAddress?.toLowerCase() ?? '';\n\n return (\n (!!addressLower && addressLower === pendingWalletLower) ||\n (!!evmAddressLower && evmAddressLower === pendingWalletLower)\n );\n};\n\nconst WALLET_CONNECTION_STEPS = new Set<OnboardingStep>([\n OnboardingStep.CONNECTING_WALLET,\n OnboardingStep.TURNKEY_AUTH,\n OnboardingStep.TURNKEY_PREPARING,\n]);\n\nconst isWalletConnectionStep = (step: OnboardingStep): boolean =>\n WALLET_CONNECTION_STEPS.has(step);\n\nexport interface OnboardingStateActions {\n updateContext: (updates: Partial<OnboardingContext>) => void;\n beginWalletConnection: (entryNetwork: 'evm' | 'solana') => void;\n goToChainSelection: (options?: { resetSelection?: boolean }) => void;\n goToAmountInput: () => void;\n enterTurnkeyAuth: () => void;\n enterTurnkeyPreparing: () => void;\n returnToWalletConnection: () => void;\n selectChain: (selection: {\n id: string;\n name: string;\n network?: string | null;\n }) => void;\n startDeposit: () => void;\n markDepositSuccess: (payload: {\n transactionId: string;\n record: StoredDepositRecord;\n }) => void;\n markDepositFailed: (message: string) => void;\n requireAuth: (options?: { hasNordAccount?: boolean }) => void;\n completeFlow: (options?: {\n hasActiveSession?: boolean;\n hasNordAccount?: boolean;\n }) => void;\n setErrorState: (error: Error) => void;\n resetFlow: (overrideContext?: OnboardingContext) => void;\n}\n\nexport interface OnboardingStateValue {\n state: OnboardingStep;\n context: OnboardingContext;\n isClosing: boolean;\n isDebugOverride: boolean;\n actions: OnboardingStateActions;\n updateContext: (updates: Partial<OnboardingContext>) => void;\n}\n\nconst OnboardingStateContext = createContext<OnboardingStateValue | undefined>(undefined);\n\ninterface OnboardingStateProviderProps {\n children: React.ReactNode;\n}\n\n/**\n * Provider component for the onboarding state machine\n */\nexport const OnboardingStateProvider: React.FC<OnboardingStateProviderProps> = ({\n children,\n}) => {\n const [machineState, dispatch] = useReducer(\n onboardingStateReducer,\n undefined,\n createInitialOnboardingState\n );\n const { state, context } = machineState;\n const [isDebugOverride, setIsDebugOverride] = useState(false);\n\n // Get isClosing from modal state machine\n const { isClosing } = useModal();\n\n const contextRef = useRef<OnboardingContext>(context);\n const debugOverrideRef = useRef(false);\n const lastDepositRequestRef = useRef(0);\n const prevStateRef = useRef<OnboardingStep | null>(null);\n\n // Use new providers for wallet/session state\n const { solanaAddress, evmAddress, solanaWallet } = useNetwork();\n const { nordUser, dynamicSdkHasLoaded, turnkeyEnabled } = useSession();\n const { showLogin, viewMode, depositFlowRequestId } = useModal();\n\n // setWalletConnectCancelledHandler from ModalProvider\n const { setWalletConnectCancelledHandler } = useModalActions();\n\n // For EVM flows with Turnkey, we check solanaWallet availability instead of turnkeyStatus\n // If solanaWallet exists, Turnkey is ready (for EVM flows)\n\n // Hydrate state from local storage on mount to resume pending deposits\n // Only deposit ID and wallet are stored, so we can't fully restore context\n // The deposit flow will determine the chain from current context\n // BUT: Don't navigate to DEPOSIT_PROGRESS on mount - let the wallet connection flow handle it\n // This ensures Turnkey flow completes first if needed\n useEffect(() => {\n const pending = readPendingDeposit();\n if (pending?.depositId) {\n logger.debug('Hydrating pending deposit from storage (will navigate after wallet/Turnkey ready)', {\n depositId: pending.depositId,\n wallet: pending.wallet,\n });\n // Don't navigate here - let the wallet connection effect handle navigation\n // after Turnkey is ready (if required)\n }\n }, []);\n\n useEffect(() => {\n contextRef.current = context;\n }, [context]);\n\n const guardedDispatch = useCallback(\n (action: OnboardingStateAction) => {\n if (isDebugOverride) {\n logger.debug(\n `Transition suppressed (debug override → ${N1ModalViewMode[viewMode]})`\n );\n return;\n }\n\n if (!dynamicSdkHasLoaded) {\n logger.debug(\n `Ignoring action ${action.type} until Dynamic SDK is ready`\n );\n return;\n }\n\n if (action.type === 'DEPOSIT_SUCCESS') {\n logger.info('[OnboardingState] Processing DEPOSIT_SUCCESS', {\n state,\n payload: action.payload\n });\n }\n\n // Check if wallet is connected and has pending deposit - force DEPOSIT_PROGRESS\n // BUT: Only if solanaWallet is ready (needed for claim signing)\n const pending = readPendingDeposit();\n const hasWallet = !!(solanaAddress || evmAddress);\n const walletMatches = walletMatchesPendingDeposit(solanaAddress, evmAddress, pending);\n\n // Don't force DEPOSIT_PROGRESS while we're inside the wallet/Turnkey connection flow.\n // If the user is missing a Solana wallet (needed for claim), the progress screen will\n // show a clear message and wait instead of sending them back to chain selection.\n const isInTurnkeyFlow =\n state === OnboardingStep.TURNKEY_AUTH || state === OnboardingStep.TURNKEY_PREPARING;\n const isInWalletConnection = state === OnboardingStep.CONNECTING_WALLET || isInTurnkeyFlow;\n const canForceDepositProgress = !isInWalletConnection;\n\n // If wallet is connected and has matching pending deposit, intercept transitions\n // to non-DEPOSIT_PROGRESS screens (except ERROR which we allow)\n // BUT: Only if solanaWallet is ready (for EVM/Turnkey flows)\n if (hasWallet && walletMatches && pending && canForceDepositProgress) {\n const isTransitioningToDepositProgress =\n action.type === 'START_DEPOSIT' ||\n action.type === 'APPLY_SNAPSHOT' && action.snapshot.state === OnboardingStep.DEPOSIT_PROGRESS;\n\n const isErrorState = action.type === 'SET_ERROR' || action.type === 'APPLY_SNAPSHOT' && action.snapshot.state === OnboardingStep.ERROR;\n\n // Allow transitions to DEPOSIT_PROGRESS and ERROR, block others\n if (!isTransitioningToDepositProgress && !isErrorState && state !== OnboardingStep.DEPOSIT_PROGRESS) {\n logger.info('[OnboardingState] Wallet has pending deposit - forcing DEPOSIT_PROGRESS', {\n currentState: state,\n attemptedAction: action.type,\n pendingStage: pending.stage,\n hasSolanaWallet: !!solanaWallet,\n });\n\n // Force transition to DEPOSIT_PROGRESS\n // Don't try to restore chain/amount from localStorage - use current context\n dispatch({\n type: 'APPLY_SNAPSHOT',\n snapshot: {\n state: OnboardingStep.DEPOSIT_PROGRESS,\n context: {\n ...context,\n // Keep current context values - don't override from localStorage\n hasNordAccount: true,\n },\n },\n });\n return;\n }\n }\n\n dispatch(action);\n },\n [dynamicSdkHasLoaded, isDebugOverride, viewMode, solanaAddress, evmAddress, state, context, solanaWallet, turnkeyEnabled]\n );\n\n useEffect(() => {\n const prevState = prevStateRef.current;\n if (prevState && prevState !== state) {\n logger.debug(`State changed from ${prevState} to ${state}`);\n }\n prevStateRef.current = state;\n if (state === OnboardingStep.CONNECTING_WALLET) {\n forcedAuthRequestedRef.current = false;\n }\n }, [state]);\n\n const forcedAuthRequestedRef = useRef(false);\n\n // Check for pending deposit when wallet is connected - force DEPOSIT_PROGRESS\n // BUT: Ensure Turnkey flow completes first if required for EVM flows\n // NOTE: showLogin is in deps so this effect re-runs when modal opens (handles recovery from localStorage)\n useEffect(() => {\n if (isDebugOverride || !dynamicSdkHasLoaded || !showLogin) {\n return;\n }\n\n const pending = readPendingDeposit();\n const hasWallet = !!(solanaAddress || evmAddress);\n // Only show deposit progress if the connected wallet matches the pending deposit's wallet\n const walletMatchesPending = walletMatchesPendingDeposit(solanaAddress, evmAddress, pending);\n const hasPendingDeposit = !!pending?.depositId && walletMatchesPending;\n\n // Check if we're in a Turnkey flow state - don't navigate away from it\n const isInTurnkeyFlow = state === OnboardingStep.TURNKEY_AUTH || state === OnboardingStep.TURNKEY_PREPARING;\n if (isInTurnkeyFlow) {\n logger.info('[OnboardingState] In Turnkey flow - not navigating to DEPOSIT_PROGRESS yet', {\n currentState: state,\n hasPending: !!pending,\n });\n return;\n }\n\n // If wallet is connected and has matching pending deposit, ensure we're on DEPOSIT_PROGRESS\n // AND we're not in a wallet connection step (let Turnkey complete first)\n const isWalletConnectionStep = state === OnboardingStep.CONNECTING_WALLET;\n if (hasWallet && hasPendingDeposit && !isWalletConnectionStep && state !== OnboardingStep.DEPOSIT_PROGRESS && state !== OnboardingStep.ERROR) {\n logger.info('[OnboardingState] Wallet connected with pending deposit - navigating to DEPOSIT_PROGRESS', {\n currentState: state,\n pendingStage: pending?.stage,\n wallet: (solanaAddress || evmAddress) ?? null,\n });\n\n // Don't try to restore chain/amount from localStorage - use current context\n dispatch({\n type: 'APPLY_SNAPSHOT',\n snapshot: {\n state: OnboardingStep.DEPOSIT_PROGRESS,\n context: {\n ...context,\n // Keep current context values - don't override from localStorage\n hasNordAccount: true,\n },\n },\n });\n }\n }, [solanaAddress, evmAddress, state, context, isDebugOverride, dynamicSdkHasLoaded, dispatch, showLogin]);\n\n // Auto-advance to auth screen when wallet is connected and user has Nord account\n // Skips deposit-only flows and prevents duplicate auth requests\n useEffect(() => {\n // Skip if we have a pending deposit - that takes priority\n const pending = readPendingDeposit();\n const hasWallet = !!(solanaAddress || evmAddress);\n const walletMatches = walletMatchesPendingDeposit(solanaAddress, evmAddress, pending);\n\n if (\n !solanaWallet ||\n !isWalletConnectionStep(state) ||\n context.isDepositOnlyFlow ||\n forcedAuthRequestedRef.current ||\n !context.hasNordAccount ||\n (hasWallet && walletMatches && pending) // Skip if pending deposit exists\n ) {\n return;\n }\n\n forcedAuthRequestedRef.current = true;\n logger.debug('Auto-advancing to auth screen (wallet connected, Nord account exists)');\n guardedDispatch({\n type: 'GO_TO_AUTH',\n hasNordAccount: context.hasNordAccount || undefined,\n });\n }, [solanaWallet, state, context.isDepositOnlyFlow, context.hasNordAccount, guardedDispatch, solanaAddress, evmAddress]);\n\n const updateContext = useCallback(\n (updates: Partial<OnboardingContext>) => {\n if (!updates || Object.keys(updates).length === 0) {\n return;\n }\n\n const prev = contextRef.current;\n const hasChanges = (Object.keys(updates) as Array<keyof OnboardingContext>).some(\n (key) => prev[key] !== updates[key]\n );\n\n if (!hasChanges) {\n return;\n }\n\n dispatch({ type: 'SET_CONTEXT', updates });\n },\n [dispatch]\n );\n\n const actions = useMemo<OnboardingStateActions>(\n () => ({\n updateContext,\n beginWalletConnection: (entryNetwork) =>\n guardedDispatch({\n type: 'BEGIN_WALLET_CONNECTION',\n entryNetwork,\n }),\n goToChainSelection: (options) =>\n guardedDispatch({\n type: 'GO_TO_CHAIN_SELECTION',\n resetSelection: options?.resetSelection ?? false,\n }),\n goToAmountInput: () => guardedDispatch({ type: 'GO_TO_AMOUNT_INPUT' }),\n enterTurnkeyAuth: () =>\n guardedDispatch({\n type: 'ENTER_TURNKEY_AUTH',\n }),\n enterTurnkeyPreparing: () =>\n guardedDispatch({\n type: 'ENTER_TURNKEY_PREPARING',\n }),\n returnToWalletConnection: () =>\n guardedDispatch({\n type: 'RETURN_TO_CONNECTING',\n }),\n selectChain: (selection) =>\n guardedDispatch({ type: 'SELECT_CHAIN', selection }),\n startDeposit: () => guardedDispatch({ type: 'START_DEPOSIT' }),\n markDepositSuccess: (payload) =>\n guardedDispatch({ type: 'DEPOSIT_SUCCESS', payload }),\n markDepositFailed: (message) =>\n guardedDispatch({ type: 'DEPOSIT_FAILED', message }),\n requireAuth: (options) =>\n guardedDispatch({\n type: 'GO_TO_AUTH',\n hasNordAccount: options?.hasNordAccount,\n }),\n completeFlow: (options) =>\n guardedDispatch({\n type: 'COMPLETE_FLOW',\n hasActiveSession: options?.hasActiveSession,\n hasNordAccount: options?.hasNordAccount,\n }),\n setErrorState: (error) => guardedDispatch({ type: 'SET_ERROR', error }),\n resetFlow: (overrideContext) =>\n guardedDispatch({ type: 'RESET', context: overrideContext }),\n }),\n [guardedDispatch, updateContext]\n );\n\n useEffect(() => {\n setWalletConnectCancelledHandler(() => () => {\n if (debugOverrideRef.current) {\n return;\n }\n // Reset flow when wallet connection is cancelled\n dispatch({ type: 'RESET' });\n });\n return () => setWalletConnectCancelledHandler(() => () => { });\n }, [setWalletConnectCancelledHandler, dispatch]);\n\n // Handle deposit-only flow requests (skips wallet connection for authenticated users)\n useEffect(() => {\n if (\n !depositFlowRequestId ||\n depositFlowRequestId === lastDepositRequestRef.current\n ) {\n return;\n }\n\n lastDepositRequestRef.current = depositFlowRequestId;\n\n if (!nordUser || !nordUser.sessionId) {\n logger.warn('Ignoring deposit flow request without an active Nord session');\n return;\n }\n\n logger.debug('Activating deposit-only flow', { depositFlowRequestId });\n const nextContext: OnboardingContext = {\n ...initialOnboardingContext,\n hasNordAccount: true,\n hasActiveSession: true,\n isDepositOnlyFlow: true,\n };\n\n\n\n debugOverrideRef.current = false;\n setIsDebugOverride(false);\n\n // Check if we have a pending deposit (e.g. recovery flow)\n const pending = readPendingDeposit();\n const hasWallet = !!(solanaAddress || evmAddress);\n\n dispatch({ type: 'RESET', context: nextContext });\n\n if (pending?.depositId && pending.chain) {\n const isSolana = pending.chain.toLowerCase() === 'solana';\n\n // If wallet is already connected and matches the pending deposit, go directly to DEPOSIT_PROGRESS\n const walletMatches = walletMatchesPendingDeposit(solanaAddress, evmAddress, pending);\n if (hasWallet && walletMatches) {\n logger.debug('Wallet already connected for pending deposit, going directly to DEPOSIT_PROGRESS', {\n depositId: pending.depositId,\n chain: pending.chain,\n wallet: solanaAddress || evmAddress,\n });\n\n dispatch({\n type: 'APPLY_SNAPSHOT',\n snapshot: {\n state: OnboardingStep.DEPOSIT_PROGRESS,\n context: {\n ...nextContext,\n entryNetwork: isSolana ? 'solana' : 'evm',\n selectedChain: pending.chain,\n selectedChainId: pending.chain.toLowerCase(),\n selectedChainNetwork: isSolana ? SolanaNetwork.MAINNET : null,\n },\n },\n });\n } else {\n logger.debug('Pending deposit found in deposit-only flow, directing to wallet connection', {\n depositId: pending.depositId,\n chain: pending.chain\n });\n\n dispatch({\n type: 'BEGIN_WALLET_CONNECTION',\n entryNetwork: isSolana ? 'solana' : 'evm'\n });\n }\n } else {\n dispatch({ type: 'GO_TO_CHAIN_SELECTION', resetSelection: false });\n }\n\n logger.debug('Deposit-only flow activated');\n }, [depositFlowRequestId, nordUser, dispatch, solanaAddress, evmAddress]);\n\n // Debug-only: allow external callers (e.g. UI playground) to jump to a specific view\n useEffect(() => {\n const debugTarget =\n viewMode === N1ModalViewMode.Automatic ? undefined : DEBUG_VIEW_TO_FLOW[viewMode];\n\n if (debugTarget) {\n debugOverrideRef.current = true;\n setIsDebugOverride(true);\n const snapshot: OnboardingStateSnapshot = {\n state: debugTarget.state,\n context: debugTarget.context,\n };\n dispatch({ type: 'APPLY_SNAPSHOT', snapshot });\n logger.debug(\n `Debug view override: ${N1ModalViewMode[viewMode]} → ${debugTarget.state}`\n );\n return;\n }\n\n if (debugOverrideRef.current) {\n debugOverrideRef.current = false;\n setIsDebugOverride(false);\n dispatch({\n type: 'APPLY_SNAPSHOT',\n snapshot: createInitialOnboardingState(),\n });\n logger.debug('Debug view override cleared; returning to state machine');\n }\n }, [viewMode, dispatch]);\n\n const contextValue: OnboardingStateValue = {\n state,\n context,\n isClosing,\n isDebugOverride,\n actions,\n updateContext,\n };\n\n return (\n <OnboardingStateContext.Provider value={contextValue}>\n {children}\n </OnboardingStateContext.Provider>\n );\n};\n\n/**\n * Custom hook to use the onboarding state context\n */\nexport const useOnboardingState = (): OnboardingStateValue => {\n const contextValue = useContext(OnboardingStateContext);\n\n if (contextValue === undefined) {\n throw new Error('useOnboardingState must be used within an OnboardingStateProvider');\n }\n\n return contextValue;\n};\n"]}
@@ -3,8 +3,8 @@ interface OnboardingProviderProps {
3
3
  children: React.ReactNode;
4
4
  }
5
5
  /**
6
- * A provider component that combines OnboardingStateProvider, WalletConnectionProvider, and DepositFlowProvider
7
- * into a single wrapper component for easier implementation.
6
+ * Composes all onboarding providers into a single component.
7
+ * Provides state machine, wallet connection, and deposit flow management.
8
8
  */
9
9
  export declare const StateProvider: React.FC<OnboardingProviderProps>;
10
10
  export default StateProvider;