@n1xyz/wallet-widget 0.0.30 → 0.0.33-alpha.0

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 (415) hide show
  1. package/README.md +117 -208
  2. package/dist/components/LoadingFallback.js.map +1 -0
  3. package/dist/{WidgetButton → components}/N1ConnectButton.js +3 -3
  4. package/dist/components/N1ConnectButton.js.map +1 -0
  5. package/dist/components/logos/ZeroOneLogo.d.ts +8 -0
  6. package/dist/components/logos/ZeroOneLogo.js +6 -0
  7. package/dist/components/logos/ZeroOneLogo.js.map +1 -0
  8. package/dist/components/logos/index.d.ts +1 -0
  9. package/dist/components/logos/index.js +1 -0
  10. package/dist/components/logos/index.js.map +1 -1
  11. package/dist/config/chains.js +2 -0
  12. package/dist/config/chains.js.map +1 -0
  13. package/dist/config/solana.js +1 -1
  14. package/dist/config/solana.js.map +1 -1
  15. package/dist/{Provider/context.d.ts → context/n1-wallet-context.d.ts} +2 -2
  16. package/dist/{Provider/context.js → context/n1-wallet-context.js} +1 -1
  17. package/dist/context/n1-wallet-context.js.map +1 -0
  18. package/dist/{Modal → features/onboarding-flow}/N1WalletModal.d.ts +1 -1
  19. package/dist/{Modal → features/onboarding-flow}/N1WalletModal.js +18 -15
  20. package/dist/features/onboarding-flow/N1WalletModal.js.map +1 -0
  21. package/dist/features/onboarding-flow/OnboardingFlow.d.ts +9 -0
  22. package/dist/features/onboarding-flow/OnboardingFlow.js +98 -0
  23. package/dist/features/onboarding-flow/OnboardingFlow.js.map +1 -0
  24. package/dist/{Modal/NordFlow → features/onboarding-flow}/components/ChainButton.d.ts +1 -2
  25. package/dist/features/onboarding-flow/components/ChainButton.js +21 -0
  26. package/dist/features/onboarding-flow/components/ChainButton.js.map +1 -0
  27. package/dist/{Modal/NordFlow → features/onboarding-flow}/components/Header.js +1 -1
  28. package/dist/features/onboarding-flow/components/Header.js.map +1 -0
  29. package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +1 -0
  30. package/dist/{Modal/NordFlow → features/onboarding-flow}/components/TransactionTable.js +1 -1
  31. package/dist/features/onboarding-flow/components/TransactionTable.js.map +1 -0
  32. package/dist/features/onboarding-flow/components/WaitingMessage.js +17 -0
  33. package/dist/features/onboarding-flow/components/WaitingMessage.js.map +1 -0
  34. package/dist/features/onboarding-flow/components/index.js.map +1 -0
  35. package/dist/features/onboarding-flow/index.d.ts +1 -0
  36. package/dist/features/onboarding-flow/index.js +2 -0
  37. package/dist/features/onboarding-flow/index.js.map +1 -0
  38. package/dist/{Modal/NordFlow/context/DepositContext.d.ts → features/onboarding-flow/providers/DepositFlowProvider.d.ts} +9 -7
  39. package/dist/{Modal/NordFlow/context/DepositContext.js → features/onboarding-flow/providers/DepositFlowProvider.js} +228 -78
  40. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -0
  41. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.d.ts +48 -0
  42. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +185 -0
  43. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -0
  44. package/dist/features/onboarding-flow/providers/StateProvider.d.ts +10 -0
  45. package/dist/features/onboarding-flow/providers/StateProvider.js +14 -0
  46. package/dist/features/onboarding-flow/providers/StateProvider.js.map +1 -0
  47. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.d.ts +21 -0
  48. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +394 -0
  49. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -0
  50. package/dist/features/onboarding-flow/providers/debug.d.ts +6 -0
  51. package/dist/features/onboarding-flow/providers/debug.js +63 -0
  52. package/dist/features/onboarding-flow/providers/debug.js.map +1 -0
  53. package/dist/features/onboarding-flow/providers/index.d.ts +5 -0
  54. package/dist/features/onboarding-flow/providers/index.js +8 -0
  55. package/dist/features/onboarding-flow/providers/index.js.map +1 -0
  56. package/dist/features/onboarding-flow/providers/onboardingStateMachine.d.ts +48 -0
  57. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js +83 -0
  58. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -0
  59. package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/01-ConnectWalletScreen.js +2 -2
  60. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -0
  61. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.d.ts +31 -0
  62. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js +100 -0
  63. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +1 -0
  64. package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/03-AmountInputScreen.d.ts +2 -0
  65. package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/03-AmountInputScreen.js +123 -61
  66. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +1 -0
  67. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.d.ts +3 -0
  68. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +31 -0
  69. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +1 -0
  70. package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/05-DepositSuccessScreen.js +31 -26
  71. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +1 -0
  72. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js +31 -0
  73. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +1 -0
  74. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +14 -0
  75. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +1 -0
  76. package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/index.d.ts +1 -0
  77. package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/index.js +1 -0
  78. package/dist/features/onboarding-flow/screens/index.js.map +1 -0
  79. package/dist/{Modal/NordFlow → features/onboarding-flow}/types.d.ts +13 -16
  80. package/dist/features/onboarding-flow/types.js +34 -0
  81. package/dist/features/onboarding-flow/types.js.map +1 -0
  82. package/dist/features/onboarding-flow/utils/depositStorage.js.map +1 -0
  83. package/dist/features/onboarding-flow/utils/imageUtils.js.map +1 -0
  84. package/dist/{utils/dynamicNord.d.ts → features/onboarding-flow/utils/nordUser.d.ts} +0 -1
  85. package/dist/{utils/dynamicNord.js → features/onboarding-flow/utils/nordUser.js} +2 -13
  86. package/dist/features/onboarding-flow/utils/nordUser.js.map +1 -0
  87. package/dist/features/onboarding-flow/utils/nordUtils.js.map +1 -0
  88. package/dist/{Logic/sessionManager.d.ts → features/onboarding-flow/utils/session.d.ts} +2 -2
  89. package/dist/{Logic/sessionManager.js → features/onboarding-flow/utils/session.js} +36 -5
  90. package/dist/features/onboarding-flow/utils/session.js.map +1 -0
  91. package/dist/{Logic/transactionManager.js → features/onboarding-flow/utils/transaction.js} +1 -1
  92. package/dist/features/onboarding-flow/utils/transaction.js.map +1 -0
  93. package/dist/{Logic → features/onboarding-flow/utils}/utils.d.ts +1 -1
  94. package/dist/{Logic → features/onboarding-flow/utils}/utils.js +1 -1
  95. package/dist/features/onboarding-flow/utils/utils.js.map +1 -0
  96. package/dist/features/onboarding-flow/utils/withImageFallback.js.map +1 -0
  97. package/dist/hooks/index.d.ts +2 -0
  98. package/dist/hooks/index.js +3 -0
  99. package/dist/hooks/index.js.map +1 -0
  100. package/dist/hooks/useN1Wallet.d.ts +2 -0
  101. package/dist/{Provider/hooks.js → hooks/useN1Wallet.js} +2 -2
  102. package/dist/hooks/useN1Wallet.js.map +1 -0
  103. package/dist/{Provider/hooks → hooks}/useNordUserInitialization.js +7 -7
  104. package/dist/hooks/useNordUserInitialization.js.map +1 -0
  105. package/dist/index.d.ts +4 -4
  106. package/dist/index.js +4 -4
  107. package/dist/index.js.map +1 -1
  108. package/dist/{Provider → providers}/LazyWalletProvider.js +34 -8
  109. package/dist/providers/LazyWalletProvider.js.map +1 -0
  110. package/dist/providers/N1WalletProvider.d.ts +3 -0
  111. package/dist/{Provider → providers}/N1WalletProvider.js +51 -22
  112. package/dist/providers/N1WalletProvider.js.map +1 -0
  113. package/dist/providers/ShadowRootWrapper.js.map +1 -0
  114. package/dist/providers/WalletErrorBoundary.js.map +1 -0
  115. package/dist/styles/embedded-main-css.d.ts +2 -0
  116. package/dist/styles/embedded-main-css.js +3 -0
  117. package/dist/styles/embedded-main-css.js.map +1 -0
  118. package/dist/styles/main.css +2 -0
  119. package/dist/{Provider/types.d.ts → types/wallet.d.ts} +7 -8
  120. package/dist/{Provider/types.js → types/wallet.js} +1 -1
  121. package/dist/types/wallet.js.map +1 -0
  122. package/dist/{Logic → utils}/getPseudoName.js.map +1 -1
  123. package/dist/{Logic → utils}/words.js.map +1 -1
  124. package/package.json +25 -21
  125. package/dist/Logic/sessionManager.js.map +0 -1
  126. package/dist/Logic/transactionManager.js.map +0 -1
  127. package/dist/Logic/utils.js.map +0 -1
  128. package/dist/Modal/LoadingFallback.js.map +0 -1
  129. package/dist/Modal/N1WalletModal.js.map +0 -1
  130. package/dist/Modal/NTSFlow/LoadingFallback.d.ts +0 -2
  131. package/dist/Modal/NTSFlow/LoadingFallback.js +0 -3
  132. package/dist/Modal/NTSFlow/LoadingFallback.js.map +0 -1
  133. package/dist/Modal/NTSFlow/NTSFlow.d.ts +0 -4
  134. package/dist/Modal/NTSFlow/NTSFlow.js +0 -35
  135. package/dist/Modal/NTSFlow/NTSFlow.js.map +0 -1
  136. package/dist/Modal/NTSFlow/components/BackButton.d.ts +0 -3
  137. package/dist/Modal/NTSFlow/components/BackButton.js +0 -26
  138. package/dist/Modal/NTSFlow/components/BackButton.js.map +0 -1
  139. package/dist/Modal/NTSFlow/components/ModalHeader.d.ts +0 -1
  140. package/dist/Modal/NTSFlow/components/ModalHeader.js +0 -21
  141. package/dist/Modal/NTSFlow/components/ModalHeader.js.map +0 -1
  142. package/dist/Modal/NTSFlow/index.d.ts +0 -1
  143. package/dist/Modal/NTSFlow/index.js +0 -2
  144. package/dist/Modal/NTSFlow/index.js.map +0 -1
  145. package/dist/Modal/NTSFlow/views/ConnectView.d.ts +0 -1
  146. package/dist/Modal/NTSFlow/views/ConnectView.js +0 -68
  147. package/dist/Modal/NTSFlow/views/ConnectView.js.map +0 -1
  148. package/dist/Modal/NTSFlow/views/CreateSessionView.d.ts +0 -1
  149. package/dist/Modal/NTSFlow/views/CreateSessionView.js +0 -246
  150. package/dist/Modal/NTSFlow/views/CreateSessionView.js.map +0 -1
  151. package/dist/Modal/NTSFlow/views/CreateUserView.d.ts +0 -1
  152. package/dist/Modal/NTSFlow/views/CreateUserView.js +0 -106
  153. package/dist/Modal/NTSFlow/views/CreateUserView.js.map +0 -1
  154. package/dist/Modal/NTSFlow/views/NoWhitelistView.d.ts +0 -1
  155. package/dist/Modal/NTSFlow/views/NoWhitelistView.js +0 -43
  156. package/dist/Modal/NTSFlow/views/NoWhitelistView.js.map +0 -1
  157. package/dist/Modal/NTSFlow/views/SigningView.d.ts +0 -1
  158. package/dist/Modal/NTSFlow/views/SigningView.js +0 -6
  159. package/dist/Modal/NTSFlow/views/SigningView.js.map +0 -1
  160. package/dist/Modal/NTSFlow/views/SuccessView.d.ts +0 -1
  161. package/dist/Modal/NTSFlow/views/SuccessView.js +0 -11
  162. package/dist/Modal/NTSFlow/views/SuccessView.js.map +0 -1
  163. package/dist/Modal/NordFlow/NordFlow.d.ts +0 -9
  164. package/dist/Modal/NordFlow/NordFlow.js +0 -84
  165. package/dist/Modal/NordFlow/NordFlow.js.map +0 -1
  166. package/dist/Modal/NordFlow/components/ChainButton.js +0 -25
  167. package/dist/Modal/NordFlow/components/ChainButton.js.map +0 -1
  168. package/dist/Modal/NordFlow/components/EVMChainsButton.d.ts +0 -9
  169. package/dist/Modal/NordFlow/components/EVMChainsButton.js +0 -21
  170. package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +0 -1
  171. package/dist/Modal/NordFlow/components/Header.js.map +0 -1
  172. package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +0 -1
  173. package/dist/Modal/NordFlow/components/LoadingSquares.d.ts +0 -1
  174. package/dist/Modal/NordFlow/components/LoadingSquares.js +0 -6
  175. package/dist/Modal/NordFlow/components/LoadingSquares.js.map +0 -1
  176. package/dist/Modal/NordFlow/components/MoreButton.d.ts +0 -8
  177. package/dist/Modal/NordFlow/components/MoreButton.js +0 -19
  178. package/dist/Modal/NordFlow/components/MoreButton.js.map +0 -1
  179. package/dist/Modal/NordFlow/components/TransactionTable.js.map +0 -1
  180. package/dist/Modal/NordFlow/components/WaitingMessage.js +0 -18
  181. package/dist/Modal/NordFlow/components/WaitingMessage.js.map +0 -1
  182. package/dist/Modal/NordFlow/components/index.js.map +0 -1
  183. package/dist/Modal/NordFlow/constants.d.ts +0 -37
  184. package/dist/Modal/NordFlow/constants.js +0 -183
  185. package/dist/Modal/NordFlow/constants.js.map +0 -1
  186. package/dist/Modal/NordFlow/context/DepositContext.js.map +0 -1
  187. package/dist/Modal/NordFlow/context/FlowContext.d.ts +0 -24
  188. package/dist/Modal/NordFlow/context/FlowContext.js +0 -218
  189. package/dist/Modal/NordFlow/context/FlowContext.js.map +0 -1
  190. package/dist/Modal/NordFlow/context/NordProvider.d.ts +0 -10
  191. package/dist/Modal/NordFlow/context/NordProvider.js +0 -14
  192. package/dist/Modal/NordFlow/context/NordProvider.js.map +0 -1
  193. package/dist/Modal/NordFlow/context/WalletConnectContext.d.ts +0 -20
  194. package/dist/Modal/NordFlow/context/WalletConnectContext.js +0 -269
  195. package/dist/Modal/NordFlow/context/WalletConnectContext.js.map +0 -1
  196. package/dist/Modal/NordFlow/context/index.d.ts +0 -5
  197. package/dist/Modal/NordFlow/context/index.js +0 -8
  198. package/dist/Modal/NordFlow/context/index.js.map +0 -1
  199. package/dist/Modal/NordFlow/hoc/index.d.ts +0 -1
  200. package/dist/Modal/NordFlow/hoc/index.js +0 -2
  201. package/dist/Modal/NordFlow/hoc/index.js.map +0 -1
  202. package/dist/Modal/NordFlow/hoc/withImageFallback.js.map +0 -1
  203. package/dist/Modal/NordFlow/hooks/useTestnetFaucet.d.ts +0 -18
  204. package/dist/Modal/NordFlow/hooks/useTestnetFaucet.js +0 -181
  205. package/dist/Modal/NordFlow/hooks/useTestnetFaucet.js.map +0 -1
  206. package/dist/Modal/NordFlow/index.d.ts +0 -1
  207. package/dist/Modal/NordFlow/index.js +0 -2
  208. package/dist/Modal/NordFlow/index.js.map +0 -1
  209. package/dist/Modal/NordFlow/screens/00-IdleScreen.d.ts +0 -6
  210. package/dist/Modal/NordFlow/screens/00-IdleScreen.js +0 -9
  211. package/dist/Modal/NordFlow/screens/00-IdleScreen.js.map +0 -1
  212. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +0 -1
  213. package/dist/Modal/NordFlow/screens/02-ChainSelectionScreen.d.ts +0 -1
  214. package/dist/Modal/NordFlow/screens/02-ChainSelectionScreen.js +0 -115
  215. package/dist/Modal/NordFlow/screens/02-ChainSelectionScreen.js.map +0 -1
  216. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -2
  217. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +0 -45
  218. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js.map +0 -1
  219. package/dist/Modal/NordFlow/screens/03-AmountInputScreen.js.map +0 -1
  220. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.d.ts +0 -1
  221. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +0 -66
  222. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js.map +0 -1
  223. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.d.ts +0 -1
  224. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +0 -204
  225. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +0 -1
  226. package/dist/Modal/NordFlow/screens/04-DepositProgressScreen.d.ts +0 -1
  227. package/dist/Modal/NordFlow/screens/04-DepositProgressScreen.js +0 -29
  228. package/dist/Modal/NordFlow/screens/04-DepositProgressScreen.js.map +0 -1
  229. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.d.ts +0 -1
  230. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +0 -51
  231. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js.map +0 -1
  232. package/dist/Modal/NordFlow/screens/05-DepositSuccessScreen.js.map +0 -1
  233. package/dist/Modal/NordFlow/screens/06-AuthLoadingScreen.js +0 -37
  234. package/dist/Modal/NordFlow/screens/06-AuthLoadingScreen.js.map +0 -1
  235. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.d.ts +0 -1
  236. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +0 -132
  237. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js.map +0 -1
  238. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.d.ts +0 -1
  239. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +0 -30
  240. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js.map +0 -1
  241. package/dist/Modal/NordFlow/screens/07-FinalSuccessScreen.d.ts +0 -5
  242. package/dist/Modal/NordFlow/screens/07-FinalSuccessScreen.js +0 -39
  243. package/dist/Modal/NordFlow/screens/07-FinalSuccessScreen.js.map +0 -1
  244. package/dist/Modal/NordFlow/screens/08-ErrorScreen.js +0 -68
  245. package/dist/Modal/NordFlow/screens/08-ErrorScreen.js.map +0 -1
  246. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.d.ts +0 -5
  247. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +0 -52
  248. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +0 -1
  249. package/dist/Modal/NordFlow/screens/09-ErrorScreen.d.ts +0 -1
  250. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +0 -68
  251. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js.map +0 -1
  252. package/dist/Modal/NordFlow/screens/index.js.map +0 -1
  253. package/dist/Modal/NordFlow/types.js +0 -34
  254. package/dist/Modal/NordFlow/types.js.map +0 -1
  255. package/dist/Modal/NordFlow/utils/depositStorage.js.map +0 -1
  256. package/dist/Modal/NordFlow/utils/imageUtils.js.map +0 -1
  257. package/dist/Modal/NordFlow/utils/index.d.ts +0 -2
  258. package/dist/Modal/NordFlow/utils/index.js +0 -3
  259. package/dist/Modal/NordFlow/utils/index.js.map +0 -1
  260. package/dist/Modal/NordFlow/utils/nordUtils.js.map +0 -1
  261. package/dist/Modal/Sidebar/N1Sidebar.d.ts +0 -1
  262. package/dist/Modal/Sidebar/N1Sidebar.js +0 -203
  263. package/dist/Modal/Sidebar/N1Sidebar.js.map +0 -1
  264. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.d.ts +0 -12
  265. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js +0 -90
  266. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js.map +0 -1
  267. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.d.ts +0 -6
  268. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +0 -43
  269. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +0 -1
  270. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.d.ts +0 -11
  271. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +0 -20
  272. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +0 -1
  273. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.d.ts +0 -1
  274. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +0 -143
  275. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +0 -1
  276. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +0 -248
  277. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +0 -1
  278. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.d.ts +0 -10
  279. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +0 -62
  280. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js.map +0 -1
  281. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.d.ts +0 -7
  282. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +0 -30
  283. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js.map +0 -1
  284. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.d.ts +0 -11
  285. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +0 -22
  286. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js.map +0 -1
  287. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.d.ts +0 -7
  288. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +0 -20
  289. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js.map +0 -1
  290. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.d.ts +0 -7
  291. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +0 -24
  292. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js.map +0 -1
  293. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.d.ts +0 -7
  294. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +0 -80
  295. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js.map +0 -1
  296. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.d.ts +0 -9
  297. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +0 -110
  298. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js.map +0 -1
  299. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.d.ts +0 -7
  300. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +0 -30
  301. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js.map +0 -1
  302. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.d.ts +0 -9
  303. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +0 -40
  304. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js.map +0 -1
  305. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.d.ts +0 -7
  306. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +0 -10
  307. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js.map +0 -1
  308. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.d.ts +0 -13
  309. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +0 -264
  310. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +0 -1
  311. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.d.ts +0 -5
  312. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +0 -113
  313. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +0 -1
  314. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.d.ts +0 -1
  315. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +0 -183
  316. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js.map +0 -1
  317. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.d.ts +0 -0
  318. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +0 -278
  319. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +0 -1
  320. package/dist/Provider/LazyWalletProvider.js.map +0 -1
  321. package/dist/Provider/N1WalletProvider.d.ts +0 -3
  322. package/dist/Provider/N1WalletProvider.js.map +0 -1
  323. package/dist/Provider/ShadowRootWrapper.js.map +0 -1
  324. package/dist/Provider/WalletErrorBoundary.js.map +0 -1
  325. package/dist/Provider/context.js.map +0 -1
  326. package/dist/Provider/hooks/useNordUserInitialization.js.map +0 -1
  327. package/dist/Provider/hooks.d.ts +0 -2
  328. package/dist/Provider/hooks.js.map +0 -1
  329. package/dist/Provider/icons/CoinbaseWalletIcon.d.ts +0 -1
  330. package/dist/Provider/icons/CoinbaseWalletIcon.js +0 -5
  331. package/dist/Provider/icons/CoinbaseWalletIcon.js.map +0 -1
  332. package/dist/Provider/icons/ConnectionDotsSVG.d.ts +0 -1
  333. package/dist/Provider/icons/ConnectionDotsSVG.js +0 -5
  334. package/dist/Provider/icons/ConnectionDotsSVG.js.map +0 -1
  335. package/dist/Provider/icons/MetamaskIcon.d.ts +0 -1
  336. package/dist/Provider/icons/MetamaskIcon.js +0 -5
  337. package/dist/Provider/icons/MetamaskIcon.js.map +0 -1
  338. package/dist/Provider/icons/PhantomIcon.d.ts +0 -1
  339. package/dist/Provider/icons/PhantomIcon.js +0 -5
  340. package/dist/Provider/icons/PhantomIcon.js.map +0 -1
  341. package/dist/Provider/icons/UserIcon.d.ts +0 -1
  342. package/dist/Provider/icons/UserIcon.js +0 -5
  343. package/dist/Provider/icons/UserIcon.js.map +0 -1
  344. package/dist/Provider/icons/WalletConnectIcon.d.ts +0 -1
  345. package/dist/Provider/icons/WalletConnectIcon.js +0 -5
  346. package/dist/Provider/icons/WalletConnectIcon.js.map +0 -1
  347. package/dist/Provider/index.d.ts +0 -3
  348. package/dist/Provider/index.js +0 -4
  349. package/dist/Provider/index.js.map +0 -1
  350. package/dist/Provider/types.js.map +0 -1
  351. package/dist/WidgetButton/N1ConnectButton.js.map +0 -1
  352. package/dist/components/QRCodeLoader.d.ts +0 -4
  353. package/dist/components/QRCodeLoader.js +0 -9
  354. package/dist/components/QRCodeLoader.js.map +0 -1
  355. package/dist/components/logos/EVMChainsGroup.d.ts +0 -7
  356. package/dist/components/logos/EVMChainsGroup.js +0 -19
  357. package/dist/components/logos/EVMChainsGroup.js.map +0 -1
  358. package/dist/components/logos/MoreChainsGroup.d.ts +0 -7
  359. package/dist/components/logos/MoreChainsGroup.js +0 -19
  360. package/dist/components/logos/MoreChainsGroup.js.map +0 -1
  361. package/dist/embedded-main-css.d.ts +0 -2
  362. package/dist/embedded-main-css.js +0 -3
  363. package/dist/embedded-main-css.js.map +0 -1
  364. package/dist/main.css +0 -2
  365. package/dist/utils/dynamicImports.js +0 -42
  366. package/dist/utils/dynamicImports.js.map +0 -1
  367. package/dist/utils/dynamicNord.js.map +0 -1
  368. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Bold-Italic-Trial.otf +0 -0
  369. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Bold-Trial.otf +0 -0
  370. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Extra-Bold-Italic-Trial.otf +0 -0
  371. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Extra-Bold-Trial.otf +0 -0
  372. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Light-Italic-Trial.otf +0 -0
  373. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Light-Trial.otf +0 -0
  374. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Medium-Italic-Trial.otf +0 -0
  375. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Medium-Trial.otf +0 -0
  376. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Regular-Italic-Trial.otf +0 -0
  377. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Regular-Trial.otf +0 -0
  378. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Semi-Bold-Italic-Trial.otf +0 -0
  379. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Semi-Bold-Trial.otf +0 -0
  380. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Thin-Italic-Trial.otf +0 -0
  381. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Thin-Trial.otf +0 -0
  382. /package/dist/{Modal → components}/LoadingFallback.d.ts +0 -0
  383. /package/dist/{Modal → components}/LoadingFallback.js +0 -0
  384. /package/dist/{WidgetButton → components}/N1ConnectButton.d.ts +0 -0
  385. /package/dist/{Modal/Sidebar/NordTradingView/OrderBook/OrderBook.d.ts → config/chains.d.ts} +0 -0
  386. /package/dist/{Modal/NordFlow → features/onboarding-flow}/components/Header.d.ts +0 -0
  387. /package/dist/{Modal/NordFlow → features/onboarding-flow}/components/ImageWithFallback.d.ts +0 -0
  388. /package/dist/{Modal/NordFlow → features/onboarding-flow}/components/ImageWithFallback.js +0 -0
  389. /package/dist/{Modal/NordFlow → features/onboarding-flow}/components/TransactionTable.d.ts +0 -0
  390. /package/dist/{Modal/NordFlow → features/onboarding-flow}/components/WaitingMessage.d.ts +0 -0
  391. /package/dist/{Modal/NordFlow → features/onboarding-flow}/components/index.d.ts +0 -0
  392. /package/dist/{Modal/NordFlow → features/onboarding-flow}/components/index.js +0 -0
  393. /package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/01-ConnectWalletScreen.d.ts +0 -0
  394. /package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/05-DepositSuccessScreen.d.ts +0 -0
  395. /package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/06-AuthLoadingScreen.d.ts +0 -0
  396. /package/dist/{Modal/NordFlow/screens/08-ErrorScreen.d.ts → features/onboarding-flow/screens/07-ErrorScreen.d.ts} +0 -0
  397. /package/dist/{Modal/NordFlow → features/onboarding-flow}/utils/depositStorage.d.ts +0 -0
  398. /package/dist/{Modal/NordFlow → features/onboarding-flow}/utils/depositStorage.js +0 -0
  399. /package/dist/{Modal/NordFlow → features/onboarding-flow}/utils/imageUtils.d.ts +0 -0
  400. /package/dist/{Modal/NordFlow → features/onboarding-flow}/utils/imageUtils.js +0 -0
  401. /package/dist/{Modal/NordFlow → features/onboarding-flow}/utils/nordUtils.d.ts +0 -0
  402. /package/dist/{Modal/NordFlow → features/onboarding-flow}/utils/nordUtils.js +0 -0
  403. /package/dist/{Logic/transactionManager.d.ts → features/onboarding-flow/utils/transaction.d.ts} +0 -0
  404. /package/dist/{Modal/NordFlow/hoc → features/onboarding-flow/utils}/withImageFallback.d.ts +0 -0
  405. /package/dist/{Modal/NordFlow/hoc → features/onboarding-flow/utils}/withImageFallback.js +0 -0
  406. /package/dist/{Provider/hooks → hooks}/useNordUserInitialization.d.ts +0 -0
  407. /package/dist/{Provider → providers}/LazyWalletProvider.d.ts +0 -0
  408. /package/dist/{Provider → providers}/ShadowRootWrapper.d.ts +0 -0
  409. /package/dist/{Provider → providers}/ShadowRootWrapper.js +0 -0
  410. /package/dist/{Provider → providers}/WalletErrorBoundary.d.ts +0 -0
  411. /package/dist/{Provider → providers}/WalletErrorBoundary.js +0 -0
  412. /package/dist/{Logic → utils}/getPseudoName.d.ts +0 -0
  413. /package/dist/{Logic → utils}/getPseudoName.js +0 -0
  414. /package/dist/{Logic → utils}/words.d.ts +0 -0
  415. /package/dist/{Logic → utils}/words.js +0 -0
