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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (574) hide show
  1. package/dist/bridge-assist/cctp-solana.d.ts +33 -0
  2. package/dist/bridge-assist/cctp-solana.js +392 -0
  3. package/dist/bridge-assist/cctp-solana.js.map +1 -0
  4. package/dist/main.css +1 -2
  5. package/dist/src/adapters/evm.d.ts +39 -0
  6. package/dist/src/adapters/evm.js +338 -0
  7. package/dist/src/adapters/evm.js.map +1 -0
  8. package/dist/src/adapters/factory.d.ts +37 -0
  9. package/dist/src/adapters/factory.js +82 -0
  10. package/dist/src/adapters/factory.js.map +1 -0
  11. package/dist/src/adapters/index.d.ts +33 -0
  12. package/dist/src/adapters/index.js +36 -0
  13. package/dist/src/adapters/index.js.map +1 -0
  14. package/dist/src/adapters/solana.d.ts +37 -0
  15. package/dist/src/adapters/solana.js +359 -0
  16. package/dist/src/adapters/solana.js.map +1 -0
  17. package/dist/src/adapters/types.d.ts +160 -0
  18. package/dist/src/adapters/types.js +20 -0
  19. package/dist/src/adapters/types.js.map +1 -0
  20. package/dist/src/animations/N1Loader.js.map +1 -0
  21. package/dist/src/animations/N1Loader.json +1 -0
  22. package/dist/src/animations/Processing.js.map +1 -0
  23. package/dist/src/animations/Processing.json +1 -0
  24. package/dist/{components → src/components}/LoadingFallback.d.ts +3 -0
  25. package/dist/{components → src/components}/LoadingFallback.js +3 -0
  26. package/dist/src/components/LoadingFallback.js.map +1 -0
  27. package/dist/{components → src/components}/Logo.d.ts +4 -0
  28. package/dist/{components → src/components}/Logo.js +4 -0
  29. package/dist/src/components/Logo.js.map +1 -0
  30. package/dist/src/components/N1ConnectButton.d.ts +13 -0
  31. package/dist/src/components/N1ConnectButton.js +66 -0
  32. package/dist/src/components/N1ConnectButton.js.map +1 -0
  33. package/dist/src/components/logos/ArbitrumLogo.js.map +1 -0
  34. package/dist/src/components/logos/BaseLogo.js +6 -0
  35. package/dist/src/components/logos/BaseLogo.js.map +1 -0
  36. package/dist/src/components/logos/BeraLogo.js.map +1 -0
  37. package/dist/src/components/logos/BitcoinLogo.js.map +1 -0
  38. package/dist/src/components/logos/EthereumLogo.js.map +1 -0
  39. package/dist/{components → src/components}/logos/HyperliquidLogo.js +1 -1
  40. package/dist/src/components/logos/HyperliquidLogo.js.map +1 -0
  41. package/dist/src/components/logos/OptimismLogo.js.map +1 -0
  42. package/dist/src/components/logos/SolanaLogo.js.map +1 -0
  43. package/dist/src/components/logos/ZeroOneLogo.js.map +1 -0
  44. package/dist/src/components/logos/index.js.map +1 -0
  45. package/dist/src/config/chains.d.ts +18 -0
  46. package/dist/src/config/chains.js +58 -0
  47. package/dist/src/config/chains.js.map +1 -0
  48. package/dist/src/config/dynamic.d.ts +1 -0
  49. package/dist/src/config/dynamic.js +18 -0
  50. package/dist/src/config/dynamic.js.map +1 -0
  51. package/dist/src/config/solana.js.map +1 -0
  52. package/dist/src/config/turnkey.d.ts +2 -0
  53. package/dist/src/config/turnkey.js +32 -0
  54. package/dist/src/config/turnkey.js.map +1 -0
  55. package/dist/src/context/n1-wallet-context.js.map +1 -0
  56. package/dist/src/errors/types.d.ts +72 -0
  57. package/dist/src/errors/types.js +140 -0
  58. package/dist/src/errors/types.js.map +1 -0
  59. package/dist/{features → src/features}/onboarding-flow/N1WalletModal.js +44 -29
  60. package/dist/src/features/onboarding-flow/N1WalletModal.js.map +1 -0
  61. package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.d.ts +2 -1
  62. package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.js +54 -8
  63. package/dist/src/features/onboarding-flow/OnboardingFlow.js.map +1 -0
  64. package/dist/src/features/onboarding-flow/bridge-assist/client.d.ts +42 -0
  65. package/dist/src/features/onboarding-flow/bridge-assist/client.js +268 -0
  66. package/dist/src/features/onboarding-flow/bridge-assist/client.js.map +1 -0
  67. package/dist/src/features/onboarding-flow/bridge-assist/config.d.ts +4 -0
  68. package/dist/src/features/onboarding-flow/bridge-assist/config.js +11 -0
  69. package/dist/src/features/onboarding-flow/bridge-assist/config.js.map +1 -0
  70. package/dist/src/features/onboarding-flow/bridge-assist/index.d.ts +1 -0
  71. package/dist/src/features/onboarding-flow/bridge-assist/index.js +2 -0
  72. package/dist/src/features/onboarding-flow/bridge-assist/index.js.map +1 -0
  73. package/dist/src/features/onboarding-flow/bridge-assist/types.d.ts +5 -0
  74. package/dist/src/features/onboarding-flow/bridge-assist/types.js +28 -0
  75. package/dist/src/features/onboarding-flow/bridge-assist/types.js.map +1 -0
  76. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.d.ts +35 -0
  77. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js +391 -0
  78. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js.map +1 -0
  79. package/dist/src/features/onboarding-flow/cctp/clientFactory.d.ts +6 -0
  80. package/dist/src/features/onboarding-flow/cctp/clientFactory.js +9 -0
  81. package/dist/src/features/onboarding-flow/cctp/clientFactory.js.map +1 -0
  82. package/dist/src/features/onboarding-flow/cctp/config.d.ts +16 -0
  83. package/dist/src/features/onboarding-flow/cctp/config.js +55 -0
  84. package/dist/src/features/onboarding-flow/cctp/config.js.map +1 -0
  85. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.d.ts +11 -0
  86. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js +85 -0
  87. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js.map +1 -0
  88. package/dist/src/features/onboarding-flow/cctp/solanaClaim.d.ts +1 -0
  89. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js +2 -0
  90. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js.map +1 -0
  91. package/dist/src/features/onboarding-flow/cctp/types.d.ts +50 -0
  92. package/dist/src/features/onboarding-flow/cctp/types.js +2 -0
  93. package/dist/src/features/onboarding-flow/cctp/types.js.map +1 -0
  94. package/dist/{features → src/features}/onboarding-flow/components/ChainButton.d.ts +5 -2
  95. package/dist/src/features/onboarding-flow/components/ChainButton.js +14 -0
  96. package/dist/src/features/onboarding-flow/components/ChainButton.js.map +1 -0
  97. package/dist/{features → src/features}/onboarding-flow/components/Header.d.ts +2 -2
  98. package/dist/src/features/onboarding-flow/components/Header.js +69 -0
  99. package/dist/src/features/onboarding-flow/components/Header.js.map +1 -0
  100. package/dist/{features → src/features}/onboarding-flow/components/ImageWithFallback.d.ts +2 -5
  101. package/dist/src/features/onboarding-flow/components/ImageWithFallback.js +33 -0
  102. package/dist/src/features/onboarding-flow/components/ImageWithFallback.js.map +1 -0
  103. package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.d.ts +5 -0
  104. package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.js +8 -3
  105. package/dist/src/features/onboarding-flow/components/TransactionTable.js.map +1 -0
  106. package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.d.ts +4 -0
  107. package/dist/src/features/onboarding-flow/components/WaitingMessage.js.map +1 -0
  108. package/dist/src/features/onboarding-flow/components/index.js.map +1 -0
  109. package/dist/src/features/onboarding-flow/errors/depositError.d.ts +36 -0
  110. package/dist/src/features/onboarding-flow/errors/depositError.js +134 -0
  111. package/dist/src/features/onboarding-flow/errors/depositError.js.map +1 -0
  112. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.d.ts +35 -0
  113. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js +585 -0
  114. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js.map +1 -0
  115. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.d.ts +6 -0
  116. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js +141 -0
  117. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js.map +1 -0
  118. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.d.ts +15 -0
  119. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js +83 -0
  120. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js.map +1 -0
  121. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.d.ts +6 -0
  122. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js +45 -0
  123. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js.map +1 -0
  124. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.d.ts +13 -0
  125. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js +161 -0
  126. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js.map +1 -0
  127. package/dist/src/features/onboarding-flow/index.js.map +1 -0
  128. package/dist/{features → src/features}/onboarding-flow/providers/DepositFlowProvider.d.ts +10 -3
  129. package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js +762 -0
  130. package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -0
  131. package/dist/{features → src/features}/onboarding-flow/providers/OnboardingStateProvider.d.ts +5 -0
  132. package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js +399 -0
  133. package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -0
  134. package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.d.ts +2 -2
  135. package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.js +2 -2
  136. package/dist/src/features/onboarding-flow/providers/StateProvider.js.map +1 -0
  137. package/dist/{features → src/features}/onboarding-flow/providers/WalletConnectionProvider.d.ts +8 -0
  138. package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js +938 -0
  139. package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -0
  140. package/dist/{features → src/features}/onboarding-flow/providers/debug.js +5 -1
  141. package/dist/src/features/onboarding-flow/providers/debug.js.map +1 -0
  142. package/dist/src/features/onboarding-flow/providers/index.js.map +1 -0
  143. package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.d.ts +28 -1
  144. package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.js +38 -4
  145. package/dist/src/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -0
  146. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.d.ts +4 -0
  147. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js +32 -0
  148. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js.map +1 -0
  149. package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +5 -0
  150. package/dist/{features → src/features}/onboarding-flow/screens/01-ConnectWalletScreen.js +5 -0
  151. package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -0
  152. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.d.ts +1 -0
  153. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js +25 -0
  154. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +1 -0
  155. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.d.ts +1 -0
  156. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js +25 -0
  157. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +1 -0
  158. package/dist/{features/onboarding-flow/screens/02-ChainSelectionScreen.d.ts → src/features/onboarding-flow/screens/04-ChainSelectionScreen.d.ts} +11 -11
  159. package/dist/{features/onboarding-flow/screens/02-ChainSelectionScreen.js → src/features/onboarding-flow/screens/04-ChainSelectionScreen.js} +60 -30
  160. package/dist/src/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +1 -0
  161. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.d.ts +11 -0
  162. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js +585 -0
  163. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js.map +1 -0
  164. package/dist/{features/onboarding-flow/screens/04-DepositProgressScreen.d.ts → src/features/onboarding-flow/screens/06-DepositProgressScreen.d.ts} +5 -0
  165. package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js +367 -0
  166. package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +1 -0
  167. package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +6 -0
  168. package/dist/{features/onboarding-flow/screens/05-DepositSuccessScreen.js → src/features/onboarding-flow/screens/07-DepositSuccessScreen.js} +12 -6
  169. package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +1 -0
  170. package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +5 -0
  171. package/dist/{features/onboarding-flow/screens/06-AuthLoadingScreen.js → src/features/onboarding-flow/screens/08-AuthLoadingScreen.js} +6 -2
  172. package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +1 -0
  173. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.d.ts +5 -0
  174. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js +43 -0
  175. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js.map +1 -0
  176. package/dist/src/features/onboarding-flow/screens/index.d.ts +10 -0
  177. package/dist/src/features/onboarding-flow/screens/index.js +11 -0
  178. package/dist/src/features/onboarding-flow/screens/index.js.map +1 -0
  179. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.d.ts +1 -0
  180. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js +2 -0
  181. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js.map +1 -0
  182. package/dist/{features → src/features}/onboarding-flow/types.d.ts +38 -11
  183. package/dist/{features → src/features}/onboarding-flow/types.js +5 -0
  184. package/dist/src/features/onboarding-flow/types.js.map +1 -0
  185. package/dist/src/features/onboarding-flow/utils/bridgeUtils.d.ts +6 -0
  186. package/dist/src/features/onboarding-flow/utils/bridgeUtils.js +34 -0
  187. package/dist/src/features/onboarding-flow/utils/bridgeUtils.js.map +1 -0
  188. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.d.ts +29 -0
  189. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js +82 -0
  190. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js.map +1 -0
  191. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.d.ts +5 -0
  192. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js +10 -0
  193. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js.map +1 -0
  194. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.d.ts +14 -0
  195. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js +94 -0
  196. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js.map +1 -0
  197. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.d.ts +25 -0
  198. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js +212 -0
  199. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js.map +1 -0
  200. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.d.ts +37 -0
  201. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js +199 -0
  202. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js.map +1 -0
  203. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.d.ts +27 -0
  204. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js +149 -0
  205. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js.map +1 -0
  206. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.d.ts +5 -0
  207. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js +121 -0
  208. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js.map +1 -0
  209. package/dist/{features/onboarding-flow/utils/transaction.d.ts → src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.d.ts} +3 -3
  210. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js +8 -0
  211. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js.map +1 -0
  212. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.d.ts +12 -0
  213. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js +150 -0
  214. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js.map +1 -0
  215. package/dist/src/features/onboarding-flow/utils/deposit/storage.d.ts +52 -0
  216. package/dist/src/features/onboarding-flow/utils/deposit/storage.js +243 -0
  217. package/dist/src/features/onboarding-flow/utils/deposit/storage.js.map +1 -0
  218. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.d.ts +36 -0
  219. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js +304 -0
  220. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js.map +1 -0
  221. package/dist/src/features/onboarding-flow/utils/depositPolling.d.ts +1 -0
  222. package/dist/src/features/onboarding-flow/utils/depositPolling.js +3 -0
  223. package/dist/src/features/onboarding-flow/utils/depositPolling.js.map +1 -0
  224. package/dist/src/features/onboarding-flow/utils/explorerUrl.d.ts +14 -0
  225. package/dist/src/features/onboarding-flow/utils/explorerUrl.js +44 -0
  226. package/dist/src/features/onboarding-flow/utils/explorerUrl.js.map +1 -0
  227. package/dist/src/features/onboarding-flow/utils/nordUtils.d.ts +8 -0
  228. package/dist/{features/onboarding-flow/utils/nordUser.js → src/features/onboarding-flow/utils/nordUtils.js} +14 -1
  229. package/dist/src/features/onboarding-flow/utils/nordUtils.js.map +1 -0
  230. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.d.ts +13 -0
  231. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js +15 -0
  232. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js.map +1 -0
  233. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.d.ts +15 -0
  234. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js +94 -0
  235. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js.map +1 -0
  236. package/dist/{features → src/features}/onboarding-flow/utils/utils.d.ts +9 -2
  237. package/dist/{features → src/features}/onboarding-flow/utils/utils.js +9 -4
  238. package/dist/src/features/onboarding-flow/utils/utils.js.map +1 -0
  239. package/dist/src/features/onboarding-flow/utils/withImageFallback.d.ts +6 -0
  240. package/dist/{features → src/features}/onboarding-flow/utils/withImageFallback.js +2 -3
  241. package/dist/src/features/onboarding-flow/utils/withImageFallback.js.map +1 -0
  242. package/dist/src/hooks/index.js.map +1 -0
  243. package/dist/src/hooks/useN1Wallet.d.ts +12 -0
  244. package/dist/{hooks → src/hooks}/useN1Wallet.js +10 -0
  245. package/dist/src/hooks/useN1Wallet.js.map +1 -0
  246. package/dist/src/hooks/useNordUserInitialization.d.ts +12 -0
  247. package/dist/{hooks → src/hooks}/useNordUserInitialization.js +74 -33
  248. package/dist/src/hooks/useNordUserInitialization.js.map +1 -0
  249. package/dist/src/index.d.ts +9 -0
  250. package/dist/src/index.js +16 -0
  251. package/dist/src/index.js.map +1 -0
  252. package/dist/src/providers/LazyWalletProvider.d.ts +4 -0
  253. package/dist/src/providers/LazyWalletProvider.js +404 -0
  254. package/dist/src/providers/LazyWalletProvider.js.map +1 -0
  255. package/dist/src/providers/N1WalletProvider/ContextBridge.d.ts +28 -0
  256. package/dist/src/providers/N1WalletProvider/ContextBridge.js +273 -0
  257. package/dist/src/providers/N1WalletProvider/ContextBridge.js.map +1 -0
  258. package/dist/src/providers/N1WalletProvider/ModalProvider.d.ts +113 -0
  259. package/dist/src/providers/N1WalletProvider/ModalProvider.js +319 -0
  260. package/dist/src/providers/N1WalletProvider/ModalProvider.js.map +1 -0
  261. package/dist/src/providers/N1WalletProvider/NetworkProvider.d.ts +88 -0
  262. package/dist/src/providers/N1WalletProvider/NetworkProvider.js +252 -0
  263. package/dist/src/providers/N1WalletProvider/NetworkProvider.js.map +1 -0
  264. package/dist/src/providers/N1WalletProvider/SessionProvider.d.ts +71 -0
  265. package/dist/src/providers/N1WalletProvider/SessionProvider.js +187 -0
  266. package/dist/src/providers/N1WalletProvider/SessionProvider.js.map +1 -0
  267. package/dist/src/providers/N1WalletProvider/SigningProvider.d.ts +58 -0
  268. package/dist/src/providers/N1WalletProvider/SigningProvider.js +134 -0
  269. package/dist/src/providers/N1WalletProvider/SigningProvider.js.map +1 -0
  270. package/dist/src/providers/N1WalletProvider/ThemingProvider.d.ts +50 -0
  271. package/dist/src/providers/N1WalletProvider/ThemingProvider.js +102 -0
  272. package/dist/src/providers/N1WalletProvider/ThemingProvider.js.map +1 -0
  273. package/dist/src/providers/N1WalletProvider/index.d.ts +21 -0
  274. package/dist/src/providers/N1WalletProvider/index.js +27 -0
  275. package/dist/src/providers/N1WalletProvider/index.js.map +1 -0
  276. package/dist/src/providers/N1WalletProvider.d.ts +17 -0
  277. package/dist/src/providers/N1WalletProvider.js +102 -0
  278. package/dist/src/providers/N1WalletProvider.js.map +1 -0
  279. package/dist/{providers → src/providers}/ShadowRootWrapper.d.ts +4 -0
  280. package/dist/{providers → src/providers}/ShadowRootWrapper.js +4 -5
  281. package/dist/src/providers/ShadowRootWrapper.js.map +1 -0
  282. package/dist/{providers → src/providers}/WalletErrorBoundary.d.ts +7 -2
  283. package/dist/{providers → src/providers}/WalletErrorBoundary.js +5 -1
  284. package/dist/src/providers/WalletErrorBoundary.js.map +1 -0
  285. package/dist/src/services/bootstrap/DepositRecoveryService.d.ts +64 -0
  286. package/dist/src/services/bootstrap/DepositRecoveryService.js +245 -0
  287. package/dist/src/services/bootstrap/DepositRecoveryService.js.map +1 -0
  288. package/dist/src/services/bootstrap/DynamicSdkService.d.ts +62 -0
  289. package/dist/src/services/bootstrap/DynamicSdkService.js +335 -0
  290. package/dist/src/services/bootstrap/DynamicSdkService.js.map +1 -0
  291. package/dist/src/services/bootstrap/SessionBootstrapService.d.ts +78 -0
  292. package/dist/src/services/bootstrap/SessionBootstrapService.js +280 -0
  293. package/dist/src/services/bootstrap/SessionBootstrapService.js.map +1 -0
  294. package/dist/src/services/bootstrap/TurnkeyBootstrapService.d.ts +92 -0
  295. package/dist/src/services/bootstrap/TurnkeyBootstrapService.js +253 -0
  296. package/dist/src/services/bootstrap/TurnkeyBootstrapService.js.map +1 -0
  297. package/dist/src/services/bootstrap/index.d.ts +13 -0
  298. package/dist/src/services/bootstrap/index.js +16 -0
  299. package/dist/src/services/bootstrap/index.js.map +1 -0
  300. package/dist/src/services/bootstrap/types.d.ts +92 -0
  301. package/dist/src/services/bootstrap/types.js +7 -0
  302. package/dist/src/services/bootstrap/types.js.map +1 -0
  303. package/dist/src/services/storage/StorageService.d.ts +98 -0
  304. package/dist/src/services/storage/StorageService.js +360 -0
  305. package/dist/src/services/storage/StorageService.js.map +1 -0
  306. package/dist/src/services/storage/index.d.ts +9 -0
  307. package/dist/src/services/storage/index.js +10 -0
  308. package/dist/src/services/storage/index.js.map +1 -0
  309. package/dist/src/services/storage/keys.d.ts +28 -0
  310. package/dist/src/services/storage/keys.js +45 -0
  311. package/dist/src/services/storage/keys.js.map +1 -0
  312. package/dist/src/services/storage/types.d.ts +73 -0
  313. package/dist/src/services/storage/types.js +23 -0
  314. package/dist/src/services/storage/types.js.map +1 -0
  315. package/dist/src/store/index.d.ts +8 -0
  316. package/dist/src/store/index.js +24 -0
  317. package/dist/src/store/index.js.map +1 -0
  318. package/dist/src/store/selectors.d.ts +105 -0
  319. package/dist/src/store/selectors.js +183 -0
  320. package/dist/src/store/selectors.js.map +1 -0
  321. package/dist/src/store/slices/bootstrapSlice.d.ts +64 -0
  322. package/dist/src/store/slices/bootstrapSlice.js +78 -0
  323. package/dist/src/store/slices/bootstrapSlice.js.map +1 -0
  324. package/dist/src/store/slices/configSlice.d.ts +7 -0
  325. package/dist/src/store/slices/configSlice.js +14 -0
  326. package/dist/src/store/slices/configSlice.js.map +1 -0
  327. package/dist/src/store/slices/index.d.ts +10 -0
  328. package/dist/src/store/slices/index.js +10 -0
  329. package/dist/src/store/slices/index.js.map +1 -0
  330. package/dist/src/store/slices/sessionSlice.d.ts +7 -0
  331. package/dist/src/store/slices/sessionSlice.js +17 -0
  332. package/dist/src/store/slices/sessionSlice.js.map +1 -0
  333. package/dist/src/store/slices/signingSlice.d.ts +7 -0
  334. package/dist/src/store/slices/signingSlice.js +14 -0
  335. package/dist/src/store/slices/signingSlice.js.map +1 -0
  336. package/dist/src/store/slices/uiSlice.d.ts +9 -0
  337. package/dist/src/store/slices/uiSlice.js +25 -0
  338. package/dist/src/store/slices/uiSlice.js.map +1 -0
  339. package/dist/src/store/slices/walletSlice.d.ts +7 -0
  340. package/dist/src/store/slices/walletSlice.js +21 -0
  341. package/dist/src/store/slices/walletSlice.js.map +1 -0
  342. package/dist/src/store/store.d.ts +50 -0
  343. package/dist/src/store/store.js +259 -0
  344. package/dist/src/store/store.js.map +1 -0
  345. package/dist/src/store/subscriptions/depositPersistence.d.ts +32 -0
  346. package/dist/src/store/subscriptions/depositPersistence.js +106 -0
  347. package/dist/src/store/subscriptions/depositPersistence.js.map +1 -0
  348. package/dist/src/store/subscriptions/index.d.ts +34 -0
  349. package/dist/src/store/subscriptions/index.js +73 -0
  350. package/dist/src/store/subscriptions/index.js.map +1 -0
  351. package/dist/src/store/subscriptions/turnkeyPersistence.d.ts +42 -0
  352. package/dist/src/store/subscriptions/turnkeyPersistence.js +127 -0
  353. package/dist/src/store/subscriptions/turnkeyPersistence.js.map +1 -0
  354. package/dist/src/store/types.d.ts +166 -0
  355. package/dist/src/store/types.js +7 -0
  356. package/dist/src/store/types.js.map +1 -0
  357. package/dist/src/styles/cdn-fonts.d.ts +12 -0
  358. package/dist/{styles → src/styles}/cdn-fonts.js +20 -2
  359. package/dist/src/styles/cdn-fonts.js.map +1 -0
  360. package/dist/src/styles/embedded-main-css.d.ts +2 -0
  361. package/dist/src/styles/embedded-main-css.js +3 -0
  362. package/dist/src/styles/embedded-main-css.js.map +1 -0
  363. package/dist/src/turnkey/TurnkeyProvider.d.ts +21 -0
  364. package/dist/src/turnkey/TurnkeyProvider.js +695 -0
  365. package/dist/src/turnkey/TurnkeyProvider.js.map +1 -0
  366. package/dist/src/turnkey/createTurnkeyWallet.d.ts +39 -0
  367. package/dist/src/turnkey/createTurnkeyWallet.js +319 -0
  368. package/dist/src/turnkey/createTurnkeyWallet.js.map +1 -0
  369. package/dist/src/turnkey/createWalletProvider.d.ts +8 -0
  370. package/dist/src/turnkey/createWalletProvider.js +286 -0
  371. package/dist/src/turnkey/createWalletProvider.js.map +1 -0
  372. package/dist/src/turnkey/index.d.ts +3 -0
  373. package/dist/src/turnkey/index.js +3 -0
  374. package/dist/src/turnkey/index.js.map +1 -0
  375. package/dist/src/turnkey/turnkeySessionMachine.d.ts +39 -0
  376. package/dist/src/turnkey/turnkeySessionMachine.js +77 -0
  377. package/dist/src/turnkey/turnkeySessionMachine.js.map +1 -0
  378. package/dist/src/turnkey/turnkeySessionStorage.d.ts +48 -0
  379. package/dist/src/turnkey/turnkeySessionStorage.js +183 -0
  380. package/dist/src/turnkey/turnkeySessionStorage.js.map +1 -0
  381. package/dist/src/turnkey/types.d.ts +61 -0
  382. package/dist/src/turnkey/types.js +12 -0
  383. package/dist/src/turnkey/types.js.map +1 -0
  384. package/dist/{types → src/types}/wallet.d.ts +39 -13
  385. package/dist/src/types/wallet.js.map +1 -0
  386. package/dist/src/utils/address.d.ts +130 -0
  387. package/dist/src/utils/address.js +274 -0
  388. package/dist/src/utils/address.js.map +1 -0
  389. package/dist/src/utils/chain.d.ts +89 -0
  390. package/dist/src/utils/chain.js +282 -0
  391. package/dist/src/utils/chain.js.map +1 -0
  392. package/dist/{utils → src/utils}/ed25519.d.ts +0 -2
  393. package/dist/{utils → src/utils}/ed25519.js +5 -20
  394. package/dist/src/utils/ed25519.js.map +1 -0
  395. package/dist/src/utils/errors.d.ts +68 -0
  396. package/dist/src/utils/errors.js +190 -0
  397. package/dist/src/utils/errors.js.map +1 -0
  398. package/dist/src/utils/events.d.ts +124 -0
  399. package/dist/src/utils/events.js +155 -0
  400. package/dist/src/utils/events.js.map +1 -0
  401. package/dist/src/utils/formatAmount.d.ts +4 -0
  402. package/dist/src/utils/formatAmount.js +9 -0
  403. package/dist/src/utils/formatAmount.js.map +1 -0
  404. package/dist/src/utils/logger.d.ts +45 -0
  405. package/dist/{utils → src/utils}/logger.js +68 -2
  406. package/dist/src/utils/logger.js.map +1 -0
  407. package/dist/src/utils/shortenString.d.ts +5 -0
  408. package/dist/src/utils/shortenString.js +16 -0
  409. package/dist/src/utils/shortenString.js.map +1 -0
  410. package/package.json +45 -29
  411. package/dist/animations/N1Loader.js.map +0 -1
  412. package/dist/animations/Processing.js.map +0 -1
  413. package/dist/components/LoadingFallback.js.map +0 -1
  414. package/dist/components/Logo.js.map +0 -1
  415. package/dist/components/N1ConnectButton.d.ts +0 -5
  416. package/dist/components/N1ConnectButton.js +0 -49
  417. package/dist/components/N1ConnectButton.js.map +0 -1
  418. package/dist/components/logos/ArbitrumLogo.js.map +0 -1
  419. package/dist/components/logos/BaseLogo.js +0 -6
  420. package/dist/components/logos/BaseLogo.js.map +0 -1
  421. package/dist/components/logos/BeraLogo.js.map +0 -1
  422. package/dist/components/logos/BitcoinLogo.js.map +0 -1
  423. package/dist/components/logos/EthereumLogo.js.map +0 -1
  424. package/dist/components/logos/HyperliquidLogo.js.map +0 -1
  425. package/dist/components/logos/OptimismLogo.js.map +0 -1
  426. package/dist/components/logos/SolanaLogo.js.map +0 -1
  427. package/dist/components/logos/ZeroOneLogo.js.map +0 -1
  428. package/dist/components/logos/index.js.map +0 -1
  429. package/dist/config/chains.d.ts +0 -0
  430. package/dist/config/chains.js +0 -2
  431. package/dist/config/chains.js.map +0 -1
  432. package/dist/config/solana.js.map +0 -1
  433. package/dist/config.d.ts +0 -2
  434. package/dist/config.js +0 -3
  435. package/dist/config.js.map +0 -1
  436. package/dist/context/n1-wallet-context.js.map +0 -1
  437. package/dist/errors/types.d.ts +0 -25
  438. package/dist/errors/types.js +0 -77
  439. package/dist/errors/types.js.map +0 -1
  440. package/dist/features/onboarding-flow/N1WalletModal.js.map +0 -1
  441. package/dist/features/onboarding-flow/OnboardingFlow.js.map +0 -1
  442. package/dist/features/onboarding-flow/components/ChainButton.js +0 -21
  443. package/dist/features/onboarding-flow/components/ChainButton.js.map +0 -1
  444. package/dist/features/onboarding-flow/components/Header.js +0 -45
  445. package/dist/features/onboarding-flow/components/Header.js.map +0 -1
  446. package/dist/features/onboarding-flow/components/ImageWithFallback.js +0 -63
  447. package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +0 -1
  448. package/dist/features/onboarding-flow/components/TransactionTable.js.map +0 -1
  449. package/dist/features/onboarding-flow/components/WaitingMessage.js.map +0 -1
  450. package/dist/features/onboarding-flow/components/index.js.map +0 -1
  451. package/dist/features/onboarding-flow/index.js.map +0 -1
  452. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +0 -525
  453. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +0 -1
  454. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +0 -185
  455. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +0 -1
  456. package/dist/features/onboarding-flow/providers/StateProvider.js.map +0 -1
  457. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +0 -394
  458. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +0 -1
  459. package/dist/features/onboarding-flow/providers/debug.js.map +0 -1
  460. package/dist/features/onboarding-flow/providers/index.js.map +0 -1
  461. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +0 -1
  462. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +0 -1
  463. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +0 -1
  464. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +0 -1
  465. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.d.ts +0 -6
  466. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +0 -360
  467. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +0 -1
  468. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +0 -31
  469. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +0 -1
  470. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.d.ts +0 -1
  471. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +0 -1
  472. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.d.ts +0 -1
  473. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +0 -1
  474. package/dist/features/onboarding-flow/screens/07-ErrorScreen.d.ts +0 -1
  475. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +0 -14
  476. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +0 -1
  477. package/dist/features/onboarding-flow/screens/index.d.ts +0 -7
  478. package/dist/features/onboarding-flow/screens/index.js +0 -8
  479. package/dist/features/onboarding-flow/screens/index.js.map +0 -1
  480. package/dist/features/onboarding-flow/types.js.map +0 -1
  481. package/dist/features/onboarding-flow/utils/depositStorage.d.ts +0 -4
  482. package/dist/features/onboarding-flow/utils/depositStorage.js +0 -48
  483. package/dist/features/onboarding-flow/utils/depositStorage.js.map +0 -1
  484. package/dist/features/onboarding-flow/utils/imageUtils.d.ts +0 -21
  485. package/dist/features/onboarding-flow/utils/imageUtils.js +0 -110
  486. package/dist/features/onboarding-flow/utils/imageUtils.js.map +0 -1
  487. package/dist/features/onboarding-flow/utils/nordUser.d.ts +0 -1
  488. package/dist/features/onboarding-flow/utils/nordUser.js.map +0 -1
  489. package/dist/features/onboarding-flow/utils/nordUtils.d.ts +0 -40
  490. package/dist/features/onboarding-flow/utils/nordUtils.js +0 -64
  491. package/dist/features/onboarding-flow/utils/nordUtils.js.map +0 -1
  492. package/dist/features/onboarding-flow/utils/session.d.ts +0 -17
  493. package/dist/features/onboarding-flow/utils/session.js +0 -69
  494. package/dist/features/onboarding-flow/utils/session.js.map +0 -1
  495. package/dist/features/onboarding-flow/utils/transaction.js +0 -8
  496. package/dist/features/onboarding-flow/utils/transaction.js.map +0 -1
  497. package/dist/features/onboarding-flow/utils/utils.js.map +0 -1
  498. package/dist/features/onboarding-flow/utils/withImageFallback.d.ts +0 -7
  499. package/dist/features/onboarding-flow/utils/withImageFallback.js.map +0 -1
  500. package/dist/hooks/index.js.map +0 -1
  501. package/dist/hooks/useN1Wallet.d.ts +0 -2
  502. package/dist/hooks/useN1Wallet.js.map +0 -1
  503. package/dist/hooks/useNordUserInitialization.d.ts +0 -1
  504. package/dist/hooks/useNordUserInitialization.js.map +0 -1
  505. package/dist/index.d.ts +0 -7
  506. package/dist/index.js +0 -8
  507. package/dist/index.js.map +0 -1
  508. package/dist/polyfills/windowEthereumGuard.d.ts +0 -6
  509. package/dist/polyfills/windowEthereumGuard.js +0 -28
  510. package/dist/polyfills/windowEthereumGuard.js.map +0 -1
  511. package/dist/providers/LazyWalletProvider.d.ts +0 -1
  512. package/dist/providers/LazyWalletProvider.js +0 -230
  513. package/dist/providers/LazyWalletProvider.js.map +0 -1
  514. package/dist/providers/N1WalletProvider.d.ts +0 -3
  515. package/dist/providers/N1WalletProvider.js +0 -271
  516. package/dist/providers/N1WalletProvider.js.map +0 -1
  517. package/dist/providers/ShadowRootWrapper.js.map +0 -1
  518. package/dist/providers/WalletErrorBoundary.js.map +0 -1
  519. package/dist/styles/cdn-fonts.d.ts +0 -1
  520. package/dist/styles/cdn-fonts.js.map +0 -1
  521. package/dist/styles/embedded-main-css.d.ts +0 -2
  522. package/dist/styles/embedded-main-css.js +0 -3
  523. package/dist/styles/embedded-main-css.js.map +0 -1
  524. package/dist/types/wallet.js.map +0 -1
  525. package/dist/utils/ed25519.js.map +0 -1
  526. package/dist/utils/getPseudoName.d.ts +0 -1
  527. package/dist/utils/getPseudoName.js +0 -5826
  528. package/dist/utils/getPseudoName.js.map +0 -1
  529. package/dist/utils/logger.d.ts +0 -21
  530. package/dist/utils/logger.js.map +0 -1
  531. package/dist/utils/shortenString.d.ts +0 -2
  532. package/dist/utils/shortenString.js +0 -9
  533. package/dist/utils/shortenString.js.map +0 -1
  534. package/dist/utils/words.d.ts +0 -9
  535. package/dist/utils/words.js +0 -93572
  536. package/dist/utils/words.js.map +0 -1
  537. /package/dist/{animations → src/animations}/N1Loader.d.ts +0 -0
  538. /package/dist/{animations → src/animations}/N1Loader.js +0 -0
  539. /package/dist/{animations → src/animations}/Processing.d.ts +0 -0
  540. /package/dist/{animations → src/animations}/Processing.js +0 -0
  541. /package/dist/{components → src/components}/logos/ArbitrumLogo.d.ts +0 -0
  542. /package/dist/{components → src/components}/logos/ArbitrumLogo.js +0 -0
  543. /package/dist/{components → src/components}/logos/BaseLogo.d.ts +0 -0
  544. /package/dist/{components → src/components}/logos/BeraLogo.d.ts +0 -0
  545. /package/dist/{components → src/components}/logos/BeraLogo.js +0 -0
  546. /package/dist/{components → src/components}/logos/BitcoinLogo.d.ts +0 -0
  547. /package/dist/{components → src/components}/logos/BitcoinLogo.js +0 -0
  548. /package/dist/{components → src/components}/logos/EthereumLogo.d.ts +0 -0
  549. /package/dist/{components → src/components}/logos/EthereumLogo.js +0 -0
  550. /package/dist/{components → src/components}/logos/HyperliquidLogo.d.ts +0 -0
  551. /package/dist/{components → src/components}/logos/OptimismLogo.d.ts +0 -0
  552. /package/dist/{components → src/components}/logos/OptimismLogo.js +0 -0
  553. /package/dist/{components → src/components}/logos/SolanaLogo.d.ts +0 -0
  554. /package/dist/{components → src/components}/logos/SolanaLogo.js +0 -0
  555. /package/dist/{components → src/components}/logos/ZeroOneLogo.d.ts +0 -0
  556. /package/dist/{components → src/components}/logos/ZeroOneLogo.js +0 -0
  557. /package/dist/{components → src/components}/logos/index.d.ts +0 -0
  558. /package/dist/{components → src/components}/logos/index.js +0 -0
  559. /package/dist/{config → src/config}/solana.d.ts +0 -0
  560. /package/dist/{config → src/config}/solana.js +0 -0
  561. /package/dist/{context → src/context}/n1-wallet-context.d.ts +0 -0
  562. /package/dist/{context → src/context}/n1-wallet-context.js +0 -0
  563. /package/dist/{features → src/features}/onboarding-flow/N1WalletModal.d.ts +0 -0
  564. /package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.js +0 -0
  565. /package/dist/{features → src/features}/onboarding-flow/components/index.d.ts +0 -0
  566. /package/dist/{features → src/features}/onboarding-flow/components/index.js +0 -0
  567. /package/dist/{features → src/features}/onboarding-flow/index.d.ts +0 -0
  568. /package/dist/{features → src/features}/onboarding-flow/index.js +0 -0
  569. /package/dist/{features → src/features}/onboarding-flow/providers/debug.d.ts +0 -0
  570. /package/dist/{features → src/features}/onboarding-flow/providers/index.d.ts +0 -0
  571. /package/dist/{features → src/features}/onboarding-flow/providers/index.js +0 -0
  572. /package/dist/{hooks → src/hooks}/index.d.ts +0 -0
  573. /package/dist/{hooks → src/hooks}/index.js +0 -0
  574. /package/dist/{types → src/types}/wallet.js +0 -0
