@n1xyz/wallet-widget 0.0.35-alpha.2 → 0.0.35-alpha.20

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 (608) hide show
  1. package/dist/adapters/evm.js.map +1 -0
  2. package/dist/adapters/factory.js.map +1 -0
  3. package/dist/adapters/index.js.map +1 -0
  4. package/dist/adapters/solana.js.map +1 -0
  5. package/dist/adapters/types.js.map +1 -0
  6. package/dist/animations/N1Loader.js.map +1 -0
  7. package/dist/animations/Processing.js.map +1 -0
  8. package/dist/bridge-assist/cctp-solana.d.ts +1 -0
  9. package/dist/bridge-assist/cctp-solana.js +12 -6
  10. package/dist/bridge-assist/cctp-solana.js.map +1 -1
  11. package/dist/components/LoadingFallback.js.map +1 -0
  12. package/dist/components/Logo.js.map +1 -0
  13. package/dist/components/N1ConnectButton.js.map +1 -0
  14. package/dist/components/logos/ArbitrumLogo.js.map +1 -0
  15. package/dist/components/logos/BaseLogo.js.map +1 -0
  16. package/dist/components/logos/BeraLogo.js.map +1 -0
  17. package/dist/components/logos/BitcoinLogo.js.map +1 -0
  18. package/dist/components/logos/EthereumLogo.js.map +1 -0
  19. package/dist/components/logos/HyperliquidLogo.js.map +1 -0
  20. package/dist/components/logos/OptimismLogo.js.map +1 -0
  21. package/dist/components/logos/SolanaLogo.js.map +1 -0
  22. package/dist/components/logos/ZeroOneLogo.js.map +1 -0
  23. package/dist/components/logos/index.js.map +1 -0
  24. package/dist/{src/config → config}/chains.js +45 -15
  25. package/dist/config/chains.js.map +1 -0
  26. package/dist/config/dynamic.js.map +1 -0
  27. package/dist/config/solana.js.map +1 -0
  28. package/dist/config/turnkey.js.map +1 -0
  29. package/dist/context/n1-wallet-context.js.map +1 -0
  30. package/dist/errors/types.js.map +1 -0
  31. package/dist/features/onboarding-flow/N1WalletModal.js.map +1 -0
  32. package/dist/features/onboarding-flow/OnboardingFlow.js.map +1 -0
  33. package/dist/{src/features → features}/onboarding-flow/bridge-assist/client.js +0 -1
  34. package/dist/features/onboarding-flow/bridge-assist/client.js.map +1 -0
  35. package/dist/features/onboarding-flow/bridge-assist/config.js.map +1 -0
  36. package/dist/features/onboarding-flow/bridge-assist/index.js.map +1 -0
  37. package/dist/features/onboarding-flow/bridge-assist/types.js.map +1 -0
  38. package/dist/{src/features → features}/onboarding-flow/cctp/bridgeKitClient.d.ts +1 -0
  39. package/dist/{src/features → features}/onboarding-flow/cctp/bridgeKitClient.js +71 -12
  40. package/dist/features/onboarding-flow/cctp/bridgeKitClient.js.map +1 -0
  41. package/dist/features/onboarding-flow/cctp/clientFactory.js.map +1 -0
  42. package/dist/features/onboarding-flow/cctp/config.js.map +1 -0
  43. package/dist/features/onboarding-flow/cctp/mockCctpClient.js.map +1 -0
  44. package/dist/{src/features → features}/onboarding-flow/cctp/solanaClaim.d.ts +1 -1
  45. package/dist/features/onboarding-flow/cctp/solanaClaim.js +2 -0
  46. package/dist/features/onboarding-flow/cctp/solanaClaim.js.map +1 -0
  47. package/dist/features/onboarding-flow/cctp/types.js.map +1 -0
  48. package/dist/features/onboarding-flow/components/ChainButton.js.map +1 -0
  49. package/dist/features/onboarding-flow/components/Header.js.map +1 -0
  50. package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +1 -0
  51. package/dist/{src/features → features}/onboarding-flow/components/TransactionTable.js +6 -1
  52. package/dist/features/onboarding-flow/components/TransactionTable.js.map +1 -0
  53. package/dist/features/onboarding-flow/components/WaitingMessage.js.map +1 -0
  54. package/dist/features/onboarding-flow/components/index.js.map +1 -0
  55. package/dist/features/onboarding-flow/errors/depositError.js.map +1 -0
  56. package/dist/{src/features → features}/onboarding-flow/hooks/useBridgeDeposit.js +60 -15
  57. package/dist/features/onboarding-flow/hooks/useBridgeDeposit.js.map +1 -0
  58. package/dist/features/onboarding-flow/hooks/useDepositAuth.js.map +1 -0
  59. package/dist/features/onboarding-flow/hooks/useDepositHydration.js.map +1 -0
  60. package/dist/{src/features → features}/onboarding-flow/hooks/usePendingDepositState.js +27 -2
  61. package/dist/features/onboarding-flow/hooks/usePendingDepositState.js.map +1 -0
  62. package/dist/{src/features → features}/onboarding-flow/hooks/useSolanaDeposit.js +1 -1
  63. package/dist/features/onboarding-flow/hooks/useSolanaDeposit.js.map +1 -0
  64. package/dist/features/onboarding-flow/index.js.map +1 -0
  65. package/dist/{src/features → features}/onboarding-flow/providers/DepositFlowProvider.js +9 -4
  66. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -0
  67. package/dist/{src/features → features}/onboarding-flow/providers/OnboardingStateProvider.js +2 -4
  68. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -0
  69. package/dist/features/onboarding-flow/providers/StateProvider.js.map +1 -0
  70. package/dist/{src/features → features}/onboarding-flow/providers/WalletConnectionProvider.js +136 -74
  71. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -0
  72. package/dist/{src/features → features}/onboarding-flow/providers/debug.js +14 -1
  73. package/dist/features/onboarding-flow/providers/debug.js.map +1 -0
  74. package/dist/features/onboarding-flow/providers/index.js.map +1 -0
  75. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -0
  76. package/dist/features/onboarding-flow/screens/00-EntrySelectionScreen.js.map +1 -0
  77. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -0
  78. package/dist/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +1 -0
  79. package/dist/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +1 -0
  80. package/dist/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +1 -0
  81. package/dist/{src/features → features}/onboarding-flow/screens/05-AmountInputScreen.d.ts +1 -1
  82. package/dist/{src/features → features}/onboarding-flow/screens/05-AmountInputScreen.js +25 -6
  83. package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js.map +1 -0
  84. package/dist/{src/features → features}/onboarding-flow/screens/06-DepositProgressScreen.js +12 -21
  85. package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +1 -0
  86. package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +1 -0
  87. package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +1 -0
  88. package/dist/features/onboarding-flow/screens/09-ErrorScreen.js.map +1 -0
  89. package/dist/features/onboarding-flow/screens/index.js.map +1 -0
  90. package/dist/features/onboarding-flow/turnkey/turnkeySessionMachine.js.map +1 -0
  91. package/dist/features/onboarding-flow/types.js.map +1 -0
  92. package/dist/features/onboarding-flow/utils/bridgeUtils.js.map +1 -0
  93. package/dist/features/onboarding-flow/utils/deposit/attestationUtils.js.map +1 -0
  94. package/dist/features/onboarding-flow/utils/deposit/bridgeUtils.js.map +1 -0
  95. package/dist/{src/features → features}/onboarding-flow/utils/deposit/claimConfirmation.js +41 -7
  96. package/dist/features/onboarding-flow/utils/deposit/claimConfirmation.js.map +1 -0
  97. package/dist/{src/features → features}/onboarding-flow/utils/deposit/claimSubmission.d.ts +1 -1
  98. package/dist/{src/features → features}/onboarding-flow/utils/deposit/claimSubmission.js +58 -37
  99. package/dist/features/onboarding-flow/utils/deposit/claimSubmission.js.map +1 -0
  100. package/dist/features/onboarding-flow/utils/deposit/depositPolling.js.map +1 -0
  101. package/dist/features/onboarding-flow/utils/deposit/evmTxInterceptor.js.map +1 -0
  102. package/dist/features/onboarding-flow/utils/deposit/nonceUtils.js.map +1 -0
  103. package/dist/{src/features → features}/onboarding-flow/utils/deposit/solanaDepositTransaction.d.ts +2 -1
  104. package/dist/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js +14 -0
  105. package/dist/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js.map +1 -0
  106. package/dist/features/onboarding-flow/utils/deposit/solanaUtils.js.map +1 -0
  107. package/dist/features/onboarding-flow/utils/deposit/storage.js.map +1 -0
  108. package/dist/features/onboarding-flow/utils/deposit/walletUtils.js.map +1 -0
  109. package/dist/features/onboarding-flow/utils/depositPolling.js.map +1 -0
  110. package/dist/features/onboarding-flow/utils/explorerUrl.js.map +1 -0
  111. package/dist/features/onboarding-flow/utils/nordUtils.js.map +1 -0
  112. package/dist/features/onboarding-flow/utils/pendingDepositCookie.js.map +1 -0
  113. package/dist/features/onboarding-flow/utils/pendingDepositStorage.js.map +1 -0
  114. package/dist/features/onboarding-flow/utils/utils.js.map +1 -0
  115. package/dist/features/onboarding-flow/utils/withImageFallback.js.map +1 -0
  116. package/dist/hooks/index.js.map +1 -0
  117. package/dist/hooks/useN1Wallet.js.map +1 -0
  118. package/dist/hooks/useNordUserInitialization.js.map +1 -0
  119. package/dist/index.js.map +1 -0
  120. package/dist/main.css +1 -1
  121. package/dist/{src/providers → providers}/LazyWalletProvider.js +105 -57
  122. package/dist/providers/LazyWalletProvider.js.map +1 -0
  123. package/dist/providers/N1WalletProvider/ContextBridge.js.map +1 -0
  124. package/dist/providers/N1WalletProvider/ModalProvider.js.map +1 -0
  125. package/dist/providers/N1WalletProvider/NetworkProvider.js.map +1 -0
  126. package/dist/providers/N1WalletProvider/SessionProvider.js.map +1 -0
  127. package/dist/providers/N1WalletProvider/SigningProvider.js.map +1 -0
  128. package/dist/providers/N1WalletProvider/ThemingProvider.js.map +1 -0
  129. package/dist/providers/N1WalletProvider/index.js.map +1 -0
  130. package/dist/providers/N1WalletProvider.js.map +1 -0
  131. package/dist/providers/ShadowRootWrapper.js.map +1 -0
  132. package/dist/providers/WalletErrorBoundary.js.map +1 -0
  133. package/dist/services/bootstrap/DepositRecoveryService.js.map +1 -0
  134. package/dist/services/bootstrap/DynamicSdkService.js.map +1 -0
  135. package/dist/services/bootstrap/SessionBootstrapService.js.map +1 -0
  136. package/dist/services/bootstrap/TurnkeyBootstrapService.js.map +1 -0
  137. package/dist/services/bootstrap/index.js.map +1 -0
  138. package/dist/services/bootstrap/types.js.map +1 -0
  139. package/dist/services/storage/StorageService.js.map +1 -0
  140. package/dist/services/storage/index.js.map +1 -0
  141. package/dist/services/storage/keys.js.map +1 -0
  142. package/dist/services/storage/types.js.map +1 -0
  143. package/dist/store/index.js.map +1 -0
  144. package/dist/store/selectors.js.map +1 -0
  145. package/dist/store/slices/bootstrapSlice.js.map +1 -0
  146. package/dist/store/slices/configSlice.js.map +1 -0
  147. package/dist/store/slices/index.js.map +1 -0
  148. package/dist/store/slices/sessionSlice.js.map +1 -0
  149. package/dist/store/slices/signingSlice.js.map +1 -0
  150. package/dist/store/slices/uiSlice.js.map +1 -0
  151. package/dist/store/slices/walletSlice.js.map +1 -0
  152. package/dist/store/store.js.map +1 -0
  153. package/dist/store/subscriptions/depositPersistence.js.map +1 -0
  154. package/dist/store/subscriptions/index.js.map +1 -0
  155. package/dist/store/subscriptions/turnkeyPersistence.js.map +1 -0
  156. package/dist/store/types.js.map +1 -0
  157. package/dist/styles/cdn-fonts.js.map +1 -0
  158. package/dist/styles/embedded-main-css.js.map +1 -0
  159. package/dist/turnkey/TurnkeyProvider.js.map +1 -0
  160. package/dist/turnkey/createTurnkeyWallet.js.map +1 -0
  161. package/dist/turnkey/createWalletProvider.js.map +1 -0
  162. package/dist/turnkey/index.js.map +1 -0
  163. package/dist/turnkey/turnkeySessionMachine.js.map +1 -0
  164. package/dist/turnkey/turnkeySessionStorage.js.map +1 -0
  165. package/dist/turnkey/types.js.map +1 -0
  166. package/dist/types/wallet.js.map +1 -0
  167. package/dist/utils/address.js.map +1 -0
  168. package/dist/utils/chain.js.map +1 -0
  169. package/dist/utils/ed25519.js.map +1 -0
  170. package/dist/utils/errors.js.map +1 -0
  171. package/dist/utils/events.js.map +1 -0
  172. package/dist/utils/formatAmount.js.map +1 -0
  173. package/dist/utils/logger.js.map +1 -0
  174. package/dist/utils/shortenString.js.map +1 -0
  175. package/package.json +16 -34
  176. package/LICENSE +0 -44
  177. package/README.md +0 -197
  178. package/dist/src/adapters/evm.js.map +0 -1
  179. package/dist/src/adapters/factory.js.map +0 -1
  180. package/dist/src/adapters/index.js.map +0 -1
  181. package/dist/src/adapters/solana.js.map +0 -1
  182. package/dist/src/adapters/types.js.map +0 -1
  183. package/dist/src/animations/N1Loader.js.map +0 -1
  184. package/dist/src/animations/N1Loader.json +0 -1
  185. package/dist/src/animations/Processing.js.map +0 -1
  186. package/dist/src/animations/Processing.json +0 -1
  187. package/dist/src/components/LoadingFallback.js.map +0 -1
  188. package/dist/src/components/Logo.js.map +0 -1
  189. package/dist/src/components/N1ConnectButton.js.map +0 -1
  190. package/dist/src/components/logos/ArbitrumLogo.js.map +0 -1
  191. package/dist/src/components/logos/BaseLogo.js.map +0 -1
  192. package/dist/src/components/logos/BeraLogo.js.map +0 -1
  193. package/dist/src/components/logos/BitcoinLogo.js.map +0 -1
  194. package/dist/src/components/logos/EthereumLogo.js.map +0 -1
  195. package/dist/src/components/logos/HyperliquidLogo.js.map +0 -1
  196. package/dist/src/components/logos/OptimismLogo.js.map +0 -1
  197. package/dist/src/components/logos/SolanaLogo.js.map +0 -1
  198. package/dist/src/components/logos/ZeroOneLogo.js.map +0 -1
  199. package/dist/src/components/logos/index.js.map +0 -1
  200. package/dist/src/config/chains.js.map +0 -1
  201. package/dist/src/config/dynamic.js.map +0 -1
  202. package/dist/src/config/solana.js.map +0 -1
  203. package/dist/src/config/turnkey.js.map +0 -1
  204. package/dist/src/context/n1-wallet-context.js.map +0 -1
  205. package/dist/src/errors/types.js.map +0 -1
  206. package/dist/src/features/onboarding-flow/N1WalletModal.js.map +0 -1
  207. package/dist/src/features/onboarding-flow/OnboardingFlow.js.map +0 -1
  208. package/dist/src/features/onboarding-flow/bridge-assist/client.js.map +0 -1
  209. package/dist/src/features/onboarding-flow/bridge-assist/config.js.map +0 -1
  210. package/dist/src/features/onboarding-flow/bridge-assist/index.js.map +0 -1
  211. package/dist/src/features/onboarding-flow/bridge-assist/types.js.map +0 -1
  212. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js.map +0 -1
  213. package/dist/src/features/onboarding-flow/cctp/clientFactory.js.map +0 -1
  214. package/dist/src/features/onboarding-flow/cctp/config.js.map +0 -1
  215. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js.map +0 -1
  216. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js +0 -2
  217. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js.map +0 -1
  218. package/dist/src/features/onboarding-flow/cctp/types.js.map +0 -1
  219. package/dist/src/features/onboarding-flow/components/ChainButton.js.map +0 -1
  220. package/dist/src/features/onboarding-flow/components/Header.js.map +0 -1
  221. package/dist/src/features/onboarding-flow/components/ImageWithFallback.js.map +0 -1
  222. package/dist/src/features/onboarding-flow/components/TransactionTable.js.map +0 -1
  223. package/dist/src/features/onboarding-flow/components/WaitingMessage.js.map +0 -1
  224. package/dist/src/features/onboarding-flow/components/index.js.map +0 -1
  225. package/dist/src/features/onboarding-flow/errors/depositError.js.map +0 -1
  226. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js.map +0 -1
  227. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js.map +0 -1
  228. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js.map +0 -1
  229. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js.map +0 -1
  230. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js.map +0 -1
  231. package/dist/src/features/onboarding-flow/index.js.map +0 -1
  232. package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js.map +0 -1
  233. package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js.map +0 -1
  234. package/dist/src/features/onboarding-flow/providers/StateProvider.js.map +0 -1
  235. package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js.map +0 -1
  236. package/dist/src/features/onboarding-flow/providers/debug.js.map +0 -1
  237. package/dist/src/features/onboarding-flow/providers/index.js.map +0 -1
  238. package/dist/src/features/onboarding-flow/providers/onboardingStateMachine.js.map +0 -1
  239. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js.map +0 -1
  240. package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +0 -1
  241. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +0 -1
  242. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +0 -1
  243. package/dist/src/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +0 -1
  244. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js.map +0 -1
  245. package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +0 -1
  246. package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +0 -1
  247. package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +0 -1
  248. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js.map +0 -1
  249. package/dist/src/features/onboarding-flow/screens/index.js.map +0 -1
  250. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js.map +0 -1
  251. package/dist/src/features/onboarding-flow/types.js.map +0 -1
  252. package/dist/src/features/onboarding-flow/utils/bridgeUtils.js.map +0 -1
  253. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js.map +0 -1
  254. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js.map +0 -1
  255. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js.map +0 -1
  256. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js.map +0 -1
  257. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js.map +0 -1
  258. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js.map +0 -1
  259. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js.map +0 -1
  260. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js +0 -8
  261. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js.map +0 -1
  262. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js.map +0 -1
  263. package/dist/src/features/onboarding-flow/utils/deposit/storage.js.map +0 -1
  264. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js.map +0 -1
  265. package/dist/src/features/onboarding-flow/utils/depositPolling.js.map +0 -1
  266. package/dist/src/features/onboarding-flow/utils/explorerUrl.js.map +0 -1
  267. package/dist/src/features/onboarding-flow/utils/nordUtils.js.map +0 -1
  268. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js.map +0 -1
  269. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js.map +0 -1
  270. package/dist/src/features/onboarding-flow/utils/utils.js.map +0 -1
  271. package/dist/src/features/onboarding-flow/utils/withImageFallback.js.map +0 -1
  272. package/dist/src/hooks/index.js.map +0 -1
  273. package/dist/src/hooks/useN1Wallet.js.map +0 -1
  274. package/dist/src/hooks/useNordUserInitialization.js.map +0 -1
  275. package/dist/src/index.js.map +0 -1
  276. package/dist/src/providers/LazyWalletProvider.js.map +0 -1
  277. package/dist/src/providers/N1WalletProvider/ContextBridge.js.map +0 -1
  278. package/dist/src/providers/N1WalletProvider/ModalProvider.js.map +0 -1
  279. package/dist/src/providers/N1WalletProvider/NetworkProvider.js.map +0 -1
  280. package/dist/src/providers/N1WalletProvider/SessionProvider.js.map +0 -1
  281. package/dist/src/providers/N1WalletProvider/SigningProvider.js.map +0 -1
  282. package/dist/src/providers/N1WalletProvider/ThemingProvider.js.map +0 -1
  283. package/dist/src/providers/N1WalletProvider/index.js.map +0 -1
  284. package/dist/src/providers/N1WalletProvider.js.map +0 -1
  285. package/dist/src/providers/N1WalletProviderTemp.d.ts +0 -0
  286. package/dist/src/providers/N1WalletProviderTemp.js +0 -184
  287. package/dist/src/providers/N1WalletProviderTemp.js.map +0 -1
  288. package/dist/src/providers/ShadowRootWrapper.js.map +0 -1
  289. package/dist/src/providers/WalletErrorBoundary.js.map +0 -1
  290. package/dist/src/services/bootstrap/DepositRecoveryService.js.map +0 -1
  291. package/dist/src/services/bootstrap/DynamicSdkService.js.map +0 -1
  292. package/dist/src/services/bootstrap/SessionBootstrapService.js.map +0 -1
  293. package/dist/src/services/bootstrap/TurnkeyBootstrapService.js.map +0 -1
  294. package/dist/src/services/bootstrap/index.js.map +0 -1
  295. package/dist/src/services/bootstrap/types.js.map +0 -1
  296. package/dist/src/services/storage/StorageService.js.map +0 -1
  297. package/dist/src/services/storage/index.js.map +0 -1
  298. package/dist/src/services/storage/keys.js.map +0 -1
  299. package/dist/src/services/storage/types.js.map +0 -1
  300. package/dist/src/store/index.js.map +0 -1
  301. package/dist/src/store/selectors.js.map +0 -1
  302. package/dist/src/store/slices/bootstrapSlice.js.map +0 -1
  303. package/dist/src/store/slices/configSlice.js.map +0 -1
  304. package/dist/src/store/slices/index.js.map +0 -1
  305. package/dist/src/store/slices/sessionSlice.js.map +0 -1
  306. package/dist/src/store/slices/signingSlice.js.map +0 -1
  307. package/dist/src/store/slices/uiSlice.js.map +0 -1
  308. package/dist/src/store/slices/walletSlice.js.map +0 -1
  309. package/dist/src/store/store.js.map +0 -1
  310. package/dist/src/store/subscriptions/depositPersistence.js.map +0 -1
  311. package/dist/src/store/subscriptions/fontInjection.d.ts +0 -18
  312. package/dist/src/store/subscriptions/fontInjection.js +0 -90
  313. package/dist/src/store/subscriptions/fontInjection.js.map +0 -1
  314. package/dist/src/store/subscriptions/index.js.map +0 -1
  315. package/dist/src/store/subscriptions/turnkeyPersistence.js.map +0 -1
  316. package/dist/src/store/types.js.map +0 -1
  317. package/dist/src/styles/cdn-fonts.js.map +0 -1
  318. package/dist/src/styles/embedded-main-css.js.map +0 -1
  319. package/dist/src/turnkey/TurnkeyProvider.js.map +0 -1
  320. package/dist/src/turnkey/createTurnkeyWallet.js.map +0 -1
  321. package/dist/src/turnkey/createWalletProvider.js.map +0 -1
  322. package/dist/src/turnkey/index.js.map +0 -1
  323. package/dist/src/turnkey/turnkeySessionMachine.js.map +0 -1
  324. package/dist/src/turnkey/turnkeySessionStorage.js.map +0 -1
  325. package/dist/src/turnkey/types.js.map +0 -1
  326. package/dist/src/types/dynamic-wallets.d.ts +0 -104
  327. package/dist/src/types/dynamic-wallets.js +0 -8
  328. package/dist/src/types/dynamic-wallets.js.map +0 -1
  329. package/dist/src/types/wallet.js.map +0 -1
  330. package/dist/src/utils/address.js.map +0 -1
  331. package/dist/src/utils/chain.js.map +0 -1
  332. package/dist/src/utils/ed25519.js.map +0 -1
  333. package/dist/src/utils/errors.js.map +0 -1
  334. package/dist/src/utils/events.js.map +0 -1
  335. package/dist/src/utils/formatAmount.js.map +0 -1
  336. package/dist/src/utils/logger.js.map +0 -1
  337. package/dist/src/utils/shortenString.js.map +0 -1
  338. /package/dist/{src/adapters → adapters}/evm.d.ts +0 -0
  339. /package/dist/{src/adapters → adapters}/evm.js +0 -0
  340. /package/dist/{src/adapters → adapters}/factory.d.ts +0 -0
  341. /package/dist/{src/adapters → adapters}/factory.js +0 -0
  342. /package/dist/{src/adapters → adapters}/index.d.ts +0 -0
  343. /package/dist/{src/adapters → adapters}/index.js +0 -0
  344. /package/dist/{src/adapters → adapters}/solana.d.ts +0 -0
  345. /package/dist/{src/adapters → adapters}/solana.js +0 -0
  346. /package/dist/{src/adapters → adapters}/types.d.ts +0 -0
  347. /package/dist/{src/adapters → adapters}/types.js +0 -0
  348. /package/dist/{src/animations → animations}/N1Loader.d.ts +0 -0
  349. /package/dist/{src/animations → animations}/N1Loader.js +0 -0
  350. /package/dist/{src/animations → animations}/Processing.d.ts +0 -0
  351. /package/dist/{src/animations → animations}/Processing.js +0 -0
  352. /package/dist/{src/components → components}/LoadingFallback.d.ts +0 -0
  353. /package/dist/{src/components → components}/LoadingFallback.js +0 -0
  354. /package/dist/{src/components → components}/Logo.d.ts +0 -0
  355. /package/dist/{src/components → components}/Logo.js +0 -0
  356. /package/dist/{src/components → components}/N1ConnectButton.d.ts +0 -0
  357. /package/dist/{src/components → components}/N1ConnectButton.js +0 -0
  358. /package/dist/{src/components → components}/logos/ArbitrumLogo.d.ts +0 -0
  359. /package/dist/{src/components → components}/logos/ArbitrumLogo.js +0 -0
  360. /package/dist/{src/components → components}/logos/BaseLogo.d.ts +0 -0
  361. /package/dist/{src/components → components}/logos/BaseLogo.js +0 -0
  362. /package/dist/{src/components → components}/logos/BeraLogo.d.ts +0 -0
  363. /package/dist/{src/components → components}/logos/BeraLogo.js +0 -0
  364. /package/dist/{src/components → components}/logos/BitcoinLogo.d.ts +0 -0
  365. /package/dist/{src/components → components}/logos/BitcoinLogo.js +0 -0
  366. /package/dist/{src/components → components}/logos/EthereumLogo.d.ts +0 -0
  367. /package/dist/{src/components → components}/logos/EthereumLogo.js +0 -0
  368. /package/dist/{src/components → components}/logos/HyperliquidLogo.d.ts +0 -0
  369. /package/dist/{src/components → components}/logos/HyperliquidLogo.js +0 -0
  370. /package/dist/{src/components → components}/logos/OptimismLogo.d.ts +0 -0
  371. /package/dist/{src/components → components}/logos/OptimismLogo.js +0 -0
  372. /package/dist/{src/components → components}/logos/SolanaLogo.d.ts +0 -0
  373. /package/dist/{src/components → components}/logos/SolanaLogo.js +0 -0
  374. /package/dist/{src/components → components}/logos/ZeroOneLogo.d.ts +0 -0
  375. /package/dist/{src/components → components}/logos/ZeroOneLogo.js +0 -0
  376. /package/dist/{src/components → components}/logos/index.d.ts +0 -0
  377. /package/dist/{src/components → components}/logos/index.js +0 -0
  378. /package/dist/{src/config → config}/chains.d.ts +0 -0
  379. /package/dist/{src/config → config}/dynamic.d.ts +0 -0
  380. /package/dist/{src/config → config}/dynamic.js +0 -0
  381. /package/dist/{src/config → config}/solana.d.ts +0 -0
  382. /package/dist/{src/config → config}/solana.js +0 -0
  383. /package/dist/{src/config → config}/turnkey.d.ts +0 -0
  384. /package/dist/{src/config → config}/turnkey.js +0 -0
  385. /package/dist/{src/context → context}/n1-wallet-context.d.ts +0 -0
  386. /package/dist/{src/context → context}/n1-wallet-context.js +0 -0
  387. /package/dist/{src/errors → errors}/types.d.ts +0 -0
  388. /package/dist/{src/errors → errors}/types.js +0 -0
  389. /package/dist/{src/features → features}/onboarding-flow/N1WalletModal.d.ts +0 -0
  390. /package/dist/{src/features → features}/onboarding-flow/N1WalletModal.js +0 -0
  391. /package/dist/{src/features → features}/onboarding-flow/OnboardingFlow.d.ts +0 -0
  392. /package/dist/{src/features → features}/onboarding-flow/OnboardingFlow.js +0 -0
  393. /package/dist/{src/features → features}/onboarding-flow/bridge-assist/client.d.ts +0 -0
  394. /package/dist/{src/features → features}/onboarding-flow/bridge-assist/config.d.ts +0 -0
  395. /package/dist/{src/features → features}/onboarding-flow/bridge-assist/config.js +0 -0
  396. /package/dist/{src/features → features}/onboarding-flow/bridge-assist/index.d.ts +0 -0
  397. /package/dist/{src/features → features}/onboarding-flow/bridge-assist/index.js +0 -0
  398. /package/dist/{src/features → features}/onboarding-flow/bridge-assist/types.d.ts +0 -0
  399. /package/dist/{src/features → features}/onboarding-flow/bridge-assist/types.js +0 -0
  400. /package/dist/{src/features → features}/onboarding-flow/cctp/clientFactory.d.ts +0 -0
  401. /package/dist/{src/features → features}/onboarding-flow/cctp/clientFactory.js +0 -0
  402. /package/dist/{src/features → features}/onboarding-flow/cctp/config.d.ts +0 -0
  403. /package/dist/{src/features → features}/onboarding-flow/cctp/config.js +0 -0
  404. /package/dist/{src/features → features}/onboarding-flow/cctp/mockCctpClient.d.ts +0 -0
  405. /package/dist/{src/features → features}/onboarding-flow/cctp/mockCctpClient.js +0 -0
  406. /package/dist/{src/features → features}/onboarding-flow/cctp/types.d.ts +0 -0
  407. /package/dist/{src/features → features}/onboarding-flow/cctp/types.js +0 -0
  408. /package/dist/{src/features → features}/onboarding-flow/components/ChainButton.d.ts +0 -0
  409. /package/dist/{src/features → features}/onboarding-flow/components/ChainButton.js +0 -0
  410. /package/dist/{src/features → features}/onboarding-flow/components/Header.d.ts +0 -0
  411. /package/dist/{src/features → features}/onboarding-flow/components/Header.js +0 -0
  412. /package/dist/{src/features → features}/onboarding-flow/components/ImageWithFallback.d.ts +0 -0
  413. /package/dist/{src/features → features}/onboarding-flow/components/ImageWithFallback.js +0 -0
  414. /package/dist/{src/features → features}/onboarding-flow/components/TransactionTable.d.ts +0 -0
  415. /package/dist/{src/features → features}/onboarding-flow/components/WaitingMessage.d.ts +0 -0
  416. /package/dist/{src/features → features}/onboarding-flow/components/WaitingMessage.js +0 -0
  417. /package/dist/{src/features → features}/onboarding-flow/components/index.d.ts +0 -0
  418. /package/dist/{src/features → features}/onboarding-flow/components/index.js +0 -0
  419. /package/dist/{src/features → features}/onboarding-flow/errors/depositError.d.ts +0 -0
  420. /package/dist/{src/features → features}/onboarding-flow/errors/depositError.js +0 -0
  421. /package/dist/{src/features → features}/onboarding-flow/hooks/useBridgeDeposit.d.ts +0 -0
  422. /package/dist/{src/features → features}/onboarding-flow/hooks/useDepositAuth.d.ts +0 -0
  423. /package/dist/{src/features → features}/onboarding-flow/hooks/useDepositAuth.js +0 -0
  424. /package/dist/{src/features → features}/onboarding-flow/hooks/useDepositHydration.d.ts +0 -0
  425. /package/dist/{src/features → features}/onboarding-flow/hooks/useDepositHydration.js +0 -0
  426. /package/dist/{src/features → features}/onboarding-flow/hooks/usePendingDepositState.d.ts +0 -0
  427. /package/dist/{src/features → features}/onboarding-flow/hooks/useSolanaDeposit.d.ts +0 -0
  428. /package/dist/{src/features → features}/onboarding-flow/index.d.ts +0 -0
  429. /package/dist/{src/features → features}/onboarding-flow/index.js +0 -0
  430. /package/dist/{src/features → features}/onboarding-flow/providers/DepositFlowProvider.d.ts +0 -0
  431. /package/dist/{src/features → features}/onboarding-flow/providers/OnboardingStateProvider.d.ts +0 -0
  432. /package/dist/{src/features → features}/onboarding-flow/providers/StateProvider.d.ts +0 -0
  433. /package/dist/{src/features → features}/onboarding-flow/providers/StateProvider.js +0 -0
  434. /package/dist/{src/features → features}/onboarding-flow/providers/WalletConnectionProvider.d.ts +0 -0
  435. /package/dist/{src/features → features}/onboarding-flow/providers/debug.d.ts +0 -0
  436. /package/dist/{src/features → features}/onboarding-flow/providers/index.d.ts +0 -0
  437. /package/dist/{src/features → features}/onboarding-flow/providers/index.js +0 -0
  438. /package/dist/{src/features → features}/onboarding-flow/providers/onboardingStateMachine.d.ts +0 -0
  439. /package/dist/{src/features → features}/onboarding-flow/providers/onboardingStateMachine.js +0 -0
  440. /package/dist/{src/features → features}/onboarding-flow/screens/00-EntrySelectionScreen.d.ts +0 -0
  441. /package/dist/{src/features → features}/onboarding-flow/screens/00-EntrySelectionScreen.js +0 -0
  442. /package/dist/{src/features → features}/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +0 -0
  443. /package/dist/{src/features → features}/onboarding-flow/screens/01-ConnectWalletScreen.js +0 -0
  444. /package/dist/{src/features → features}/onboarding-flow/screens/02-TurnkeyAuthScreen.d.ts +0 -0
  445. /package/dist/{src/features → features}/onboarding-flow/screens/02-TurnkeyAuthScreen.js +0 -0
  446. /package/dist/{src/features → features}/onboarding-flow/screens/03-TurnkeyPreparingScreen.d.ts +0 -0
  447. /package/dist/{src/features → features}/onboarding-flow/screens/03-TurnkeyPreparingScreen.js +0 -0
  448. /package/dist/{src/features → features}/onboarding-flow/screens/04-ChainSelectionScreen.d.ts +0 -0
  449. /package/dist/{src/features → features}/onboarding-flow/screens/04-ChainSelectionScreen.js +0 -0
  450. /package/dist/{src/features → features}/onboarding-flow/screens/06-DepositProgressScreen.d.ts +0 -0
  451. /package/dist/{src/features → features}/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +0 -0
  452. /package/dist/{src/features → features}/onboarding-flow/screens/07-DepositSuccessScreen.js +0 -0
  453. /package/dist/{src/features → features}/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +0 -0
  454. /package/dist/{src/features → features}/onboarding-flow/screens/08-AuthLoadingScreen.js +0 -0
  455. /package/dist/{src/features → features}/onboarding-flow/screens/09-ErrorScreen.d.ts +0 -0
  456. /package/dist/{src/features → features}/onboarding-flow/screens/09-ErrorScreen.js +0 -0
  457. /package/dist/{src/features → features}/onboarding-flow/screens/index.d.ts +0 -0
  458. /package/dist/{src/features → features}/onboarding-flow/screens/index.js +0 -0
  459. /package/dist/{src/features → features}/onboarding-flow/turnkey/turnkeySessionMachine.d.ts +0 -0
  460. /package/dist/{src/features → features}/onboarding-flow/turnkey/turnkeySessionMachine.js +0 -0
  461. /package/dist/{src/features → features}/onboarding-flow/types.d.ts +0 -0
  462. /package/dist/{src/features → features}/onboarding-flow/types.js +0 -0
  463. /package/dist/{src/features → features}/onboarding-flow/utils/bridgeUtils.d.ts +0 -0
  464. /package/dist/{src/features → features}/onboarding-flow/utils/bridgeUtils.js +0 -0
  465. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/attestationUtils.d.ts +0 -0
  466. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/attestationUtils.js +0 -0
  467. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/bridgeUtils.d.ts +0 -0
  468. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/bridgeUtils.js +0 -0
  469. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/claimConfirmation.d.ts +0 -0
  470. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/depositPolling.d.ts +0 -0
  471. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/depositPolling.js +0 -0
  472. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/evmTxInterceptor.d.ts +0 -0
  473. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/evmTxInterceptor.js +0 -0
  474. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/nonceUtils.d.ts +0 -0
  475. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/nonceUtils.js +0 -0
  476. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/solanaUtils.d.ts +0 -0
  477. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/solanaUtils.js +0 -0
  478. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/storage.d.ts +0 -0
  479. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/storage.js +0 -0
  480. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/walletUtils.d.ts +0 -0
  481. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/walletUtils.js +0 -0
  482. /package/dist/{src/features → features}/onboarding-flow/utils/depositPolling.d.ts +0 -0
  483. /package/dist/{src/features → features}/onboarding-flow/utils/depositPolling.js +0 -0
  484. /package/dist/{src/features → features}/onboarding-flow/utils/explorerUrl.d.ts +0 -0
  485. /package/dist/{src/features → features}/onboarding-flow/utils/explorerUrl.js +0 -0
  486. /package/dist/{src/features → features}/onboarding-flow/utils/nordUtils.d.ts +0 -0
  487. /package/dist/{src/features → features}/onboarding-flow/utils/nordUtils.js +0 -0
  488. /package/dist/{src/features → features}/onboarding-flow/utils/pendingDepositCookie.d.ts +0 -0
  489. /package/dist/{src/features → features}/onboarding-flow/utils/pendingDepositCookie.js +0 -0
  490. /package/dist/{src/features → features}/onboarding-flow/utils/pendingDepositStorage.d.ts +0 -0
  491. /package/dist/{src/features → features}/onboarding-flow/utils/pendingDepositStorage.js +0 -0
  492. /package/dist/{src/features → features}/onboarding-flow/utils/utils.d.ts +0 -0
  493. /package/dist/{src/features → features}/onboarding-flow/utils/utils.js +0 -0
  494. /package/dist/{src/features → features}/onboarding-flow/utils/withImageFallback.d.ts +0 -0
  495. /package/dist/{src/features → features}/onboarding-flow/utils/withImageFallback.js +0 -0
  496. /package/dist/{src/hooks → hooks}/index.d.ts +0 -0
  497. /package/dist/{src/hooks → hooks}/index.js +0 -0
  498. /package/dist/{src/hooks → hooks}/useN1Wallet.d.ts +0 -0
  499. /package/dist/{src/hooks → hooks}/useN1Wallet.js +0 -0
  500. /package/dist/{src/hooks → hooks}/useNordUserInitialization.d.ts +0 -0
  501. /package/dist/{src/hooks → hooks}/useNordUserInitialization.js +0 -0
  502. /package/dist/{src/index.d.ts → index.d.ts} +0 -0
  503. /package/dist/{src/index.js → index.js} +0 -0
  504. /package/dist/{src/providers → providers}/LazyWalletProvider.d.ts +0 -0
  505. /package/dist/{src/providers → providers}/N1WalletProvider/ContextBridge.d.ts +0 -0
  506. /package/dist/{src/providers → providers}/N1WalletProvider/ContextBridge.js +0 -0
  507. /package/dist/{src/providers → providers}/N1WalletProvider/ModalProvider.d.ts +0 -0
  508. /package/dist/{src/providers → providers}/N1WalletProvider/ModalProvider.js +0 -0
  509. /package/dist/{src/providers → providers}/N1WalletProvider/NetworkProvider.d.ts +0 -0
  510. /package/dist/{src/providers → providers}/N1WalletProvider/NetworkProvider.js +0 -0
  511. /package/dist/{src/providers → providers}/N1WalletProvider/SessionProvider.d.ts +0 -0
  512. /package/dist/{src/providers → providers}/N1WalletProvider/SessionProvider.js +0 -0
  513. /package/dist/{src/providers → providers}/N1WalletProvider/SigningProvider.d.ts +0 -0
  514. /package/dist/{src/providers → providers}/N1WalletProvider/SigningProvider.js +0 -0
  515. /package/dist/{src/providers → providers}/N1WalletProvider/ThemingProvider.d.ts +0 -0
  516. /package/dist/{src/providers → providers}/N1WalletProvider/ThemingProvider.js +0 -0
  517. /package/dist/{src/providers → providers}/N1WalletProvider/index.d.ts +0 -0
  518. /package/dist/{src/providers → providers}/N1WalletProvider/index.js +0 -0
  519. /package/dist/{src/providers → providers}/N1WalletProvider.d.ts +0 -0
  520. /package/dist/{src/providers → providers}/N1WalletProvider.js +0 -0
  521. /package/dist/{src/providers → providers}/ShadowRootWrapper.d.ts +0 -0
  522. /package/dist/{src/providers → providers}/ShadowRootWrapper.js +0 -0
  523. /package/dist/{src/providers → providers}/WalletErrorBoundary.d.ts +0 -0
  524. /package/dist/{src/providers → providers}/WalletErrorBoundary.js +0 -0
  525. /package/dist/{src/services → services}/bootstrap/DepositRecoveryService.d.ts +0 -0
  526. /package/dist/{src/services → services}/bootstrap/DepositRecoveryService.js +0 -0
  527. /package/dist/{src/services → services}/bootstrap/DynamicSdkService.d.ts +0 -0
  528. /package/dist/{src/services → services}/bootstrap/DynamicSdkService.js +0 -0
  529. /package/dist/{src/services → services}/bootstrap/SessionBootstrapService.d.ts +0 -0
  530. /package/dist/{src/services → services}/bootstrap/SessionBootstrapService.js +0 -0
  531. /package/dist/{src/services → services}/bootstrap/TurnkeyBootstrapService.d.ts +0 -0
  532. /package/dist/{src/services → services}/bootstrap/TurnkeyBootstrapService.js +0 -0
  533. /package/dist/{src/services → services}/bootstrap/index.d.ts +0 -0
  534. /package/dist/{src/services → services}/bootstrap/index.js +0 -0
  535. /package/dist/{src/services → services}/bootstrap/types.d.ts +0 -0
  536. /package/dist/{src/services → services}/bootstrap/types.js +0 -0
  537. /package/dist/{src/services → services}/storage/StorageService.d.ts +0 -0
  538. /package/dist/{src/services → services}/storage/StorageService.js +0 -0
  539. /package/dist/{src/services → services}/storage/index.d.ts +0 -0
  540. /package/dist/{src/services → services}/storage/index.js +0 -0
  541. /package/dist/{src/services → services}/storage/keys.d.ts +0 -0
  542. /package/dist/{src/services → services}/storage/keys.js +0 -0
  543. /package/dist/{src/services → services}/storage/types.d.ts +0 -0
  544. /package/dist/{src/services → services}/storage/types.js +0 -0
  545. /package/dist/{src/store → store}/index.d.ts +0 -0
  546. /package/dist/{src/store → store}/index.js +0 -0
  547. /package/dist/{src/store → store}/selectors.d.ts +0 -0
  548. /package/dist/{src/store → store}/selectors.js +0 -0
  549. /package/dist/{src/store → store}/slices/bootstrapSlice.d.ts +0 -0
  550. /package/dist/{src/store → store}/slices/bootstrapSlice.js +0 -0
  551. /package/dist/{src/store → store}/slices/configSlice.d.ts +0 -0
  552. /package/dist/{src/store → store}/slices/configSlice.js +0 -0
  553. /package/dist/{src/store → store}/slices/index.d.ts +0 -0
  554. /package/dist/{src/store → store}/slices/index.js +0 -0
  555. /package/dist/{src/store → store}/slices/sessionSlice.d.ts +0 -0
  556. /package/dist/{src/store → store}/slices/sessionSlice.js +0 -0
  557. /package/dist/{src/store → store}/slices/signingSlice.d.ts +0 -0
  558. /package/dist/{src/store → store}/slices/signingSlice.js +0 -0
  559. /package/dist/{src/store → store}/slices/uiSlice.d.ts +0 -0
  560. /package/dist/{src/store → store}/slices/uiSlice.js +0 -0
  561. /package/dist/{src/store → store}/slices/walletSlice.d.ts +0 -0
  562. /package/dist/{src/store → store}/slices/walletSlice.js +0 -0
  563. /package/dist/{src/store → store}/store.d.ts +0 -0
  564. /package/dist/{src/store → store}/store.js +0 -0
  565. /package/dist/{src/store → store}/subscriptions/depositPersistence.d.ts +0 -0
  566. /package/dist/{src/store → store}/subscriptions/depositPersistence.js +0 -0
  567. /package/dist/{src/store → store}/subscriptions/index.d.ts +0 -0
  568. /package/dist/{src/store → store}/subscriptions/index.js +0 -0
  569. /package/dist/{src/store → store}/subscriptions/turnkeyPersistence.d.ts +0 -0
  570. /package/dist/{src/store → store}/subscriptions/turnkeyPersistence.js +0 -0
  571. /package/dist/{src/store → store}/types.d.ts +0 -0
  572. /package/dist/{src/store → store}/types.js +0 -0
  573. /package/dist/{src/styles → styles}/cdn-fonts.d.ts +0 -0
  574. /package/dist/{src/styles → styles}/cdn-fonts.js +0 -0
  575. /package/dist/{src/styles → styles}/embedded-main-css.d.ts +0 -0
  576. /package/dist/{src/styles → styles}/embedded-main-css.js +0 -0
  577. /package/dist/{src/turnkey → turnkey}/TurnkeyProvider.d.ts +0 -0
  578. /package/dist/{src/turnkey → turnkey}/TurnkeyProvider.js +0 -0
  579. /package/dist/{src/turnkey → turnkey}/createTurnkeyWallet.d.ts +0 -0
  580. /package/dist/{src/turnkey → turnkey}/createTurnkeyWallet.js +0 -0
  581. /package/dist/{src/turnkey → turnkey}/createWalletProvider.d.ts +0 -0
  582. /package/dist/{src/turnkey → turnkey}/createWalletProvider.js +0 -0
  583. /package/dist/{src/turnkey → turnkey}/index.d.ts +0 -0
  584. /package/dist/{src/turnkey → turnkey}/index.js +0 -0
  585. /package/dist/{src/turnkey → turnkey}/turnkeySessionMachine.d.ts +0 -0
  586. /package/dist/{src/turnkey → turnkey}/turnkeySessionMachine.js +0 -0
  587. /package/dist/{src/turnkey → turnkey}/turnkeySessionStorage.d.ts +0 -0
  588. /package/dist/{src/turnkey → turnkey}/turnkeySessionStorage.js +0 -0
  589. /package/dist/{src/turnkey → turnkey}/types.d.ts +0 -0
  590. /package/dist/{src/turnkey → turnkey}/types.js +0 -0
  591. /package/dist/{src/types → types}/wallet.d.ts +0 -0
  592. /package/dist/{src/types → types}/wallet.js +0 -0
  593. /package/dist/{src/utils → utils}/address.d.ts +0 -0
  594. /package/dist/{src/utils → utils}/address.js +0 -0
  595. /package/dist/{src/utils → utils}/chain.d.ts +0 -0
  596. /package/dist/{src/utils → utils}/chain.js +0 -0
  597. /package/dist/{src/utils → utils}/ed25519.d.ts +0 -0
  598. /package/dist/{src/utils → utils}/ed25519.js +0 -0
  599. /package/dist/{src/utils → utils}/errors.d.ts +0 -0
  600. /package/dist/{src/utils → utils}/errors.js +0 -0
  601. /package/dist/{src/utils → utils}/events.d.ts +0 -0
  602. /package/dist/{src/utils → utils}/events.js +0 -0
  603. /package/dist/{src/utils → utils}/formatAmount.d.ts +0 -0
  604. /package/dist/{src/utils → utils}/formatAmount.js +0 -0
  605. /package/dist/{src/utils → utils}/logger.d.ts +0 -0
  606. /package/dist/{src/utils → utils}/logger.js +0 -0
  607. /package/dist/{src/utils → utils}/shortenString.d.ts +0 -0
  608. /package/dist/{src/utils → utils}/shortenString.js +0 -0
