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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (627) hide show
  1. package/dist/bridge-assist/cctp-solana.d.ts +33 -0
  2. package/dist/bridge-assist/cctp-solana.js +392 -0
  3. package/dist/bridge-assist/cctp-solana.js.map +1 -0
  4. package/dist/main.css +1 -2
  5. package/dist/src/adapters/evm.d.ts +39 -0
  6. package/dist/src/adapters/evm.js +338 -0
  7. package/dist/src/adapters/evm.js.map +1 -0
  8. package/dist/src/adapters/factory.d.ts +37 -0
  9. package/dist/src/adapters/factory.js +82 -0
  10. package/dist/src/adapters/factory.js.map +1 -0
  11. package/dist/src/adapters/index.d.ts +33 -0
  12. package/dist/src/adapters/index.js +36 -0
  13. package/dist/src/adapters/index.js.map +1 -0
  14. package/dist/src/adapters/solana.d.ts +37 -0
  15. package/dist/src/adapters/solana.js +359 -0
  16. package/dist/src/adapters/solana.js.map +1 -0
  17. package/dist/src/adapters/types.d.ts +160 -0
  18. package/dist/src/adapters/types.js +20 -0
  19. package/dist/src/adapters/types.js.map +1 -0
  20. package/dist/src/animations/N1Loader.js.map +1 -0
  21. package/dist/src/animations/N1Loader.json +1 -0
  22. package/dist/src/animations/Processing.js.map +1 -0
  23. package/dist/src/animations/Processing.json +1 -0
  24. package/dist/{components → src/components}/LoadingFallback.d.ts +3 -0
  25. package/dist/{components → src/components}/LoadingFallback.js +3 -0
  26. package/dist/src/components/LoadingFallback.js.map +1 -0
  27. package/dist/{components → src/components}/Logo.d.ts +4 -0
  28. package/dist/{components → src/components}/Logo.js +4 -0
  29. package/dist/src/components/Logo.js.map +1 -0
  30. package/dist/src/components/N1ConnectButton.d.ts +13 -0
  31. package/dist/src/components/N1ConnectButton.js +66 -0
  32. package/dist/src/components/N1ConnectButton.js.map +1 -0
  33. package/dist/src/components/logos/ArbitrumLogo.js.map +1 -0
  34. package/dist/src/components/logos/BaseLogo.js +6 -0
  35. package/dist/src/components/logos/BaseLogo.js.map +1 -0
  36. package/dist/src/components/logos/BeraLogo.js.map +1 -0
  37. package/dist/src/components/logos/BitcoinLogo.js.map +1 -0
  38. package/dist/src/components/logos/EthereumLogo.js.map +1 -0
  39. package/dist/{components → src/components}/logos/HyperliquidLogo.js +1 -1
  40. package/dist/src/components/logos/HyperliquidLogo.js.map +1 -0
  41. package/dist/src/components/logos/OptimismLogo.js.map +1 -0
  42. package/dist/src/components/logos/SolanaLogo.js.map +1 -0
  43. package/dist/src/components/logos/ZeroOneLogo.js.map +1 -0
  44. package/dist/src/components/logos/index.js.map +1 -0
  45. package/dist/src/config/chains.d.ts +18 -0
  46. package/dist/src/config/chains.js +58 -0
  47. package/dist/src/config/chains.js.map +1 -0
  48. package/dist/src/config/dynamic.js +18 -0
  49. package/dist/src/config/dynamic.js.map +1 -0
  50. package/dist/src/config/solana.js.map +1 -0
  51. package/dist/src/config/turnkey.d.ts +2 -0
  52. package/dist/{config → src/config}/turnkey.js +9 -12
  53. package/dist/src/config/turnkey.js.map +1 -0
  54. package/dist/src/context/n1-wallet-context.js.map +1 -0
  55. package/dist/src/errors/types.d.ts +72 -0
  56. package/dist/src/errors/types.js +140 -0
  57. package/dist/src/errors/types.js.map +1 -0
  58. package/dist/{features → src/features}/onboarding-flow/N1WalletModal.js +44 -29
  59. package/dist/src/features/onboarding-flow/N1WalletModal.js.map +1 -0
  60. package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.d.ts +2 -1
  61. package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.js +54 -8
  62. package/dist/src/features/onboarding-flow/OnboardingFlow.js.map +1 -0
  63. package/dist/src/features/onboarding-flow/bridge-assist/client.d.ts +42 -0
  64. package/dist/src/features/onboarding-flow/bridge-assist/client.js +268 -0
  65. package/dist/src/features/onboarding-flow/bridge-assist/client.js.map +1 -0
  66. package/dist/src/features/onboarding-flow/bridge-assist/config.d.ts +4 -0
  67. package/dist/src/features/onboarding-flow/bridge-assist/config.js +11 -0
  68. package/dist/src/features/onboarding-flow/bridge-assist/config.js.map +1 -0
  69. package/dist/src/features/onboarding-flow/bridge-assist/index.d.ts +1 -0
  70. package/dist/src/features/onboarding-flow/bridge-assist/index.js +2 -0
  71. package/dist/src/features/onboarding-flow/bridge-assist/index.js.map +1 -0
  72. package/dist/src/features/onboarding-flow/bridge-assist/types.d.ts +5 -0
  73. package/dist/src/features/onboarding-flow/bridge-assist/types.js +28 -0
  74. package/dist/src/features/onboarding-flow/bridge-assist/types.js.map +1 -0
  75. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.d.ts +35 -0
  76. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js +391 -0
  77. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js.map +1 -0
  78. package/dist/src/features/onboarding-flow/cctp/clientFactory.d.ts +6 -0
  79. package/dist/src/features/onboarding-flow/cctp/clientFactory.js +9 -0
  80. package/dist/src/features/onboarding-flow/cctp/clientFactory.js.map +1 -0
  81. package/dist/src/features/onboarding-flow/cctp/config.d.ts +16 -0
  82. package/dist/src/features/onboarding-flow/cctp/config.js +55 -0
  83. package/dist/src/features/onboarding-flow/cctp/config.js.map +1 -0
  84. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.d.ts +11 -0
  85. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js +85 -0
  86. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js.map +1 -0
  87. package/dist/src/features/onboarding-flow/cctp/solanaClaim.d.ts +1 -0
  88. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js +2 -0
  89. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js.map +1 -0
  90. package/dist/src/features/onboarding-flow/cctp/types.d.ts +50 -0
  91. package/dist/src/features/onboarding-flow/cctp/types.js +2 -0
  92. package/dist/src/features/onboarding-flow/cctp/types.js.map +1 -0
  93. package/dist/{features → src/features}/onboarding-flow/components/ChainButton.d.ts +5 -2
  94. package/dist/src/features/onboarding-flow/components/ChainButton.js +14 -0
  95. package/dist/src/features/onboarding-flow/components/ChainButton.js.map +1 -0
  96. package/dist/{features → src/features}/onboarding-flow/components/Header.d.ts +2 -2
  97. package/dist/src/features/onboarding-flow/components/Header.js +69 -0
  98. package/dist/src/features/onboarding-flow/components/Header.js.map +1 -0
  99. package/dist/src/features/onboarding-flow/components/ImageWithFallback.js.map +1 -0
  100. package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.d.ts +5 -0
  101. package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.js +8 -3
  102. package/dist/src/features/onboarding-flow/components/TransactionTable.js.map +1 -0
  103. package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.d.ts +4 -0
  104. package/dist/src/features/onboarding-flow/components/WaitingMessage.js.map +1 -0
  105. package/dist/src/features/onboarding-flow/components/index.js.map +1 -0
  106. package/dist/src/features/onboarding-flow/errors/depositError.d.ts +36 -0
  107. package/dist/src/features/onboarding-flow/errors/depositError.js +134 -0
  108. package/dist/src/features/onboarding-flow/errors/depositError.js.map +1 -0
  109. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.d.ts +35 -0
  110. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js +585 -0
  111. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js.map +1 -0
  112. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.d.ts +6 -0
  113. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js +141 -0
  114. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js.map +1 -0
  115. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.d.ts +15 -0
  116. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js +83 -0
  117. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js.map +1 -0
  118. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.d.ts +6 -0
  119. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js +45 -0
  120. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js.map +1 -0
  121. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.d.ts +13 -0
  122. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js +161 -0
  123. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js.map +1 -0
  124. package/dist/src/features/onboarding-flow/index.js.map +1 -0
  125. package/dist/{features → src/features}/onboarding-flow/providers/DepositFlowProvider.d.ts +10 -3
  126. package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js +762 -0
  127. package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -0
  128. package/dist/{features → src/features}/onboarding-flow/providers/OnboardingStateProvider.d.ts +5 -0
  129. package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js +399 -0
  130. package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -0
  131. package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.d.ts +2 -2
  132. package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.js +2 -2
  133. package/dist/src/features/onboarding-flow/providers/StateProvider.js.map +1 -0
  134. package/dist/{features → src/features}/onboarding-flow/providers/WalletConnectionProvider.d.ts +8 -0
  135. package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js +938 -0
  136. package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -0
  137. package/dist/{features → src/features}/onboarding-flow/providers/debug.js +5 -1
  138. package/dist/src/features/onboarding-flow/providers/debug.js.map +1 -0
  139. package/dist/src/features/onboarding-flow/providers/index.js.map +1 -0
  140. package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.d.ts +28 -1
  141. package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.js +38 -4
  142. package/dist/src/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -0
  143. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.d.ts +4 -0
  144. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js +32 -0
  145. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js.map +1 -0
  146. package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +5 -0
  147. package/dist/{features → src/features}/onboarding-flow/screens/01-ConnectWalletScreen.js +5 -0
  148. package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -0
  149. package/dist/{features → src/features}/onboarding-flow/screens/02-TurnkeyAuthScreen.js +8 -1
  150. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +1 -0
  151. package/dist/{features → src/features}/onboarding-flow/screens/03-TurnkeyPreparingScreen.js +8 -1
  152. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +1 -0
  153. package/dist/{features → src/features}/onboarding-flow/screens/04-ChainSelectionScreen.d.ts +11 -11
  154. package/dist/{features → src/features}/onboarding-flow/screens/04-ChainSelectionScreen.js +59 -29
  155. package/dist/src/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +1 -0
  156. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.d.ts +11 -0
  157. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js +585 -0
  158. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js.map +1 -0
  159. package/dist/{features → src/features}/onboarding-flow/screens/06-DepositProgressScreen.d.ts +5 -0
  160. package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js +367 -0
  161. package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +1 -0
  162. package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +6 -0
  163. package/dist/{features → src/features}/onboarding-flow/screens/07-DepositSuccessScreen.js +11 -5
  164. package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +1 -0
  165. package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +5 -0
  166. package/dist/{features → src/features}/onboarding-flow/screens/08-AuthLoadingScreen.js +5 -1
  167. package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +1 -0
  168. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.d.ts +5 -0
  169. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js +43 -0
  170. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js.map +1 -0
  171. package/dist/src/features/onboarding-flow/screens/index.d.ts +10 -0
  172. package/dist/src/features/onboarding-flow/screens/index.js +11 -0
  173. package/dist/src/features/onboarding-flow/screens/index.js.map +1 -0
  174. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.d.ts +1 -0
  175. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js +2 -0
  176. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js.map +1 -0
  177. package/dist/{features → src/features}/onboarding-flow/types.d.ts +38 -11
  178. package/dist/{features → src/features}/onboarding-flow/types.js +5 -0
  179. package/dist/src/features/onboarding-flow/types.js.map +1 -0
  180. package/dist/src/features/onboarding-flow/utils/bridgeUtils.d.ts +6 -0
  181. package/dist/src/features/onboarding-flow/utils/bridgeUtils.js +34 -0
  182. package/dist/src/features/onboarding-flow/utils/bridgeUtils.js.map +1 -0
  183. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.d.ts +29 -0
  184. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js +82 -0
  185. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js.map +1 -0
  186. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.d.ts +5 -0
  187. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js +10 -0
  188. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js.map +1 -0
  189. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.d.ts +14 -0
  190. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js +94 -0
  191. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js.map +1 -0
  192. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.d.ts +25 -0
  193. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js +212 -0
  194. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js.map +1 -0
  195. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.d.ts +37 -0
  196. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js +199 -0
  197. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js.map +1 -0
  198. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.d.ts +27 -0
  199. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js +149 -0
  200. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js.map +1 -0
  201. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.d.ts +5 -0
  202. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js +121 -0
  203. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js.map +1 -0
  204. package/dist/{features/onboarding-flow/utils/transaction.d.ts → src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.d.ts} +3 -3
  205. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js +8 -0
  206. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js.map +1 -0
  207. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.d.ts +12 -0
  208. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js +150 -0
  209. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js.map +1 -0
  210. package/dist/src/features/onboarding-flow/utils/deposit/storage.d.ts +52 -0
  211. package/dist/src/features/onboarding-flow/utils/deposit/storage.js +243 -0
  212. package/dist/src/features/onboarding-flow/utils/deposit/storage.js.map +1 -0
  213. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.d.ts +36 -0
  214. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js +304 -0
  215. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js.map +1 -0
  216. package/dist/src/features/onboarding-flow/utils/depositPolling.d.ts +1 -0
  217. package/dist/src/features/onboarding-flow/utils/depositPolling.js +3 -0
  218. package/dist/src/features/onboarding-flow/utils/depositPolling.js.map +1 -0
  219. package/dist/src/features/onboarding-flow/utils/explorerUrl.d.ts +14 -0
  220. package/dist/src/features/onboarding-flow/utils/explorerUrl.js +44 -0
  221. package/dist/src/features/onboarding-flow/utils/explorerUrl.js.map +1 -0
  222. package/dist/src/features/onboarding-flow/utils/nordUtils.d.ts +8 -0
  223. package/dist/{features/onboarding-flow/utils/nordUser.js → src/features/onboarding-flow/utils/nordUtils.js} +14 -1
  224. package/dist/src/features/onboarding-flow/utils/nordUtils.js.map +1 -0
  225. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.d.ts +13 -0
  226. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js +15 -0
  227. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js.map +1 -0
  228. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.d.ts +15 -0
  229. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js +94 -0
  230. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js.map +1 -0
  231. package/dist/{features → src/features}/onboarding-flow/utils/utils.d.ts +9 -2
  232. package/dist/{features → src/features}/onboarding-flow/utils/utils.js +9 -4
  233. package/dist/src/features/onboarding-flow/utils/utils.js.map +1 -0
  234. package/dist/src/features/onboarding-flow/utils/withImageFallback.d.ts +6 -0
  235. package/dist/{features → src/features}/onboarding-flow/utils/withImageFallback.js +2 -3
  236. package/dist/src/features/onboarding-flow/utils/withImageFallback.js.map +1 -0
  237. package/dist/src/hooks/index.js.map +1 -0
  238. package/dist/src/hooks/useN1Wallet.d.ts +12 -0
  239. package/dist/{hooks → src/hooks}/useN1Wallet.js +10 -0
  240. package/dist/src/hooks/useN1Wallet.js.map +1 -0
  241. package/dist/src/hooks/useNordUserInitialization.d.ts +12 -0
  242. package/dist/{hooks → src/hooks}/useNordUserInitialization.js +74 -33
  243. package/dist/src/hooks/useNordUserInitialization.js.map +1 -0
  244. package/dist/src/index.d.ts +9 -0
  245. package/dist/src/index.js +16 -0
  246. package/dist/src/index.js.map +1 -0
  247. package/dist/src/providers/LazyWalletProvider.d.ts +4 -0
  248. package/dist/src/providers/LazyWalletProvider.js +404 -0
  249. package/dist/src/providers/LazyWalletProvider.js.map +1 -0
  250. package/dist/src/providers/N1WalletProvider/ContextBridge.d.ts +28 -0
  251. package/dist/src/providers/N1WalletProvider/ContextBridge.js +273 -0
  252. package/dist/src/providers/N1WalletProvider/ContextBridge.js.map +1 -0
  253. package/dist/src/providers/N1WalletProvider/ModalProvider.d.ts +113 -0
  254. package/dist/src/providers/N1WalletProvider/ModalProvider.js +319 -0
  255. package/dist/src/providers/N1WalletProvider/ModalProvider.js.map +1 -0
  256. package/dist/src/providers/N1WalletProvider/NetworkProvider.d.ts +88 -0
  257. package/dist/src/providers/N1WalletProvider/NetworkProvider.js +252 -0
  258. package/dist/src/providers/N1WalletProvider/NetworkProvider.js.map +1 -0
  259. package/dist/src/providers/N1WalletProvider/SessionProvider.d.ts +71 -0
  260. package/dist/src/providers/N1WalletProvider/SessionProvider.js +187 -0
  261. package/dist/src/providers/N1WalletProvider/SessionProvider.js.map +1 -0
  262. package/dist/src/providers/N1WalletProvider/SigningProvider.d.ts +58 -0
  263. package/dist/src/providers/N1WalletProvider/SigningProvider.js +134 -0
  264. package/dist/src/providers/N1WalletProvider/SigningProvider.js.map +1 -0
  265. package/dist/src/providers/N1WalletProvider/ThemingProvider.d.ts +50 -0
  266. package/dist/src/providers/N1WalletProvider/ThemingProvider.js +102 -0
  267. package/dist/src/providers/N1WalletProvider/ThemingProvider.js.map +1 -0
  268. package/dist/src/providers/N1WalletProvider/index.d.ts +21 -0
  269. package/dist/src/providers/N1WalletProvider/index.js +27 -0
  270. package/dist/src/providers/N1WalletProvider/index.js.map +1 -0
  271. package/dist/src/providers/N1WalletProvider.d.ts +17 -0
  272. package/dist/src/providers/N1WalletProvider.js +102 -0
  273. package/dist/src/providers/N1WalletProvider.js.map +1 -0
  274. package/dist/{providers → src/providers}/ShadowRootWrapper.d.ts +4 -0
  275. package/dist/{providers → src/providers}/ShadowRootWrapper.js +4 -0
  276. package/dist/src/providers/ShadowRootWrapper.js.map +1 -0
  277. package/dist/{providers → src/providers}/WalletErrorBoundary.d.ts +7 -2
  278. package/dist/{providers → src/providers}/WalletErrorBoundary.js +5 -1
  279. package/dist/src/providers/WalletErrorBoundary.js.map +1 -0
  280. package/dist/src/services/bootstrap/DepositRecoveryService.d.ts +64 -0
  281. package/dist/src/services/bootstrap/DepositRecoveryService.js +245 -0
  282. package/dist/src/services/bootstrap/DepositRecoveryService.js.map +1 -0
  283. package/dist/src/services/bootstrap/DynamicSdkService.d.ts +62 -0
  284. package/dist/src/services/bootstrap/DynamicSdkService.js +335 -0
  285. package/dist/src/services/bootstrap/DynamicSdkService.js.map +1 -0
  286. package/dist/src/services/bootstrap/SessionBootstrapService.d.ts +78 -0
  287. package/dist/src/services/bootstrap/SessionBootstrapService.js +280 -0
  288. package/dist/src/services/bootstrap/SessionBootstrapService.js.map +1 -0
  289. package/dist/src/services/bootstrap/TurnkeyBootstrapService.d.ts +92 -0
  290. package/dist/src/services/bootstrap/TurnkeyBootstrapService.js +253 -0
  291. package/dist/src/services/bootstrap/TurnkeyBootstrapService.js.map +1 -0
  292. package/dist/src/services/bootstrap/index.d.ts +13 -0
  293. package/dist/src/services/bootstrap/index.js +16 -0
  294. package/dist/src/services/bootstrap/index.js.map +1 -0
  295. package/dist/src/services/bootstrap/types.d.ts +92 -0
  296. package/dist/src/services/bootstrap/types.js +7 -0
  297. package/dist/src/services/bootstrap/types.js.map +1 -0
  298. package/dist/src/services/storage/StorageService.d.ts +98 -0
  299. package/dist/src/services/storage/StorageService.js +360 -0
  300. package/dist/src/services/storage/StorageService.js.map +1 -0
  301. package/dist/src/services/storage/index.d.ts +9 -0
  302. package/dist/src/services/storage/index.js +10 -0
  303. package/dist/src/services/storage/index.js.map +1 -0
  304. package/dist/src/services/storage/keys.d.ts +28 -0
  305. package/dist/src/services/storage/keys.js +45 -0
  306. package/dist/src/services/storage/keys.js.map +1 -0
  307. package/dist/src/services/storage/types.d.ts +73 -0
  308. package/dist/src/services/storage/types.js +23 -0
  309. package/dist/src/services/storage/types.js.map +1 -0
  310. package/dist/src/store/index.d.ts +8 -0
  311. package/dist/src/store/index.js +24 -0
  312. package/dist/src/store/index.js.map +1 -0
  313. package/dist/src/store/selectors.d.ts +105 -0
  314. package/dist/src/store/selectors.js +183 -0
  315. package/dist/src/store/selectors.js.map +1 -0
  316. package/dist/src/store/slices/bootstrapSlice.d.ts +64 -0
  317. package/dist/src/store/slices/bootstrapSlice.js +78 -0
  318. package/dist/src/store/slices/bootstrapSlice.js.map +1 -0
  319. package/dist/src/store/slices/configSlice.d.ts +7 -0
  320. package/dist/src/store/slices/configSlice.js +14 -0
  321. package/dist/src/store/slices/configSlice.js.map +1 -0
  322. package/dist/src/store/slices/index.d.ts +10 -0
  323. package/dist/src/store/slices/index.js +10 -0
  324. package/dist/src/store/slices/index.js.map +1 -0
  325. package/dist/src/store/slices/sessionSlice.d.ts +7 -0
  326. package/dist/src/store/slices/sessionSlice.js +17 -0
  327. package/dist/src/store/slices/sessionSlice.js.map +1 -0
  328. package/dist/src/store/slices/signingSlice.d.ts +7 -0
  329. package/dist/src/store/slices/signingSlice.js +14 -0
  330. package/dist/src/store/slices/signingSlice.js.map +1 -0
  331. package/dist/src/store/slices/uiSlice.d.ts +9 -0
  332. package/dist/src/store/slices/uiSlice.js +25 -0
  333. package/dist/src/store/slices/uiSlice.js.map +1 -0
  334. package/dist/src/store/slices/walletSlice.d.ts +7 -0
  335. package/dist/src/store/slices/walletSlice.js +21 -0
  336. package/dist/src/store/slices/walletSlice.js.map +1 -0
  337. package/dist/src/store/store.d.ts +50 -0
  338. package/dist/src/store/store.js +259 -0
  339. package/dist/src/store/store.js.map +1 -0
  340. package/dist/src/store/subscriptions/depositPersistence.d.ts +32 -0
  341. package/dist/src/store/subscriptions/depositPersistence.js +106 -0
  342. package/dist/src/store/subscriptions/depositPersistence.js.map +1 -0
  343. package/dist/src/store/subscriptions/index.d.ts +34 -0
  344. package/dist/src/store/subscriptions/index.js +73 -0
  345. package/dist/src/store/subscriptions/index.js.map +1 -0
  346. package/dist/src/store/subscriptions/turnkeyPersistence.d.ts +42 -0
  347. package/dist/src/store/subscriptions/turnkeyPersistence.js +127 -0
  348. package/dist/src/store/subscriptions/turnkeyPersistence.js.map +1 -0
  349. package/dist/src/store/types.d.ts +166 -0
  350. package/dist/src/store/types.js +7 -0
  351. package/dist/src/store/types.js.map +1 -0
  352. package/dist/src/styles/cdn-fonts.d.ts +12 -0
  353. package/dist/src/styles/cdn-fonts.js +63 -0
  354. package/dist/src/styles/cdn-fonts.js.map +1 -0
  355. package/dist/src/styles/embedded-main-css.d.ts +2 -0
  356. package/dist/src/styles/embedded-main-css.js +3 -0
  357. package/dist/src/styles/embedded-main-css.js.map +1 -0
  358. package/dist/src/turnkey/TurnkeyProvider.d.ts +21 -0
  359. package/dist/src/turnkey/TurnkeyProvider.js +695 -0
  360. package/dist/src/turnkey/TurnkeyProvider.js.map +1 -0
  361. package/dist/src/turnkey/createTurnkeyWallet.d.ts +39 -0
  362. package/dist/src/turnkey/createTurnkeyWallet.js +319 -0
  363. package/dist/src/turnkey/createTurnkeyWallet.js.map +1 -0
  364. package/dist/src/turnkey/createWalletProvider.d.ts +8 -0
  365. package/dist/src/turnkey/createWalletProvider.js +286 -0
  366. package/dist/src/turnkey/createWalletProvider.js.map +1 -0
  367. package/dist/src/turnkey/index.d.ts +3 -0
  368. package/dist/src/turnkey/index.js +3 -0
  369. package/dist/src/turnkey/index.js.map +1 -0
  370. package/dist/src/turnkey/turnkeySessionMachine.d.ts +39 -0
  371. package/dist/src/turnkey/turnkeySessionMachine.js +77 -0
  372. package/dist/src/turnkey/turnkeySessionMachine.js.map +1 -0
  373. package/dist/src/turnkey/turnkeySessionStorage.d.ts +48 -0
  374. package/dist/src/turnkey/turnkeySessionStorage.js +183 -0
  375. package/dist/src/turnkey/turnkeySessionStorage.js.map +1 -0
  376. package/dist/{turnkey → src/turnkey}/types.d.ts +21 -8
  377. package/dist/src/turnkey/types.js +12 -0
  378. package/dist/src/turnkey/types.js.map +1 -0
  379. package/dist/{types → src/types}/wallet.d.ts +39 -13
  380. package/dist/src/types/wallet.js.map +1 -0
  381. package/dist/src/utils/address.d.ts +130 -0
  382. package/dist/src/utils/address.js +274 -0
  383. package/dist/src/utils/address.js.map +1 -0
  384. package/dist/src/utils/chain.d.ts +89 -0
  385. package/dist/src/utils/chain.js +282 -0
  386. package/dist/src/utils/chain.js.map +1 -0
  387. package/dist/{utils → src/utils}/ed25519.d.ts +0 -2
  388. package/dist/{utils → src/utils}/ed25519.js +4 -19
  389. package/dist/src/utils/ed25519.js.map +1 -0
  390. package/dist/src/utils/errors.d.ts +68 -0
  391. package/dist/src/utils/errors.js +190 -0
  392. package/dist/src/utils/errors.js.map +1 -0
  393. package/dist/src/utils/events.d.ts +124 -0
  394. package/dist/src/utils/events.js +155 -0
  395. package/dist/src/utils/events.js.map +1 -0
  396. package/dist/src/utils/formatAmount.d.ts +4 -0
  397. package/dist/src/utils/formatAmount.js +9 -0
  398. package/dist/src/utils/formatAmount.js.map +1 -0
  399. package/dist/src/utils/logger.d.ts +45 -0
  400. package/dist/{utils → src/utils}/logger.js +68 -2
  401. package/dist/src/utils/logger.js.map +1 -0
  402. package/dist/src/utils/shortenString.d.ts +5 -0
  403. package/dist/src/utils/shortenString.js +16 -0
  404. package/dist/src/utils/shortenString.js.map +1 -0
  405. package/package.json +37 -15
  406. package/dist/animations/N1Loader.js.map +0 -1
  407. package/dist/animations/Processing.js.map +0 -1
  408. package/dist/components/LoadingFallback.js.map +0 -1
  409. package/dist/components/Logo.js.map +0 -1
  410. package/dist/components/N1ConnectButton.d.ts +0 -5
  411. package/dist/components/N1ConnectButton.js +0 -49
  412. package/dist/components/N1ConnectButton.js.map +0 -1
  413. package/dist/components/logos/ArbitrumLogo.js.map +0 -1
  414. package/dist/components/logos/BaseLogo.js +0 -6
  415. package/dist/components/logos/BaseLogo.js.map +0 -1
  416. package/dist/components/logos/BeraLogo.js.map +0 -1
  417. package/dist/components/logos/BitcoinLogo.js.map +0 -1
  418. package/dist/components/logos/EthereumLogo.js.map +0 -1
  419. package/dist/components/logos/HyperliquidLogo.js.map +0 -1
  420. package/dist/components/logos/OptimismLogo.js.map +0 -1
  421. package/dist/components/logos/SolanaLogo.js.map +0 -1
  422. package/dist/components/logos/ZeroOneLogo.js.map +0 -1
  423. package/dist/components/logos/index.js.map +0 -1
  424. package/dist/config/chains.d.ts +0 -0
  425. package/dist/config/chains.js +0 -2
  426. package/dist/config/chains.js.map +0 -1
  427. package/dist/config/dynamic.js +0 -13
  428. package/dist/config/dynamic.js.map +0 -1
  429. package/dist/config/solana.js.map +0 -1
  430. package/dist/config/turnkey.d.ts +0 -2
  431. package/dist/config/turnkey.js.map +0 -1
  432. package/dist/config.d.ts +0 -2
  433. package/dist/config.js +0 -3
  434. package/dist/config.js.map +0 -1
  435. package/dist/context/n1-wallet-context.js.map +0 -1
  436. package/dist/errors/types.d.ts +0 -25
  437. package/dist/errors/types.js +0 -77
  438. package/dist/errors/types.js.map +0 -1
  439. package/dist/features/onboarding-flow/N1WalletModal.js.map +0 -1
  440. package/dist/features/onboarding-flow/OnboardingFlow.js.map +0 -1
  441. package/dist/features/onboarding-flow/components/ChainButton.js +0 -21
  442. package/dist/features/onboarding-flow/components/ChainButton.js.map +0 -1
  443. package/dist/features/onboarding-flow/components/Header.js +0 -45
  444. package/dist/features/onboarding-flow/components/Header.js.map +0 -1
  445. package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +0 -1
  446. package/dist/features/onboarding-flow/components/TransactionTable.js.map +0 -1
  447. package/dist/features/onboarding-flow/components/WaitingMessage.js.map +0 -1
  448. package/dist/features/onboarding-flow/components/index.js.map +0 -1
  449. package/dist/features/onboarding-flow/index.js.map +0 -1
  450. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +0 -525
  451. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +0 -1
  452. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +0 -185
  453. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +0 -1
  454. package/dist/features/onboarding-flow/providers/StateProvider.js.map +0 -1
  455. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +0 -394
  456. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +0 -1
  457. package/dist/features/onboarding-flow/providers/debug.js.map +0 -1
  458. package/dist/features/onboarding-flow/providers/index.js.map +0 -1
  459. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +0 -1
  460. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +0 -1
  461. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +0 -1
  462. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.d.ts +0 -31
  463. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js +0 -100
  464. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +0 -1
  465. package/dist/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +0 -1
  466. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.d.ts +0 -6
  467. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +0 -360
  468. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +0 -1
  469. package/dist/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +0 -1
  470. package/dist/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +0 -1
  471. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.d.ts +0 -3
  472. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +0 -31
  473. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +0 -1
  474. package/dist/features/onboarding-flow/screens/05-AmountInputScreen.d.ts +0 -6
  475. package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js +0 -360
  476. package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js.map +0 -1
  477. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.d.ts +0 -1
  478. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js +0 -136
  479. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +0 -1
  480. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.d.ts +0 -1
  481. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js +0 -31
  482. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +0 -1
  483. package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js +0 -31
  484. package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +0 -1
  485. package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +0 -1
  486. package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +0 -1
  487. package/dist/features/onboarding-flow/screens/07-ErrorScreen.d.ts +0 -1
  488. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +0 -14
  489. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +0 -1
  490. package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +0 -1
  491. package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +0 -1
  492. package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.d.ts +0 -1
  493. package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.js +0 -18
  494. package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.js.map +0 -1
  495. package/dist/features/onboarding-flow/screens/09-ErrorScreen.d.ts +0 -1
  496. package/dist/features/onboarding-flow/screens/09-ErrorScreen.js +0 -14
  497. package/dist/features/onboarding-flow/screens/09-ErrorScreen.js.map +0 -1
  498. package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.d.ts +0 -1
  499. package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.js +0 -18
  500. package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.js.map +0 -1
  501. package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.d.ts +0 -1
  502. package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.js +0 -18
  503. package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.js.map +0 -1
  504. package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.d.ts +0 -1
  505. package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.js +0 -18
  506. package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.js.map +0 -1
  507. package/dist/features/onboarding-flow/screens/index.d.ts +0 -7
  508. package/dist/features/onboarding-flow/screens/index.js +0 -8
  509. package/dist/features/onboarding-flow/screens/index.js.map +0 -1
  510. package/dist/features/onboarding-flow/types.js.map +0 -1
  511. package/dist/features/onboarding-flow/utils/depositStorage.d.ts +0 -4
  512. package/dist/features/onboarding-flow/utils/depositStorage.js +0 -48
  513. package/dist/features/onboarding-flow/utils/depositStorage.js.map +0 -1
  514. package/dist/features/onboarding-flow/utils/imageUtils.d.ts +0 -21
  515. package/dist/features/onboarding-flow/utils/imageUtils.js +0 -110
  516. package/dist/features/onboarding-flow/utils/imageUtils.js.map +0 -1
  517. package/dist/features/onboarding-flow/utils/nordUser.d.ts +0 -1
  518. package/dist/features/onboarding-flow/utils/nordUser.js.map +0 -1
  519. package/dist/features/onboarding-flow/utils/nordUtils.d.ts +0 -40
  520. package/dist/features/onboarding-flow/utils/nordUtils.js +0 -64
  521. package/dist/features/onboarding-flow/utils/nordUtils.js.map +0 -1
  522. package/dist/features/onboarding-flow/utils/session.d.ts +0 -17
  523. package/dist/features/onboarding-flow/utils/session.js +0 -69
  524. package/dist/features/onboarding-flow/utils/session.js.map +0 -1
  525. package/dist/features/onboarding-flow/utils/transaction.js +0 -8
  526. package/dist/features/onboarding-flow/utils/transaction.js.map +0 -1
  527. package/dist/features/onboarding-flow/utils/utils.js.map +0 -1
  528. package/dist/features/onboarding-flow/utils/withImageFallback.d.ts +0 -7
  529. package/dist/features/onboarding-flow/utils/withImageFallback.js.map +0 -1
  530. package/dist/features/turnkey/createTurnkeyWallet.d.ts +0 -25
  531. package/dist/features/turnkey/createTurnkeyWallet.js +0 -119
  532. package/dist/features/turnkey/createTurnkeyWallet.js.map +0 -1
  533. package/dist/hooks/index.js.map +0 -1
  534. package/dist/hooks/useN1Wallet.d.ts +0 -2
  535. package/dist/hooks/useN1Wallet.js.map +0 -1
  536. package/dist/hooks/useNordUserInitialization.d.ts +0 -1
  537. package/dist/hooks/useNordUserInitialization.js.map +0 -1
  538. package/dist/index.d.ts +0 -7
  539. package/dist/index.js +0 -8
  540. package/dist/index.js.map +0 -1
  541. package/dist/polyfills/windowEthereumGuard.d.ts +0 -6
  542. package/dist/polyfills/windowEthereumGuard.js +0 -28
  543. package/dist/polyfills/windowEthereumGuard.js.map +0 -1
  544. package/dist/providers/LazyWalletProvider.d.ts +0 -1
  545. package/dist/providers/LazyWalletProvider.js +0 -230
  546. package/dist/providers/LazyWalletProvider.js.map +0 -1
  547. package/dist/providers/N1WalletProvider.d.ts +0 -3
  548. package/dist/providers/N1WalletProvider.js +0 -267
  549. package/dist/providers/N1WalletProvider.js.map +0 -1
  550. package/dist/providers/ShadowRootWrapper.js.map +0 -1
  551. package/dist/providers/TurnkeyProviderBridge.d.ts +0 -7
  552. package/dist/providers/TurnkeyProviderBridge.js +0 -20
  553. package/dist/providers/TurnkeyProviderBridge.js.map +0 -1
  554. package/dist/providers/WalletErrorBoundary.js.map +0 -1
  555. package/dist/styles/embedded-main-css.d.ts +0 -2
  556. package/dist/styles/embedded-main-css.js +0 -3
  557. package/dist/styles/embedded-main-css.js.map +0 -1
  558. package/dist/turnkey/TurnkeyProvider.d.ts +0 -9
  559. package/dist/turnkey/TurnkeyProvider.js +0 -378
  560. package/dist/turnkey/TurnkeyProvider.js.map +0 -1
  561. package/dist/turnkey/createWalletProvider.d.ts +0 -3
  562. package/dist/turnkey/createWalletProvider.js +0 -180
  563. package/dist/turnkey/createWalletProvider.js.map +0 -1
  564. package/dist/turnkey/index.d.ts +0 -3
  565. package/dist/turnkey/index.js +0 -3
  566. package/dist/turnkey/index.js.map +0 -1
  567. package/dist/turnkey/types.js +0 -8
  568. package/dist/turnkey/types.js.map +0 -1
  569. package/dist/types/wallet.js.map +0 -1
  570. package/dist/utils/ed25519.js.map +0 -1
  571. package/dist/utils/getPseudoName.d.ts +0 -1
  572. package/dist/utils/getPseudoName.js +0 -5826
  573. package/dist/utils/getPseudoName.js.map +0 -1
  574. package/dist/utils/logger.d.ts +0 -21
  575. package/dist/utils/logger.js.map +0 -1
  576. package/dist/utils/shortenString.d.ts +0 -2
  577. package/dist/utils/shortenString.js +0 -9
  578. package/dist/utils/shortenString.js.map +0 -1
  579. package/dist/utils/turnkeySessionStorage.d.ts +0 -3
  580. package/dist/utils/turnkeySessionStorage.js +0 -33
  581. package/dist/utils/turnkeySessionStorage.js.map +0 -1
  582. package/dist/utils/words.d.ts +0 -9
  583. package/dist/utils/words.js +0 -93572
  584. package/dist/utils/words.js.map +0 -1
  585. /package/dist/{animations → src/animations}/N1Loader.d.ts +0 -0
  586. /package/dist/{animations → src/animations}/N1Loader.js +0 -0
  587. /package/dist/{animations → src/animations}/Processing.d.ts +0 -0
  588. /package/dist/{animations → src/animations}/Processing.js +0 -0
  589. /package/dist/{components → src/components}/logos/ArbitrumLogo.d.ts +0 -0
  590. /package/dist/{components → src/components}/logos/ArbitrumLogo.js +0 -0
  591. /package/dist/{components → src/components}/logos/BaseLogo.d.ts +0 -0
  592. /package/dist/{components → src/components}/logos/BeraLogo.d.ts +0 -0
  593. /package/dist/{components → src/components}/logos/BeraLogo.js +0 -0
  594. /package/dist/{components → src/components}/logos/BitcoinLogo.d.ts +0 -0
  595. /package/dist/{components → src/components}/logos/BitcoinLogo.js +0 -0
  596. /package/dist/{components → src/components}/logos/EthereumLogo.d.ts +0 -0
  597. /package/dist/{components → src/components}/logos/EthereumLogo.js +0 -0
  598. /package/dist/{components → src/components}/logos/HyperliquidLogo.d.ts +0 -0
  599. /package/dist/{components → src/components}/logos/OptimismLogo.d.ts +0 -0
  600. /package/dist/{components → src/components}/logos/OptimismLogo.js +0 -0
  601. /package/dist/{components → src/components}/logos/SolanaLogo.d.ts +0 -0
  602. /package/dist/{components → src/components}/logos/SolanaLogo.js +0 -0
  603. /package/dist/{components → src/components}/logos/ZeroOneLogo.d.ts +0 -0
  604. /package/dist/{components → src/components}/logos/ZeroOneLogo.js +0 -0
  605. /package/dist/{components → src/components}/logos/index.d.ts +0 -0
  606. /package/dist/{components → src/components}/logos/index.js +0 -0
  607. /package/dist/{config → src/config}/dynamic.d.ts +0 -0
  608. /package/dist/{config → src/config}/solana.d.ts +0 -0
  609. /package/dist/{config → src/config}/solana.js +0 -0
  610. /package/dist/{context → src/context}/n1-wallet-context.d.ts +0 -0
  611. /package/dist/{context → src/context}/n1-wallet-context.js +0 -0
  612. /package/dist/{features → src/features}/onboarding-flow/N1WalletModal.d.ts +0 -0
  613. /package/dist/{features → src/features}/onboarding-flow/components/ImageWithFallback.d.ts +0 -0
  614. /package/dist/{features → src/features}/onboarding-flow/components/ImageWithFallback.js +0 -0
  615. /package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.js +0 -0
  616. /package/dist/{features → src/features}/onboarding-flow/components/index.d.ts +0 -0
  617. /package/dist/{features → src/features}/onboarding-flow/components/index.js +0 -0
  618. /package/dist/{features → src/features}/onboarding-flow/index.d.ts +0 -0
  619. /package/dist/{features → src/features}/onboarding-flow/index.js +0 -0
  620. /package/dist/{features → src/features}/onboarding-flow/providers/debug.d.ts +0 -0
  621. /package/dist/{features → src/features}/onboarding-flow/providers/index.d.ts +0 -0
  622. /package/dist/{features → src/features}/onboarding-flow/providers/index.js +0 -0
  623. /package/dist/{features → src/features}/onboarding-flow/screens/02-TurnkeyAuthScreen.d.ts +0 -0
  624. /package/dist/{features → src/features}/onboarding-flow/screens/03-TurnkeyPreparingScreen.d.ts +0 -0
  625. /package/dist/{hooks → src/hooks}/index.d.ts +0 -0
  626. /package/dist/{hooks → src/hooks}/index.js +0 -0
  627. /package/dist/{types → src/types}/wallet.js +0 -0