@@ -0,0 +1,938 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { jsx as _jsx } from "react/jsx-runtime";
38
+ import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, } from 'react';
39
+ import { useTurnkey } from '../../../turnkey';
40
+ import { useN1WalletContext } from '../../../hooks';
41
+ import { useNetwork } from '../../../providers/N1WalletProvider/NetworkProvider';
42
+ import { useSession } from '../../../providers/N1WalletProvider/SessionProvider';
43
+ import { useModal, useModalActions } from '../../../providers/N1WalletProvider/ModalProvider';
44
+ import { useSigningActions } from '../../../providers/N1WalletProvider/SigningProvider';
45
+ import { logger } from '../../../utils/logger';
46
+ import { EVENTS, createWalletEvent } from '../../../utils/events';
47
+ import { createWalletError } from '../../../utils/errors';
48
+ import { OnboardingStep, initialOnboardingContext } from '../types';
49
+ import { useOnboardingState } from './OnboardingStateProvider';
50
+ import { clearLastDepositRecord, readLastDepositRecord, readPendingDeposit } from '../utils/deposit/storage';
51
+ import { N1ModalViewMode } from '../../../types/wallet';
52
+ import { removeKeysFromLocalStorage } from '../utils/utils';
53
+ import { SolanaNetwork } from '../../../config/solana';
54
+ import { clearSession, clearPendingDeposit, } from '../../../services/bootstrap';
55
+ var WALLET_CONNECTION_STEPS = new Set([
56
+ OnboardingStep.CONNECTING_WALLET,
57
+ OnboardingStep.TURNKEY_AUTH,
58
+ OnboardingStep.TURNKEY_PREPARING,
59
+ ]);
60
+ var isWalletConnectionStep = function (step) {
61
+ return WALLET_CONNECTION_STEPS.has(step);
62
+ };
63
+ var useOptionalTurnkey = function () {
64
+ try {
65
+ return useTurnkey();
66
+ }
67
+ catch (_a) {
68
+ return null;
69
+ }
70
+ };
71
+ export var FLOW_STATE_STORAGE_KEY = 'n1_wallet_connection_flow_state';
72
+ // Create the context with a default value
73
+ var WalletConnectionContext = createContext(undefined);
74
+ /**
75
+ * Provider component for the wallet connection context
76
+ */
77
+ export var WalletConnectionProvider = function (_a) {
78
+ var _b, _c, _d, _e, _f;
79
+ var children = _a.children;
80
+ // Use new providers for wallet/session/modal state
81
+ var _g = useNetwork(), solanaAddress = _g.solanaAddress, solanaWallet = _g.solanaWallet, evmWallet = _g.evmWallet, setSolanaAddress = _g.setSolanaAddress, setSolanaWallet = _g.setSolanaWallet, setEvmWallet = _g.setEvmWallet, setEvmAddress = _g.setEvmAddress, setEvmChain = _g.setEvmChain, setPreferredWalletNetwork = _g.setPreferredWalletNetwork, setBalances = _g.setBalances;
82
+ var _h = useSession(), nordUser = _h.nordUser, dynamicSdkHasLoaded = _h.dynamicSdkHasLoaded, turnkeyEnabled = _h.turnkeyEnabled, setIsConnected = _h.setIsConnected, setNordUser = _h.setNordUser, setSessionPubKey = _h.setSessionPubKey, setWalletPubKey = _h.setWalletPubKey;
83
+ var _j = useModal(), showLogin = _j.showLogin, closeModal = _j.closeModal, onCloseComplete = _j.onCloseComplete, showDynamicWidget = _j.showDynamicWidget, dynamicHandleLogOut = _j.dynamicHandleLogOut, setViewMode = _j.setViewMode;
84
+ // nord client still comes from legacy context (passed as prop)
85
+ var nord = useN1WalletContext().nord;
86
+ // Signing setters from SigningProvider
87
+ var _k = useSigningActions(), setSignMessageWithSessionKey = _k.setSignMessageWithSessionKey, setSignMessageWithWalletKey = _k.setSignMessageWithWalletKey, setSignTransactionWithWalletKey = _k.setSignTransactionWithWalletKey;
88
+ // Disconnect handler from ModalProvider
89
+ var setDisconnectWalletHandler = useModalActions().setDisconnectWalletHandler;
90
+ // Get flow context
91
+ var _l = useOnboardingState(), state = _l.state, context = _l.context, flowActions = _l.actions, updateContext = _l.updateContext;
92
+ var _m = useState(false), isConnecting = _m[0], setIsConnecting = _m[1];
93
+ var dynamicWidgetRequestedRef = useRef(false);
94
+ var skipAutoResumeRef = useRef(false);
95
+ var turnkeyContext = useOptionalTurnkey();
96
+ var turnkey = turnkeyEnabled ? turnkeyContext : null;
97
+ var previousEvmWalletAddressRef = useRef(null);
98
+ var turnkeyAuthenticatedEvmAddressRef = useRef(null);
99
+ var lastConnectedWalletRef = useRef({
100
+ evm: null,
101
+ solana: null,
102
+ });
103
+ var getUserCacheRef = useRef(null);
104
+ var getUserInFlightRef = useRef(null);
105
+ var lastProcessedGetUserRef = useRef(null);
106
+ var GET_USER_CACHE_TTL_MS = 10000; // Cache getUser results for 10 seconds
107
+ var turnkeyStatus = (_b = turnkey === null || turnkey === void 0 ? void 0 : turnkey.turnkeyStatus) !== null && _b !== void 0 ? _b : (turnkeyEnabled ? 'idle' : 'ready');
108
+ var turnkeyError = (_c = turnkey === null || turnkey === void 0 ? void 0 : turnkey.turnkeyError) !== null && _c !== void 0 ? _c : null;
109
+ var turnkeyAddress = (_d = turnkey === null || turnkey === void 0 ? void 0 : turnkey.turnkeyAddress) !== null && _d !== void 0 ? _d : null;
110
+ var retryTurnkeyBootstrap = (_e = turnkey === null || turnkey === void 0 ? void 0 : turnkey.retryTurnkeyBootstrap) !== null && _e !== void 0 ? _e : (function () { });
111
+ var prepareTurnkeyWallet = turnkey === null || turnkey === void 0 ? void 0 : turnkey.prepareTurnkeyWallet;
112
+ var evmWalletAddress = useMemo(function () { var _a, _b, _c; return (_c = (_b = (_a = evmWallet === null || evmWallet === void 0 ? void 0 : evmWallet.address) === null || _a === void 0 ? void 0 : _a.toLowerCase) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : null; }, [evmWallet === null || evmWallet === void 0 ? void 0 : evmWallet.address]);
113
+ var solanaWalletAddress = useMemo(function () { var _a; return (_a = solanaWallet === null || solanaWallet === void 0 ? void 0 : solanaWallet.address) !== null && _a !== void 0 ? _a : null; }, [solanaWallet === null || solanaWallet === void 0 ? void 0 : solanaWallet.address]);
114
+ // Auto-resume the flow if a wallet was restored so we don't strand users on EntrySelection
115
+ useEffect(function () {
116
+ if (!dynamicSdkHasLoaded) {
117
+ return;
118
+ }
119
+ if (skipAutoResumeRef.current) {
120
+ logger.debug('[WalletConnection] Skipping auto-resume after wallet switch');
121
+ skipAutoResumeRef.current = false;
122
+ return;
123
+ }
124
+ if (context.entryNetwork) {
125
+ return;
126
+ }
127
+ if (state !== OnboardingStep.ENTRY_SELECTION) {
128
+ return;
129
+ }
130
+ // Skip auto-resume if Turnkey is in error state - let the retry handle it first
131
+ if (turnkeyEnabled && turnkeyStatus === 'error') {
132
+ logger.debug('[WalletConnection] Skipping auto-resume - Turnkey in error state, waiting for retry');
133
+ return;
134
+ }
135
+ var walletChain = (solanaWallet === null || solanaWallet === void 0 ? void 0 : solanaWallet.chain)
136
+ ? String(solanaWallet.chain).toUpperCase()
137
+ : '';
138
+ var restoredNetwork = evmWallet || walletChain.startsWith('ETH') || walletChain.startsWith('ARB') || walletChain.startsWith('BASE')
139
+ ? 'evm'
140
+ : walletChain.startsWith('SOL')
141
+ ? 'solana'
142
+ : null;
143
+ if (!restoredNetwork) {
144
+ return;
145
+ }
146
+ logger.debug("[WalletConnection] Auto-selecting entry network from restored wallet", {
147
+ restoredNetwork: restoredNetwork,
148
+ hasEvmWallet: Boolean(evmWallet),
149
+ walletChain: walletChain,
150
+ });
151
+ flowActions.beginWalletConnection(restoredNetwork);
152
+ }, [context.entryNetwork, dynamicSdkHasLoaded, solanaWallet, evmWallet, flowActions, state, turnkeyEnabled, turnkeyStatus]);
153
+ useEffect(function () {
154
+ var _a = lastConnectedWalletRef.current, previousEvm = _a.evm, previousSolana = _a.solana;
155
+ var evmSwitched = Boolean(previousEvm && evmWalletAddress && previousEvm !== evmWalletAddress);
156
+ var solanaSwitched = Boolean(previousSolana && solanaWalletAddress && previousSolana !== solanaWalletAddress);
157
+ if (evmSwitched || solanaSwitched) {
158
+ logger.debug('Wallet switch detected; resetting onboarding flow', {
159
+ previousEvm: previousEvm,
160
+ currentEvm: evmWalletAddress,
161
+ previousSolana: previousSolana,
162
+ currentSolana: solanaWalletAddress,
163
+ });
164
+ skipAutoResumeRef.current = true;
165
+ flowActions.resetFlow();
166
+ }
167
+ lastConnectedWalletRef.current = {
168
+ evm: evmWalletAddress,
169
+ solana: solanaWalletAddress,
170
+ };
171
+ }, [evmWalletAddress, solanaWalletAddress, flowActions]);
172
+ useEffect(function () {
173
+ if (!turnkeyEnabled) {
174
+ return;
175
+ }
176
+ var previousAddress = previousEvmWalletAddressRef.current;
177
+ if (previousAddress === evmWalletAddress) {
178
+ return;
179
+ }
180
+ previousEvmWalletAddressRef.current = evmWalletAddress;
181
+ turnkeyAuthenticatedEvmAddressRef.current = null;
182
+ retryTurnkeyBootstrap();
183
+ }, [evmWalletAddress, retryTurnkeyBootstrap, turnkeyEnabled]);
184
+ // Use refs to track previous values
185
+ var processedWalletAddressRef = useRef(null);
186
+ var prevNordUserRef = useRef(nordUser);
187
+ var prevSessionIdRef = useRef((nordUser === null || nordUser === void 0 ? void 0 : nordUser.sessionId) ? nordUser.sessionId.toString() : null);
188
+ var prevStateRef = useRef(state);
189
+ var reportedNordClientErrorRef = useRef(false);
190
+ var clearWalletCache = useCallback(function () {
191
+ if (typeof window === 'undefined') {
192
+ return;
193
+ }
194
+ try {
195
+ if (solanaAddress) {
196
+ var sessionIdKey = "n1_sessionId_".concat(solanaAddress);
197
+ window.localStorage.removeItem(sessionIdKey);
198
+ removeKeysFromLocalStorage(solanaAddress);
199
+ }
200
+ window.localStorage.removeItem(FLOW_STATE_STORAGE_KEY);
201
+ clearLastDepositRecord(solanaAddress);
202
+ updateContext(initialOnboardingContext);
203
+ logger.debug('Cleared wallet cache for address', { address: solanaAddress });
204
+ }
205
+ catch (error) {
206
+ logger.warn('Failed to clear wallet cache', error);
207
+ }
208
+ }, [solanaAddress, updateContext]);
209
+ var closeDynamicWidget = useCallback(function () {
210
+ if (!dynamicWidgetRequestedRef.current) {
211
+ return;
212
+ }
213
+ if (showDynamicWidget) {
214
+ try {
215
+ showDynamicWidget(false);
216
+ }
217
+ catch (error) {
218
+ logger.warn('Failed to close Dynamic widget', error);
219
+ }
220
+ }
221
+ dynamicWidgetRequestedRef.current = false;
222
+ }, [showDynamicWidget]);
223
+ /**
224
+ * Disconnect wallet
225
+ */
226
+ var disconnectWallet = useCallback(function () {
227
+ var currentAddress = solanaWalletAddress || evmWalletAddress;
228
+ logger.event(createWalletEvent(EVENTS.WALLET.DISCONNECT, {
229
+ address: currentAddress,
230
+ network: solanaWalletAddress ? 'solana' : evmWalletAddress ? 'evm' : null,
231
+ }));
232
+ try {
233
+ clearWalletCache();
234
+ dynamicHandleLogOut === null || dynamicHandleLogOut === void 0 ? void 0 : dynamicHandleLogOut();
235
+ closeDynamicWidget();
236
+ // Clear cached address from localStorage
237
+ if (typeof window !== 'undefined') {
238
+ window.localStorage.removeItem('n1_last_connected_address');
239
+ }
240
+ }
241
+ catch (error) {
242
+ logger.logError(createWalletError('DISCONNECT_FAILED', 'Error during wallet disconnect', {
243
+ cause: error instanceof Error ? error : undefined,
244
+ context: { address: currentAddress },
245
+ }));
246
+ }
247
+ processedWalletAddressRef.current = null;
248
+ turnkeyAuthenticatedEvmAddressRef.current = null;
249
+ previousEvmWalletAddressRef.current = null;
250
+ setIsConnected(false);
251
+ setSolanaAddress('');
252
+ setBalances([]);
253
+ setSolanaWallet(null);
254
+ setEvmWallet(null);
255
+ setEvmAddress(null);
256
+ setEvmChain(null);
257
+ setSessionPubKey(null);
258
+ setWalletPubKey(null);
259
+ setSignMessageWithSessionKey(null);
260
+ setSignMessageWithWalletKey(null);
261
+ setSignTransactionWithWalletKey(null);
262
+ setNordUser(null);
263
+ setViewMode(N1ModalViewMode.Automatic);
264
+ // Close modal via state machine (triggers closing → closed transition)
265
+ closeModal();
266
+ onCloseComplete();
267
+ flowActions.resetFlow();
268
+ setPreferredWalletNetwork(null);
269
+ // Clear any pending deposit to prevent it from being shown on a different wallet
270
+ clearPendingDeposit();
271
+ if (turnkeyEnabled) {
272
+ // Pass no address to unconditionally clear the session
273
+ // (passing evmWalletAddress would fail if stored session belongs to different wallet)
274
+ clearSession();
275
+ }
276
+ }, [
277
+ clearWalletCache,
278
+ closeDynamicWidget,
279
+ dynamicHandleLogOut,
280
+ setSolanaAddress,
281
+ setBalances,
282
+ setSolanaWallet,
283
+ setIsConnected,
284
+ setNordUser,
285
+ setSessionPubKey,
286
+ setSignMessageWithSessionKey,
287
+ setSignMessageWithWalletKey,
288
+ setSignTransactionWithWalletKey,
289
+ setViewMode,
290
+ setWalletPubKey,
291
+ flowActions,
292
+ setEvmWallet,
293
+ setEvmAddress,
294
+ setEvmChain,
295
+ solanaWalletAddress,
296
+ evmWalletAddress,
297
+ turnkeyEnabled,
298
+ setPreferredWalletNetwork,
299
+ closeModal,
300
+ onCloseComplete,
301
+ ]);
302
+ useEffect(function () {
303
+ setDisconnectWalletHandler(function () { return disconnectWallet; });
304
+ }, [disconnectWallet, setDisconnectWalletHandler]);
305
+ useEffect(function () {
306
+ if (state === OnboardingStep.CONNECTING_WALLET) {
307
+ processedWalletAddressRef.current = null;
308
+ }
309
+ }, [state]);
310
+ useEffect(function () {
311
+ if (!turnkeyEnabled ||
312
+ !evmWallet ||
313
+ context.entryNetwork !== 'evm' ||
314
+ !prepareTurnkeyWallet ||
315
+ turnkeyStatus !== 'idle') {
316
+ return;
317
+ }
318
+ prepareTurnkeyWallet().catch(function (error) {
319
+ logger.logError(createWalletError('CONNECT_FAILED', 'Turnkey bootstrap failed', {
320
+ cause: error instanceof Error ? error : undefined,
321
+ }));
322
+ });
323
+ }, [
324
+ context.entryNetwork,
325
+ evmWallet,
326
+ logger,
327
+ prepareTurnkeyWallet,
328
+ turnkeyEnabled,
329
+ turnkeyStatus,
330
+ ]);
331
+ useEffect(function () {
332
+ setPreferredWalletNetwork(context.entryNetwork);
333
+ }, [context.entryNetwork, setPreferredWalletNetwork]);
334
+ useEffect(function () {
335
+ var inTurnkeyState = state === OnboardingStep.TURNKEY_AUTH ||
336
+ state === OnboardingStep.TURNKEY_PREPARING;
337
+ // If we are in DEPOSIT_PROGRESS (e.g. recovering a bridge deposit),
338
+ // do not allow Turnkey status updates to hijack the view.
339
+ // Authentication happens in the background.
340
+ if (state === OnboardingStep.DEPOSIT_PROGRESS) {
341
+ return;
342
+ }
343
+ if (!turnkeyEnabled || context.entryNetwork === 'solana') {
344
+ if (inTurnkeyState) {
345
+ flowActions.returnToWalletConnection();
346
+ }
347
+ return;
348
+ }
349
+ if (turnkeyStatus === 'authenticating') {
350
+ if (state !== OnboardingStep.TURNKEY_AUTH) {
351
+ flowActions.enterTurnkeyAuth();
352
+ }
353
+ return;
354
+ }
355
+ if (turnkeyStatus === 'creating') {
356
+ if (state !== OnboardingStep.TURNKEY_PREPARING) {
357
+ flowActions.enterTurnkeyPreparing();
358
+ }
359
+ return;
360
+ }
361
+ if (turnkeyStatus === 'ready' &&
362
+ (state === OnboardingStep.TURNKEY_AUTH || state === OnboardingStep.TURNKEY_PREPARING)) {
363
+ // When bootstrap completes, leave the Turnkey-specific steps.
364
+ flowActions.goToChainSelection();
365
+ return;
366
+ }
367
+ if (turnkeyStatus === 'error') {
368
+ // Only set error state if we're actively in the Turnkey flow, not if user has reset
369
+ var isInTurnkeyFlow = state === OnboardingStep.CONNECTING_WALLET ||
370
+ state === OnboardingStep.TURNKEY_AUTH ||
371
+ state === OnboardingStep.TURNKEY_PREPARING;
372
+ if (isInTurnkeyFlow) {
373
+ logger.logError(createWalletError('CONNECT_FAILED', turnkeyError || 'Turnkey initialization failed'));
374
+ flowActions.setErrorState(new Error(turnkeyError || 'Turnkey initialization failed'));
375
+ }
376
+ return;
377
+ }
378
+ }, [turnkeyStatus, turnkeyEnabled, flowActions, state, context.entryNetwork]);
379
+ // If the user picked the EVM path but Dynamic silently restored a Solana session,
380
+ // clear it so the widget can prompt for an EVM wallet instead of hijacking with Phantom.
381
+ useEffect(function () {
382
+ if (context.entryNetwork !== 'evm') {
383
+ return;
384
+ }
385
+ if (!solanaWallet) {
386
+ return;
387
+ }
388
+ var walletChain = solanaWallet.chain
389
+ ? String(solanaWallet.chain).toUpperCase()
390
+ : '';
391
+ var isTurnkeySolana = (solanaWallet === null || solanaWallet === void 0 ? void 0 : solanaWallet.type) === 'turnkey' && walletChain.startsWith('SOL');
392
+ var isSolanaWallet = walletChain.startsWith('SOL');
393
+ if (!isSolanaWallet || isTurnkeySolana) {
394
+ return;
395
+ }
396
+ logger.debug('Solana wallet restored during EVM entry; clearing Dynamic session');
397
+ if (dynamicHandleLogOut) {
398
+ dynamicHandleLogOut().catch(function (error) {
399
+ logger.warn('Failed to log out of restored Solana wallet', error);
400
+ });
401
+ }
402
+ setSolanaWallet(null);
403
+ setSolanaAddress('');
404
+ setEvmWallet(null);
405
+ setEvmAddress(null);
406
+ setEvmChain(null);
407
+ }, [
408
+ context.entryNetwork,
409
+ dynamicHandleLogOut,
410
+ solanaWallet,
411
+ logger,
412
+ setSolanaAddress,
413
+ setSolanaWallet,
414
+ setEvmAddress,
415
+ setEvmChain,
416
+ setEvmWallet,
417
+ ]);
418
+ /**
419
+ * Connect wallet using Dynamic widget
420
+ */
421
+ var connectWallet = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
422
+ var wantsEvm, walletChain, isTurnkeySolana, hasSolanaWallet, hasEvmWallet, error_1, hasMatchingWallet, error_2;
423
+ return __generator(this, function (_a) {
424
+ switch (_a.label) {
425
+ case 0:
426
+ if (isConnecting || !showDynamicWidget || !dynamicSdkHasLoaded)
427
+ return [2 /*return*/];
428
+ wantsEvm = context.entryNetwork === 'evm';
429
+ walletChain = (solanaWallet === null || solanaWallet === void 0 ? void 0 : solanaWallet.chain) ? String(solanaWallet.chain).toUpperCase() : '';
430
+ isTurnkeySolana = (solanaWallet === null || solanaWallet === void 0 ? void 0 : solanaWallet.type) === 'turnkey' && walletChain.startsWith('SOL');
431
+ hasSolanaWallet = walletChain.startsWith('SOL') && !isTurnkeySolana;
432
+ hasEvmWallet = Boolean(evmWalletAddress);
433
+ if (!(wantsEvm && hasSolanaWallet && dynamicHandleLogOut)) return [3 /*break*/, 4];
434
+ _a.label = 1;
435
+ case 1:
436
+ _a.trys.push([1, 3, , 4]);
437
+ return [4 /*yield*/, dynamicHandleLogOut()];
438
+ case 2:
439
+ _a.sent();
440
+ return [3 /*break*/, 4];
441
+ case 3:
442
+ error_1 = _a.sent();
443
+ logger.warn('Failed to log out of existing Solana wallet before EVM connect', error_1);
444
+ return [3 /*break*/, 4];
445
+ case 4:
446
+ hasMatchingWallet = (context.entryNetwork === 'solana' &&
447
+ (walletChain.startsWith('SOL') || isTurnkeySolana)) ||
448
+ (context.entryNetwork === 'evm' && hasEvmWallet);
449
+ if (hasMatchingWallet) {
450
+ logger.debug('Wallet already available for selected entry; skipping widget open', {
451
+ entryNetwork: context.entryNetwork,
452
+ hasEvmWallet: hasEvmWallet,
453
+ turnkeyEnabled: turnkeyEnabled,
454
+ turnkeyStatus: turnkeyStatus,
455
+ });
456
+ // Wallet is already connected - need to proceed to next step
457
+ // For EVM with Turnkey: the turnkeyStatus effect will handle transition
458
+ // For Solana: need to trigger chain selection
459
+ if (context.entryNetwork === 'solana') {
460
+ flowActions.goToChainSelection();
461
+ }
462
+ // For EVM: Turnkey bootstrap should already be running via TurnkeyProvider effect
463
+ // If it's not, we may need to trigger it - log current status for debugging
464
+ if (context.entryNetwork === 'evm' && turnkeyEnabled) {
465
+ logger.debug('EVM wallet connected, waiting for Turnkey bootstrap', {
466
+ turnkeyStatus: turnkeyStatus,
467
+ turnkeyError: turnkeyError,
468
+ });
469
+ }
470
+ return [2 /*return*/];
471
+ }
472
+ setIsConnecting(true);
473
+ logger.event(createWalletEvent(EVENTS.WALLET.CONNECT_START, {
474
+ network: context.entryNetwork,
475
+ }));
476
+ dynamicWidgetRequestedRef.current = true;
477
+ _a.label = 5;
478
+ case 5:
479
+ _a.trys.push([5, 7, , 8]);
480
+ return [4 /*yield*/, showDynamicWidget(true)];
481
+ case 6:
482
+ _a.sent();
483
+ logger.debug('Dynamic widget shown');
484
+ return [3 /*break*/, 8];
485
+ case 7:
486
+ error_2 = _a.sent();
487
+ dynamicWidgetRequestedRef.current = false;
488
+ setIsConnecting(false);
489
+ logger.logError(createWalletError('CONNECT_FAILED', 'Dynamic widget could not be shown', {
490
+ cause: error_2 instanceof Error ? error_2 : undefined,
491
+ context: { network: context.entryNetwork },
492
+ }));
493
+ return [3 /*break*/, 8];
494
+ case 8: return [2 /*return*/];
495
+ }
496
+ });
497
+ }); }, [
498
+ context.entryNetwork,
499
+ dynamicHandleLogOut,
500
+ dynamicSdkHasLoaded,
501
+ solanaWallet,
502
+ evmWalletAddress,
503
+ isConnecting,
504
+ showDynamicWidget,
505
+ ]);
506
+ useEffect(function () {
507
+ if (!dynamicSdkHasLoaded) {
508
+ return;
509
+ }
510
+ if (nord) {
511
+ reportedNordClientErrorRef.current = false;
512
+ return;
513
+ }
514
+ if (typeof nord === 'undefined') {
515
+ // Nord client is still initializing; wait before reporting an error
516
+ return;
517
+ }
518
+ if (reportedNordClientErrorRef.current) {
519
+ setIsConnecting(false);
520
+ return;
521
+ }
522
+ reportedNordClientErrorRef.current = true;
523
+ setIsConnecting(false);
524
+ flowActions.setErrorState(new Error('The client could not be initialized. Verify your Nord environment variables and try again.'));
525
+ }, [dynamicSdkHasLoaded, nord, flowActions]);
526
+ // Process nordUser changes
527
+ useEffect(function () {
528
+ var _a;
529
+ if (!dynamicSdkHasLoaded || !nordUser || !solanaWallet)
530
+ return;
531
+ // Early exit if we have a pending bridge deposit - don't run any transition logic
532
+ var pendingEarlyCheck = readPendingDeposit();
533
+ logger.info('[WalletConnection] Early exit check for pending deposit', {
534
+ pendingEarlyCheck: pendingEarlyCheck,
535
+ pendingStringified: JSON.stringify(pendingEarlyCheck),
536
+ hasPendingEarly: !!pendingEarlyCheck,
537
+ currentState: state,
538
+ });
539
+ var hasPendingBridgeEarly = pendingEarlyCheck &&
540
+ (pendingEarlyCheck.stage === 'bridge_submitted' ||
541
+ pendingEarlyCheck.stage === 'bridge_confirmed' ||
542
+ (pendingEarlyCheck.stage === 'failed' && pendingEarlyCheck.tx)) &&
543
+ pendingEarlyCheck.tx;
544
+ logger.info('[WalletConnection] Early exit check result', {
545
+ hasPendingBridgeEarly: hasPendingBridgeEarly,
546
+ pendingStage: pendingEarlyCheck === null || pendingEarlyCheck === void 0 ? void 0 : pendingEarlyCheck.stage,
547
+ pendingTx: !!(pendingEarlyCheck === null || pendingEarlyCheck === void 0 ? void 0 : pendingEarlyCheck.tx),
548
+ pendingTxValue: pendingEarlyCheck === null || pendingEarlyCheck === void 0 ? void 0 : pendingEarlyCheck.tx,
549
+ });
550
+ if (hasPendingBridgeEarly) {
551
+ logger.info('[WalletConnection] Effect early exit: pending bridge deposit detected, skipping all logic', {
552
+ pendingStage: pendingEarlyCheck.stage,
553
+ pendingTx: pendingEarlyCheck.tx,
554
+ currentState: state,
555
+ });
556
+ return;
557
+ }
558
+ var currentNordUser = nordUser;
559
+ var prevNordUser = prevNordUserRef.current;
560
+ var currentSessionId = currentNordUser.sessionId
561
+ ? currentNordUser.sessionId.toString()
562
+ : null;
563
+ var prevSessionId = prevSessionIdRef.current;
564
+ var walletAddress = (_a = solanaWallet.address) !== null && _a !== void 0 ? _a : null;
565
+ var hasProcessedWallet = walletAddress != null && processedWalletAddressRef.current === walletAddress;
566
+ // Early return if nothing meaningful changed
567
+ if (currentNordUser === prevNordUser &&
568
+ currentSessionId === prevSessionId &&
569
+ hasProcessedWallet) {
570
+ return;
571
+ }
572
+ // Check cache FIRST (synchronously) before starting any async work
573
+ var cached = getUserCacheRef.current;
574
+ var now = Date.now();
575
+ var isCacheValid = cached &&
576
+ cached.address === walletAddress &&
577
+ (now - cached.timestamp) < GET_USER_CACHE_TTL_MS;
578
+ // Check if we've already processed this exact combination (prevents rapid re-processing)
579
+ var lastProcessed = lastProcessedGetUserRef.current;
580
+ var isSameState = lastProcessed &&
581
+ lastProcessed.nordUser === currentNordUser &&
582
+ lastProcessed.sessionId === currentSessionId &&
583
+ lastProcessed.address === walletAddress;
584
+ // If we have valid cache AND same state, skip entirely
585
+ if (isCacheValid && isSameState) {
586
+ logger.debug('NordUser changed, cache valid and same state, skipping duplicate processing', {
587
+ cacheAge: "".concat(now - cached.timestamp, "ms"),
588
+ });
589
+ return;
590
+ }
591
+ // If we have valid cache but different state, we can still use cache but need to process
592
+ // If we have in-flight request, wait for it instead of starting new one
593
+ if (getUserInFlightRef.current && !isCacheValid) {
594
+ logger.debug('NordUser changed, getUser already in flight, skipping duplicate call');
595
+ return;
596
+ }
597
+ // Prevent concurrent execution
598
+ if (getUserInFlightRef.current) {
599
+ logger.debug('NordUser changed, getUser already in flight, skipping');
600
+ return;
601
+ }
602
+ prevNordUserRef.current = currentNordUser;
603
+ prevSessionIdRef.current = currentSessionId;
604
+ if (walletAddress) {
605
+ // Clear getUser cache if wallet address changed
606
+ var isNewWallet = processedWalletAddressRef.current !== walletAddress;
607
+ if (isNewWallet) {
608
+ getUserCacheRef.current = null;
609
+ logger.debug('Wallet address changed, cleared getUser cache');
610
+ // Log wallet connect success when a new wallet is processed
611
+ var isSolana = (solanaWallet === null || solanaWallet === void 0 ? void 0 : solanaWallet.chain) ? String(solanaWallet.chain).toUpperCase().startsWith('SOL') : false;
612
+ logger.event(createWalletEvent(EVENTS.WALLET.CONNECT_SUCCESS, {
613
+ address: walletAddress,
614
+ network: isSolana ? 'solana' : 'evm',
615
+ }));
616
+ }
617
+ processedWalletAddressRef.current = walletAddress;
618
+ }
619
+ // Mark this combination as being processed
620
+ lastProcessedGetUserRef.current = {
621
+ nordUser: currentNordUser,
622
+ sessionId: currentSessionId,
623
+ address: walletAddress !== null && walletAddress !== void 0 ? walletAddress : '',
624
+ };
625
+ // Only run if we have processed a wallet
626
+ if (solanaWallet) {
627
+ logger.debug('NordUser changed, checking account status', {
628
+ sessionIdChanged: currentSessionId !== prevSessionId,
629
+ nordUserChanged: currentNordUser !== prevNordUser,
630
+ walletChanged: processedWalletAddressRef.current !== walletAddress,
631
+ hasCache: Boolean(cached),
632
+ cacheValid: isCacheValid,
633
+ });
634
+ var runGetUser = (function () { return __awaiter(void 0, void 0, void 0, function () {
635
+ var nordAccount, cachedInside, nowInside, isCacheValidInside, getUserPromise, hasNordAccount, sessionId, sessionIdString, serverSessions, sessionMatchesServer, sessionIdKey, hasActiveSession, accountBalances, hasExistingBalance, pending, hasPendingBridgeDeposit, lastDepositRecord, isSolanaEntry, pendingCheck, hasPendingBridgeDepositCheck, error_3;
636
+ var _a, _b, _c, _d;
637
+ return __generator(this, function (_e) {
638
+ switch (_e.label) {
639
+ case 0:
640
+ _e.trys.push([0, 4, 5, 6]);
641
+ if (!nord) {
642
+ throw new Error('Nord client is not available.');
643
+ }
644
+ nordAccount = void 0;
645
+ cachedInside = getUserCacheRef.current;
646
+ nowInside = Date.now();
647
+ isCacheValidInside = cachedInside &&
648
+ cachedInside.address === solanaWallet.address &&
649
+ (nowInside - cachedInside.timestamp) < GET_USER_CACHE_TTL_MS;
650
+ if (!isCacheValidInside) return [3 /*break*/, 1];
651
+ logger.debug('NordUser changed, using cached getUser result (checked inside async)', {
652
+ cacheAge: "".concat(nowInside - cachedInside.timestamp, "ms"),
653
+ });
654
+ nordAccount = cachedInside.result;
655
+ return [3 /*break*/, 3];
656
+ case 1:
657
+ logger.debug('NordUser changed, calling getUser (cache miss or expired)', {
658
+ hasCache: Boolean(cachedInside),
659
+ cacheAddress: ((_a = cachedInside === null || cachedInside === void 0 ? void 0 : cachedInside.address) === null || _a === void 0 ? void 0 : _a.substring(0, 10)) + "...",
660
+ currentAddress: ((_b = solanaWallet.address) === null || _b === void 0 ? void 0 : _b.substring(0, 10)) + "...",
661
+ });
662
+ getUserPromise = nord.getUser({ pubkey: solanaWallet.address });
663
+ getUserInFlightRef.current = getUserPromise;
664
+ return [4 /*yield*/, getUserPromise];
665
+ case 2:
666
+ nordAccount = _e.sent();
667
+ // Cache the result immediately
668
+ getUserCacheRef.current = {
669
+ address: solanaWallet.address,
670
+ result: nordAccount,
671
+ timestamp: Date.now(),
672
+ };
673
+ _e.label = 3;
674
+ case 3:
675
+ hasNordAccount = nordAccount != null;
676
+ sessionId = currentNordUser.sessionId;
677
+ sessionIdString = sessionId ? sessionId.toString() : null;
678
+ serverSessions = (_c = nordAccount === null || nordAccount === void 0 ? void 0 : nordAccount.sessions) !== null && _c !== void 0 ? _c : {};
679
+ sessionMatchesServer = sessionIdString != null && Boolean(serverSessions === null || serverSessions === void 0 ? void 0 : serverSessions[sessionIdString]);
680
+ if (sessionIdString && !sessionMatchesServer) {
681
+ logger.debug('Stored session is missing on Nord; clearing cached session ID');
682
+ if (typeof window !== 'undefined') {
683
+ try {
684
+ sessionIdKey = "n1_sessionId_".concat(solanaWallet.address);
685
+ window.localStorage.removeItem(sessionIdKey);
686
+ }
687
+ catch (storageError) {
688
+ logger.warn('Failed to clear stale sessionId from localStorage', storageError);
689
+ }
690
+ }
691
+ }
692
+ hasActiveSession = sessionMatchesServer;
693
+ accountBalances = (_d = nordAccount === null || nordAccount === void 0 ? void 0 : nordAccount.balances) !== null && _d !== void 0 ? _d : [];
694
+ hasExistingBalance = Array.isArray(accountBalances) &&
695
+ accountBalances.some(function (b) { return typeof (b === null || b === void 0 ? void 0 : b.amount) === 'number' && b.amount > 0; });
696
+ updateContext({ hasNordAccount: hasNordAccount, hasActiveSession: hasActiveSession, hasExistingBalance: hasExistingBalance });
697
+ logger.debug('Nord account check', {
698
+ walletAddress: solanaWallet.address,
699
+ hasNordAccount: hasNordAccount,
700
+ hasActiveSession: hasActiveSession,
701
+ hasExistingBalance: hasExistingBalance,
702
+ balanceCount: accountBalances.length,
703
+ sessionId: sessionIdString,
704
+ serverSessions: Object.keys(serverSessions !== null && serverSessions !== void 0 ? serverSessions : {}),
705
+ });
706
+ pending = readPendingDeposit();
707
+ logger.info('[WalletConnection] Raw pending deposit check', {
708
+ pending: pending,
709
+ pendingStringified: JSON.stringify(pending),
710
+ hasPending: !!pending,
711
+ });
712
+ hasPendingBridgeDeposit = pending &&
713
+ (pending.stage === 'bridge_submitted' ||
714
+ pending.stage === 'bridge_confirmed' ||
715
+ (pending.stage === 'failed' && pending.tx)) &&
716
+ pending.tx;
717
+ logger.info('[WalletConnection] Checking for pending bridge deposit', {
718
+ hasPending: !!pending,
719
+ pendingStage: pending === null || pending === void 0 ? void 0 : pending.stage,
720
+ pendingTx: !!(pending === null || pending === void 0 ? void 0 : pending.tx),
721
+ pendingTxValue: pending === null || pending === void 0 ? void 0 : pending.tx,
722
+ hasPendingBridgeDeposit: hasPendingBridgeDeposit,
723
+ currentState: state,
724
+ stageMatch: pending ? (pending.stage === 'bridge_submitted' || pending.stage === 'bridge_confirmed' || (pending.stage === 'failed' && pending.tx)) : false,
725
+ stageCheck: pending ? {
726
+ isBridgeSubmitted: pending.stage === 'bridge_submitted',
727
+ isBridgeConfirmed: pending.stage === 'bridge_confirmed',
728
+ isFailedWithTx: pending.stage === 'failed' && pending.tx,
729
+ } : null,
730
+ });
731
+ if (hasPendingBridgeDeposit) {
732
+ // Only transition to DEPOSIT_PROGRESS if solanaWallet is ready (needed for claim signing)
733
+ if (!solanaWallet) {
734
+ logger.info('[WalletConnection] Pending bridge deposit detected but solanaWallet not ready - waiting', {
735
+ pendingStage: pending.stage,
736
+ pendingTx: pending.tx,
737
+ currentState: state,
738
+ hasSolanaWallet: !!solanaWallet,
739
+ });
740
+ return [2 /*return*/];
741
+ }
742
+ logger.info('[WalletConnection] Pending bridge deposit detected, transitioning to DEPOSIT_PROGRESS', {
743
+ pendingStage: pending.stage,
744
+ pendingTx: pending.tx,
745
+ currentState: state,
746
+ hasSolanaWallet: !!solanaWallet,
747
+ });
748
+ closeDynamicWidget();
749
+ setIsConnecting(false);
750
+ // Transition directly to DEPOSIT_PROGRESS
751
+ if (state !== OnboardingStep.DEPOSIT_PROGRESS) {
752
+ flowActions.startDeposit();
753
+ }
754
+ return [2 /*return*/];
755
+ }
756
+ if (state === OnboardingStep.CONNECTING_WALLET &&
757
+ !context.isDepositOnlyFlow) {
758
+ try {
759
+ lastDepositRecord = readLastDepositRecord(solanaWallet.address);
760
+ if (lastDepositRecord) {
761
+ logger.debug('Resuming last deposit from local storage');
762
+ flowActions.markDepositSuccess({
763
+ transactionId: lastDepositRecord.transactionId,
764
+ record: lastDepositRecord,
765
+ });
766
+ closeDynamicWidget();
767
+ setIsConnecting(false);
768
+ return [2 /*return*/];
769
+ }
770
+ }
771
+ catch (error) {
772
+ logger.logError(createWalletError('ADAPTER_ERROR', 'Error restoring last deposit record', {
773
+ cause: error instanceof Error ? error : undefined,
774
+ }));
775
+ }
776
+ }
777
+ if (hasNordAccount && hasActiveSession) {
778
+ setIsConnected(true);
779
+ // If user already has balance and this is NOT an explicit deposit flow,
780
+ // skip the deposit screens and just close the modal
781
+ if (hasExistingBalance && !context.isDepositOnlyFlow) {
782
+ logger.info('[WalletConnection] User has existing Nord balance - skipping deposit flow', {
783
+ hasExistingBalance: hasExistingBalance,
784
+ isDepositOnlyFlow: context.isDepositOnlyFlow,
785
+ });
786
+ closeDynamicWidget();
787
+ setIsConnecting(false);
788
+ flowActions.completeFlow({
789
+ hasNordAccount: true,
790
+ hasActiveSession: true,
791
+ });
792
+ return [2 /*return*/];
793
+ }
794
+ }
795
+ isSolanaEntry = context.entryNetwork === 'solana';
796
+ if (!hasNordAccount && isSolanaEntry) {
797
+ // If we have a pending deposit, allow the onboarding state to handle the flow
798
+ // instead of forcing selection
799
+ // Note: hasPendingBridgeDeposit is already checked earlier, but double-check here for safety
800
+ if (state === OnboardingStep.DEPOSIT_PROGRESS || hasPendingBridgeDeposit) {
801
+ logger.debug('Pending deposit detected, skipping direct transition to Solana amount entry', {
802
+ state: state,
803
+ hasPendingBridgeDeposit: hasPendingBridgeDeposit,
804
+ });
805
+ closeDynamicWidget();
806
+ setIsConnecting(false);
807
+ return [2 /*return*/];
808
+ }
809
+ logger.debug('Proceeding directly to Solana amount entry');
810
+ flowActions.selectChain({
811
+ id: 'solana',
812
+ name: 'Solana',
813
+ network: SolanaNetwork.MAINNET,
814
+ });
815
+ closeDynamicWidget();
816
+ setIsConnecting(false);
817
+ return [2 /*return*/];
818
+ }
819
+ closeDynamicWidget();
820
+ // Transition immediately without setTimeout
821
+ try {
822
+ pendingCheck = readPendingDeposit();
823
+ hasPendingBridgeDepositCheck = pendingCheck &&
824
+ (pendingCheck.stage === 'bridge_submitted' ||
825
+ pendingCheck.stage === 'bridge_confirmed' ||
826
+ (pendingCheck.stage === 'failed' && pendingCheck.tx)) &&
827
+ pendingCheck.tx;
828
+ if (state === OnboardingStep.DEPOSIT_PROGRESS || hasPendingBridgeDepositCheck) {
829
+ logger.info('[WalletConnection] Skipping transition to CHAIN_SELECTION', {
830
+ reason: state === OnboardingStep.DEPOSIT_PROGRESS ? 'state is DEPOSIT_PROGRESS' : 'pending bridge deposit detected',
831
+ state: state,
832
+ hasPendingBridgeDepositCheck: hasPendingBridgeDepositCheck,
833
+ pendingStage: pendingCheck === null || pendingCheck === void 0 ? void 0 : pendingCheck.stage,
834
+ });
835
+ }
836
+ else {
837
+ logger.debug('Attempting transition to ' + OnboardingStep.CHAIN_SELECTION);
838
+ flowActions.goToChainSelection();
839
+ logger.debug('Transition to ' + OnboardingStep.CHAIN_SELECTION + ' completed');
840
+ }
841
+ }
842
+ catch (error) {
843
+ logger.logError(createWalletError('ADAPTER_ERROR', 'Error during transition', {
844
+ cause: error instanceof Error ? error : undefined,
845
+ }));
846
+ }
847
+ finally {
848
+ setIsConnecting(false);
849
+ }
850
+ return [3 /*break*/, 6];
851
+ case 4:
852
+ error_3 = _e.sent();
853
+ logger.logError(createWalletError('ADAPTER_ERROR', 'Error checking account status', {
854
+ cause: error_3 instanceof Error ? error_3 : undefined,
855
+ }));
856
+ closeDynamicWidget();
857
+ setIsConnecting(false);
858
+ return [3 /*break*/, 6];
859
+ case 5:
860
+ getUserInFlightRef.current = null;
861
+ return [7 /*endfinally*/];
862
+ case 6: return [2 /*return*/];
863
+ }
864
+ });
865
+ }); })();
866
+ getUserInFlightRef.current = runGetUser;
867
+ }
868
+ }, [
869
+ nord,
870
+ nordUser,
871
+ solanaWallet,
872
+ updateContext,
873
+ flowActions,
874
+ setIsConnected,
875
+ state,
876
+ dynamicSdkHasLoaded,
877
+ context.isDepositOnlyFlow,
878
+ // Removed nordUser?.sessionId - it's redundant since nordUser is already in deps
879
+ closeDynamicWidget,
880
+ context.entryNetwork,
881
+ ]);
882
+ // Handle Dynamic widget closing while still connecting.
883
+ // If the Nord modal is gone, make sure we reset any pending Dynamic state
884
+ // so a subsequent open can trigger the widget again.
885
+ useEffect(function () {
886
+ if (showLogin) {
887
+ return;
888
+ }
889
+ if (dynamicWidgetRequestedRef.current) {
890
+ closeDynamicWidget();
891
+ }
892
+ if (isConnecting) {
893
+ logger.debug('Wallet modal closed before connection completed; resetting state');
894
+ setIsConnecting(false);
895
+ }
896
+ }, [isConnecting, showLogin, closeDynamicWidget]);
897
+ // Handle connecting state changes in a separate effect
898
+ useEffect(function () {
899
+ var currentState = state;
900
+ var prevState = prevStateRef.current;
901
+ // Only run if state has changed
902
+ if (currentState !== prevState) {
903
+ if (!isWalletConnectionStep(currentState) && isConnecting) {
904
+ // If we're no longer in the connecting state, reset the connecting flag
905
+ setIsConnecting(false);
906
+ }
907
+ // Update ref
908
+ prevStateRef.current = currentState;
909
+ }
910
+ }, [state, isConnecting]);
911
+ // Create the context value
912
+ var contextValue = {
913
+ isConnecting: isConnecting,
914
+ connectWallet: connectWallet,
915
+ disconnectWallet: disconnectWallet,
916
+ turnkeyEnabled: turnkeyEnabled,
917
+ turnkeyStatus: turnkeyStatus,
918
+ turnkeyError: turnkeyError,
919
+ retryTurnkeyBootstrap: retryTurnkeyBootstrap,
920
+ turnkeyAddress: turnkeyAddress,
921
+ turnkeySession: null, // We removed session machine usage for now as it was seemingly unused or redundant with provider
922
+ signTransaction: (_f = solanaWallet === null || solanaWallet === void 0 ? void 0 : solanaWallet.connector) === null || _f === void 0 ? void 0 : _f.signTransaction
923
+ };
924
+ return (_jsx(WalletConnectionContext.Provider, { value: contextValue, children: children }));
925
+ };
926
+ /**
927
+ * Custom hook to use the wallet connection context
928
+ * @returns The wallet connection context value
929
+ * @throws Error if used outside of a WalletConnectionProvider
930
+ */
931
+ export var useWalletConnection = function () {
932
+ var context = useContext(WalletConnectionContext);
933
+ if (context === undefined) {
934
+ throw new Error('useWalletConnection must be used within a WalletConnectionProvider');
935
+ }
936
+ return context;
937
+ };
938
+ //# sourceMappingURL=WalletConnectionProvider.js.map