@@ -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 // Note: Removed isDebugOverride check to allow navigation in debug mode\n // Debug mode now properly initializes context so navigation works\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"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateProvider.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/providers/StateProvider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAM5D;;;GAGG;AACH,MAAM,CAAC,IAAM,aAAa,GAAsC,UAAC,EAAY;QAAV,QAAQ,cAAA;IACzE,OAAO,CACL,KAAC,uBAAuB,cACtB,KAAC,wBAAwB,cACvB,KAAC,mBAAmB,cACjB,QAAQ,GACW,GACG,GACH,CAC3B,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import React from 'react';\nimport { OnboardingStateProvider } from './OnboardingStateProvider';\nimport { WalletConnectionProvider } from './WalletConnectionProvider';\nimport { DepositFlowProvider } from './DepositFlowProvider';\n\ninterface OnboardingProviderProps {\n children: React.ReactNode;\n}\n\n/**\n * Composes all onboarding providers into a single component.\n * Provides state machine, wallet connection, and deposit flow management.\n */\nexport const StateProvider: React.FC<OnboardingProviderProps> = ({ children }) => {\n return (\n <OnboardingStateProvider>\n <WalletConnectionProvider>\n <DepositFlowProvider>\n {children}\n </DepositFlowProvider>\n </WalletConnectionProvider>\n </OnboardingStateProvider>\n );\n};\n\nexport default StateProvider;\n"]}
@@ -188,33 +188,6 @@ export var WalletConnectionProvider = function (_a) {
188
188
  var prevSessionIdRef = useRef((nordUser === null || nordUser === void 0 ? void 0 : nordUser.sessionId) ? nordUser.sessionId.toString() : null);
189
189
  var prevStateRef = useRef(state);
190
190
  var reportedNordClientErrorRef = useRef(false);
191
- var clearWalletCache = useCallback(function () {
192
- if (typeof window === 'undefined') {
193
- return;
194
- }
195
- try {
196
- // Clear Solana session data
197
- if (solanaAddress) {
198
- var sessionIdKey = "n1_sessionId_".concat(solanaAddress);
199
- window.localStorage.removeItem(sessionIdKey);
200
- removeKeysFromLocalStorage(solanaAddress);
201
- clearLastDepositRecord(solanaAddress);
202
- }
203
- // Clear EVM session data (Turnkey sessions are cleared separately via clearSession())
204
- if (evmWalletAddress) {
205
- clearLastDepositRecord(evmWalletAddress);
206
- }
207
- window.localStorage.removeItem(FLOW_STATE_STORAGE_KEY);
208
- updateContext(initialOnboardingContext);
209
- logger.debug('Cleared wallet cache', {
210
- solanaAddress: solanaAddress || null,
211
- evmAddress: evmWalletAddress || null
212
- });
213
- }
214
- catch (error) {
215
- logger.warn('Failed to clear wallet cache', error);
216
- }
217
- }, [solanaAddress, evmWalletAddress, updateContext]);
218
191
  var closeDynamicWidget = useCallback(function () {
219
192
  if (!dynamicWidgetRequestedRef.current) {
220
193
  return;
@@ -233,19 +206,63 @@ export var WalletConnectionProvider = function (_a) {
233
206
  * Disconnect wallet
234
207
  */
235
208
  var disconnectWallet = useCallback(function () {
236
- var currentAddress = solanaWalletAddress || evmWalletAddress;
209
+ // Capture addresses NOW before any state changes
210
+ var solanaAddr = solanaWalletAddress || solanaAddress;
211
+ var evmAddr = evmWalletAddress;
212
+ var currentAddress = solanaAddr || evmAddr;
237
213
  logger.event(createWalletEvent(EVENTS.WALLET.DISCONNECT, {
238
214
  address: currentAddress,
239
- network: solanaWalletAddress ? 'solana' : evmWalletAddress ? 'evm' : null,
215
+ network: solanaAddr ? 'solana' : evmAddr ? 'evm' : null,
240
216
  }));
217
+ // Clear internal refs FIRST
218
+ processedWalletAddressRef.current = null;
219
+ turnkeyAuthenticatedEvmAddressRef.current = null;
220
+ previousEvmWalletAddressRef.current = null;
221
+ // Reset all store state atomically using store actions
222
+ // Do this BEFORE Dynamic handleLogOut to prevent race conditions
223
+ var storeActions = getWalletActions();
224
+ storeActions.session.resetSession(); // Clears: nordUser, sessionPubKey, walletPubKey, isConnected
225
+ storeActions.wallet.resetWallet(); // Clears: solanaWallet, evmWallet, addresses, balances
226
+ storeActions.signing.resetSigning(); // Clears: all signing functions
227
+ // Reset flow state BEFORE clearing storage
228
+ flowActions.resetFlow();
229
+ // Reset onboarding context
230
+ updateContext(initialOnboardingContext);
241
231
  try {
242
- clearWalletCache();
243
- dynamicHandleLogOut === null || dynamicHandleLogOut === void 0 ? void 0 : dynamicHandleLogOut();
244
- closeDynamicWidget();
245
- // Clear cached address from localStorage
232
+ // Clear localStorage using captured addresses (not state)
246
233
  if (typeof window !== 'undefined') {
234
+ // Clear Solana session data
235
+ if (solanaAddr) {
236
+ var sessionIdKey = "n1_sessionId_".concat(solanaAddr);
237
+ window.localStorage.removeItem(sessionIdKey);
238
+ removeKeysFromLocalStorage(solanaAddr);
239
+ clearLastDepositRecord(solanaAddr);
240
+ }
241
+ // Clear EVM session data
242
+ if (evmAddr) {
243
+ var sessionIdKey = "n1_sessionId_".concat(evmAddr);
244
+ window.localStorage.removeItem(sessionIdKey);
245
+ removeKeysFromLocalStorage(evmAddr);
246
+ clearLastDepositRecord(evmAddr);
247
+ }
248
+ // Clear cached address
247
249
  window.localStorage.removeItem('n1_last_connected_address');
250
+ // Clear flow state
251
+ window.localStorage.removeItem(FLOW_STATE_STORAGE_KEY);
248
252
  }
253
+ // Call Dynamic SDK handleLogOut AFTER our state is cleared
254
+ // Force immediate disconnect to prevent silent re-authentication
255
+ if (dynamicHandleLogOut) {
256
+ dynamicHandleLogOut();
257
+ }
258
+ closeDynamicWidget();
259
+ logger.debug('[Disconnect] Complete - all state cleared', {
260
+ solanaAddress: solanaAddr || null,
261
+ evmAddress: evmAddr || null,
262
+ storeReset: true,
263
+ flowReset: true,
264
+ localStorageCleared: true,
265
+ });
249
266
  }
250
267
  catch (error) {
251
268
  logger.logError(createWalletError('DISCONNECT_FAILED', 'Error during wallet disconnect', {
@@ -253,22 +270,11 @@ export var WalletConnectionProvider = function (_a) {
253
270
  context: { address: currentAddress },
254
271
  }));
255
272
  }
256
- // Clear internal refs
257
- processedWalletAddressRef.current = null;
258
- turnkeyAuthenticatedEvmAddressRef.current = null;
259
- previousEvmWalletAddressRef.current = null;
260
- // Reset all store state atomically using store actions
261
- // This ensures all account-related state is purged completely
262
- var storeActions = getWalletActions();
263
- storeActions.session.resetSession();
264
- storeActions.wallet.resetWallet();
265
- storeActions.signing.resetSigning();
266
273
  // Reset UI state
267
274
  setViewMode(N1ModalViewMode.Automatic);
268
275
  // Close modal via state machine (triggers closing → closed transition)
276
+ // Do NOT call onCloseComplete() here - it will be called automatically after the close animation
269
277
  closeModal();
270
- onCloseComplete();
271
- flowActions.resetFlow();
272
278
  // Note: We intentionally do NOT clear pending deposit here.
273
279
  // The deposit is preserved in localStorage and will only be shown
274
280
  // if the user reconnects with the same wallet (validated by walletMatchesPendingDeposit).
@@ -278,19 +284,20 @@ export var WalletConnectionProvider = function (_a) {
278
284
  clearSession();
279
285
  }
280
286
  }, [
281
- clearWalletCache,
287
+ solanaWalletAddress,
288
+ solanaAddress,
289
+ evmWalletAddress,
282
290
  closeDynamicWidget,
283
291
  dynamicHandleLogOut,
292
+ updateContext,
284
293
  setViewMode,
285
294
  flowActions,
286
- solanaWalletAddress,
287
- evmWalletAddress,
288
295
  turnkeyEnabled,
289
296
  closeModal,
290
- onCloseComplete,
291
297
  ]);
292
298
  useEffect(function () {
293
- setDisconnectWalletHandler(function () { return disconnectWallet; });
299
+ // Don't wrap in arrow function - pass the function directly
300
+ setDisconnectWalletHandler(disconnectWallet);
294
301
  }, [disconnectWallet, setDisconnectWalletHandler]);
295
302
  useEffect(function () {
296
303
  if (state === OnboardingStep.CONNECTING_WALLET) {
@@ -635,7 +642,7 @@ export var WalletConnectionProvider = function (_a) {
635
642
  cacheValid: isCacheValid,
636
643
  });
637
644
  var runGetUser = (function () { return __awaiter(void 0, void 0, void 0, function () {
638
- var nordAccount, cachedInside, nowInside, isCacheValidInside, getUserPromise, hasNordAccount, sessionId, sessionIdString, serverSessions, sessionMatchesServer, sessionIdKey, hasActiveSession, accountBalances, hasExistingBalance, pending, hasPendingBridgeDeposit, lastDepositRecord, isSolanaEntry, pendingCheck, hasPendingBridgeDepositCheck, error_3;
645
+ var nordAccount, cachedInside, nowInside, isCacheValidInside, getUserPromise, hasNordAccount, hasActiveSession, hasRecentDeposit, lastDeposit, depositAge, RECENT_DEPOSIT_THRESHOLD, sessionId, sessionIdString, serverSessions, sessionMatchesServer, sessionIdKey, accountBalances, hasExistingBalance, pending, hasPendingBridgeDeposit, activePending, hasActivePendingDeposit, lastDepositRecord, depositAge, SHOW_SUCCESS_THRESHOLD, shouldSkipDepositFlow, isSolanaEntry, pendingCheck, hasPendingBridgeDepositCheck, error_3;
639
646
  var _a, _b, _c, _d;
640
647
  return __generator(this, function (_e) {
641
648
  switch (_e.label) {
@@ -676,23 +683,53 @@ export var WalletConnectionProvider = function (_a) {
676
683
  _e.label = 3;
677
684
  case 3:
678
685
  hasNordAccount = nordAccount != null;
686
+ hasActiveSession = false;
687
+ hasRecentDeposit = false;
688
+ // If API says no account but we have a recent successful deposit record,
689
+ // trust the deposit record (API might not have indexed yet)
690
+ if (!hasNordAccount) {
691
+ try {
692
+ lastDeposit = readLastDepositRecord(solanaWallet.address);
693
+ if (lastDeposit) {
694
+ depositAge = Date.now() - lastDeposit.timestamp;
695
+ RECENT_DEPOSIT_THRESHOLD = 5 * 60 * 1000;
696
+ if (depositAge < RECENT_DEPOSIT_THRESHOLD) {
697
+ logger.debug('Recent successful deposit found - treating as Nord account holder', {
698
+ depositAge: Math.floor(depositAge / 1000) + 's',
699
+ transactionId: lastDeposit.transactionId,
700
+ });
701
+ hasNordAccount = true;
702
+ hasRecentDeposit = true;
703
+ // Assume session is active since we just deposited
704
+ hasActiveSession = true;
705
+ }
706
+ }
707
+ }
708
+ catch (storageError) {
709
+ logger.warn('Failed to read last deposit record', storageError);
710
+ }
711
+ }
679
712
  sessionId = currentNordUser.sessionId;
680
713
  sessionIdString = sessionId ? sessionId.toString() : null;
681
714
  serverSessions = (_c = nordAccount === null || nordAccount === void 0 ? void 0 : nordAccount.sessions) !== null && _c !== void 0 ? _c : {};
682
715
  sessionMatchesServer = sessionIdString != null && Boolean(serverSessions === null || serverSessions === void 0 ? void 0 : serverSessions[sessionIdString]);
683
- if (sessionIdString && !sessionMatchesServer) {
684
- logger.debug('Stored session is missing on Nord; clearing cached session ID');
685
- if (typeof window !== 'undefined') {
686
- try {
687
- sessionIdKey = "n1_sessionId_".concat(solanaWallet.address);
688
- window.localStorage.removeItem(sessionIdKey);
689
- }
690
- catch (storageError) {
691
- logger.warn('Failed to clear stale sessionId from localStorage', storageError);
716
+ // Only override hasActiveSession if we're not using recent deposit data
717
+ if (!hasRecentDeposit) {
718
+ hasActiveSession = sessionMatchesServer;
719
+ // Clear stale session if server doesn't recognize it
720
+ if (sessionIdString && !sessionMatchesServer) {
721
+ logger.debug('Stored session is missing on Nord; clearing cached session ID');
722
+ if (typeof window !== 'undefined') {
723
+ try {
724
+ sessionIdKey = "n1_sessionId_".concat(solanaWallet.address);
725
+ window.localStorage.removeItem(sessionIdKey);
726
+ }
727
+ catch (storageError) {
728
+ logger.warn('Failed to clear stale sessionId from localStorage', storageError);
729
+ }
692
730
  }
693
731
  }
694
732
  }
695
- hasActiveSession = sessionMatchesServer;
696
733
  accountBalances = (_d = nordAccount === null || nordAccount === void 0 ? void 0 : nordAccount.balances) !== null && _d !== void 0 ? _d : [];
697
734
  hasExistingBalance = Array.isArray(accountBalances) &&
698
735
  accountBalances.some(function (b) { return typeof (b === null || b === void 0 ? void 0 : b.amount) === 'number' && b.amount > 0; });
@@ -759,16 +796,41 @@ export var WalletConnectionProvider = function (_a) {
759
796
  if (state === OnboardingStep.CONNECTING_WALLET &&
760
797
  !context.isDepositOnlyFlow) {
761
798
  try {
762
- lastDepositRecord = readLastDepositRecord(solanaWallet.address);
763
- if (lastDepositRecord) {
764
- logger.debug('Resuming last deposit from local storage');
765
- flowActions.markDepositSuccess({
766
- transactionId: lastDepositRecord.transactionId,
767
- record: lastDepositRecord,
799
+ activePending = readPendingDeposit();
800
+ hasActivePendingDeposit = (activePending === null || activePending === void 0 ? void 0 : activePending.depositId) &&
801
+ activePending.stage !== 'solana_confirmed' &&
802
+ activePending.stage !== 'failed';
803
+ if (hasActivePendingDeposit) {
804
+ logger.debug('Skipping last deposit restore - active pending deposit exists', {
805
+ pendingStage: activePending === null || activePending === void 0 ? void 0 : activePending.stage,
806
+ pendingId: activePending === null || activePending === void 0 ? void 0 : activePending.depositId,
768
807
  });
769
- closeDynamicWidget();
770
- setIsConnecting(false);
771
- return [2 /*return*/];
808
+ }
809
+ else {
810
+ lastDepositRecord = readLastDepositRecord(solanaWallet.address);
811
+ if (lastDepositRecord) {
812
+ depositAge = Date.now() - lastDepositRecord.timestamp;
813
+ SHOW_SUCCESS_THRESHOLD = 2 * 60 * 1000;
814
+ if (depositAge < SHOW_SUCCESS_THRESHOLD) {
815
+ logger.debug('Showing recent deposit success from local storage', {
816
+ depositAge: Math.floor(depositAge / 1000) + 's',
817
+ transactionId: lastDepositRecord.transactionId,
818
+ });
819
+ flowActions.markDepositSuccess({
820
+ transactionId: lastDepositRecord.transactionId,
821
+ record: lastDepositRecord,
822
+ });
823
+ closeDynamicWidget();
824
+ setIsConnecting(false);
825
+ return [2 /*return*/];
826
+ }
827
+ else {
828
+ logger.debug('Last deposit too old to show success screen - treating as existing balance', {
829
+ depositAge: Math.floor(depositAge / 1000) + 's',
830
+ });
831
+ // Fall through to normal flow - user already saw success screen
832
+ }
833
+ }
772
834
  }
773
835
  }
774
836
  catch (error) {
@@ -779,11 +841,11 @@ export var WalletConnectionProvider = function (_a) {
779
841
  }
780
842
  if (hasNordAccount && hasActiveSession) {
781
843
  setIsConnected(true);
782
- // If user already has balance and this is NOT an explicit deposit flow,
783
- // skip the deposit screens and just close the modal
784
- if (hasExistingBalance && !context.isDepositOnlyFlow) {
785
- logger.info('[WalletConnection] User has existing Nord balance - skipping deposit flow', {
844
+ shouldSkipDepositFlow = (hasExistingBalance || hasRecentDeposit) && !context.isDepositOnlyFlow;
845
+ if (shouldSkipDepositFlow) {
846
+ logger.info('[WalletConnection] User has existing balance or recent deposit - skipping deposit flow', {
786
847
  hasExistingBalance: hasExistingBalance,
848
+ hasRecentDeposit: hasRecentDeposit,
787
849
  isDepositOnlyFlow: context.isDepositOnlyFlow,
788
850
  });
789
851
  closeDynamicWidget();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletConnectionProvider.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/providers/WalletConnectionProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useTurnkey } from '../../../turnkey';\nimport { useN1WalletContext } from '../../../hooks';\nimport { useNetwork } from '../../../providers/N1WalletProvider/NetworkProvider';\nimport { useSession } from '../../../providers/N1WalletProvider/SessionProvider';\nimport { useModal, useModalActions } from '../../../providers/N1WalletProvider/ModalProvider';\nimport { useSigningActions } from '../../../providers/N1WalletProvider/SigningProvider';\nimport { getWalletActions } from '../../../store';\nimport { logger } from '../../../utils/logger';\nimport { EVENTS, createWalletEvent } from '../../../utils/events';\nimport { createWalletError } from '../../../utils/errors';\nimport { OnboardingStep, initialOnboardingContext } from '../types';\nimport { useOnboardingState } from './OnboardingStateProvider';\nimport { clearLastDepositRecord, readLastDepositRecord, readPendingDeposit } from '../utils/deposit/storage';\nimport { N1ModalViewMode } from '../../../types/wallet';\nimport { removeKeysFromLocalStorage } from '../utils/utils';\nimport { SolanaNetwork } from '../../../config/solana';\nimport { clearSession, clearPendingDeposit } from '../../../services/bootstrap';\n\ntype TurnkeyBootstrapStatus =\n | 'idle'\n | 'authenticating'\n | 'creating'\n | 'ready'\n | 'error';\nconst WALLET_CONNECTION_STEPS = new Set<OnboardingStep>([\n OnboardingStep.CONNECTING_WALLET,\n OnboardingStep.TURNKEY_AUTH,\n OnboardingStep.TURNKEY_PREPARING,\n]);\nconst isWalletConnectionStep = (step: OnboardingStep): boolean =>\n WALLET_CONNECTION_STEPS.has(step);\n\nconst useOptionalTurnkey = () => {\n try {\n return useTurnkey();\n } catch {\n return null;\n }\n};\n\nexport const FLOW_STATE_STORAGE_KEY = 'n1_wallet_connection_flow_state';\n// Define the shape of the context value\nexport interface WalletConnectionContextValue {\n isConnecting: boolean;\n connectWallet: () => Promise<void>;\n disconnectWallet: () => void;\n turnkeyEnabled: boolean;\n turnkeyStatus: TurnkeyBootstrapStatus;\n turnkeyError: string | null;\n retryTurnkeyBootstrap: () => void;\n turnkeyAddress: string | null;\n turnkeySession: any | null;\n signTransaction?: (transaction: any) => Promise<any>;\n}\n\n// Create the context with a default value\nconst WalletConnectionContext = createContext<WalletConnectionContextValue | undefined>(undefined);\n\n// Props for the provider component\ninterface WalletConnectionProviderProps {\n children: React.ReactNode;\n}\n\n/**\n * Provider component for the wallet connection context\n */\nexport const WalletConnectionProvider: React.FC<WalletConnectionProviderProps> = ({\n children,\n}) => {\n // Use new providers for wallet/session/modal state\n const {\n solanaAddress,\n solanaWallet,\n evmWallet,\n setSolanaAddress,\n setSolanaWallet,\n setEvmWallet,\n setEvmAddress,\n setEvmChain,\n setPreferredWalletNetwork,\n setBalances,\n } = useNetwork();\n const {\n nordUser,\n dynamicSdkHasLoaded,\n turnkeyEnabled,\n setIsConnected,\n setNordUser,\n setSessionPubKey,\n setWalletPubKey,\n } = useSession();\n const {\n showLogin,\n closeModal,\n onCloseComplete,\n showDynamicWidget,\n dynamicHandleLogOut,\n setViewMode,\n } = useModal();\n\n // nord client still comes from legacy context (passed as prop)\n const { nord } = useN1WalletContext();\n // Signing setters from SigningProvider\n const { setSignMessageWithSessionKey, setSignMessageWithWalletKey, setSignTransactionWithWalletKey } = useSigningActions();\n // Disconnect handler from ModalProvider\n const { setDisconnectWalletHandler } = useModalActions();\n\n // Get flow context\n const {\n state,\n context,\n actions: flowActions,\n updateContext,\n } = useOnboardingState();\n\n const [isConnecting, setIsConnecting] = useState(false);\n const dynamicWidgetRequestedRef = useRef(false);\n const skipAutoResumeRef = useRef(false);\n const turnkeyContext = useOptionalTurnkey();\n const turnkey = turnkeyEnabled ? turnkeyContext : null;\n const previousEvmWalletAddressRef = useRef<string | null>(null);\n const turnkeyAuthenticatedEvmAddressRef = useRef<string | null>(null);\n const lastConnectedWalletRef = useRef<{ evm: string | null; solana: string | null }>({\n evm: null,\n solana: null,\n });\n const getUserCacheRef = useRef<{ address: string; result: any; timestamp: number } | null>(null);\n const getUserInFlightRef = useRef<Promise<any> | null>(null);\n const lastProcessedGetUserRef = useRef<{ nordUser: any; sessionId: string | null; address: string } | null>(null);\n const GET_USER_CACHE_TTL_MS = 10000; // Cache getUser results for 10 seconds\n\n const turnkeyStatus: TurnkeyBootstrapStatus =\n turnkey?.turnkeyStatus ?? (turnkeyEnabled ? 'idle' : 'ready');\n const turnkeyError: string | null = turnkey?.turnkeyError ?? null;\n const turnkeyAddress = turnkey?.turnkeyAddress ?? null;\n const retryTurnkeyBootstrap = turnkey?.retryTurnkeyBootstrap ?? (() => { });\n const prepareTurnkeyWallet = turnkey?.prepareTurnkeyWallet;\n\n const evmWalletAddress = useMemo(\n () => evmWallet?.address?.toLowerCase?.() ?? null,\n [evmWallet?.address]\n );\n const solanaWalletAddress = useMemo(\n () => solanaWallet?.address ?? null,\n [solanaWallet?.address]\n );\n\n // Auto-resume the flow if a wallet was restored so we don't strand users on EntrySelection\n useEffect(() => {\n if (!dynamicSdkHasLoaded) {\n return;\n }\n if (skipAutoResumeRef.current) {\n logger.debug('[WalletConnection] Skipping auto-resume after wallet switch');\n skipAutoResumeRef.current = false;\n return;\n }\n if (context.entryNetwork) {\n return;\n }\n if (state !== OnboardingStep.ENTRY_SELECTION) {\n return;\n }\n\n // Skip auto-resume if Turnkey is in error state - let the retry handle it first\n if (turnkeyEnabled && turnkeyStatus === 'error') {\n logger.debug('[WalletConnection] Skipping auto-resume - Turnkey in error state, waiting for retry');\n return;\n }\n\n const walletChain = solanaWallet?.chain\n ? String(solanaWallet.chain).toUpperCase()\n : '';\n const restoredNetwork =\n evmWallet || walletChain.startsWith('ETH') || walletChain.startsWith('ARB') || walletChain.startsWith('BASE')\n ? 'evm'\n : walletChain.startsWith('SOL')\n ? 'solana'\n : null;\n\n if (!restoredNetwork) {\n return;\n }\n\n logger.debug(\"[WalletConnection] Auto-selecting entry network from restored wallet\", {\n restoredNetwork,\n hasEvmWallet: Boolean(evmWallet),\n walletChain,\n });\n flowActions.beginWalletConnection(restoredNetwork as 'evm' | 'solana');\n }, [context.entryNetwork, dynamicSdkHasLoaded, solanaWallet, evmWallet, flowActions, state, turnkeyEnabled, turnkeyStatus]);\n\n useEffect(() => {\n const { evm: previousEvm, solana: previousSolana } = lastConnectedWalletRef.current;\n const evmSwitched = Boolean(previousEvm && evmWalletAddress && previousEvm !== evmWalletAddress);\n const solanaSwitched = Boolean(\n previousSolana && solanaWalletAddress && previousSolana !== solanaWalletAddress\n );\n\n if (evmSwitched || solanaSwitched) {\n logger.debug('Wallet switch detected; resetting onboarding flow', {\n previousEvm,\n currentEvm: evmWalletAddress,\n previousSolana,\n currentSolana: solanaWalletAddress,\n });\n skipAutoResumeRef.current = true;\n flowActions.resetFlow();\n }\n\n lastConnectedWalletRef.current = {\n evm: evmWalletAddress,\n solana: solanaWalletAddress,\n };\n }, [evmWalletAddress, solanaWalletAddress, flowActions]);\n\n useEffect(() => {\n if (!turnkeyEnabled) {\n return;\n }\n\n const previousAddress = previousEvmWalletAddressRef.current;\n if (previousAddress === evmWalletAddress) {\n return;\n }\n\n previousEvmWalletAddressRef.current = evmWalletAddress;\n turnkeyAuthenticatedEvmAddressRef.current = null;\n retryTurnkeyBootstrap();\n }, [evmWalletAddress, retryTurnkeyBootstrap, turnkeyEnabled]);\n\n // Use refs to track previous values\n const processedWalletAddressRef = useRef<string | null>(null);\n const prevNordUserRef = useRef(nordUser);\n const prevSessionIdRef = useRef<string | null>(\n nordUser?.sessionId ? nordUser.sessionId.toString() : null\n );\n const prevStateRef = useRef(state);\n const reportedNordClientErrorRef = useRef(false);\n\n\n const closeDynamicWidget = useCallback(() => {\n if (!dynamicWidgetRequestedRef.current) {\n return;\n }\n\n if (showDynamicWidget) {\n try {\n showDynamicWidget(false);\n } catch (error) {\n logger.warn('Failed to close Dynamic widget', error);\n }\n }\n\n dynamicWidgetRequestedRef.current = false;\n }, [showDynamicWidget]);\n\n /**\n * Disconnect wallet\n */\n const disconnectWallet = useCallback(() => {\n // Capture addresses NOW before any state changes\n const solanaAddr = solanaWalletAddress || solanaAddress;\n const evmAddr = evmWalletAddress;\n const currentAddress = solanaAddr || evmAddr;\n\n logger.event(createWalletEvent(EVENTS.WALLET.DISCONNECT, {\n address: currentAddress,\n network: solanaAddr ? 'solana' : evmAddr ? 'evm' : null,\n }));\n\n // Clear internal refs FIRST\n processedWalletAddressRef.current = null;\n turnkeyAuthenticatedEvmAddressRef.current = null;\n previousEvmWalletAddressRef.current = null;\n\n // Reset all store state atomically using store actions\n // Do this BEFORE Dynamic handleLogOut to prevent race conditions\n const storeActions = getWalletActions();\n storeActions.session.resetSession(); // Clears: nordUser, sessionPubKey, walletPubKey, isConnected\n storeActions.wallet.resetWallet(); // Clears: solanaWallet, evmWallet, addresses, balances\n storeActions.signing.resetSigning(); // Clears: all signing functions\n\n // Reset flow state BEFORE clearing storage\n flowActions.resetFlow();\n\n // Reset onboarding context\n updateContext(initialOnboardingContext);\n\n try {\n // Clear localStorage using captured addresses (not state)\n if (typeof window !== 'undefined') {\n // Clear Solana session data\n if (solanaAddr) {\n const sessionIdKey = `n1_sessionId_${solanaAddr}`;\n window.localStorage.removeItem(sessionIdKey);\n removeKeysFromLocalStorage(solanaAddr);\n clearLastDepositRecord(solanaAddr);\n }\n\n // Clear EVM session data\n if (evmAddr) {\n const sessionIdKey = `n1_sessionId_${evmAddr}`;\n window.localStorage.removeItem(sessionIdKey);\n removeKeysFromLocalStorage(evmAddr);\n clearLastDepositRecord(evmAddr);\n }\n\n // Clear cached address\n window.localStorage.removeItem('n1_last_connected_address');\n\n // Clear flow state\n window.localStorage.removeItem(FLOW_STATE_STORAGE_KEY);\n }\n\n // Call Dynamic SDK handleLogOut AFTER our state is cleared\n // Force immediate disconnect to prevent silent re-authentication\n if (dynamicHandleLogOut) {\n dynamicHandleLogOut();\n }\n closeDynamicWidget();\n\n logger.debug('[Disconnect] Complete - all state cleared', {\n solanaAddress: solanaAddr || null,\n evmAddress: evmAddr || null,\n storeReset: true,\n flowReset: true,\n localStorageCleared: true,\n });\n } catch (error) {\n logger.logError(createWalletError('DISCONNECT_FAILED', 'Error during wallet disconnect', {\n cause: error instanceof Error ? error : undefined,\n context: { address: currentAddress },\n }));\n }\n\n // Reset UI state\n setViewMode(N1ModalViewMode.Automatic);\n // Close modal via state machine (triggers closing → closed transition)\n // Do NOT call onCloseComplete() here - it will be called automatically after the close animation\n closeModal();\n // Note: We intentionally do NOT clear pending deposit here.\n // The deposit is preserved in localStorage and will only be shown\n // if the user reconnects with the same wallet (validated by walletMatchesPendingDeposit).\n if (turnkeyEnabled) {\n // Pass no address to unconditionally clear the session\n // (passing evmWalletAddress would fail if stored session belongs to different wallet)\n clearSession();\n }\n }, [\n solanaWalletAddress,\n solanaAddress,\n evmWalletAddress,\n closeDynamicWidget,\n dynamicHandleLogOut,\n updateContext,\n setViewMode,\n flowActions,\n turnkeyEnabled,\n closeModal,\n ]);\n\n useEffect(() => {\n // Don't wrap in arrow function - pass the function directly\n setDisconnectWalletHandler(disconnectWallet);\n }, [disconnectWallet, setDisconnectWalletHandler]);\n\n useEffect(() => {\n if (state === OnboardingStep.CONNECTING_WALLET) {\n processedWalletAddressRef.current = null;\n }\n }, [state]);\n\n useEffect(() => {\n if (\n !turnkeyEnabled ||\n !evmWallet ||\n context.entryNetwork !== 'evm' ||\n !prepareTurnkeyWallet ||\n turnkeyStatus !== 'idle'\n ) {\n return;\n }\n\n prepareTurnkeyWallet().catch((error) => {\n logger.logError(createWalletError('CONNECT_FAILED', 'Turnkey bootstrap failed', {\n cause: error instanceof Error ? error : undefined,\n }));\n });\n }, [\n context.entryNetwork,\n evmWallet,\n logger,\n prepareTurnkeyWallet,\n turnkeyEnabled,\n turnkeyStatus,\n ]);\n\n useEffect(() => {\n setPreferredWalletNetwork(context.entryNetwork);\n }, [context.entryNetwork, setPreferredWalletNetwork]);\n\n useEffect(() => {\n const inTurnkeyState =\n state === OnboardingStep.TURNKEY_AUTH ||\n state === OnboardingStep.TURNKEY_PREPARING;\n\n // If we are in DEPOSIT_PROGRESS (e.g. recovering a bridge deposit),\n // do not allow Turnkey status updates to hijack the view.\n // Authentication happens in the background.\n if (state === OnboardingStep.DEPOSIT_PROGRESS) {\n return;\n }\n\n if (!turnkeyEnabled || context.entryNetwork === 'solana') {\n if (inTurnkeyState) {\n flowActions.returnToWalletConnection();\n }\n return;\n }\n\n if (turnkeyStatus === 'authenticating') {\n if (state !== OnboardingStep.TURNKEY_AUTH) {\n flowActions.enterTurnkeyAuth();\n }\n return;\n }\n\n if (turnkeyStatus === 'creating') {\n if (state !== OnboardingStep.TURNKEY_PREPARING) {\n flowActions.enterTurnkeyPreparing();\n }\n return;\n }\n\n if (\n turnkeyStatus === 'ready' &&\n (state === OnboardingStep.TURNKEY_AUTH || state === OnboardingStep.TURNKEY_PREPARING)\n ) {\n // When bootstrap completes, leave the Turnkey-specific steps.\n flowActions.goToChainSelection();\n return;\n }\n\n if (turnkeyStatus === 'error') {\n // Only set error state if we're actively in the Turnkey flow, not if user has reset\n const isInTurnkeyFlow =\n state === OnboardingStep.CONNECTING_WALLET ||\n state === OnboardingStep.TURNKEY_AUTH ||\n state === OnboardingStep.TURNKEY_PREPARING;\n\n if (isInTurnkeyFlow) {\n logger.logError(createWalletError('CONNECT_FAILED', turnkeyError || 'Turnkey initialization failed'));\n flowActions.setErrorState(new Error(turnkeyError || 'Turnkey initialization failed'));\n }\n return;\n }\n }, [turnkeyStatus, turnkeyEnabled, flowActions, state, context.entryNetwork]);\n\n // If the user picked the EVM path but Dynamic silently restored a Solana session,\n // clear it so the widget can prompt for an EVM wallet instead of hijacking with Phantom.\n useEffect(() => {\n if (context.entryNetwork !== 'evm') {\n return;\n }\n if (!solanaWallet) {\n return;\n }\n const walletChain = solanaWallet.chain\n ? String(solanaWallet.chain).toUpperCase()\n : '';\n const isTurnkeySolana = solanaWallet?.type === 'turnkey' && walletChain.startsWith('SOL');\n const isSolanaWallet = walletChain.startsWith('SOL');\n if (!isSolanaWallet || isTurnkeySolana) {\n return;\n }\n\n logger.debug('Solana wallet restored during EVM entry; clearing Dynamic session');\n if (dynamicHandleLogOut) {\n dynamicHandleLogOut().catch((error: unknown) => {\n logger.warn('Failed to log out of restored Solana wallet', error);\n });\n }\n setSolanaWallet(null);\n setSolanaAddress('');\n setEvmWallet(null);\n setEvmAddress(null);\n setEvmChain(null);\n }, [\n context.entryNetwork,\n dynamicHandleLogOut,\n solanaWallet,\n logger,\n setSolanaAddress,\n setSolanaWallet,\n setEvmAddress,\n setEvmChain,\n setEvmWallet,\n ]);\n\n /**\n * Connect wallet using Dynamic widget\n */\n const connectWallet = useCallback(async () => {\n if (isConnecting || !showDynamicWidget || !dynamicSdkHasLoaded) return;\n\n const wantsEvm = context.entryNetwork === 'evm';\n const walletChain = solanaWallet?.chain ? String(solanaWallet.chain).toUpperCase() : '';\n const isTurnkeySolana =\n solanaWallet?.type === 'turnkey' && walletChain.startsWith('SOL');\n const hasSolanaWallet = walletChain.startsWith('SOL') && !isTurnkeySolana;\n const hasEvmWallet = Boolean(evmWalletAddress);\n\n if (wantsEvm && hasSolanaWallet && dynamicHandleLogOut) {\n // If a Solana wallet was silently restored but the user chose the EVM path,\n // clear the stale session so they can pick an EVM wallet.\n try {\n await dynamicHandleLogOut();\n } catch (error) {\n logger.warn('Failed to log out of existing Solana wallet before EVM connect', error);\n }\n }\n\n const hasMatchingWallet =\n (context.entryNetwork === 'solana' &&\n (walletChain.startsWith('SOL') || isTurnkeySolana)) ||\n (context.entryNetwork === 'evm' && hasEvmWallet);\n\n if (hasMatchingWallet) {\n logger.debug('Wallet already available for selected entry; skipping widget open', {\n entryNetwork: context.entryNetwork,\n hasEvmWallet,\n turnkeyEnabled,\n turnkeyStatus,\n });\n // Wallet is already connected - need to proceed to next step\n // For EVM with Turnkey: the turnkeyStatus effect will handle transition\n // For Solana: need to trigger chain selection\n if (context.entryNetwork === 'solana') {\n flowActions.goToChainSelection();\n }\n // For EVM: Turnkey bootstrap should already be running via TurnkeyProvider effect\n // If it's not, we may need to trigger it - log current status for debugging\n if (context.entryNetwork === 'evm' && turnkeyEnabled) {\n logger.debug('EVM wallet connected, waiting for Turnkey bootstrap', {\n turnkeyStatus,\n turnkeyError,\n });\n }\n return;\n }\n\n setIsConnecting(true);\n logger.event(createWalletEvent(EVENTS.WALLET.CONNECT_START, {\n network: context.entryNetwork,\n }));\n\n dynamicWidgetRequestedRef.current = true;\n\n try {\n await showDynamicWidget(true);\n logger.debug('Dynamic widget shown');\n } catch (error) {\n dynamicWidgetRequestedRef.current = false;\n setIsConnecting(false);\n logger.logError(createWalletError('CONNECT_FAILED', 'Dynamic widget could not be shown', {\n cause: error instanceof Error ? error : undefined,\n context: { network: context.entryNetwork },\n }));\n }\n }, [\n context.entryNetwork,\n dynamicHandleLogOut,\n dynamicSdkHasLoaded,\n solanaWallet,\n evmWalletAddress,\n isConnecting,\n showDynamicWidget,\n ]);\n\n useEffect(() => {\n if (!dynamicSdkHasLoaded) {\n return;\n }\n\n if (nord) {\n reportedNordClientErrorRef.current = false;\n return;\n }\n\n if (typeof nord === 'undefined') {\n // Nord client is still initializing; wait before reporting an error\n return;\n }\n\n if (reportedNordClientErrorRef.current) {\n setIsConnecting(false);\n return;\n }\n\n reportedNordClientErrorRef.current = true;\n setIsConnecting(false);\n flowActions.setErrorState(\n new Error(\n 'The client could not be initialized. Verify your Nord environment variables and try again.'\n )\n );\n }, [dynamicSdkHasLoaded, nord, flowActions]);\n\n // Process nordUser changes\n useEffect(() => {\n if (!dynamicSdkHasLoaded || !nordUser || !solanaWallet) return;\n\n // Early exit if we have a pending bridge deposit - don't run any transition logic\n const pendingEarlyCheck = readPendingDeposit();\n logger.info('[WalletConnection] Early exit check for pending deposit', {\n pendingEarlyCheck,\n pendingStringified: JSON.stringify(pendingEarlyCheck),\n hasPendingEarly: !!pendingEarlyCheck,\n currentState: state,\n });\n\n const hasPendingBridgeEarly = pendingEarlyCheck &&\n (pendingEarlyCheck.stage === 'bridge_submitted' ||\n pendingEarlyCheck.stage === 'bridge_confirmed' ||\n (pendingEarlyCheck.stage === 'failed' && pendingEarlyCheck.tx)) &&\n pendingEarlyCheck.tx;\n\n logger.info('[WalletConnection] Early exit check result', {\n hasPendingBridgeEarly,\n pendingStage: pendingEarlyCheck?.stage,\n pendingTx: !!pendingEarlyCheck?.tx,\n pendingTxValue: pendingEarlyCheck?.tx,\n });\n\n if (hasPendingBridgeEarly) {\n logger.info('[WalletConnection] Effect early exit: pending bridge deposit detected, skipping all logic', {\n pendingStage: pendingEarlyCheck.stage,\n pendingTx: pendingEarlyCheck.tx,\n currentState: state,\n });\n return;\n }\n\n const currentNordUser = nordUser;\n const prevNordUser = prevNordUserRef.current;\n const currentSessionId = currentNordUser.sessionId\n ? currentNordUser.sessionId.toString()\n : null;\n const prevSessionId = prevSessionIdRef.current;\n const walletAddress = solanaWallet.address ?? null;\n const hasProcessedWallet =\n walletAddress != null && processedWalletAddressRef.current === walletAddress;\n\n // Early return if nothing meaningful changed\n if (\n currentNordUser === prevNordUser &&\n currentSessionId === prevSessionId &&\n hasProcessedWallet\n ) {\n return;\n }\n\n // Check cache FIRST (synchronously) before starting any async work\n const cached = getUserCacheRef.current;\n const now = Date.now();\n const isCacheValid = cached &&\n cached.address === walletAddress &&\n (now - cached.timestamp) < GET_USER_CACHE_TTL_MS;\n\n // Check if we've already processed this exact combination (prevents rapid re-processing)\n const lastProcessed = lastProcessedGetUserRef.current;\n const isSameState = lastProcessed &&\n lastProcessed.nordUser === currentNordUser &&\n lastProcessed.sessionId === currentSessionId &&\n lastProcessed.address === walletAddress;\n\n // If we have valid cache AND same state, skip entirely\n if (isCacheValid && isSameState) {\n logger.debug('NordUser changed, cache valid and same state, skipping duplicate processing', {\n cacheAge: `${now - cached.timestamp}ms`,\n });\n return;\n }\n\n // If we have valid cache but different state, we can still use cache but need to process\n // If we have in-flight request, wait for it instead of starting new one\n if (getUserInFlightRef.current && !isCacheValid) {\n logger.debug('NordUser changed, getUser already in flight, skipping duplicate call');\n return;\n }\n\n // Prevent concurrent execution\n if (getUserInFlightRef.current) {\n logger.debug('NordUser changed, getUser already in flight, skipping');\n return;\n }\n\n prevNordUserRef.current = currentNordUser;\n prevSessionIdRef.current = currentSessionId;\n if (walletAddress) {\n // Clear getUser cache if wallet address changed\n const isNewWallet = processedWalletAddressRef.current !== walletAddress;\n if (isNewWallet) {\n getUserCacheRef.current = null;\n logger.debug('Wallet address changed, cleared getUser cache');\n\n // Log wallet connect success when a new wallet is processed\n const isSolana = solanaWallet?.chain ? String(solanaWallet.chain).toUpperCase().startsWith('SOL') : false;\n logger.event(createWalletEvent(EVENTS.WALLET.CONNECT_SUCCESS, {\n address: walletAddress,\n network: isSolana ? 'solana' : 'evm',\n }));\n\n // Clear orphaned pending deposit if it belongs to a different wallet\n const pending = readPendingDeposit();\n if (pending && pending.wallet) {\n const pendingWalletLower = pending.wallet.toLowerCase();\n const currentWalletLower = walletAddress.toLowerCase();\n if (pendingWalletLower !== currentWalletLower) {\n clearPendingDeposit();\n logger.debug('Cleared orphaned pending deposit from different wallet', {\n pendingWallet: pending.wallet.substring(0, 10) + '...',\n currentWallet: walletAddress.substring(0, 10) + '...',\n });\n }\n }\n }\n processedWalletAddressRef.current = walletAddress;\n }\n\n // Mark this combination as being processed\n lastProcessedGetUserRef.current = {\n nordUser: currentNordUser,\n sessionId: currentSessionId,\n address: walletAddress ?? '',\n };\n\n // Only run if we have processed a wallet\n if (solanaWallet) {\n logger.debug('NordUser changed, checking account status', {\n sessionIdChanged: currentSessionId !== prevSessionId,\n nordUserChanged: currentNordUser !== prevNordUser,\n walletChanged: processedWalletAddressRef.current !== walletAddress,\n hasCache: Boolean(cached),\n cacheValid: isCacheValid,\n });\n\n const runGetUser = (async () => {\n try {\n if (!nord) {\n throw new Error('Nord client is not available.');\n }\n\n let nordAccount;\n\n // Check cache again inside async function (in case it was set by concurrent call)\n const cachedInside = getUserCacheRef.current;\n const nowInside = Date.now();\n const isCacheValidInside = cachedInside &&\n cachedInside.address === solanaWallet.address &&\n (nowInside - cachedInside.timestamp) < GET_USER_CACHE_TTL_MS;\n\n if (isCacheValidInside) {\n logger.debug('NordUser changed, using cached getUser result (checked inside async)', {\n cacheAge: `${nowInside - cachedInside.timestamp}ms`,\n });\n nordAccount = cachedInside.result;\n } else {\n logger.debug('NordUser changed, calling getUser (cache miss or expired)', {\n hasCache: Boolean(cachedInside),\n cacheAddress: cachedInside?.address?.substring(0, 10) + \"...\",\n currentAddress: solanaWallet.address?.substring(0, 10) + \"...\",\n });\n const getUserPromise = nord.getUser({ pubkey: solanaWallet.address });\n getUserInFlightRef.current = getUserPromise;\n nordAccount = await getUserPromise;\n\n // Cache the result immediately\n getUserCacheRef.current = {\n address: solanaWallet.address,\n result: nordAccount,\n timestamp: Date.now(),\n };\n }\n\n let hasNordAccount = nordAccount != null;\n let hasActiveSession = false;\n let hasRecentDeposit = false;\n\n // If API says no account but we have a recent successful deposit record,\n // trust the deposit record (API might not have indexed yet)\n if (!hasNordAccount) {\n try {\n const lastDeposit = readLastDepositRecord(solanaWallet.address);\n\n if (lastDeposit) {\n const depositAge = Date.now() - lastDeposit.timestamp;\n const RECENT_DEPOSIT_THRESHOLD = 5 * 60 * 1000; // 5 minutes\n if (depositAge < RECENT_DEPOSIT_THRESHOLD) {\n logger.debug('Recent successful deposit found - treating as Nord account holder', {\n depositAge: Math.floor(depositAge / 1000) + 's',\n transactionId: lastDeposit.transactionId,\n });\n hasNordAccount = true;\n hasRecentDeposit = true;\n // Assume session is active since we just deposited\n hasActiveSession = true;\n }\n }\n } catch (storageError) {\n logger.warn('Failed to read last deposit record', storageError);\n }\n }\n\n // Always check API sessions, but only apply them if we're not using recent deposit data\n const sessionId = currentNordUser.sessionId;\n const sessionIdString = sessionId ? sessionId.toString() : null;\n const serverSessions = nordAccount?.sessions ?? {};\n const sessionMatchesServer =\n sessionIdString != null && Boolean(serverSessions?.[sessionIdString]);\n\n // Only override hasActiveSession if we're not using recent deposit data\n if (!hasRecentDeposit) {\n hasActiveSession = sessionMatchesServer;\n\n // Clear stale session if server doesn't recognize it\n if (sessionIdString && !sessionMatchesServer) {\n logger.debug('Stored session is missing on Nord; clearing cached session ID');\n if (typeof window !== 'undefined') {\n try {\n const sessionIdKey = `n1_sessionId_${solanaWallet.address}`;\n window.localStorage.removeItem(sessionIdKey);\n } catch (storageError) {\n logger.warn('Failed to clear stale sessionId from localStorage', storageError);\n }\n }\n }\n }\n\n // Check if the Nord account has any existing token balance\n // nordAccount.balances is an array of { tokenId, token, amount }\n const accountBalances = (nordAccount as any)?.balances ?? [];\n const hasExistingBalance = Array.isArray(accountBalances) &&\n accountBalances.some((b: any) => typeof b?.amount === 'number' && b.amount > 0);\n\n updateContext({ hasNordAccount, hasActiveSession, hasExistingBalance });\n\n logger.debug('Nord account check', {\n walletAddress: solanaWallet.address,\n hasNordAccount,\n hasActiveSession,\n hasExistingBalance,\n balanceCount: accountBalances.length,\n sessionId: sessionIdString,\n serverSessions: Object.keys(serverSessions ?? {}),\n });\n\n // Early check for pending bridge deposits - prevent any transitions if we need to resume\n const pending = readPendingDeposit();\n logger.info('[WalletConnection] Raw pending deposit check', {\n pending,\n pendingStringified: JSON.stringify(pending),\n hasPending: !!pending,\n });\n\n const hasPendingBridgeDeposit = pending &&\n (pending.stage === 'bridge_submitted' ||\n pending.stage === 'bridge_confirmed' ||\n (pending.stage === 'failed' && pending.tx)) &&\n pending.tx;\n\n logger.info('[WalletConnection] Checking for pending bridge deposit', {\n hasPending: !!pending,\n pendingStage: pending?.stage,\n pendingTx: !!pending?.tx,\n pendingTxValue: pending?.tx,\n hasPendingBridgeDeposit,\n currentState: state,\n stageMatch: pending ? (pending.stage === 'bridge_submitted' || pending.stage === 'bridge_confirmed' || (pending.stage === 'failed' && pending.tx)) : false,\n stageCheck: pending ? {\n isBridgeSubmitted: pending.stage === 'bridge_submitted',\n isBridgeConfirmed: pending.stage === 'bridge_confirmed',\n isFailedWithTx: pending.stage === 'failed' && pending.tx,\n } : null,\n });\n\n if (hasPendingBridgeDeposit) {\n // Only transition to DEPOSIT_PROGRESS if solanaWallet is ready (needed for claim signing)\n if (!solanaWallet) {\n logger.info('[WalletConnection] Pending bridge deposit detected but solanaWallet not ready - waiting', {\n pendingStage: pending.stage,\n pendingTx: pending.tx,\n currentState: state,\n hasSolanaWallet: !!solanaWallet,\n });\n return;\n }\n\n logger.info('[WalletConnection] Pending bridge deposit detected, transitioning to DEPOSIT_PROGRESS', {\n pendingStage: pending.stage,\n pendingTx: pending.tx,\n currentState: state,\n hasSolanaWallet: !!solanaWallet,\n });\n closeDynamicWidget();\n setIsConnecting(false);\n // Transition directly to DEPOSIT_PROGRESS\n if (state !== OnboardingStep.DEPOSIT_PROGRESS) {\n flowActions.startDeposit();\n }\n return;\n }\n\n if (\n state === OnboardingStep.CONNECTING_WALLET &&\n !context.isDepositOnlyFlow\n ) {\n try {\n // Only restore last deposit if there's NO active pending deposit.\n // If there's a pending deposit in progress, let the deposit flow handle it\n // to avoid race conditions with finalizeBridgeSuccess.\n const activePending = readPendingDeposit();\n const hasActivePendingDeposit = activePending?.depositId &&\n activePending.stage !== 'solana_confirmed' &&\n activePending.stage !== 'failed';\n\n if (hasActivePendingDeposit) {\n logger.debug('Skipping last deposit restore - active pending deposit exists', {\n pendingStage: activePending?.stage,\n pendingId: activePending?.depositId,\n });\n } else {\n const lastDepositRecord = readLastDepositRecord(solanaWallet.address);\n if (lastDepositRecord) {\n // Only show success screen if deposit was recent (within 2 minutes)\n // This prevents showing the success screen every time user reconnects\n const depositAge = Date.now() - lastDepositRecord.timestamp;\n const SHOW_SUCCESS_THRESHOLD = 2 * 60 * 1000; // 2 minutes\n\n if (depositAge < SHOW_SUCCESS_THRESHOLD) {\n logger.debug('Showing recent deposit success from local storage', {\n depositAge: Math.floor(depositAge / 1000) + 's',\n transactionId: lastDepositRecord.transactionId,\n });\n flowActions.markDepositSuccess({\n transactionId: lastDepositRecord.transactionId,\n record: lastDepositRecord,\n });\n closeDynamicWidget();\n setIsConnecting(false);\n return;\n } else {\n logger.debug('Last deposit too old to show success screen - treating as existing balance', {\n depositAge: Math.floor(depositAge / 1000) + 's',\n });\n // Fall through to normal flow - user already saw success screen\n }\n }\n }\n } catch (error) {\n logger.logError(createWalletError('ADAPTER_ERROR', 'Error restoring last deposit record', {\n cause: error instanceof Error ? error : undefined,\n }));\n }\n }\n\n if (hasNordAccount && hasActiveSession) {\n setIsConnected(true);\n\n // If user already has balance OR just deposited recently, and this is NOT an explicit deposit flow,\n // skip the deposit screens and just close the modal\n const shouldSkipDepositFlow = (hasExistingBalance || hasRecentDeposit) && !context.isDepositOnlyFlow;\n\n if (shouldSkipDepositFlow) {\n logger.info('[WalletConnection] User has existing balance or recent deposit - skipping deposit flow', {\n hasExistingBalance,\n hasRecentDeposit,\n isDepositOnlyFlow: context.isDepositOnlyFlow,\n });\n closeDynamicWidget();\n setIsConnecting(false);\n flowActions.completeFlow({\n hasNordAccount: true,\n hasActiveSession: true,\n });\n return;\n }\n }\n\n const isSolanaEntry = context.entryNetwork === 'solana';\n\n if (!hasNordAccount && isSolanaEntry) {\n // If we have a pending deposit, allow the onboarding state to handle the flow\n // instead of forcing selection\n // Note: hasPendingBridgeDeposit is already checked earlier, but double-check here for safety\n if (state === OnboardingStep.DEPOSIT_PROGRESS || hasPendingBridgeDeposit) {\n logger.debug('Pending deposit detected, skipping direct transition to Solana amount entry', {\n state,\n hasPendingBridgeDeposit,\n });\n closeDynamicWidget();\n setIsConnecting(false);\n return;\n }\n\n logger.debug('Proceeding directly to Solana amount entry');\n flowActions.selectChain({\n id: 'solana',\n name: 'Solana',\n network: SolanaNetwork.MAINNET,\n });\n closeDynamicWidget();\n setIsConnecting(false);\n return;\n }\n\n closeDynamicWidget();\n\n // Transition immediately without setTimeout\n try {\n // Double-check for pending bridge deposits before transitioning\n // (This is a safety net in case the earlier check didn't catch it)\n const pendingCheck = readPendingDeposit();\n const hasPendingBridgeDepositCheck = pendingCheck &&\n (pendingCheck.stage === 'bridge_submitted' ||\n pendingCheck.stage === 'bridge_confirmed' ||\n (pendingCheck.stage === 'failed' && pendingCheck.tx)) &&\n pendingCheck.tx;\n\n if (state === OnboardingStep.DEPOSIT_PROGRESS || state === OnboardingStep.DEPOSIT_SUCCESS || hasPendingBridgeDepositCheck) {\n logger.info('[WalletConnection] Skipping transition to CHAIN_SELECTION', {\n reason: state === OnboardingStep.DEPOSIT_PROGRESS ? 'state is DEPOSIT_PROGRESS'\n : state === OnboardingStep.DEPOSIT_SUCCESS ? 'state is DEPOSIT_SUCCESS'\n : 'pending bridge deposit detected',\n state,\n hasPendingBridgeDepositCheck,\n pendingStage: pendingCheck?.stage,\n });\n } else {\n logger.debug('Attempting transition to ' + OnboardingStep.CHAIN_SELECTION);\n flowActions.goToChainSelection();\n logger.debug('Transition to ' + OnboardingStep.CHAIN_SELECTION + ' completed');\n }\n } catch (error) {\n logger.logError(createWalletError('ADAPTER_ERROR', 'Error during transition', {\n cause: error instanceof Error ? error : undefined,\n }));\n } finally {\n setIsConnecting(false);\n }\n } catch (error) {\n logger.logError(createWalletError('ADAPTER_ERROR', 'Error checking account status', {\n cause: error instanceof Error ? error : undefined,\n }));\n closeDynamicWidget();\n setIsConnecting(false);\n } finally {\n getUserInFlightRef.current = null;\n }\n })();\n\n getUserInFlightRef.current = runGetUser;\n }\n }, [\n nord,\n nordUser,\n solanaWallet,\n updateContext,\n flowActions,\n setIsConnected,\n state,\n dynamicSdkHasLoaded,\n context.isDepositOnlyFlow,\n // Removed nordUser?.sessionId - it's redundant since nordUser is already in deps\n closeDynamicWidget,\n context.entryNetwork,\n ]);\n\n\n\n\n // Handle Dynamic widget closing while still connecting.\n // If the Nord modal is gone, make sure we reset any pending Dynamic state\n // so a subsequent open can trigger the widget again.\n useEffect(() => {\n if (showLogin) {\n return;\n }\n\n if (dynamicWidgetRequestedRef.current) {\n closeDynamicWidget();\n }\n\n if (isConnecting) {\n logger.debug('Wallet modal closed before connection completed; resetting state');\n setIsConnecting(false);\n }\n }, [isConnecting, showLogin, closeDynamicWidget]);\n\n // Handle connecting state changes in a separate effect\n useEffect(() => {\n const currentState = state;\n const prevState = prevStateRef.current;\n\n // Only run if state has changed\n if (currentState !== prevState) {\n if (!isWalletConnectionStep(currentState) && isConnecting) {\n // If we're no longer in the connecting state, reset the connecting flag\n setIsConnecting(false);\n }\n\n // Update ref\n prevStateRef.current = currentState;\n }\n }, [state, isConnecting]);\n\n // Create the context value\n const contextValue: WalletConnectionContextValue = {\n isConnecting,\n connectWallet,\n disconnectWallet,\n turnkeyEnabled,\n turnkeyStatus,\n turnkeyError,\n retryTurnkeyBootstrap,\n turnkeyAddress,\n turnkeySession: null, // We removed session machine usage for now as it was seemingly unused or redundant with provider\n signTransaction: solanaWallet?.connector?.signTransaction\n };\n\n return (\n <WalletConnectionContext.Provider value={contextValue}>\n {children}\n </WalletConnectionContext.Provider>\n );\n};\n\n/**\n * Custom hook to use the wallet connection context\n * @returns The wallet connection context value\n * @throws Error if used outside of a WalletConnectionProvider\n */\nexport const useWalletConnection = (): WalletConnectionContextValue => {\n const context = useContext(WalletConnectionContext);\n\n if (context === undefined) {\n throw new Error('useWalletConnection must be used within a WalletConnectionProvider');\n }\n\n return context;\n};\n"]}
@@ -28,13 +28,17 @@ export var DEBUG_VIEW_TO_FLOW = (_a = {},
28
28
  },
29
29
  _a[N1ModalViewMode.ChainSelection] = {
30
30
  state: OnboardingStep.CHAIN_SELECTION,
31
- context: buildDebugContext({ selectedChain: null }),
31
+ context: buildDebugContext({
32
+ selectedChain: null,
33
+ entryNetwork: 'solana', // Enable navigation
34
+ }),
32
35
  },
33
36
  _a[N1ModalViewMode.CreateSession] = {
34
37
  state: OnboardingStep.AUTH_LOADING,
35
38
  context: buildDebugContext({
36
39
  hasNordAccount: true,
37
40
  hasActiveSession: false,
41
+ entryNetwork: 'solana',
38
42
  }),
39
43
  },
40
44
  _a[N1ModalViewMode.Signing] = {
@@ -42,6 +46,11 @@ export var DEBUG_VIEW_TO_FLOW = (_a = {},
42
46
  context: buildDebugContext({
43
47
  hasNordAccount: false,
44
48
  hasActiveSession: false,
49
+ entryNetwork: 'solana',
50
+ selectedChain: 'solana-mainnet',
51
+ selectedChainId: 'solana',
52
+ selectedChainNetwork: SolanaNetwork.MAINNET,
53
+ amount: '100',
45
54
  }),
46
55
  },
47
56
  _a[N1ModalViewMode.CreatingUser] = {
@@ -49,6 +58,10 @@ export var DEBUG_VIEW_TO_FLOW = (_a = {},
49
58
  context: buildDebugContext({
50
59
  hasNordAccount: false,
51
60
  hasActiveSession: false,
61
+ entryNetwork: 'solana',
62
+ selectedChain: 'solana-mainnet',
63
+ selectedChainId: 'solana',
64
+ selectedChainNetwork: SolanaNetwork.MAINNET,
52
65
  }),
53
66
  },
54
67
  _a[N1ModalViewMode.DepositSuccess] = {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/providers/debug.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAEL,cAAc,EACd,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAElB;;;GAGG;AACH,IAAM,iBAAiB,GAAG,UAAC,SAA0C;IAA1C,0BAAA,EAAA,cAA0C;IAAK,OAAA,uBACrE,wBAAwB,GACxB,SAAS,EACZ;AAHwE,CAGxE,CAAC;AAEH,MAAM,CAAC,IAAM,kBAAkB;IAG7B,GAAC,eAAe,CAAC,OAAO,IAAG;QACzB,KAAK,EAAE,cAAc,CAAC,eAAe;QACrC,OAAO,EAAE,iBAAiB,EAAE;KAC7B;IACD,GAAC,eAAe,CAAC,cAAc,IAAG;QAChC,KAAK,EAAE,cAAc,CAAC,eAAe;QACrC,OAAO,EAAE,iBAAiB,CAAC;YACzB,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,QAAQ,EAAE,oBAAoB;SAC7C,CAAC;KACH;IACD,GAAC,eAAe,CAAC,aAAa,IAAG;QAC/B,KAAK,EAAE,cAAc,CAAC,YAAY;QAClC,OAAO,EAAE,iBAAiB,CAAC;YACzB,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,KAAK;YACvB,YAAY,EAAE,QAAQ;SACvB,CAAC;KACH;IACD,GAAC,eAAe,CAAC,OAAO,IAAG;QACzB,KAAK,EAAE,cAAc,CAAC,gBAAgB;QACtC,OAAO,EAAE,iBAAiB,CAAC;YACzB,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE,KAAK;YACvB,YAAY,EAAE,QAAQ;YACtB,aAAa,EAAE,gBAAgB;YAC/B,eAAe,EAAE,QAAQ;YACzB,oBAAoB,EAAE,aAAa,CAAC,OAAO;YAC3C,MAAM,EAAE,KAAK;SACd,CAAC;KACH;IACD,GAAC,eAAe,CAAC,YAAY,IAAG;QAC9B,KAAK,EAAE,cAAc,CAAC,YAAY;QAClC,OAAO,EAAE,iBAAiB,CAAC;YACzB,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE,KAAK;YACvB,YAAY,EAAE,QAAQ;YACtB,aAAa,EAAE,gBAAgB;YAC/B,eAAe,EAAE,QAAQ;YACzB,oBAAoB,EAAE,aAAa,CAAC,OAAO;SAC5C,CAAC;KACH;IACD,GAAC,eAAe,CAAC,cAAc,IAAG;QAChC,KAAK,EAAE,cAAc,CAAC,eAAe;QACrC,OAAO,EAAE,iBAAiB,CAAC;YACzB,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,aAAa,EAAE,gBAAgB;YAC/B,eAAe,EAAE,QAAQ;YACzB,oBAAoB,EAAE,aAAa,CAAC,OAAO;YAC3C,MAAM,EAAE,OAAO;YACf,aAAa,EAAE,gBAAgB;SAChC,CAAC;KACH;OACF,CAAC","sourcesContent":["import { SolanaNetwork } from \"../../../config/solana\";\nimport { N1ModalViewMode } from \"../../../types/wallet\";\nimport {\n OnboardingContext,\n OnboardingStep,\n initialOnboardingContext,\n} from \"../types\";\n\n/**\n * Debug utilities for testing onboarding flow states.\n * Maps legacy N1ModalViewMode values to onboarding state machine steps and context.\n */\nconst buildDebugContext = (overrides: Partial<OnboardingContext> = {}) => ({\n ...initialOnboardingContext,\n ...overrides,\n});\n\nexport const DEBUG_VIEW_TO_FLOW: Partial<\n Record<N1ModalViewMode, { state: OnboardingStep; context: OnboardingContext }>\n> = {\n [N1ModalViewMode.Connect]: {\n state: OnboardingStep.ENTRY_SELECTION,\n context: buildDebugContext(),\n },\n [N1ModalViewMode.ChainSelection]: {\n state: OnboardingStep.CHAIN_SELECTION,\n context: buildDebugContext({\n selectedChain: null,\n entryNetwork: 'solana', // Enable navigation\n }),\n },\n [N1ModalViewMode.CreateSession]: {\n state: OnboardingStep.AUTH_LOADING,\n context: buildDebugContext({\n hasNordAccount: true,\n hasActiveSession: false,\n entryNetwork: 'solana',\n }),\n },\n [N1ModalViewMode.Signing]: {\n state: OnboardingStep.DEPOSIT_PROGRESS,\n context: buildDebugContext({\n hasNordAccount: false,\n hasActiveSession: false,\n entryNetwork: 'solana',\n selectedChain: 'solana-mainnet',\n selectedChainId: 'solana',\n selectedChainNetwork: SolanaNetwork.MAINNET,\n amount: '100',\n }),\n },\n [N1ModalViewMode.CreatingUser]: {\n state: OnboardingStep.AMOUNT_INPUT,\n context: buildDebugContext({\n hasNordAccount: false,\n hasActiveSession: false,\n entryNetwork: 'solana',\n selectedChain: 'solana-mainnet',\n selectedChainId: 'solana',\n selectedChainNetwork: SolanaNetwork.MAINNET,\n }),\n },\n [N1ModalViewMode.DepositSuccess]: {\n state: OnboardingStep.DEPOSIT_SUCCESS,\n context: buildDebugContext({\n hasNordAccount: true,\n hasActiveSession: true,\n selectedChain: \"solana-mainnet\",\n selectedChainId: \"solana\",\n selectedChainNetwork: SolanaNetwork.MAINNET,\n amount: \"1,250\",\n transactionId: \"debug-tx-12345\",\n }),\n },\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/providers/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,uCAAuC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC","sourcesContent":["// Re-export provider hooks\nexport { useOnboardingState } from './OnboardingStateProvider';\nexport {\n useWalletConnection,\n} from './WalletConnectionProvider';\nexport {\n useDepositFlow,\n} from './DepositFlowProvider';\nexport { StateProvider as OnboardingProvider } from './StateProvider';\n\n// Default export the combined provider\nexport { default } from './StateProvider';\n"]}