@@ -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 { 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 {\n clearSession,\n clearPendingDeposit,\n} 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 clearWalletCache = useCallback(() => {\n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n if (solanaAddress) {\n const sessionIdKey = `n1_sessionId_${solanaAddress}`;\n window.localStorage.removeItem(sessionIdKey);\n removeKeysFromLocalStorage(solanaAddress);\n }\n\n window.localStorage.removeItem(FLOW_STATE_STORAGE_KEY);\n clearLastDepositRecord(solanaAddress);\n updateContext(initialOnboardingContext);\n logger.debug('Cleared wallet cache for address', { address: solanaAddress });\n } catch (error) {\n logger.warn('Failed to clear wallet cache', error);\n }\n }, [solanaAddress, updateContext]);\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 const currentAddress = solanaWalletAddress || evmWalletAddress;\n logger.event(createWalletEvent(EVENTS.WALLET.DISCONNECT, {\n address: currentAddress,\n network: solanaWalletAddress ? 'solana' : evmWalletAddress ? 'evm' : null,\n }));\n\n try {\n clearWalletCache();\n dynamicHandleLogOut?.();\n closeDynamicWidget();\n // Clear cached address from localStorage\n if (typeof window !== 'undefined') {\n window.localStorage.removeItem('n1_last_connected_address');\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 processedWalletAddressRef.current = null;\n turnkeyAuthenticatedEvmAddressRef.current = null;\n previousEvmWalletAddressRef.current = null;\n setIsConnected(false);\n setSolanaAddress('');\n setBalances([]);\n setSolanaWallet(null);\n setEvmWallet(null);\n setEvmAddress(null);\n setEvmChain(null);\n setSessionPubKey(null);\n setWalletPubKey(null);\n setSignMessageWithSessionKey(null);\n setSignMessageWithWalletKey(null);\n setSignTransactionWithWalletKey(null);\n setNordUser(null);\n setViewMode(N1ModalViewMode.Automatic);\n // Close modal via state machine (triggers closing → closed transition)\n closeModal();\n onCloseComplete();\n flowActions.resetFlow();\n setPreferredWalletNetwork(null);\n // Clear any pending deposit to prevent it from being shown on a different wallet\n clearPendingDeposit();\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 clearWalletCache,\n closeDynamicWidget,\n dynamicHandleLogOut,\n setSolanaAddress,\n setBalances,\n setSolanaWallet,\n setIsConnected,\n setNordUser,\n setSessionPubKey,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n setViewMode,\n setWalletPubKey,\n flowActions,\n setEvmWallet,\n setEvmAddress,\n setEvmChain,\n solanaWalletAddress,\n evmWalletAddress,\n turnkeyEnabled,\n setPreferredWalletNetwork,\n closeModal,\n onCloseComplete,\n ]);\n\n useEffect(() => {\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 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 const hasNordAccount = nordAccount != null;\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 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 const hasActiveSession = sessionMatchesServer;\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 const lastDepositRecord = readLastDepositRecord(solanaWallet.address);\n if (lastDepositRecord) {\n logger.debug('Resuming last deposit from local storage');\n flowActions.markDepositSuccess({\n transactionId: lastDepositRecord.transactionId,\n record: lastDepositRecord,\n });\n closeDynamicWidget();\n setIsConnecting(false);\n return;\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 and this is NOT an explicit deposit flow,\n // skip the deposit screens and just close the modal\n if (hasExistingBalance && !context.isDepositOnlyFlow) {\n logger.info('[WalletConnection] User has existing Nord balance - skipping deposit flow', {\n hasExistingBalance,\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 || hasPendingBridgeDepositCheck) {\n logger.info('[WalletConnection] Skipping transition to CHAIN_SELECTION', {\n reason: state === OnboardingStep.DEPOSIT_PROGRESS ? 'state is DEPOSIT_PROGRESS' : '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"]}
@@ -13,13 +13,17 @@ var _a;
13
13
  import { SolanaNetwork } from "../../../config/solana";
14
14
  import { N1ModalViewMode } from "../../../types/wallet";
15
15
  import { OnboardingStep, initialOnboardingContext, } from "../types";
16
+ /**
17
+ * Debug utilities for testing onboarding flow states.
18
+ * Maps legacy N1ModalViewMode values to onboarding state machine steps and context.
19
+ */
16
20
  var buildDebugContext = function (overrides) {
17
21
  if (overrides === void 0) { overrides = {}; }
18
22
  return (__assign(__assign({}, initialOnboardingContext), overrides));
19
23
  };
20
24
  export var DEBUG_VIEW_TO_FLOW = (_a = {},
21
25
  _a[N1ModalViewMode.Connect] = {
22
- state: OnboardingStep.CONNECTING_WALLET,
26
+ state: OnboardingStep.ENTRY_SELECTION,
23
27
  context: buildDebugContext(),
24
28
  },
25
29
  _a[N1ModalViewMode.ChainSelection] = {
@@ -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,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;KACpD;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;SACxB,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;SACxB,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;SACxB,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({ selectedChain: null }),\n },\n [N1ModalViewMode.CreateSession]: {\n state: OnboardingStep.AUTH_LOADING,\n context: buildDebugContext({\n hasNordAccount: true,\n hasActiveSession: false,\n }),\n },\n [N1ModalViewMode.Signing]: {\n state: OnboardingStep.DEPOSIT_PROGRESS,\n context: buildDebugContext({\n hasNordAccount: false,\n hasActiveSession: false,\n }),\n },\n [N1ModalViewMode.CreatingUser]: {\n state: OnboardingStep.AMOUNT_INPUT,\n context: buildDebugContext({\n hasNordAccount: false,\n hasActiveSession: false,\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"]}
@@ -1,4 +1,18 @@
1
1
  import { OnboardingContext, OnboardingStep, StoredDepositRecord } from '../types';
2
+ /**
3
+ * State machine for managing the onboarding flow of the N1 wallet widget.
4
+ *
5
+ * This reducer-based state machine handles the complete user journey from initial
6
+ * wallet connection through deposit completion. It manages:
7
+ * - Wallet connection flow (EVM or Solana)
8
+ * - Chain selection
9
+ * - Deposit amount input and processing
10
+ * - Turnkey authentication
11
+ * - Error handling and recovery
12
+ *
13
+ * The machine follows a unidirectional data flow pattern where actions are dispatched
14
+ * to transition between states and update the context.
15
+ */
2
16
  export interface OnboardingStateSnapshot {
3
17
  state: OnboardingStep;
4
18
  context: OnboardingContext;
@@ -6,9 +20,20 @@ export interface OnboardingStateSnapshot {
6
20
  export type OnboardingStateAction = {
7
21
  type: 'SET_CONTEXT';
8
22
  updates: Partial<OnboardingContext>;
23
+ } | {
24
+ type: 'BEGIN_WALLET_CONNECTION';
25
+ entryNetwork: 'evm' | 'solana';
9
26
  } | {
10
27
  type: 'GO_TO_CHAIN_SELECTION';
11
28
  resetSelection: boolean;
29
+ } | {
30
+ type: 'GO_TO_AMOUNT_INPUT';
31
+ } | {
32
+ type: 'ENTER_TURNKEY_AUTH';
33
+ } | {
34
+ type: 'ENTER_TURNKEY_PREPARING';
35
+ } | {
36
+ type: 'RETURN_TO_CONNECTING';
12
37
  } | {
13
38
  type: 'SELECT_CHAIN';
14
39
  selection: {
@@ -40,7 +65,9 @@ export type OnboardingStateAction = {
40
65
  } | {
41
66
  type: 'RESET';
42
67
  context?: OnboardingContext;
43
- } | {
68
+ }
69
+ /** Debug-only: Applies a complete snapshot to override the current state */
70
+ | {
44
71
  type: 'APPLY_SNAPSHOT';
45
72
  snapshot: OnboardingStateSnapshot;
46
73
  };
@@ -9,16 +9,22 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
+ import { SolanaNetwork } from '../../../config/solana';
12
13
  import { OnboardingStep, initialOnboardingContext } from '../types';
13
14
  var initialMachineState = {
14
- state: OnboardingStep.CONNECTING_WALLET,
15
+ state: OnboardingStep.ENTRY_SELECTION,
15
16
  context: initialOnboardingContext,
16
17
  };
18
+ /**
19
+ * Resets chain selection context when navigating to chain selection.
20
+ * If resetSelection is false, keeps selection; otherwise clears all
21
+ * chain and deposit-related fields.
22
+ */
17
23
  var resetSelectionContext = function (context, resetSelection) {
18
24
  if (!resetSelection) {
19
- return __assign(__assign({}, context), { depositError: undefined });
25
+ return __assign({}, context);
20
26
  }
21
- return __assign(__assign({}, context), { selectedChain: null, selectedChainId: null, selectedChainNetwork: null, amount: '', depositError: undefined, lastDeposit: null });
27
+ return __assign(__assign({}, context), { selectedChain: null, selectedChainId: null, selectedChainNetwork: null, amount: '', lastDeposit: null });
22
28
  };
23
29
  export var onboardingStateReducer = function (machineState, action) {
24
30
  var _a, _b, _c, _d, _e;
@@ -26,11 +32,39 @@ export var onboardingStateReducer = function (machineState, action) {
26
32
  switch (action.type) {
27
33
  case 'SET_CONTEXT':
28
34
  return __assign(__assign({}, machineState), { context: __assign(__assign({}, machineState.context), action.updates) });
35
+ case 'BEGIN_WALLET_CONNECTION': {
36
+ // For Solana, pre-select the chain; for EVM, leave selection null
37
+ var isSolana = action.entryNetwork === 'solana';
38
+ return {
39
+ state: OnboardingStep.CONNECTING_WALLET,
40
+ context: __assign(__assign({}, machineState.context), { entryNetwork: action.entryNetwork, selectedChain: isSolana ? 'Solana' : null, selectedChainId: isSolana ? 'solana' : null, selectedChainNetwork: isSolana ? SolanaNetwork.MAINNET : null, depositError: undefined, lastDeposit: null }),
41
+ };
42
+ }
29
43
  case 'GO_TO_CHAIN_SELECTION':
30
44
  return {
31
45
  state: OnboardingStep.CHAIN_SELECTION,
32
46
  context: resetSelectionContext(machineState.context, action.resetSelection),
33
47
  };
48
+ case 'GO_TO_AMOUNT_INPUT':
49
+ return {
50
+ state: OnboardingStep.AMOUNT_INPUT,
51
+ context: machineState.context,
52
+ };
53
+ case 'ENTER_TURNKEY_AUTH':
54
+ return {
55
+ state: OnboardingStep.TURNKEY_AUTH,
56
+ context: machineState.context,
57
+ };
58
+ case 'ENTER_TURNKEY_PREPARING':
59
+ return {
60
+ state: OnboardingStep.TURNKEY_PREPARING,
61
+ context: machineState.context,
62
+ };
63
+ case 'RETURN_TO_CONNECTING':
64
+ return {
65
+ state: OnboardingStep.CONNECTING_WALLET,
66
+ context: machineState.context,
67
+ };
34
68
  case 'SELECT_CHAIN':
35
69
  return {
36
70
  state: OnboardingStep.AMOUNT_INPUT,
@@ -68,7 +102,7 @@ export var onboardingStateReducer = function (machineState, action) {
68
102
  };
69
103
  case 'RESET':
70
104
  return {
71
- state: OnboardingStep.CONNECTING_WALLET,
105
+ state: OnboardingStep.ENTRY_SELECTION,
72
106
  context: (_e = action.context) !== null && _e !== void 0 ? _e : initialOnboardingContext,
73
107
  };
74
108
  case 'APPLY_SNAPSHOT':
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboardingStateMachine.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/providers/onboardingStateMachine.ts"],"names":[],"mappings":"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","sourcesContent":["import { SolanaNetwork } from '../../../config/solana';\nimport { OnboardingContext, OnboardingStep, StoredDepositRecord, initialOnboardingContext } from '../types';\n\n/**\n * State machine for managing the onboarding flow of the N1 wallet widget.\n *\n * This reducer-based state machine handles the complete user journey from initial\n * wallet connection through deposit completion. It manages:\n * - Wallet connection flow (EVM or Solana)\n * - Chain selection\n * - Deposit amount input and processing\n * - Turnkey authentication\n * - Error handling and recovery\n *\n * The machine follows a unidirectional data flow pattern where actions are dispatched\n * to transition between states and update the context.\n */\nexport interface OnboardingStateSnapshot {\n state: OnboardingStep;\n context: OnboardingContext;\n}\n\nexport type OnboardingStateAction =\n | { type: 'SET_CONTEXT'; updates: Partial<OnboardingContext> }\n | { type: 'BEGIN_WALLET_CONNECTION'; entryNetwork: 'evm' | 'solana' }\n | { type: 'GO_TO_CHAIN_SELECTION'; resetSelection: boolean }\n | { type: 'GO_TO_AMOUNT_INPUT' }\n | { type: 'ENTER_TURNKEY_AUTH' }\n | { type: 'ENTER_TURNKEY_PREPARING' }\n | { type: 'RETURN_TO_CONNECTING' }\n | {\n type: 'SELECT_CHAIN';\n selection: {\n id: string;\n name: string;\n network?: string | null;\n };\n }\n | { type: 'START_DEPOSIT' }\n | {\n type: 'DEPOSIT_SUCCESS';\n payload: {\n transactionId: string;\n record: StoredDepositRecord;\n };\n }\n | { type: 'DEPOSIT_FAILED'; message: string }\n | { type: 'GO_TO_AUTH'; hasNordAccount?: boolean }\n | {\n type: 'COMPLETE_FLOW';\n hasActiveSession?: boolean;\n hasNordAccount?: boolean;\n }\n | { type: 'SET_ERROR'; error: Error }\n | { type: 'RESET'; context?: OnboardingContext }\n /** Debug-only: Applies a complete snapshot to override the current state */\n | { type: 'APPLY_SNAPSHOT'; snapshot: OnboardingStateSnapshot };\n\nconst initialMachineState: OnboardingStateSnapshot = {\n state: OnboardingStep.ENTRY_SELECTION,\n context: initialOnboardingContext,\n};\n\n/**\n * Resets chain selection context when navigating to chain selection.\n * If resetSelection is false, keeps selection; otherwise clears all\n * chain and deposit-related fields.\n */\nconst resetSelectionContext = (\n context: OnboardingContext,\n resetSelection: boolean\n): OnboardingContext => {\n if (!resetSelection) {\n return {\n ...context,\n };\n }\n\n return {\n ...context,\n selectedChain: null,\n selectedChainId: null,\n selectedChainNetwork: null,\n amount: '',\n lastDeposit: null,\n };\n};\n\nexport const onboardingStateReducer = (\n machineState: OnboardingStateSnapshot = initialMachineState,\n action: OnboardingStateAction\n): OnboardingStateSnapshot => {\n switch (action.type) {\n case 'SET_CONTEXT':\n return {\n ...machineState,\n context: { ...machineState.context, ...action.updates },\n };\n\n case 'BEGIN_WALLET_CONNECTION': {\n // For Solana, pre-select the chain; for EVM, leave selection null\n const isSolana = action.entryNetwork === 'solana';\n return {\n state: OnboardingStep.CONNECTING_WALLET,\n context: {\n ...machineState.context,\n entryNetwork: action.entryNetwork,\n selectedChain: isSolana ? 'Solana' : null,\n selectedChainId: isSolana ? 'solana' : null,\n selectedChainNetwork: isSolana ? SolanaNetwork.MAINNET : null,\n depositError: undefined,\n lastDeposit: null,\n },\n };\n }\n\n case 'GO_TO_CHAIN_SELECTION':\n return {\n state: OnboardingStep.CHAIN_SELECTION,\n context: resetSelectionContext(machineState.context, action.resetSelection),\n };\n\n case 'GO_TO_AMOUNT_INPUT':\n return {\n state: OnboardingStep.AMOUNT_INPUT,\n context: machineState.context,\n };\n\n case 'ENTER_TURNKEY_AUTH':\n return {\n state: OnboardingStep.TURNKEY_AUTH,\n context: machineState.context,\n };\n\n case 'ENTER_TURNKEY_PREPARING':\n return {\n state: OnboardingStep.TURNKEY_PREPARING,\n context: machineState.context,\n };\n\n case 'RETURN_TO_CONNECTING':\n return {\n state: OnboardingStep.CONNECTING_WALLET,\n context: machineState.context,\n };\n\n case 'SELECT_CHAIN':\n return {\n state: OnboardingStep.AMOUNT_INPUT,\n context: {\n ...machineState.context,\n selectedChain: action.selection.name,\n selectedChainId: action.selection.id,\n selectedChainNetwork: action.selection.network ?? null,\n depositError: undefined,\n lastDeposit: null,\n },\n };\n\n case 'START_DEPOSIT':\n return {\n state: OnboardingStep.DEPOSIT_PROGRESS,\n context: {\n ...machineState.context,\n depositError: undefined,\n error: null,\n },\n };\n\n case 'DEPOSIT_SUCCESS':\n return {\n state: OnboardingStep.DEPOSIT_SUCCESS,\n context: {\n ...machineState.context,\n hasNordAccount: true, // Successful deposit implies Nord account exists\n transactionId: action.payload.transactionId,\n amount: action.payload.record.amount,\n selectedChain: action.payload.record.chainName,\n selectedChainId: action.payload.record.chainId,\n selectedChainNetwork: action.payload.record.chainNetwork,\n lastDeposit: action.payload.record,\n depositError: undefined,\n error: null,\n },\n };\n\n case 'DEPOSIT_FAILED':\n return {\n state: OnboardingStep.AMOUNT_INPUT,\n context: {\n ...machineState.context,\n depositError: action.message,\n },\n };\n\n case 'GO_TO_AUTH':\n return {\n state: OnboardingStep.AUTH_LOADING,\n context: {\n ...machineState.context,\n hasNordAccount:\n action.hasNordAccount ?? machineState.context.hasNordAccount,\n },\n };\n\n case 'COMPLETE_FLOW':\n return {\n state: OnboardingStep.FINAL_SUCCESS,\n context: {\n ...machineState.context,\n hasNordAccount: action.hasNordAccount ?? true,\n hasActiveSession:\n action.hasActiveSession ?? machineState.context.hasActiveSession,\n isDepositOnlyFlow: false,\n },\n };\n\n case 'SET_ERROR':\n return {\n state: OnboardingStep.ERROR,\n context: {\n ...machineState.context,\n error: action.error,\n },\n };\n\n case 'RESET':\n return {\n state: OnboardingStep.ENTRY_SELECTION,\n context: action.context ?? initialOnboardingContext,\n };\n\n case 'APPLY_SNAPSHOT':\n return action.snapshot;\n\n default:\n return machineState;\n }\n};\n\nexport const createInitialOnboardingState = (): OnboardingStateSnapshot =>\n initialMachineState;\n"]}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Initial screen allowing users to choose between Solana or EVM wallet entry paths.
3
+ */
4
+ export declare function EntrySelectionScreen(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useMemo } from 'react';
3
+ import { ArbitrumLogo, BaseLogo, EthereumLogo, HyperliquidLogo, SolanaLogo, } from '../../../components/logos';
4
+ import { useOnboardingState } from '../providers';
5
+ var ArrowRight = function () { return (_jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "text-n1-ww-icon group-hover:text-white transition-colors", children: _jsx("path", { d: "M6 3l4 5-4 5", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round" }) })); };
6
+ var EvmLogoStack = function () { return (_jsxs("div", { className: "relative h-10 w-10 flex-none grayscale brightness-150 -top-[0.5rem]", children: [_jsx("div", { className: "absolute left-0 top-0 flex items-center justify-center w-4 h-8", children: _jsx(ArbitrumLogo, { width: 18, height: 18 }) }), _jsx("div", { className: "absolute right-0 top-0 flex items-center justify-center w-4 h-8", children: _jsx(EthereumLogo, { width: 20, height: 20 }) }), _jsx("div", { className: "absolute left-0 top-6 flex items-center justify-center w-4 h-8", children: _jsx(HyperliquidLogo, { width: 18, height: 18 }) }), _jsx("div", { className: "absolute right-0 top-6 flex items-center justify-center w-4 h-8", children: _jsx(BaseLogo, { width: 18, height: 18 }) })] })); };
7
+ var SelectionButton = function (_a) {
8
+ var option = _a.option, onClick = _a.onClick;
9
+ return (_jsxs("button", { type: "button", onClick: onClick, className: "group w-full rounded-lg border border-n1-ww-border bg-n1-ww-gray-900 px-4 py-3 flex items-center justify-between transition-all duration-200 hover:border-n1-ww-main/60 hover:bg-n1-ww-gray-800", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "flex items-center justify-center grayscale brightness-150 h-10 w-10", children: option.icon }), _jsxs("div", { className: "flex flex-col items-start text-left", children: [_jsx("span", { className: "text-white text-sm font-medium leading-tight", children: option.title }), _jsx("span", { className: "text-n1-ww-gray-100 text-xs font-light leading-tight", children: option.subtitle })] })] }), _jsx(ArrowRight, {})] }));
10
+ };
11
+ /**
12
+ * Initial screen allowing users to choose between Solana or EVM wallet entry paths.
13
+ */
14
+ export function EntrySelectionScreen() {
15
+ var actions = useOnboardingState().actions;
16
+ var options = useMemo(function () { return [
17
+ {
18
+ id: 'solana',
19
+ title: 'Solana',
20
+ subtitle: 'Use a Solana wallet directly',
21
+ icon: _jsx(SolanaLogo, { width: 20, height: 20, className: "grayscale brightness-150" }),
22
+ },
23
+ {
24
+ id: 'evm',
25
+ title: 'EVM',
26
+ subtitle: 'Connect with Ethereum, Arbitrum, Base, Hyperliquid',
27
+ icon: _jsx(EvmLogoStack, {}),
28
+ },
29
+ ]; }, []);
30
+ return (_jsx("div", { className: "flex flex-col space-y-3", children: options.map(function (option) { return (_jsx(SelectionButton, { option: option, onClick: function () { return actions.beginWalletConnection(option.id); } }, option.id)); }) }));
31
+ }
32
+ //# sourceMappingURL=00-EntrySelectionScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"00-EntrySelectionScreen.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/screens/00-EntrySelectionScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useMemo, type ReactNode } from 'react';\nimport {\n ArbitrumLogo,\n BaseLogo,\n EthereumLogo,\n HyperliquidLogo,\n SolanaLogo,\n} from '../../../components/logos';\nimport { useOnboardingState } from '../providers';\n\ntype EntryOption = {\n id: 'evm' | 'solana';\n title: string;\n subtitle: string;\n icon: ReactNode;\n};\n\nconst ArrowRight = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"text-n1-ww-icon group-hover:text-white transition-colors\"\n >\n <path\n d=\"M6 3l4 5-4 5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nconst EvmLogoStack = () => (\n <div className=\"relative h-10 w-10 flex-none grayscale brightness-150 -top-[0.5rem]\">\n <div className=\"absolute left-0 top-0 flex items-center justify-center w-4 h-8\">\n <ArbitrumLogo width={18} height={18} />\n </div>\n <div className=\"absolute right-0 top-0 flex items-center justify-center w-4 h-8\">\n <EthereumLogo width={20} height={20} />\n </div>\n <div className=\"absolute left-0 top-6 flex items-center justify-center w-4 h-8\">\n <HyperliquidLogo width={18} height={18} />\n </div>\n <div className=\"absolute right-0 top-6 flex items-center justify-center w-4 h-8\">\n <BaseLogo width={18} height={18} />\n </div>\n </div>\n);\n\nconst SelectionButton = ({ option, onClick }: { option: EntryOption; onClick: () => void }) => (\n <button\n type=\"button\"\n onClick={onClick}\n className=\"group w-full rounded-lg border border-n1-ww-border bg-n1-ww-gray-900 px-4 py-3 flex items-center justify-between transition-all duration-200 hover:border-n1-ww-main/60 hover:bg-n1-ww-gray-800\"\n >\n <div className=\"flex items-center gap-3\">\n <div className=\"flex items-center justify-center grayscale brightness-150 h-10 w-10\">\n {option.icon}\n </div>\n <div className=\"flex flex-col items-start text-left\">\n <span className=\"text-white text-sm font-medium leading-tight\">\n {option.title}\n </span>\n <span className=\"text-n1-ww-gray-100 text-xs font-light leading-tight\">\n {option.subtitle}\n </span>\n </div>\n </div>\n <ArrowRight />\n </button>\n);\n\n/**\n * Initial screen allowing users to choose between Solana or EVM wallet entry paths.\n */\nexport function EntrySelectionScreen() {\n const { actions } = useOnboardingState();\n\n const options = useMemo<EntryOption[]>(\n () => [\n {\n id: 'solana',\n title: 'Solana',\n subtitle: 'Use a Solana wallet directly',\n icon: <SolanaLogo width={20} height={20} className=\"grayscale brightness-150\" />,\n },\n {\n id: 'evm',\n title: 'EVM',\n subtitle: 'Connect with Ethereum, Arbitrum, Base, Hyperliquid',\n icon: <EvmLogoStack />,\n },\n ],\n []\n );\n\n return (\n <div className=\"flex flex-col space-y-3\">\n {options.map((option) => (\n <SelectionButton\n key={option.id}\n option={option}\n onClick={() => actions.beginWalletConnection(option.id)}\n />\n ))}\n </div>\n );\n}\n"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Screen that automatically triggers wallet connection when mounted.
3
+ * Shows loading state while Dynamic widget is open.
4
+ */
5
+ export declare function ConnectWalletScreen(): import("react/jsx-runtime").JSX.Element;
@@ -2,8 +2,13 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useEffect } from 'react';
3
3
  import { useWalletConnection } from '../providers';
4
4
  import { WaitingMessage } from '../components/WaitingMessage';
5
+ /**
6
+ * Screen that automatically triggers wallet connection when mounted.
7
+ * Shows loading state while Dynamic widget is open.
8
+ */
5
9
  export function ConnectWalletScreen() {
6
10
  var _a = useWalletConnection(), isConnecting = _a.isConnecting, connectWallet = _a.connectWallet;
11
+ // Auto-trigger connection on mount (only once)
7
12
  useEffect(function () {
8
13
  if (!isConnecting) {
9
14
  connectWallet();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"01-ConnectWalletScreen.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/screens/01-ConnectWalletScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IAC3B,IAAA,KAGF,mBAAmB,EAAE,EAFvB,YAAY,kBAAA,EACZ,aAAa,mBACU,CAAC;IAE1B,+CAA+C;IAC/C,SAAS,CAAC;QACR,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;IAElC,OAAO,CACL,KAAC,cAAc,IACb,UAAU,EAAE,EAAE,EACd,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,mBAAmB;YAC1B,QAAQ,EAAE,sDAAsD;YAChE,QAAQ,EAAE,KAAK;SAChB,GACD,CACH,CAAC;AACJ,CAAC","sourcesContent":["import { useEffect } from 'react';\nimport { useWalletConnection } from '../providers';\nimport { WaitingMessage } from '../components/WaitingMessage';\n\n/**\n * Screen that automatically triggers wallet connection when mounted.\n * Shows loading state while Dynamic widget is open.\n */\nexport function ConnectWalletScreen() {\n const {\n isConnecting,\n connectWallet,\n } = useWalletConnection();\n\n // Auto-trigger connection on mount (only once)\n useEffect(() => {\n if (!isConnecting) {\n connectWallet();\n }\n }, [isConnecting, connectWallet]);\n\n return (\n <WaitingMessage\n loaderSize={52}\n message={{\n visible: true,\n title: 'Connecting Wallet',\n subtitle: 'Please approve the connection request in your wallet',\n isTyping: false,\n }}\n />\n );\n}\n"]}
@@ -2,16 +2,23 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { WaitingMessage } from '../components/WaitingMessage';
4
4
  import { useWalletConnection } from '../providers';
5
+ /**
6
+ * Screen displayed during Turnkey authentication flow.
7
+ * Shows loading state, handles errors, and provides retry/disconnect options.
8
+ */
5
9
  var TURNKEY_ERROR_FALLBACK = 'Turnkey could not complete authentication. Retry or disconnect to start over.';
6
10
  export function TurnkeyAuthScreen() {
7
11
  var _a = useWalletConnection(), turnkeyStatus = _a.turnkeyStatus, turnkeyError = _a.turnkeyError, retryTurnkeyBootstrap = _a.retryTurnkeyBootstrap, disconnectWallet = _a.disconnectWallet;
8
12
  if (turnkeyStatus === 'error') {
9
13
  return (_jsxs("div", { className: "flex flex-col gap-4 text-center", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-base font-semibold text-white", children: "We couldn't complete Turnkey login" }), _jsx("p", { className: "text-sm text-neutral-400 mt-1", children: turnkeyError || TURNKEY_ERROR_FALLBACK })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", className: "flex-1 h-9 rounded border border-n1-ww-main text-n1-ww-main text-sm font-medium", onClick: retryTurnkeyBootstrap, children: "Retry" }), _jsx("button", { type: "button", className: "flex-1 h-9 rounded border border-n1-ww-border text-white text-sm font-medium", onClick: disconnectWallet, children: "Disconnect" })] })] }));
10
14
  }
15
+ var subtitle = turnkeyStatus === 'authenticating'
16
+ ? 'Complete the Turnkey prompt to continue'
17
+ : 'Securing your session...';
11
18
  return (_jsx(WaitingMessage, { loaderSize: 52, message: {
12
19
  visible: true,
13
20
  title: 'Secure Turnkey login',
14
- subtitle: 'Complete the Turnkey prompt to continue',
21
+ subtitle: subtitle,
15
22
  isTyping: false,
16
23
  } }));
17
24
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"02-TurnkeyAuthScreen.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD;;;GAGG;AACH,IAAM,sBAAsB,GAC1B,+EAA+E,CAAC;AAElF,MAAM,UAAU,iBAAiB;IACzB,IAAA,KAKF,mBAAmB,EAAE,EAJvB,aAAa,mBAAA,EACb,YAAY,kBAAA,EACZ,qBAAqB,2BAAA,EACrB,gBAAgB,sBACO,CAAC;IAE1B,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,CACL,eAAK,SAAS,EAAC,iCAAiC,aAC9C,0BACE,aAAI,SAAS,EAAC,oCAAoC,mDAE7C,EACL,YAAG,SAAS,EAAC,+BAA+B,YACzC,YAAY,IAAI,sBAAsB,GACrC,IACA,EACN,eAAK,SAAS,EAAC,YAAY,aACzB,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,iFAAiF,EAC3F,OAAO,EAAE,qBAAqB,sBAGvB,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,8EAA8E,EACxF,OAAO,EAAE,gBAAgB,2BAGlB,IACL,IACF,CACP,CAAC;IACJ,CAAC;IAED,IAAM,QAAQ,GACZ,aAAa,KAAK,gBAAgB;QAChC,CAAC,CAAC,yCAAyC;QAC3C,CAAC,CAAC,0BAA0B,CAAC;IAEjC,OAAO,CACL,KAAC,cAAc,IACb,UAAU,EAAE,EAAE,EACd,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,sBAAsB;YAC7B,QAAQ,UAAA;YACR,QAAQ,EAAE,KAAK;SAChB,GACD,CACH,CAAC;AACJ,CAAC","sourcesContent":["\"use client\";\n\nimport { WaitingMessage } from '../components/WaitingMessage';\nimport { useWalletConnection } from '../providers';\n\n/**\n * Screen displayed during Turnkey authentication flow.\n * Shows loading state, handles errors, and provides retry/disconnect options.\n */\nconst TURNKEY_ERROR_FALLBACK =\n 'Turnkey could not complete authentication. Retry or disconnect to start over.';\n\nexport function TurnkeyAuthScreen() {\n const {\n turnkeyStatus,\n turnkeyError,\n retryTurnkeyBootstrap,\n disconnectWallet,\n } = useWalletConnection();\n\n if (turnkeyStatus === 'error') {\n return (\n <div className=\"flex flex-col gap-4 text-center\">\n <div>\n <h3 className=\"text-base font-semibold text-white\">\n We couldn&apos;t complete Turnkey login\n </h3>\n <p className=\"text-sm text-neutral-400 mt-1\">\n {turnkeyError || TURNKEY_ERROR_FALLBACK}\n </p>\n </div>\n <div className=\"flex gap-2\">\n <button\n type=\"button\"\n className=\"flex-1 h-9 rounded border border-n1-ww-main text-n1-ww-main text-sm font-medium\"\n onClick={retryTurnkeyBootstrap}\n >\n Retry\n </button>\n <button\n type=\"button\"\n className=\"flex-1 h-9 rounded border border-n1-ww-border text-white text-sm font-medium\"\n onClick={disconnectWallet}\n >\n Disconnect\n </button>\n </div>\n </div>\n );\n }\n\n const subtitle =\n turnkeyStatus === 'authenticating'\n ? 'Complete the Turnkey prompt to continue'\n : 'Securing your session...';\n\n return (\n <WaitingMessage\n loaderSize={52}\n message={{\n visible: true,\n title: 'Secure Turnkey login',\n subtitle,\n isTyping: false,\n }}\n />\n );\n}\n"]}
@@ -2,16 +2,23 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { WaitingMessage } from '../components/WaitingMessage';
4
4
  import { useWalletConnection } from '../providers';
5
+ /**
6
+ * Screen displayed while Turnkey provisions a Solana wallet for EVM users.
7
+ * Shows progress, handles session expiration, and provides retry/disconnect options.
8
+ */
5
9
  var TURNKEY_ERROR_FALLBACK = 'Turnkey could not prepare your Solana wallet. Retry or disconnect to start over.';
6
10
  export function TurnkeyPreparingScreen() {
7
11
  var _a = useWalletConnection(), turnkeyStatus = _a.turnkeyStatus, turnkeyError = _a.turnkeyError, retryTurnkeyBootstrap = _a.retryTurnkeyBootstrap, disconnectWallet = _a.disconnectWallet;
8
12
  if (turnkeyStatus === 'error') {
9
13
  return (_jsxs("div", { className: "flex flex-col gap-4 text-center", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-base font-semibold text-white", children: "We couldn't prepare your Solana wallet" }), _jsx("p", { className: "text-sm text-neutral-400 mt-1", children: turnkeyError || TURNKEY_ERROR_FALLBACK })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", className: "flex-1 h-9 rounded border border-n1-ww-main text-n1-ww-main text-sm font-medium", onClick: retryTurnkeyBootstrap, children: "Retry" }), _jsx("button", { type: "button", className: "flex-1 h-9 rounded border border-n1-ww-border text-white text-sm font-medium", onClick: disconnectWallet, children: "Disconnect" })] })] }));
10
14
  }
15
+ var subtitle = turnkeyStatus === 'creating'
16
+ ? 'Provisioning a Nord-ready signer via Turnkey'
17
+ : 'Preparing Solana wallet…';
11
18
  return (_jsx(WaitingMessage, { loaderSize: 52, message: {
12
19
  visible: true,
13
20
  title: 'Preparing Solana wallet…',
14
- subtitle: 'Provisioning a Nord-ready signer via Turnkey',
21
+ subtitle: subtitle,
15
22
  isTyping: false,
16
23
  } }));
17
24
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"03-TurnkeyPreparingScreen.js","sourceRoot":"","sources":["../../../../../src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD;;;GAGG;AACH,IAAM,sBAAsB,GAC1B,kFAAkF,CAAC;AAErF,MAAM,UAAU,sBAAsB;IAC9B,IAAA,KAKF,mBAAmB,EAAE,EAJvB,aAAa,mBAAA,EACb,YAAY,kBAAA,EACZ,qBAAqB,2BAAA,EACrB,gBAAgB,sBACO,CAAC;IAE1B,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,CACL,eAAK,SAAS,EAAC,iCAAiC,aAC9C,0BACE,aAAI,SAAS,EAAC,oCAAoC,uDAE7C,EACL,YAAG,SAAS,EAAC,+BAA+B,YACzC,YAAY,IAAI,sBAAsB,GACrC,IACA,EACN,eAAK,SAAS,EAAC,YAAY,aACzB,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,iFAAiF,EAC3F,OAAO,EAAE,qBAAqB,sBAGvB,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,8EAA8E,EACxF,OAAO,EAAE,gBAAgB,2BAGlB,IACL,IACF,CACP,CAAC;IACJ,CAAC;IAED,IAAM,QAAQ,GACZ,aAAa,KAAK,UAAU;QAC1B,CAAC,CAAC,8CAA8C;QAChD,CAAC,CAAC,0BAA0B,CAAC;IAEjC,OAAO,CACL,KAAC,cAAc,IACb,UAAU,EAAE,EAAE,EACd,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,0BAA0B;YACjC,QAAQ,UAAA;YACR,QAAQ,EAAE,KAAK;SAChB,GACD,CACH,CAAC;AACJ,CAAC","sourcesContent":["\"use client\";\n\nimport { WaitingMessage } from '../components/WaitingMessage';\nimport { useWalletConnection } from '../providers';\n\n/**\n * Screen displayed while Turnkey provisions a Solana wallet for EVM users.\n * Shows progress, handles session expiration, and provides retry/disconnect options.\n */\nconst TURNKEY_ERROR_FALLBACK =\n 'Turnkey could not prepare your Solana wallet. Retry or disconnect to start over.';\n\nexport function TurnkeyPreparingScreen() {\n const {\n turnkeyStatus,\n turnkeyError,\n retryTurnkeyBootstrap,\n disconnectWallet,\n } = useWalletConnection();\n\n if (turnkeyStatus === 'error') {\n return (\n <div className=\"flex flex-col gap-4 text-center\">\n <div>\n <h3 className=\"text-base font-semibold text-white\">\n We couldn&apos;t prepare your Solana wallet\n </h3>\n <p className=\"text-sm text-neutral-400 mt-1\">\n {turnkeyError || TURNKEY_ERROR_FALLBACK}\n </p>\n </div>\n <div className=\"flex gap-2\">\n <button\n type=\"button\"\n className=\"flex-1 h-9 rounded border border-n1-ww-main text-n1-ww-main text-sm font-medium\"\n onClick={retryTurnkeyBootstrap}\n >\n Retry\n </button>\n <button\n type=\"button\"\n className=\"flex-1 h-9 rounded border border-n1-ww-border text-white text-sm font-medium\"\n onClick={disconnectWallet}\n >\n Disconnect\n </button>\n </div>\n </div>\n );\n }\n\n const subtitle =\n turnkeyStatus === 'creating'\n ? 'Provisioning a Nord-ready signer via Turnkey'\n : 'Preparing Solana wallet…';\n\n return (\n <WaitingMessage\n loaderSize={52}\n message={{\n visible: true,\n title: 'Preparing Solana wallet…',\n subtitle,\n isTyping: false,\n }}\n />\n );\n}\n"]}
@@ -1,31 +1,31 @@
1
- import { SolanaNetwork } from "../../../config/solana";
2
1
  export declare const CHAINS_WITH_NETWORK_INFO: readonly [{
3
2
  readonly id: "solana";
4
3
  readonly name: "Solana";
5
- readonly subtitle: "~1 minute deposit time";
4
+ readonly subtitle: "Fast default path";
6
5
  readonly logo: import("react/jsx-runtime").JSX.Element;
7
- readonly network: SolanaNetwork.MAINNET;
8
- readonly soon: false;
6
+ readonly network: "solana";
9
7
  }, {
10
- readonly id: "hyperliquid";
11
- readonly name: "Hyperliquid";
8
+ readonly id: "ethereum";
9
+ readonly name: "Ethereum";
12
10
  readonly subtitle: undefined;
13
11
  readonly logo: import("react/jsx-runtime").JSX.Element;
14
12
  readonly network: "";
15
- readonly soon: true;
16
13
  }, {
17
14
  readonly id: "arbitrum";
18
15
  readonly name: "Arbitrum";
19
16
  readonly subtitle: undefined;
20
17
  readonly logo: import("react/jsx-runtime").JSX.Element;
21
18
  readonly network: "";
22
- readonly soon: true;
23
19
  }, {
24
- readonly id: "ethereum";
25
- readonly name: "Ethereum";
20
+ readonly id: "base";
21
+ readonly name: "Base";
26
22
  readonly subtitle: undefined;
27
23
  readonly logo: import("react/jsx-runtime").JSX.Element;
28
24
  readonly network: "";
29
- readonly soon: true;
30
25
  }];
26
+ /**
27
+ * Screen allowing users to select a blockchain network for deposit.
28
+ * Filters available chains based on flow type (deposit-only shows Solana, regular hides it).
29
+ * Auto-advances to auth/complete if user already has Nord account with active session.
30
+ */
31
31
  export declare function ChainSelectionScreen(): import("react/jsx-runtime").JSX.Element;