@@ -0,0 +1,185 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { createContext, useCallback, useContext, useEffect, useMemo, useReducer, useRef, useState, } from 'react';
14
+ import { OnboardingStep, initialOnboardingContext, } from '../types';
15
+ import { logger } from '../../../utils/logger';
16
+ import { useN1WalletContext, useN1WalletInternalContext } from '../../../hooks';
17
+ import { N1ModalViewMode } from '../../../types/wallet';
18
+ import { DEBUG_VIEW_TO_FLOW } from './debug';
19
+ import { createInitialOnboardingState, onboardingStateReducer, } from './onboardingStateMachine';
20
+ var OnboardingStateContext = createContext(undefined);
21
+ /**
22
+ * Provider component for the onboarding state machine
23
+ */
24
+ export var OnboardingStateProvider = function (_a) {
25
+ var children = _a.children;
26
+ var _b = useReducer(onboardingStateReducer, undefined, createInitialOnboardingState), machineState = _b[0], dispatch = _b[1];
27
+ var state = machineState.state, context = machineState.context;
28
+ var _c = useState(false), isClosing = _c[0], setIsClosing = _c[1];
29
+ var _d = useState(false), isDebugOverride = _d[0], setIsDebugOverride = _d[1];
30
+ var contextRef = useRef(context);
31
+ var debugOverrideRef = useRef(false);
32
+ var lastDepositRequestRef = useRef(0);
33
+ var prevStateRef = useRef(null);
34
+ var _e = useN1WalletContext(), nordUser = _e.nordUser, viewMode = _e.viewMode;
35
+ var _f = useN1WalletInternalContext(), dynamicSdkHasLoaded = _f.dynamicSdkHasLoaded, depositFlowRequestId = _f.depositFlowRequestId, dynamicWallet = _f.dynamicWallet;
36
+ useEffect(function () {
37
+ contextRef.current = context;
38
+ }, [context]);
39
+ var guardedDispatch = useCallback(function (action) {
40
+ if (isDebugOverride) {
41
+ logger.debug("Transition suppressed (debug override \u2192 ".concat(N1ModalViewMode[viewMode], ")"));
42
+ return;
43
+ }
44
+ if (!dynamicSdkHasLoaded) {
45
+ logger.debug("Ignoring action ".concat(action.type, " until Dynamic SDK is ready"));
46
+ return;
47
+ }
48
+ dispatch(action);
49
+ }, [dynamicSdkHasLoaded, isDebugOverride, viewMode]);
50
+ useEffect(function () {
51
+ var prevState = prevStateRef.current;
52
+ if (prevState && prevState !== state) {
53
+ logger.debug("State changed from ".concat(prevState, " to ").concat(state));
54
+ }
55
+ prevStateRef.current = state;
56
+ if (state === OnboardingStep.CONNECTING_WALLET) {
57
+ forcedAuthRequestedRef.current = false;
58
+ }
59
+ }, [state]);
60
+ var forcedAuthRequestedRef = useRef(false);
61
+ useEffect(function () {
62
+ if (!dynamicWallet ||
63
+ state !== OnboardingStep.CONNECTING_WALLET ||
64
+ context.isDepositOnlyFlow ||
65
+ forcedAuthRequestedRef.current ||
66
+ !context.hasNordAccount) {
67
+ return;
68
+ }
69
+ forcedAuthRequestedRef.current = true;
70
+ guardedDispatch({
71
+ type: 'GO_TO_AUTH',
72
+ hasNordAccount: context.hasNordAccount || undefined,
73
+ });
74
+ }, [dynamicWallet, state, context.isDepositOnlyFlow, context.hasNordAccount, guardedDispatch]);
75
+ var updateContext = useCallback(function (updates) {
76
+ if (!updates || Object.keys(updates).length === 0) {
77
+ return;
78
+ }
79
+ var prev = contextRef.current;
80
+ var hasChanges = Object.keys(updates).some(function (key) { return prev[key] !== updates[key]; });
81
+ if (!hasChanges) {
82
+ return;
83
+ }
84
+ dispatch({ type: 'SET_CONTEXT', updates: updates });
85
+ }, [dispatch]);
86
+ var actions = useMemo(function () { return ({
87
+ updateContext: updateContext,
88
+ goToChainSelection: function (options) {
89
+ var _a;
90
+ return guardedDispatch({
91
+ type: 'GO_TO_CHAIN_SELECTION',
92
+ resetSelection: (_a = options === null || options === void 0 ? void 0 : options.resetSelection) !== null && _a !== void 0 ? _a : false,
93
+ });
94
+ },
95
+ selectChain: function (selection) {
96
+ return guardedDispatch({ type: 'SELECT_CHAIN', selection: selection });
97
+ },
98
+ startDeposit: function () { return guardedDispatch({ type: 'START_DEPOSIT' }); },
99
+ markDepositSuccess: function (payload) {
100
+ return guardedDispatch({ type: 'DEPOSIT_SUCCESS', payload: payload });
101
+ },
102
+ markDepositFailed: function (message) {
103
+ return guardedDispatch({ type: 'DEPOSIT_FAILED', message: message });
104
+ },
105
+ requireAuth: function (options) {
106
+ return guardedDispatch({
107
+ type: 'GO_TO_AUTH',
108
+ hasNordAccount: options === null || options === void 0 ? void 0 : options.hasNordAccount,
109
+ });
110
+ },
111
+ completeFlow: function (options) {
112
+ return guardedDispatch({
113
+ type: 'COMPLETE_FLOW',
114
+ hasActiveSession: options === null || options === void 0 ? void 0 : options.hasActiveSession,
115
+ hasNordAccount: options === null || options === void 0 ? void 0 : options.hasNordAccount,
116
+ });
117
+ },
118
+ setErrorState: function (error) { return guardedDispatch({ type: 'SET_ERROR', error: error }); },
119
+ resetFlow: function (overrideContext) {
120
+ return guardedDispatch({ type: 'RESET', context: overrideContext });
121
+ },
122
+ }); }, [guardedDispatch, updateContext]);
123
+ useEffect(function () {
124
+ if (!depositFlowRequestId ||
125
+ depositFlowRequestId === lastDepositRequestRef.current) {
126
+ return;
127
+ }
128
+ lastDepositRequestRef.current = depositFlowRequestId;
129
+ if (!nordUser || !nordUser.sessionId) {
130
+ logger.warn('Ignoring deposit flow request without an active Nord session');
131
+ return;
132
+ }
133
+ var nextContext = __assign(__assign({}, initialOnboardingContext), { hasNordAccount: true, hasActiveSession: true, isDepositOnlyFlow: true });
134
+ debugOverrideRef.current = false;
135
+ setIsDebugOverride(false);
136
+ dispatch({ type: 'RESET', context: nextContext });
137
+ dispatch({ type: 'GO_TO_CHAIN_SELECTION', resetSelection: false });
138
+ setIsClosing(false);
139
+ logger.debug('Deposit-only flow activated');
140
+ }, [depositFlowRequestId, nordUser, dispatch]);
141
+ // Debug-only: allow external callers (e.g. UI playground) to jump to a specific view
142
+ useEffect(function () {
143
+ var debugTarget = viewMode === N1ModalViewMode.Automatic ? undefined : DEBUG_VIEW_TO_FLOW[viewMode];
144
+ if (debugTarget) {
145
+ debugOverrideRef.current = true;
146
+ setIsDebugOverride(true);
147
+ var snapshot = {
148
+ state: debugTarget.state,
149
+ context: debugTarget.context,
150
+ };
151
+ dispatch({ type: 'APPLY_SNAPSHOT', snapshot: snapshot });
152
+ logger.debug("Debug view override: ".concat(N1ModalViewMode[viewMode], " \u2192 ").concat(debugTarget.state));
153
+ return;
154
+ }
155
+ if (debugOverrideRef.current) {
156
+ debugOverrideRef.current = false;
157
+ setIsDebugOverride(false);
158
+ dispatch({
159
+ type: 'APPLY_SNAPSHOT',
160
+ snapshot: createInitialOnboardingState(),
161
+ });
162
+ logger.debug('Debug view override cleared; returning to state machine');
163
+ }
164
+ }, [viewMode, dispatch]);
165
+ var contextValue = {
166
+ state: state,
167
+ context: context,
168
+ isClosing: isClosing,
169
+ isDebugOverride: isDebugOverride,
170
+ actions: actions,
171
+ updateContext: updateContext,
172
+ };
173
+ return (_jsx(OnboardingStateContext.Provider, { value: contextValue, children: children }));
174
+ };
175
+ /**
176
+ * Custom hook to use the onboarding state context
177
+ */
178
+ export var useOnboardingState = function () {
179
+ var contextValue = useContext(OnboardingStateContext);
180
+ if (contextValue === undefined) {
181
+ throw new Error('useOnboardingState must be used within an OnboardingStateProvider');
182
+ }
183
+ return contextValue;
184
+ };
185
+ //# sourceMappingURL=OnboardingStateProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnboardingStateProvider.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/providers/OnboardingStateProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react';\nimport {\n OnboardingContext,\n OnboardingStep,\n StoredDepositRecord,\n initialOnboardingContext,\n} from '../types';\nimport { logger } from '../../../utils/logger';\nimport { useN1WalletContext, useN1WalletInternalContext } from '../../../hooks';\nimport { N1ModalViewMode } from '../../../types/wallet';\nimport { DEBUG_VIEW_TO_FLOW } from './debug';\nimport {\n OnboardingStateAction,\n OnboardingStateSnapshot,\n createInitialOnboardingState,\n onboardingStateReducer,\n} from './onboardingStateMachine';\n\nexport interface OnboardingStateActions {\n updateContext: (updates: Partial<OnboardingContext>) => void;\n goToChainSelection: (options?: { resetSelection?: boolean }) => void;\n selectChain: (selection: {\n id: string;\n name: string;\n network?: string | null;\n }) => void;\n startDeposit: () => void;\n markDepositSuccess: (payload: {\n transactionId: string;\n record: StoredDepositRecord;\n }) => void;\n markDepositFailed: (message: string) => void;\n requireAuth: (options?: { hasNordAccount?: boolean }) => void;\n completeFlow: (options?: {\n hasActiveSession?: boolean;\n hasNordAccount?: boolean;\n }) => void;\n setErrorState: (error: Error) => void;\n resetFlow: (overrideContext?: OnboardingContext) => void;\n}\n\nexport interface OnboardingStateValue {\n state: OnboardingStep;\n context: OnboardingContext;\n isClosing: boolean;\n isDebugOverride: boolean;\n actions: OnboardingStateActions;\n updateContext: (updates: Partial<OnboardingContext>) => void;\n}\n\nconst OnboardingStateContext = createContext<OnboardingStateValue | undefined>(undefined);\n\ninterface OnboardingStateProviderProps {\n children: React.ReactNode;\n}\n\n/**\n * Provider component for the onboarding state machine\n */\nexport const OnboardingStateProvider: React.FC<OnboardingStateProviderProps> = ({\n children,\n}) => {\n const [machineState, dispatch] = useReducer(\n onboardingStateReducer,\n undefined,\n createInitialOnboardingState\n );\n const { state, context } = machineState;\n const [isClosing, setIsClosing] = useState(false);\n const [isDebugOverride, setIsDebugOverride] = useState(false);\n\n const contextRef = useRef<OnboardingContext>(context);\n const debugOverrideRef = useRef(false);\n const lastDepositRequestRef = useRef(0);\n const prevStateRef = useRef<OnboardingStep | null>(null);\n\n const { nordUser, viewMode } = useN1WalletContext();\n const { dynamicSdkHasLoaded, depositFlowRequestId, dynamicWallet } = useN1WalletInternalContext();\n\n useEffect(() => {\n contextRef.current = context;\n }, [context]);\n\n const guardedDispatch = useCallback(\n (action: OnboardingStateAction) => {\n if (isDebugOverride) {\n logger.debug(\n `Transition suppressed (debug override → ${N1ModalViewMode[viewMode]})`\n );\n return;\n }\n\n if (!dynamicSdkHasLoaded) {\n logger.debug(\n `Ignoring action ${action.type} until Dynamic SDK is ready`\n );\n return;\n }\n\n dispatch(action);\n },\n [dynamicSdkHasLoaded, isDebugOverride, viewMode]\n );\n\n useEffect(() => {\n const prevState = prevStateRef.current;\n if (prevState && prevState !== state) {\n logger.debug(`State changed from ${prevState} to ${state}`);\n }\n prevStateRef.current = state;\n if (state === OnboardingStep.CONNECTING_WALLET) {\n forcedAuthRequestedRef.current = false;\n }\n }, [state]);\n\n const forcedAuthRequestedRef = useRef(false);\n\n useEffect(() => {\n if (\n !dynamicWallet ||\n state !== OnboardingStep.CONNECTING_WALLET ||\n context.isDepositOnlyFlow ||\n forcedAuthRequestedRef.current ||\n !context.hasNordAccount\n ) {\n return;\n }\n\n forcedAuthRequestedRef.current = true;\n guardedDispatch({\n type: 'GO_TO_AUTH',\n hasNordAccount: context.hasNordAccount || undefined,\n });\n }, [dynamicWallet, state, context.isDepositOnlyFlow, context.hasNordAccount, guardedDispatch]);\n\n const updateContext = useCallback(\n (updates: Partial<OnboardingContext>) => {\n if (!updates || Object.keys(updates).length === 0) {\n return;\n }\n\n const prev = contextRef.current;\n const hasChanges = (Object.keys(updates) as Array<keyof OnboardingContext>).some(\n (key) => prev[key] !== updates[key]\n );\n\n if (!hasChanges) {\n return;\n }\n\n dispatch({ type: 'SET_CONTEXT', updates });\n },\n [dispatch]\n );\n\n const actions = useMemo<OnboardingStateActions>(\n () => ({\n updateContext,\n goToChainSelection: (options) =>\n guardedDispatch({\n type: 'GO_TO_CHAIN_SELECTION',\n resetSelection: options?.resetSelection ?? false,\n }),\n selectChain: (selection) =>\n guardedDispatch({ type: 'SELECT_CHAIN', selection }),\n startDeposit: () => guardedDispatch({ type: 'START_DEPOSIT' }),\n markDepositSuccess: (payload) =>\n guardedDispatch({ type: 'DEPOSIT_SUCCESS', payload }),\n markDepositFailed: (message) =>\n guardedDispatch({ type: 'DEPOSIT_FAILED', message }),\n requireAuth: (options) =>\n guardedDispatch({\n type: 'GO_TO_AUTH',\n hasNordAccount: options?.hasNordAccount,\n }),\n completeFlow: (options) =>\n guardedDispatch({\n type: 'COMPLETE_FLOW',\n hasActiveSession: options?.hasActiveSession,\n hasNordAccount: options?.hasNordAccount,\n }),\n setErrorState: (error) => guardedDispatch({ type: 'SET_ERROR', error }),\n resetFlow: (overrideContext) =>\n guardedDispatch({ type: 'RESET', context: overrideContext }),\n }),\n [guardedDispatch, updateContext]\n );\n\n useEffect(() => {\n if (\n !depositFlowRequestId ||\n depositFlowRequestId === lastDepositRequestRef.current\n ) {\n return;\n }\n\n lastDepositRequestRef.current = depositFlowRequestId;\n\n if (!nordUser || !nordUser.sessionId) {\n logger.warn('Ignoring deposit flow request without an active Nord session');\n return;\n }\n\n const nextContext: OnboardingContext = {\n ...initialOnboardingContext,\n hasNordAccount: true,\n hasActiveSession: true,\n isDepositOnlyFlow: true,\n };\n\n debugOverrideRef.current = false;\n setIsDebugOverride(false);\n dispatch({ type: 'RESET', context: nextContext });\n dispatch({ type: 'GO_TO_CHAIN_SELECTION', resetSelection: false });\n setIsClosing(false);\n logger.debug('Deposit-only flow activated');\n }, [depositFlowRequestId, nordUser, dispatch]);\n\n // Debug-only: allow external callers (e.g. UI playground) to jump to a specific view\n useEffect(() => {\n const debugTarget =\n viewMode === N1ModalViewMode.Automatic ? undefined : DEBUG_VIEW_TO_FLOW[viewMode];\n\n if (debugTarget) {\n debugOverrideRef.current = true;\n setIsDebugOverride(true);\n const snapshot: OnboardingStateSnapshot = {\n state: debugTarget.state,\n context: debugTarget.context,\n };\n dispatch({ type: 'APPLY_SNAPSHOT', snapshot });\n logger.debug(\n `Debug view override: ${N1ModalViewMode[viewMode]} → ${debugTarget.state}`\n );\n return;\n }\n\n if (debugOverrideRef.current) {\n debugOverrideRef.current = false;\n setIsDebugOverride(false);\n dispatch({\n type: 'APPLY_SNAPSHOT',\n snapshot: createInitialOnboardingState(),\n });\n logger.debug('Debug view override cleared; returning to state machine');\n }\n }, [viewMode, dispatch]);\n\n const contextValue: OnboardingStateValue = {\n state,\n context,\n isClosing,\n isDebugOverride,\n actions,\n updateContext,\n };\n\n return (\n <OnboardingStateContext.Provider value={contextValue}>\n {children}\n </OnboardingStateContext.Provider>\n );\n};\n\n/**\n * Custom hook to use the onboarding state context\n */\nexport const useOnboardingState = (): OnboardingStateValue => {\n const contextValue = useContext(OnboardingStateContext);\n\n if (contextValue === undefined) {\n throw new Error('useOnboardingState must be used within an OnboardingStateProvider');\n }\n\n return contextValue;\n};\n"]}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ interface OnboardingProviderProps {
3
+ children: React.ReactNode;
4
+ }
5
+ /**
6
+ * A provider component that combines OnboardingStateProvider, WalletConnectionProvider, and DepositFlowProvider
7
+ * into a single wrapper component for easier implementation.
8
+ */
9
+ export declare const StateProvider: React.FC<OnboardingProviderProps>;
10
+ export default StateProvider;
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { OnboardingStateProvider } from './OnboardingStateProvider';
3
+ import { WalletConnectionProvider } from './WalletConnectionProvider';
4
+ import { DepositFlowProvider } from './DepositFlowProvider';
5
+ /**
6
+ * A provider component that combines OnboardingStateProvider, WalletConnectionProvider, and DepositFlowProvider
7
+ * into a single wrapper component for easier implementation.
8
+ */
9
+ export var StateProvider = function (_a) {
10
+ var children = _a.children;
11
+ return (_jsx(OnboardingStateProvider, { children: _jsx(WalletConnectionProvider, { children: _jsx(DepositFlowProvider, { children: children }) }) }));
12
+ };
13
+ export default StateProvider;
14
+ //# sourceMappingURL=StateProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateProvider.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/providers/StateProvider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAM5D;;;GAGG;AACH,MAAM,CAAC,IAAM,aAAa,GAAsC,UAAC,EAAY;QAAV,QAAQ,cAAA;IACzE,OAAO,CACL,KAAC,uBAAuB,cACtB,KAAC,wBAAwB,cACvB,KAAC,mBAAmB,cACjB,QAAQ,GACW,GACG,GACH,CAC3B,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import React from 'react';\nimport { OnboardingStateProvider } from './OnboardingStateProvider';\nimport { WalletConnectionProvider } from './WalletConnectionProvider';\nimport { DepositFlowProvider } from './DepositFlowProvider';\n\ninterface OnboardingProviderProps {\n children: React.ReactNode;\n}\n\n/**\n * A provider component that combines OnboardingStateProvider, WalletConnectionProvider, and DepositFlowProvider\n * into a single wrapper component for easier implementation.\n */\nexport const StateProvider: React.FC<OnboardingProviderProps> = ({ children }) => {\n return (\n <OnboardingStateProvider>\n <WalletConnectionProvider>\n <DepositFlowProvider>\n {children}\n </DepositFlowProvider>\n </WalletConnectionProvider>\n </OnboardingStateProvider>\n );\n};\n\nexport default StateProvider;\n"]}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ export declare const FLOW_STATE_STORAGE_KEY = "n1_wallet_connection_flow_state";
3
+ export interface WalletConnectionContextValue {
4
+ isConnecting: boolean;
5
+ connectWallet: () => Promise<void>;
6
+ disconnectWallet: () => void;
7
+ }
8
+ interface WalletConnectionProviderProps {
9
+ children: React.ReactNode;
10
+ }
11
+ /**
12
+ * Provider component for the wallet connection context
13
+ */
14
+ export declare const WalletConnectionProvider: React.FC<WalletConnectionProviderProps>;
15
+ /**
16
+ * Custom hook to use the wallet connection context
17
+ * @returns The wallet connection context value
18
+ * @throws Error if used outside of a WalletConnectionProvider
19
+ */
20
+ export declare const useWalletConnection: () => WalletConnectionContextValue;
21
+ export {};
@@ -0,0 +1,394 @@
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, useRef, useState } from 'react';
39
+ import { useN1WalletContext, useN1WalletInternalContext } from '../../../hooks';
40
+ import { logger } from '../../../utils/logger';
41
+ import { OnboardingStep, initialOnboardingContext } from '../types';
42
+ import { useOnboardingState } from './OnboardingStateProvider';
43
+ import { clearLastDepositRecord, readLastDepositRecord } from '../utils/depositStorage';
44
+ import { N1ModalViewMode } from '../../../types/wallet';
45
+ import { removeKeysFromLocalStorage } from '../utils/utils';
46
+ export var FLOW_STATE_STORAGE_KEY = 'n1_wallet_connection_flow_state';
47
+ // Create the context with a default value
48
+ var WalletConnectionContext = createContext(undefined);
49
+ /**
50
+ * Provider component for the wallet connection context
51
+ */
52
+ export var WalletConnectionProvider = function (_a) {
53
+ var children = _a.children;
54
+ var _b = useN1WalletContext(), nord = _b.nord, nordUser = _b.nordUser, address = _b.address, setShowLogin = _b.setShowLogin, showLogin = _b.showLogin;
55
+ var _c = useN1WalletInternalContext(), showDynamicWidget = _c.showDynamicWidget, dynamicWallet = _c.dynamicWallet, setIsConnected = _c.setIsConnected, dynamicSdkHasLoaded = _c.dynamicSdkHasLoaded, dynamicHandleLogOut = _c.dynamicHandleLogOut, setAddress = _c.setAddress, setBalances = _c.setBalances, setChain = _c.setChain, setDynamicWallet = _c.setDynamicWallet, setSessionPubKey = _c.setSessionPubKey, setSignMessageWithSessionKey = _c.setSignMessageWithSessionKey, setSignMessageWithWalletKey = _c.setSignMessageWithWalletKey, setSignTransactionWithWalletKey = _c.setSignTransactionWithWalletKey, setNordUser = _c.setNordUser, setViewMode = _c.setViewMode, setWalletPubKey = _c.setWalletPubKey, setUsername = _c.setUsername, setUserChain = _c.setUserChain, setStartClosingLogin = _c.setStartClosingLogin, setDisconnectWalletHandler = _c.setDisconnectWalletHandler;
56
+ // Get flow context
57
+ var _d = useOnboardingState(), state = _d.state, context = _d.context, flowActions = _d.actions, updateContext = _d.updateContext;
58
+ var _e = useState(false), isConnecting = _e[0], setIsConnecting = _e[1];
59
+ var dynamicWidgetRequestedRef = useRef(false);
60
+ // Use refs to track previous values
61
+ var processedWalletAddressRef = useRef(null);
62
+ var prevNordUserRef = useRef(nordUser);
63
+ var prevSessionIdRef = useRef((nordUser === null || nordUser === void 0 ? void 0 : nordUser.sessionId) ? nordUser.sessionId.toString() : null);
64
+ var prevStateRef = useRef(state);
65
+ var reportedNordClientErrorRef = useRef(false);
66
+ var clearWalletCache = useCallback(function () {
67
+ if (typeof window === 'undefined') {
68
+ return;
69
+ }
70
+ try {
71
+ if (address) {
72
+ var sessionIdKey = "n1_sessionId_".concat(address);
73
+ window.localStorage.removeItem(sessionIdKey);
74
+ removeKeysFromLocalStorage(address);
75
+ }
76
+ window.localStorage.removeItem(FLOW_STATE_STORAGE_KEY);
77
+ clearLastDepositRecord(address);
78
+ updateContext(initialOnboardingContext);
79
+ logger.debug('Cleared wallet cache for address', { address: address });
80
+ }
81
+ catch (error) {
82
+ logger.warn('Failed to clear wallet cache', error);
83
+ }
84
+ }, [address, updateContext]);
85
+ var closeDynamicWidget = useCallback(function () {
86
+ if (!dynamicWidgetRequestedRef.current) {
87
+ return;
88
+ }
89
+ if (showDynamicWidget) {
90
+ try {
91
+ showDynamicWidget(false);
92
+ }
93
+ catch (error) {
94
+ logger.warn('Failed to close Dynamic widget', error);
95
+ }
96
+ }
97
+ dynamicWidgetRequestedRef.current = false;
98
+ }, [showDynamicWidget]);
99
+ /**
100
+ * Disconnect wallet
101
+ */
102
+ var disconnectWallet = useCallback(function () {
103
+ logger.debug('Disconnecting wallet');
104
+ try {
105
+ clearWalletCache();
106
+ dynamicHandleLogOut === null || dynamicHandleLogOut === void 0 ? void 0 : dynamicHandleLogOut();
107
+ closeDynamicWidget();
108
+ }
109
+ catch (error) {
110
+ logger.warn('Error during wallet disconnect', error);
111
+ }
112
+ processedWalletAddressRef.current = null;
113
+ setIsConnected(false);
114
+ setAddress('');
115
+ setBalances([]);
116
+ setChain('');
117
+ setDynamicWallet(null);
118
+ setSessionPubKey(null);
119
+ setWalletPubKey(null);
120
+ setSignMessageWithSessionKey(null);
121
+ setSignMessageWithWalletKey(null);
122
+ setSignTransactionWithWalletKey(null);
123
+ setUserChain(null);
124
+ setUsername('');
125
+ setNordUser(null);
126
+ setViewMode(N1ModalViewMode.Automatic);
127
+ setShowLogin(false);
128
+ setStartClosingLogin(false);
129
+ flowActions.resetFlow();
130
+ }, [
131
+ clearWalletCache,
132
+ closeDynamicWidget,
133
+ dynamicHandleLogOut,
134
+ setAddress,
135
+ setBalances,
136
+ setChain,
137
+ setDynamicWallet,
138
+ setIsConnected,
139
+ setNordUser,
140
+ setSessionPubKey,
141
+ setShowLogin,
142
+ setSignMessageWithSessionKey,
143
+ setSignMessageWithWalletKey,
144
+ setSignTransactionWithWalletKey,
145
+ setStartClosingLogin,
146
+ setUserChain,
147
+ setUsername,
148
+ setViewMode,
149
+ setWalletPubKey,
150
+ flowActions,
151
+ ]);
152
+ useEffect(function () {
153
+ setDisconnectWalletHandler(function () { return disconnectWallet; });
154
+ }, [disconnectWallet, setDisconnectWalletHandler]);
155
+ useEffect(function () {
156
+ if (state === OnboardingStep.CONNECTING_WALLET) {
157
+ processedWalletAddressRef.current = null;
158
+ }
159
+ }, [state]);
160
+ /**
161
+ * Connect wallet using Dynamic widget
162
+ */
163
+ var connectWallet = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
164
+ var error_1;
165
+ return __generator(this, function (_a) {
166
+ switch (_a.label) {
167
+ case 0:
168
+ if (isConnecting || !showDynamicWidget || !dynamicSdkHasLoaded)
169
+ return [2 /*return*/];
170
+ if (dynamicWallet) {
171
+ logger.debug('Dynamic wallet already available; skipping widget open');
172
+ return [2 /*return*/];
173
+ }
174
+ setIsConnecting(true);
175
+ logger.debug('Starting wallet connection process');
176
+ _a.label = 1;
177
+ case 1:
178
+ _a.trys.push([1, 3, , 4]);
179
+ dynamicWidgetRequestedRef.current = true;
180
+ return [4 /*yield*/, showDynamicWidget(true)];
181
+ case 2:
182
+ _a.sent();
183
+ logger.debug('Dynamic widget shown');
184
+ return [3 /*break*/, 4];
185
+ case 3:
186
+ error_1 = _a.sent();
187
+ dynamicWidgetRequestedRef.current = false;
188
+ setIsConnecting(false);
189
+ logger.error('Error showing Dynamic widget:', error_1);
190
+ return [3 /*break*/, 4];
191
+ case 4: return [2 /*return*/];
192
+ }
193
+ });
194
+ }); }, [isConnecting, showDynamicWidget, dynamicSdkHasLoaded, dynamicWallet]);
195
+ useEffect(function () {
196
+ if (!dynamicSdkHasLoaded) {
197
+ return;
198
+ }
199
+ if (nord) {
200
+ reportedNordClientErrorRef.current = false;
201
+ return;
202
+ }
203
+ if (typeof nord === 'undefined') {
204
+ // Nord client is still initializing; wait before reporting an error
205
+ return;
206
+ }
207
+ if (reportedNordClientErrorRef.current) {
208
+ setIsConnecting(false);
209
+ return;
210
+ }
211
+ reportedNordClientErrorRef.current = true;
212
+ setIsConnecting(false);
213
+ flowActions.setErrorState(new Error('The client could not be initialized. Verify your Nord environment variables and try again.'));
214
+ }, [dynamicSdkHasLoaded, nord, flowActions]);
215
+ // Process nordUser changes
216
+ useEffect(function () {
217
+ var _a;
218
+ if (!dynamicSdkHasLoaded || !nordUser || !dynamicWallet)
219
+ return;
220
+ var currentNordUser = nordUser;
221
+ var prevNordUser = prevNordUserRef.current;
222
+ var currentSessionId = currentNordUser.sessionId
223
+ ? currentNordUser.sessionId.toString()
224
+ : null;
225
+ var prevSessionId = prevSessionIdRef.current;
226
+ var walletAddress = (_a = dynamicWallet.address) !== null && _a !== void 0 ? _a : null;
227
+ var hasProcessedWallet = walletAddress != null && processedWalletAddressRef.current === walletAddress;
228
+ if (currentNordUser === prevNordUser &&
229
+ currentSessionId === prevSessionId &&
230
+ hasProcessedWallet) {
231
+ return;
232
+ }
233
+ prevNordUserRef.current = currentNordUser;
234
+ prevSessionIdRef.current = currentSessionId;
235
+ if (walletAddress) {
236
+ processedWalletAddressRef.current = walletAddress;
237
+ }
238
+ // Only run if we have processed a wallet
239
+ if (dynamicWallet) {
240
+ logger.debug('NordUser changed, checking account status');
241
+ (function () { return __awaiter(void 0, void 0, void 0, function () {
242
+ var nordAccount, hasNordAccount, sessionId, sessionIdString, serverSessions, sessionMatchesServer, sessionIdKey, hasActiveSession, lastDepositRecord, transitionDestination, error_2;
243
+ var _a;
244
+ return __generator(this, function (_b) {
245
+ switch (_b.label) {
246
+ case 0:
247
+ _b.trys.push([0, 2, , 3]);
248
+ if (!nord) {
249
+ throw new Error('Nord client is not available.');
250
+ }
251
+ return [4 /*yield*/, nord.getUser({ pubkey: dynamicWallet.address })];
252
+ case 1:
253
+ nordAccount = _b.sent();
254
+ hasNordAccount = nordAccount != null;
255
+ sessionId = currentNordUser.sessionId;
256
+ sessionIdString = sessionId ? sessionId.toString() : null;
257
+ serverSessions = (_a = nordAccount === null || nordAccount === void 0 ? void 0 : nordAccount.sessions) !== null && _a !== void 0 ? _a : {};
258
+ sessionMatchesServer = sessionIdString != null && Boolean(serverSessions === null || serverSessions === void 0 ? void 0 : serverSessions[sessionIdString]);
259
+ if (sessionIdString && !sessionMatchesServer) {
260
+ logger.debug('Stored session is missing on Nord; clearing cached session ID');
261
+ if (typeof window !== 'undefined') {
262
+ try {
263
+ sessionIdKey = "n1_sessionId_".concat(dynamicWallet.address);
264
+ window.localStorage.removeItem(sessionIdKey);
265
+ }
266
+ catch (storageError) {
267
+ logger.warn('Failed to clear stale sessionId from localStorage', storageError);
268
+ }
269
+ }
270
+ }
271
+ hasActiveSession = sessionMatchesServer;
272
+ updateContext({ hasNordAccount: hasNordAccount, hasActiveSession: hasActiveSession });
273
+ if (state === OnboardingStep.CONNECTING_WALLET &&
274
+ !context.isDepositOnlyFlow) {
275
+ try {
276
+ lastDepositRecord = readLastDepositRecord(dynamicWallet.address);
277
+ if (lastDepositRecord) {
278
+ logger.debug('Resuming last deposit from local storage');
279
+ flowActions.markDepositSuccess({
280
+ transactionId: lastDepositRecord.transactionId,
281
+ record: lastDepositRecord,
282
+ });
283
+ closeDynamicWidget();
284
+ setIsConnecting(false);
285
+ return [2 /*return*/];
286
+ }
287
+ }
288
+ catch (error) {
289
+ logger.error('Error restoring last deposit record:', error);
290
+ }
291
+ }
292
+ transitionDestination = hasNordAccount
293
+ ? hasActiveSession
294
+ ? OnboardingStep.FINAL_SUCCESS
295
+ : OnboardingStep.AUTH_LOADING
296
+ : OnboardingStep.CHAIN_SELECTION;
297
+ if (hasNordAccount && hasActiveSession) {
298
+ setIsConnected(true);
299
+ }
300
+ closeDynamicWidget();
301
+ // Transition immediately without setTimeout
302
+ try {
303
+ logger.debug('Attempting transition to ' + transitionDestination);
304
+ if (transitionDestination === OnboardingStep.FINAL_SUCCESS) {
305
+ flowActions.completeFlow({
306
+ hasNordAccount: hasNordAccount,
307
+ hasActiveSession: hasActiveSession,
308
+ });
309
+ }
310
+ else if (transitionDestination === OnboardingStep.AUTH_LOADING) {
311
+ flowActions.requireAuth({ hasNordAccount: hasNordAccount });
312
+ }
313
+ else {
314
+ flowActions.goToChainSelection();
315
+ }
316
+ logger.debug('Transition to ' + transitionDestination + ' completed');
317
+ }
318
+ catch (error) {
319
+ logger.error('Error during transition:', error);
320
+ }
321
+ finally {
322
+ setIsConnecting(false);
323
+ }
324
+ return [3 /*break*/, 3];
325
+ case 2:
326
+ error_2 = _b.sent();
327
+ logger.error('Error checking account status:', error_2);
328
+ closeDynamicWidget();
329
+ setIsConnecting(false);
330
+ return [3 /*break*/, 3];
331
+ case 3: return [2 /*return*/];
332
+ }
333
+ });
334
+ }); })();
335
+ }
336
+ }, [
337
+ nord,
338
+ nordUser,
339
+ dynamicWallet,
340
+ updateContext,
341
+ flowActions,
342
+ setIsConnected,
343
+ state,
344
+ dynamicSdkHasLoaded,
345
+ context.isDepositOnlyFlow,
346
+ nordUser === null || nordUser === void 0 ? void 0 : nordUser.sessionId,
347
+ closeDynamicWidget,
348
+ ]);
349
+ // Handle Dynamic widget closing while still connecting
350
+ useEffect(function () {
351
+ if (!isConnecting || state !== OnboardingStep.CONNECTING_WALLET) {
352
+ return;
353
+ }
354
+ if (!showLogin) {
355
+ logger.debug('Wallet modal closed before connection completed; resetting state');
356
+ closeDynamicWidget();
357
+ setIsConnecting(false);
358
+ }
359
+ }, [isConnecting, showLogin, state, closeDynamicWidget]);
360
+ // Handle connecting state changes in a separate effect
361
+ useEffect(function () {
362
+ var currentState = state;
363
+ var prevState = prevStateRef.current;
364
+ // Only run if state has changed
365
+ if (currentState !== prevState) {
366
+ if (currentState !== OnboardingStep.CONNECTING_WALLET && isConnecting) {
367
+ // If we're no longer in the connecting state, reset the connecting flag
368
+ setIsConnecting(false);
369
+ }
370
+ // Update ref
371
+ prevStateRef.current = currentState;
372
+ }
373
+ }, [state, isConnecting]);
374
+ // Create the context value
375
+ var contextValue = {
376
+ isConnecting: isConnecting,
377
+ connectWallet: connectWallet,
378
+ disconnectWallet: disconnectWallet,
379
+ };
380
+ return (_jsx(WalletConnectionContext.Provider, { value: contextValue, children: children }));
381
+ };
382
+ /**
383
+ * Custom hook to use the wallet connection context
384
+ * @returns The wallet connection context value
385
+ * @throws Error if used outside of a WalletConnectionProvider
386
+ */
387
+ export var useWalletConnection = function () {
388
+ var context = useContext(WalletConnectionContext);
389
+ if (context === undefined) {
390
+ throw new Error('useWalletConnection must be used within a WalletConnectionProvider');
391
+ }
392
+ return context;
393
+ };
394
+ //# sourceMappingURL=WalletConnectionProvider.js.map