@n1xyz/wallet-widget 0.0.8 → 0.0.9

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 (513) hide show
  1. package/dist/Logic/getPseudoName.js +1 -0
  2. package/dist/Logic/getPseudoName.js.map +1 -0
  3. package/dist/Logic/sessionManager.js +1 -0
  4. package/dist/Logic/sessionManager.js.map +1 -0
  5. package/dist/Logic/transactionManager.js +1 -0
  6. package/dist/Logic/transactionManager.js.map +1 -0
  7. package/dist/Logic/utils.js +1 -0
  8. package/dist/Logic/utils.js.map +1 -0
  9. package/dist/Logic/words.js +1 -0
  10. package/dist/Logic/words.js.map +1 -0
  11. package/dist/Modal/LoadingFallback.js +1 -0
  12. package/dist/Modal/LoadingFallback.js.map +1 -0
  13. package/dist/Modal/N1WalletModal.js +5 -5
  14. package/dist/Modal/N1WalletModal.js.map +1 -0
  15. package/dist/Modal/NTSFlow/LoadingFallback.js +1 -0
  16. package/dist/Modal/NTSFlow/LoadingFallback.js.map +1 -0
  17. package/dist/Modal/NTSFlow/NTSFlow.js +1 -0
  18. package/dist/Modal/NTSFlow/NTSFlow.js.map +1 -0
  19. package/dist/Modal/NTSFlow/components/BackButton.js +1 -0
  20. package/dist/Modal/NTSFlow/components/BackButton.js.map +1 -0
  21. package/dist/Modal/NTSFlow/components/ModalHeader.js +1 -0
  22. package/dist/Modal/NTSFlow/components/ModalHeader.js.map +1 -0
  23. package/dist/Modal/NTSFlow/index.js +1 -0
  24. package/dist/Modal/NTSFlow/index.js.map +1 -0
  25. package/dist/Modal/NTSFlow/views/ConnectView.js +1 -0
  26. package/dist/Modal/NTSFlow/views/ConnectView.js.map +1 -0
  27. package/dist/Modal/NTSFlow/views/CreateSessionView.js +1 -0
  28. package/dist/Modal/NTSFlow/views/CreateSessionView.js.map +1 -0
  29. package/dist/Modal/NTSFlow/views/CreateUserView.js +1 -0
  30. package/dist/Modal/NTSFlow/views/CreateUserView.js.map +1 -0
  31. package/dist/Modal/NTSFlow/views/NoWhitelistView.js +1 -0
  32. package/dist/Modal/NTSFlow/views/NoWhitelistView.js.map +1 -0
  33. package/dist/Modal/NTSFlow/views/SigningView.js +1 -0
  34. package/dist/Modal/NTSFlow/views/SigningView.js.map +1 -0
  35. package/dist/Modal/NTSFlow/views/SuccessView.js +1 -0
  36. package/dist/Modal/NTSFlow/views/SuccessView.js.map +1 -0
  37. package/dist/Modal/NordFlow/NordFlow.js +6 -10
  38. package/dist/Modal/NordFlow/NordFlow.js.map +1 -0
  39. package/dist/Modal/NordFlow/components/ChainButton.js +1 -0
  40. package/dist/Modal/NordFlow/components/ChainButton.js.map +1 -0
  41. package/dist/Modal/NordFlow/components/EVMChainsButton.js +1 -0
  42. package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +1 -0
  43. package/dist/Modal/NordFlow/components/ImageWithFallback.js +1 -0
  44. package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +1 -0
  45. package/dist/Modal/NordFlow/components/LoadingSquares.js +1 -0
  46. package/dist/Modal/NordFlow/components/LoadingSquares.js.map +1 -0
  47. package/dist/Modal/NordFlow/components/MoreButton.js +1 -0
  48. package/dist/Modal/NordFlow/components/MoreButton.js.map +1 -0
  49. package/dist/Modal/NordFlow/components/TransactionTable.js +1 -0
  50. package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -0
  51. package/dist/Modal/NordFlow/components/WaitingMessage.js +1 -0
  52. package/dist/Modal/NordFlow/components/WaitingMessage.js.map +1 -0
  53. package/dist/Modal/NordFlow/components/index.js +1 -0
  54. package/dist/Modal/NordFlow/components/index.js.map +1 -0
  55. package/dist/Modal/NordFlow/constants.js +1 -0
  56. package/dist/Modal/NordFlow/constants.js.map +1 -0
  57. package/dist/Modal/NordFlow/hoc/index.js +1 -0
  58. package/dist/Modal/NordFlow/hoc/index.js.map +1 -0
  59. package/dist/Modal/NordFlow/hoc/withImageFallback.js +1 -0
  60. package/dist/Modal/NordFlow/hoc/withImageFallback.js.map +1 -0
  61. package/dist/Modal/NordFlow/hooks/index.js +1 -0
  62. package/dist/Modal/NordFlow/hooks/index.js.map +1 -0
  63. package/dist/Modal/NordFlow/hooks/useDepositFlow.js +31 -30
  64. package/dist/Modal/NordFlow/hooks/useDepositFlow.js.map +1 -0
  65. package/dist/Modal/NordFlow/hooks/useFlowState.js +44 -22
  66. package/dist/Modal/NordFlow/hooks/useFlowState.js.map +1 -0
  67. package/dist/Modal/NordFlow/hooks/useInterruptHandler.js +19 -16
  68. package/dist/Modal/NordFlow/hooks/useInterruptHandler.js.map +1 -0
  69. package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +0 -4
  70. package/dist/Modal/NordFlow/hooks/useNordInstance.js +65 -25
  71. package/dist/Modal/NordFlow/hooks/useNordInstance.js.map +1 -0
  72. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +73 -52
  73. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js.map +1 -0
  74. package/dist/Modal/NordFlow/index.js +1 -0
  75. package/dist/Modal/NordFlow/index.js.map +1 -0
  76. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +1 -0
  77. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -0
  78. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +1 -0
  79. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js.map +1 -0
  80. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +1 -0
  81. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js.map +1 -0
  82. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +1 -0
  83. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -0
  84. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +1 -0
  85. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js.map +1 -0
  86. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +1 -0
  87. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js.map +1 -0
  88. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +1 -0
  89. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js.map +1 -0
  90. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +1 -0
  91. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +1 -0
  92. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +1 -0
  93. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js.map +1 -0
  94. package/dist/Modal/NordFlow/screens/index.js +1 -0
  95. package/dist/Modal/NordFlow/screens/index.js.map +1 -0
  96. package/dist/Modal/NordFlow/types.js +1 -0
  97. package/dist/Modal/NordFlow/types.js.map +1 -0
  98. package/dist/Modal/NordFlow/utils/imageUtils.js +1 -0
  99. package/dist/Modal/NordFlow/utils/imageUtils.js.map +1 -0
  100. package/dist/Modal/NordFlow/utils/index.js +1 -0
  101. package/dist/Modal/NordFlow/utils/index.js.map +1 -0
  102. package/dist/Modal/NordFlow/utils/nordUtils.js +1 -0
  103. package/dist/Modal/NordFlow/utils/nordUtils.js.map +1 -0
  104. package/dist/Modal/NordFlow/utils/persistence.js +1 -0
  105. package/dist/Modal/NordFlow/utils/persistence.js.map +1 -0
  106. package/dist/Modal/Sidebar/N1Sidebar.js +2 -0
  107. package/dist/Modal/Sidebar/N1Sidebar.js.map +1 -0
  108. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js +1 -0
  109. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js.map +1 -0
  110. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +1 -0
  111. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +1 -0
  112. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +1 -0
  113. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +1 -0
  114. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +1 -0
  115. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +1 -0
  116. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +1 -0
  117. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +1 -0
  118. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +1 -0
  119. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js.map +1 -0
  120. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +1 -0
  121. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js.map +1 -0
  122. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +1 -0
  123. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js.map +1 -0
  124. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +1 -0
  125. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js.map +1 -0
  126. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +1 -0
  127. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js.map +1 -0
  128. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +1 -0
  129. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js.map +1 -0
  130. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +1 -0
  131. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js.map +1 -0
  132. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +1 -0
  133. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js.map +1 -0
  134. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +1 -0
  135. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js.map +1 -0
  136. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +1 -0
  137. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js.map +1 -0
  138. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +1 -0
  139. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +1 -0
  140. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +1 -0
  141. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +1 -0
  142. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +1 -0
  143. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js.map +1 -0
  144. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +1 -0
  145. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +1 -0
  146. package/dist/Provider/LazyWalletProvider.js +1 -0
  147. package/dist/Provider/LazyWalletProvider.js.map +1 -0
  148. package/dist/Provider/N1WalletProvider.js +3 -12
  149. package/dist/Provider/N1WalletProvider.js.map +1 -0
  150. package/dist/Provider/context.js +1 -0
  151. package/dist/Provider/context.js.map +1 -0
  152. package/dist/Provider/hooks.js +1 -0
  153. package/dist/Provider/hooks.js.map +1 -0
  154. package/dist/Provider/icons/CoinbaseWalletIcon.js +1 -0
  155. package/dist/Provider/icons/CoinbaseWalletIcon.js.map +1 -0
  156. package/dist/Provider/icons/ConnectionDotsSVG.js +1 -0
  157. package/dist/Provider/icons/ConnectionDotsSVG.js.map +1 -0
  158. package/dist/Provider/icons/MetamaskIcon.js +1 -0
  159. package/dist/Provider/icons/MetamaskIcon.js.map +1 -0
  160. package/dist/Provider/icons/PhantomIcon.js +1 -0
  161. package/dist/Provider/icons/PhantomIcon.js.map +1 -0
  162. package/dist/Provider/icons/UserIcon.js +1 -0
  163. package/dist/Provider/icons/UserIcon.js.map +1 -0
  164. package/dist/Provider/icons/WalletConnectIcon.js +1 -0
  165. package/dist/Provider/icons/WalletConnectIcon.js.map +1 -0
  166. package/dist/Provider/index.js +1 -0
  167. package/dist/Provider/index.js.map +1 -0
  168. package/dist/Provider/types.js +1 -0
  169. package/dist/Provider/types.js.map +1 -0
  170. package/dist/WidgetButton/N1ConnectButton.js +1 -0
  171. package/dist/WidgetButton/N1ConnectButton.js.map +1 -0
  172. package/dist/components/Logo.js +1 -0
  173. package/dist/components/Logo.js.map +1 -0
  174. package/dist/components/QRCodeLoader.js +1 -0
  175. package/dist/components/QRCodeLoader.js.map +1 -0
  176. package/dist/components/logos/ArbitrumLogo.js +1 -0
  177. package/dist/components/logos/ArbitrumLogo.js.map +1 -0
  178. package/dist/components/logos/BaseLogo.js +1 -0
  179. package/dist/components/logos/BaseLogo.js.map +1 -0
  180. package/dist/components/logos/BeraLogo.js +1 -0
  181. package/dist/components/logos/BeraLogo.js.map +1 -0
  182. package/dist/components/logos/BitcoinLogo.js +1 -0
  183. package/dist/components/logos/BitcoinLogo.js.map +1 -0
  184. package/dist/components/logos/EVMChainsGroup.js +1 -0
  185. package/dist/components/logos/EVMChainsGroup.js.map +1 -0
  186. package/dist/components/logos/EthereumLogo.js +1 -0
  187. package/dist/components/logos/EthereumLogo.js.map +1 -0
  188. package/dist/components/logos/HyperliquidLogo.js +1 -0
  189. package/dist/components/logos/HyperliquidLogo.js.map +1 -0
  190. package/dist/components/logos/MoreChainsGroup.js +1 -0
  191. package/dist/components/logos/MoreChainsGroup.js.map +1 -0
  192. package/dist/components/logos/OptimismLogo.js +1 -0
  193. package/dist/components/logos/OptimismLogo.js.map +1 -0
  194. package/dist/components/logos/SolanaLogo.js +1 -0
  195. package/dist/components/logos/SolanaLogo.js.map +1 -0
  196. package/dist/components/logos/index.js +1 -0
  197. package/dist/components/logos/index.js.map +1 -0
  198. package/dist/config/solana.js +1 -0
  199. package/dist/config/solana.js.map +1 -0
  200. package/dist/config.js +1 -0
  201. package/dist/config.js.map +1 -0
  202. package/dist/errors/types.js +1 -0
  203. package/dist/errors/types.js.map +1 -0
  204. package/dist/index.js +1 -0
  205. package/dist/index.js.map +1 -0
  206. package/dist/utils/dynamicImports.js +1 -0
  207. package/dist/utils/dynamicImports.js.map +1 -0
  208. package/dist/utils/logger.d.ts +1 -0
  209. package/dist/utils/logger.js +26 -2
  210. package/dist/utils/logger.js.map +1 -0
  211. package/dist/utils/shortenString.js +1 -0
  212. package/dist/utils/shortenString.js.map +1 -0
  213. package/package.json +2 -2
  214. package/dist/Modal/BackButton.d.ts +0 -3
  215. package/dist/Modal/BackButton.js +0 -26
  216. package/dist/Modal/ConnectView.d.ts +0 -1
  217. package/dist/Modal/ConnectView.js +0 -68
  218. package/dist/Modal/CreateSessionView.d.ts +0 -1
  219. package/dist/Modal/CreateSessionView.js +0 -248
  220. package/dist/Modal/CreateUserView.d.ts +0 -1
  221. package/dist/Modal/CreateUserView.js +0 -160
  222. package/dist/Modal/ModalHeader.d.ts +0 -1
  223. package/dist/Modal/ModalHeader.js +0 -20
  224. package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.d.ts +0 -9
  225. package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.js +0 -145
  226. package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.d.ts +0 -14
  227. package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.js +0 -75
  228. package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.d.ts +0 -7
  229. package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.js +0 -5
  230. package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.d.ts +0 -1
  231. package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.js +0 -5
  232. package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.d.ts +0 -13
  233. package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.js +0 -58
  234. package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.d.ts +0 -6
  235. package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.js +0 -6
  236. package/dist/Modal/NTSFlow/NordFlow/components/index.d.ts +0 -5
  237. package/dist/Modal/NTSFlow/NordFlow/components/index.js +0 -5
  238. package/dist/Modal/NTSFlow/NordFlow/constants.d.ts +0 -37
  239. package/dist/Modal/NTSFlow/NordFlow/constants.js +0 -223
  240. package/dist/Modal/NTSFlow/NordFlow/hooks/index.d.ts +0 -8
  241. package/dist/Modal/NTSFlow/NordFlow/hooks/index.js +0 -8
  242. package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.d.ts +0 -7
  243. package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.js +0 -43
  244. package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.d.ts +0 -38
  245. package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.js +0 -166
  246. package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.d.ts +0 -32
  247. package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.js +0 -163
  248. package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.d.ts +0 -27
  249. package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.js +0 -101
  250. package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.d.ts +0 -32
  251. package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.js +0 -193
  252. package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.d.ts +0 -2
  253. package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.js +0 -69
  254. package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.d.ts +0 -6
  255. package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.js +0 -89
  256. package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.d.ts +0 -30
  257. package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.js +0 -132
  258. package/dist/Modal/NTSFlow/NordFlow/index.d.ts +0 -3
  259. package/dist/Modal/NTSFlow/NordFlow/index.js +0 -3
  260. package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.d.ts +0 -6
  261. package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.js +0 -17
  262. package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -6
  263. package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.js +0 -47
  264. package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.d.ts +0 -7
  265. package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.js +0 -7
  266. package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.d.ts +0 -8
  267. package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.js +0 -20
  268. package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.d.ts +0 -7
  269. package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.js +0 -6
  270. package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.d.ts +0 -8
  271. package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.js +0 -99
  272. package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.d.ts +0 -7
  273. package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.js +0 -14
  274. package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
  275. package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.js +0 -20
  276. package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
  277. package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.js +0 -18
  278. package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.d.ts +0 -7
  279. package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.js +0 -13
  280. package/dist/Modal/NTSFlow/NordFlow/screens/index.d.ts +0 -10
  281. package/dist/Modal/NTSFlow/NordFlow/screens/index.js +0 -10
  282. package/dist/Modal/NTSFlow/NordFlow/types.d.ts +0 -105
  283. package/dist/Modal/NTSFlow/NordFlow/types.js +0 -34
  284. package/dist/Modal/NTSFlow/NordFlow/utils/persistence.d.ts +0 -24
  285. package/dist/Modal/NTSFlow/NordFlow/utils/persistence.js +0 -83
  286. package/dist/Modal/NoWhitelistView.d.ts +0 -1
  287. package/dist/Modal/NoWhitelistView.js +0 -42
  288. package/dist/Modal/NordFlow/NordFlowWrapper.d.ts +0 -11
  289. package/dist/Modal/NordFlow/NordFlowWrapper.js +0 -11
  290. package/dist/Modal/NordFlow/WalletConnectionFlow.d.ts +0 -9
  291. package/dist/Modal/NordFlow/WalletConnectionFlow.js +0 -145
  292. package/dist/Modal/NordFlow/components/AnimatedButton.d.ts +0 -14
  293. package/dist/Modal/NordFlow/components/AnimatedButton.js +0 -75
  294. package/dist/Modal/NordFlow/hooks/useButtonTyping.d.ts +0 -7
  295. package/dist/Modal/NordFlow/hooks/useButtonTyping.js +0 -43
  296. package/dist/Modal/NordFlow/hooks/useNordSession.d.ts +0 -32
  297. package/dist/Modal/NordFlow/hooks/useNordSession.js +0 -391
  298. package/dist/Modal/NordFlow/hooks/useTableValues.d.ts +0 -2
  299. package/dist/Modal/NordFlow/hooks/useTableValues.js +0 -69
  300. package/dist/Modal/NordFlow/hooks/useWaitingMessage.d.ts +0 -6
  301. package/dist/Modal/NordFlow/hooks/useWaitingMessage.js +0 -89
  302. package/dist/Modal/NordFlow/hooks/useWalletConnect.d.ts +0 -14
  303. package/dist/Modal/NordFlow/hooks/useWalletConnect.js +0 -221
  304. package/dist/Modal/NordFlow/index copy.d.ts +0 -1
  305. package/dist/Modal/NordFlow/index copy.js +0 -1
  306. package/dist/Modal/NordFlow/screens/07-NordAuthScreen.d.ts +0 -5
  307. package/dist/Modal/NordFlow/screens/07-NordAuthScreen.js +0 -17
  308. package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
  309. package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.js +0 -153
  310. package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
  311. package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.js +0 -47
  312. package/dist/Modal/NordFlow/screens/10-ErrorScreen.d.ts +0 -7
  313. package/dist/Modal/NordFlow/screens/10-ErrorScreen.js +0 -62
  314. package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.d.ts +0 -1
  315. package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.js +0 -116
  316. package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.d.ts +0 -5
  317. package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.js +0 -138
  318. package/dist/Modal/SigningView.d.ts +0 -1
  319. package/dist/Modal/SigningView.js +0 -5
  320. package/dist/Modal/SuccessView.d.ts +0 -1
  321. package/dist/Modal/SuccessView.js +0 -10
  322. package/dist/NordFlow/WalletConnectionFlow.d.ts +0 -9
  323. package/dist/NordFlow/WalletConnectionFlow.js +0 -145
  324. package/dist/NordFlow/components/AnimatedButton.d.ts +0 -14
  325. package/dist/NordFlow/components/AnimatedButton.js +0 -75
  326. package/dist/NordFlow/components/ChainButton.d.ts +0 -7
  327. package/dist/NordFlow/components/ChainButton.js +0 -5
  328. package/dist/NordFlow/components/LoadingSquares.d.ts +0 -1
  329. package/dist/NordFlow/components/LoadingSquares.js +0 -5
  330. package/dist/NordFlow/components/TransactionTable.d.ts +0 -13
  331. package/dist/NordFlow/components/TransactionTable.js +0 -58
  332. package/dist/NordFlow/components/WaitingMessage.d.ts +0 -6
  333. package/dist/NordFlow/components/WaitingMessage.js +0 -6
  334. package/dist/NordFlow/components/index.d.ts +0 -5
  335. package/dist/NordFlow/components/index.js +0 -5
  336. package/dist/NordFlow/constants.d.ts +0 -37
  337. package/dist/NordFlow/constants.js +0 -223
  338. package/dist/NordFlow/hooks/index.d.ts +0 -8
  339. package/dist/NordFlow/hooks/index.js +0 -8
  340. package/dist/NordFlow/hooks/useButtonTyping.d.ts +0 -7
  341. package/dist/NordFlow/hooks/useButtonTyping.js +0 -43
  342. package/dist/NordFlow/hooks/useDepositFlow.d.ts +0 -38
  343. package/dist/NordFlow/hooks/useDepositFlow.js +0 -166
  344. package/dist/NordFlow/hooks/useFlowState.d.ts +0 -32
  345. package/dist/NordFlow/hooks/useFlowState.js +0 -163
  346. package/dist/NordFlow/hooks/useInterruptHandler.d.ts +0 -27
  347. package/dist/NordFlow/hooks/useInterruptHandler.js +0 -101
  348. package/dist/NordFlow/hooks/useNordSession.d.ts +0 -32
  349. package/dist/NordFlow/hooks/useNordSession.js +0 -193
  350. package/dist/NordFlow/hooks/useTableValues.d.ts +0 -2
  351. package/dist/NordFlow/hooks/useTableValues.js +0 -69
  352. package/dist/NordFlow/hooks/useWaitingMessage.d.ts +0 -6
  353. package/dist/NordFlow/hooks/useWaitingMessage.js +0 -89
  354. package/dist/NordFlow/hooks/useWalletConnect.d.ts +0 -30
  355. package/dist/NordFlow/hooks/useWalletConnect.js +0 -132
  356. package/dist/NordFlow/index.d.ts +0 -3
  357. package/dist/NordFlow/index.js +0 -3
  358. package/dist/NordFlow/screens/01-ConnectWalletScreen.d.ts +0 -6
  359. package/dist/NordFlow/screens/01-ConnectWalletScreen.js +0 -17
  360. package/dist/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -6
  361. package/dist/NordFlow/screens/02-EvmWalletAuthScreen.js +0 -47
  362. package/dist/NordFlow/screens/03-ChainSelectionScreen.d.ts +0 -7
  363. package/dist/NordFlow/screens/03-ChainSelectionScreen.js +0 -7
  364. package/dist/NordFlow/screens/04-AmountInputScreen.d.ts +0 -8
  365. package/dist/NordFlow/screens/04-AmountInputScreen.js +0 -20
  366. package/dist/NordFlow/screens/05-DepositProgressScreen.d.ts +0 -7
  367. package/dist/NordFlow/screens/05-DepositProgressScreen.js +0 -6
  368. package/dist/NordFlow/screens/06-DepositSuccessScreen.d.ts +0 -8
  369. package/dist/NordFlow/screens/06-DepositSuccessScreen.js +0 -99
  370. package/dist/NordFlow/screens/07-NordAuthScreen.d.ts +0 -7
  371. package/dist/NordFlow/screens/07-NordAuthScreen.js +0 -14
  372. package/dist/NordFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
  373. package/dist/NordFlow/screens/08-AuthLoadingScreen.js +0 -20
  374. package/dist/NordFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
  375. package/dist/NordFlow/screens/09-FinalSuccessScreen.js +0 -18
  376. package/dist/NordFlow/screens/10-ErrorScreen.d.ts +0 -7
  377. package/dist/NordFlow/screens/10-ErrorScreen.js +0 -13
  378. package/dist/NordFlow/screens/index.d.ts +0 -10
  379. package/dist/NordFlow/screens/index.js +0 -10
  380. package/dist/NordFlow/types.d.ts +0 -105
  381. package/dist/NordFlow/types.js +0 -34
  382. package/dist/NordFlow/utils/persistence.d.ts +0 -24
  383. package/dist/NordFlow/utils/persistence.js +0 -83
  384. package/dist/WalletConnectionFlow/WalletConnectionFlow.d.ts +0 -9
  385. package/dist/WalletConnectionFlow/WalletConnectionFlow.js +0 -145
  386. package/dist/WalletConnectionFlow/components/AnimatedButton.d.ts +0 -14
  387. package/dist/WalletConnectionFlow/components/AnimatedButton.js +0 -75
  388. package/dist/WalletConnectionFlow/components/ChainButton.d.ts +0 -7
  389. package/dist/WalletConnectionFlow/components/ChainButton.js +0 -5
  390. package/dist/WalletConnectionFlow/components/LoadingSquares.d.ts +0 -1
  391. package/dist/WalletConnectionFlow/components/LoadingSquares.js +0 -5
  392. package/dist/WalletConnectionFlow/components/TransactionTable.d.ts +0 -13
  393. package/dist/WalletConnectionFlow/components/TransactionTable.js +0 -58
  394. package/dist/WalletConnectionFlow/components/WaitingMessage.d.ts +0 -6
  395. package/dist/WalletConnectionFlow/components/WaitingMessage.js +0 -6
  396. package/dist/WalletConnectionFlow/components/index.d.ts +0 -5
  397. package/dist/WalletConnectionFlow/components/index.js +0 -5
  398. package/dist/WalletConnectionFlow/constants.d.ts +0 -37
  399. package/dist/WalletConnectionFlow/constants.js +0 -223
  400. package/dist/WalletConnectionFlow/hooks/index.d.ts +0 -8
  401. package/dist/WalletConnectionFlow/hooks/index.js +0 -8
  402. package/dist/WalletConnectionFlow/hooks/useButtonTyping.d.ts +0 -7
  403. package/dist/WalletConnectionFlow/hooks/useButtonTyping.js +0 -43
  404. package/dist/WalletConnectionFlow/hooks/useDepositFlow.d.ts +0 -38
  405. package/dist/WalletConnectionFlow/hooks/useDepositFlow.js +0 -166
  406. package/dist/WalletConnectionFlow/hooks/useFlowState.d.ts +0 -32
  407. package/dist/WalletConnectionFlow/hooks/useFlowState.js +0 -163
  408. package/dist/WalletConnectionFlow/hooks/useInterruptHandler.d.ts +0 -27
  409. package/dist/WalletConnectionFlow/hooks/useInterruptHandler.js +0 -101
  410. package/dist/WalletConnectionFlow/hooks/useNordSession.d.ts +0 -32
  411. package/dist/WalletConnectionFlow/hooks/useNordSession.js +0 -193
  412. package/dist/WalletConnectionFlow/hooks/useTableValues.d.ts +0 -2
  413. package/dist/WalletConnectionFlow/hooks/useTableValues.js +0 -69
  414. package/dist/WalletConnectionFlow/hooks/useWaitingMessage.d.ts +0 -6
  415. package/dist/WalletConnectionFlow/hooks/useWaitingMessage.js +0 -89
  416. package/dist/WalletConnectionFlow/hooks/useWalletConnect.d.ts +0 -30
  417. package/dist/WalletConnectionFlow/hooks/useWalletConnect.js +0 -132
  418. package/dist/WalletConnectionFlow/index.d.ts +0 -3
  419. package/dist/WalletConnectionFlow/index.js +0 -3
  420. package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.d.ts +0 -6
  421. package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.js +0 -17
  422. package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -6
  423. package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.js +0 -47
  424. package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.d.ts +0 -7
  425. package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.js +0 -7
  426. package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.d.ts +0 -8
  427. package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.js +0 -20
  428. package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.d.ts +0 -7
  429. package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.js +0 -6
  430. package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.d.ts +0 -8
  431. package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.js +0 -99
  432. package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.d.ts +0 -7
  433. package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.js +0 -14
  434. package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
  435. package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.js +0 -20
  436. package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
  437. package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.js +0 -18
  438. package/dist/WalletConnectionFlow/screens/10-ErrorScreen.d.ts +0 -7
  439. package/dist/WalletConnectionFlow/screens/10-ErrorScreen.js +0 -13
  440. package/dist/WalletConnectionFlow/screens/AmountInputScreen.d.ts +0 -8
  441. package/dist/WalletConnectionFlow/screens/AmountInputScreen.js +0 -20
  442. package/dist/WalletConnectionFlow/screens/AppsTableScreen.d.ts +0 -8
  443. package/dist/WalletConnectionFlow/screens/AppsTableScreen.js +0 -28
  444. package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.d.ts +0 -6
  445. package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.js +0 -20
  446. package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.d.ts +0 -7
  447. package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.js +0 -7
  448. package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.d.ts +0 -6
  449. package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.js +0 -17
  450. package/dist/WalletConnectionFlow/screens/DepositProgressScreen.d.ts +0 -7
  451. package/dist/WalletConnectionFlow/screens/DepositProgressScreen.js +0 -6
  452. package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.d.ts +0 -8
  453. package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.js +0 -99
  454. package/dist/WalletConnectionFlow/screens/ErrorScreen.d.ts +0 -7
  455. package/dist/WalletConnectionFlow/screens/ErrorScreen.js +0 -13
  456. package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.d.ts +0 -6
  457. package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.js +0 -47
  458. package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.d.ts +0 -6
  459. package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.js +0 -47
  460. package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.d.ts +0 -5
  461. package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.js +0 -18
  462. package/dist/WalletConnectionFlow/screens/NordAuthScreen.d.ts +0 -7
  463. package/dist/WalletConnectionFlow/screens/NordAuthScreen.js +0 -14
  464. package/dist/WalletConnectionFlow/screens/SigningScreen.d.ts +0 -6
  465. package/dist/WalletConnectionFlow/screens/SigningScreen.js +0 -6
  466. package/dist/WalletConnectionFlow/screens/index.d.ts +0 -10
  467. package/dist/WalletConnectionFlow/screens/index.js +0 -10
  468. package/dist/WalletConnectionFlow/types.d.ts +0 -105
  469. package/dist/WalletConnectionFlow/types.js +0 -34
  470. package/dist/WalletConnectionFlow/utils/persistence.d.ts +0 -24
  471. package/dist/WalletConnectionFlow/utils/persistence.js +0 -83
  472. package/dist/components/LazyLoadWrapper.d.ts +0 -8
  473. package/dist/components/LazyLoadWrapper.js +0 -17
  474. package/dist/components/WalletDeposit/AnimatedButton.d.ts +0 -17
  475. package/dist/components/WalletDeposit/AnimatedButton.js +0 -29
  476. package/dist/components/WalletDeposit/components/ChainButton.d.ts +0 -7
  477. package/dist/components/WalletDeposit/components/ChainButton.js +0 -5
  478. package/dist/components/WalletDeposit/components/LoadingSquares.d.ts +0 -1
  479. package/dist/components/WalletDeposit/components/LoadingSquares.js +0 -5
  480. package/dist/components/WalletDeposit/components/TransactionTable.d.ts +0 -13
  481. package/dist/components/WalletDeposit/components/TransactionTable.js +0 -58
  482. package/dist/components/WalletDeposit/components/WaitingMessage.d.ts +0 -6
  483. package/dist/components/WalletDeposit/components/WaitingMessage.js +0 -6
  484. package/dist/components/WalletDeposit/constants.d.ts +0 -15
  485. package/dist/components/WalletDeposit/constants.js +0 -32
  486. package/dist/components/WalletDeposit/hooks.d.ts +0 -9
  487. package/dist/components/WalletDeposit/hooks.js +0 -185
  488. package/dist/components/WalletDeposit/index.d.ts +0 -1
  489. package/dist/components/WalletDeposit/index.js +0 -136
  490. package/dist/components/WalletDeposit/screens/AmountInputScreen.d.ts +0 -12
  491. package/dist/components/WalletDeposit/screens/AmountInputScreen.js +0 -18
  492. package/dist/components/WalletDeposit/screens/AppsTableScreen.d.ts +0 -8
  493. package/dist/components/WalletDeposit/screens/AppsTableScreen.js +0 -28
  494. package/dist/components/WalletDeposit/screens/ChainSelectionScreen.d.ts +0 -5
  495. package/dist/components/WalletDeposit/screens/ChainSelectionScreen.js +0 -8
  496. package/dist/components/WalletDeposit/screens/InitialScreen.d.ts +0 -9
  497. package/dist/components/WalletDeposit/screens/InitialScreen.js +0 -18
  498. package/dist/components/WalletDeposit/screens/SigningScreen.d.ts +0 -6
  499. package/dist/components/WalletDeposit/screens/SigningScreen.js +0 -6
  500. package/dist/components/WalletDeposit/screens/SuccessScreen.d.ts +0 -12
  501. package/dist/components/WalletDeposit/screens/SuccessScreen.js +0 -7
  502. package/dist/components/WalletDeposit/types.d.ts +0 -48
  503. package/dist/components/WalletDeposit/types.js +0 -1
  504. package/dist/config/dynamic.d.ts +0 -20
  505. package/dist/config/dynamic.js +0 -47
  506. package/dist/hooks/useSolanaSession.d.ts +0 -17
  507. package/dist/hooks/useSolanaSession.js +0 -180
  508. package/dist/utils/lazyLoad.d.ts +0 -3
  509. package/dist/utils/lazyLoad.js +0 -9
  510. package/dist/utils/react-shim.d.ts +0 -2
  511. package/dist/utils/react-shim.js +0 -6
  512. package/dist/utils/solana-session.d.ts +0 -84
  513. package/dist/utils/solana-session.js +0 -230
@@ -36,28 +36,23 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  };
37
37
  import { NordUser } from '@n1xyz/nord-ts';
38
38
  import { generateSessionKeyPair, signEd25519 } from '@n1xyz/nts-sdk';
39
- import { PublicKey } from '@solana/web3.js';
40
- import { useEffect } from 'react';
39
+ import { PublicKey, Transaction } from '@solana/web3.js';
40
+ import { useCallback, useEffect, useRef } from 'react';
41
41
  import { WalletError, WalletErrorCode } from '../../../errors/types';
42
42
  import { getSessionKeysFromLocalStorage, storeSessionKeysInLocalStorage, } from '../../../Logic/utils';
43
43
  import { useN1WalletContext, useN1WalletInternalContext, } from '../../../Provider/hooks';
44
44
  import { logger } from '../../../utils/logger';
45
- // Utility function to convert Uint8Array to base64 string
46
- function arrayBufferToBase64(buffer) {
47
- var binary = '';
48
- for (var i = 0; i < buffer.length; i++) {
49
- binary += String.fromCharCode(buffer[i]);
50
- }
51
- return btoa(binary);
52
- }
53
45
  /**
54
46
  * Hook to access the Nord instance and create a NordUser if needed
55
47
  */
56
48
  export var useNordInstance = function () {
57
49
  var _a = useN1WalletContext(), nord = _a.nord, address = _a.address, signMessageWithWalletKey = _a.signMessageWithWalletKey, signMessageWithSessionKey = _a.signMessageWithSessionKey, signTransactionWithWalletKey = _a.signTransactionWithWalletKey, nordUser = _a.nordUser, sessionPubKey = _a.sessionPubKey;
58
50
  var _b = useN1WalletInternalContext(), setSessionPubKey = _b.setSessionPubKey, setSignMessageWithSessionKey = _b.setSignMessageWithSessionKey, setSignMessageWithWalletKey = _b.setSignMessageWithWalletKey, setSignTransactionWithWalletKey = _b.setSignTransactionWithWalletKey, dynamicWallet = _b.dynamicWallet, setNordUser = _b.setNordUser;
51
+ // Use refs to track previous values to prevent unnecessary re-renders
52
+ var prevDynamicWalletRef = useRef(dynamicWallet);
53
+ var prevAddressRef = useRef(address);
59
54
  // Create a wallet signing function if needed
60
- var createWalletSignFunction = function () {
55
+ var createWalletSignFunction = useCallback(function () {
61
56
  if (!dynamicWallet) {
62
57
  return null;
63
58
  }
@@ -88,11 +83,14 @@ export var useNordInstance = function () {
88
83
  // Set the wallet sign function in context
89
84
  setSignMessageWithWalletKey(function () { return signWithWallet; });
90
85
  return signWithWallet;
91
- };
86
+ }, [dynamicWallet, setSignMessageWithWalletKey]);
92
87
  // Create a wallet transaction signing function
93
- var createTransactionSignFunction = function () {
88
+ var createTransactionSignFunction = useCallback(function () {
89
+ if (!dynamicWallet) {
90
+ return null;
91
+ }
94
92
  var signTransactionWithWallet = function (transaction) { return __awaiter(void 0, void 0, void 0, function () {
95
- var signedTransaction, error_2;
93
+ var signedTransaction, serializedTx, error_2;
96
94
  return __generator(this, function (_a) {
97
95
  switch (_a.label) {
98
96
  case 0:
@@ -103,7 +101,10 @@ export var useNordInstance = function () {
103
101
  case 2:
104
102
  signedTransaction = _a.sent();
105
103
  logger.debug('Solana transaction signature received');
106
- return [2 /*return*/, signedTransaction];
104
+ serializedTx = signedTransaction.serialize();
105
+ // Create a new transaction from the serialized data
106
+ // This will have a proper signature property that can be accessed
107
+ return [2 /*return*/, Transaction.from(serializedTx)];
107
108
  case 3: throw new WalletError(WalletErrorCode.USER_REJECTED, 'Unsupported chain', { originalError: new Error('Unsupported chain') });
108
109
  case 4:
109
110
  error_2 = _a.sent();
@@ -116,9 +117,9 @@ export var useNordInstance = function () {
116
117
  // Set the transaction sign function in context
117
118
  setSignTransactionWithWalletKey(function () { return signTransactionWithWallet; });
118
119
  return signTransactionWithWallet;
119
- };
120
+ }, [dynamicWallet, setSignTransactionWithWalletKey]);
120
121
  // Create a session if we have the necessary dependencies but no session sign function
121
- var createSession = function () { return __awaiter(void 0, void 0, void 0, function () {
122
+ var createSession = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
122
123
  var sessionKeyPair_1, storedKeys, tempKeyPair, error_3, signFn_1, error_4;
123
124
  return __generator(this, function (_a) {
124
125
  switch (_a.label) {
@@ -186,9 +187,9 @@ export var useNordInstance = function () {
186
187
  case 8: return [2 /*return*/];
187
188
  }
188
189
  });
189
- }); };
190
+ }); }, [address, dynamicWallet, setSessionPubKey, setSignMessageWithSessionKey]);
190
191
  // Create a NordUser instance if needed
191
- var createNordUser = function () { return __awaiter(void 0, void 0, void 0, function () {
192
+ var createNordUser = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
192
193
  var walletSignFn, sessionSignFn, createdSignFn, sessionId, sessionKeyData, sessionIdKey, storedSessionId, user, _1, error_6;
193
194
  return __generator(this, function (_a) {
194
195
  switch (_a.label) {
@@ -242,6 +243,9 @@ export var useNordInstance = function () {
242
243
  console.error('Error retrieving sessionId from localStorage:', error);
243
244
  }
244
245
  }
246
+ if (!nord || !address || !sessionPubKey) {
247
+ return [2 /*return*/, null];
248
+ }
245
249
  user = new NordUser({
246
250
  nord: nord,
247
251
  address: address,
@@ -274,17 +278,53 @@ export var useNordInstance = function () {
274
278
  case 8: return [2 /*return*/];
275
279
  }
276
280
  });
277
- }); };
281
+ }); }, [
282
+ nord,
283
+ address,
284
+ dynamicWallet,
285
+ signMessageWithWalletKey,
286
+ signMessageWithSessionKey,
287
+ signTransactionWithWalletKey,
288
+ sessionPubKey,
289
+ createWalletSignFunction,
290
+ createTransactionSignFunction,
291
+ createSession,
292
+ setNordUser
293
+ ]);
294
+ // Initialize wallet and session functions only when dependencies change
278
295
  useEffect(function () {
279
- if (dynamicWallet && nord && address) {
296
+ var currentDynamicWallet = dynamicWallet;
297
+ var currentAddress = address;
298
+ var prevDynamicWallet = prevDynamicWalletRef.current;
299
+ var prevAddress = prevAddressRef.current;
300
+ // Only run if dynamicWallet or address has actually changed
301
+ if ((currentDynamicWallet !== prevDynamicWallet ||
302
+ currentAddress !== prevAddress) &&
303
+ currentDynamicWallet &&
304
+ nord &&
305
+ currentAddress) {
306
+ logger.debug('Wallet or address changed, initializing functions');
280
307
  if (signMessageWithSessionKey == null)
281
308
  createSession();
282
309
  if (signMessageWithWalletKey == null)
283
310
  createWalletSignFunction();
284
311
  if (signTransactionWithWalletKey == null)
285
312
  createTransactionSignFunction();
313
+ // Update refs
314
+ prevDynamicWalletRef.current = currentDynamicWallet;
315
+ prevAddressRef.current = currentAddress;
286
316
  }
287
- }, [nord, dynamicWallet, address]);
317
+ }, [
318
+ dynamicWallet,
319
+ address,
320
+ nord,
321
+ signMessageWithSessionKey,
322
+ signMessageWithWalletKey,
323
+ signTransactionWithWalletKey,
324
+ createSession,
325
+ createWalletSignFunction,
326
+ createTransactionSignFunction
327
+ ]);
288
328
  // Initialize NordUser when dependencies change, but only if we don't already have one
289
329
  useEffect(function () {
290
330
  var initNordUser = function () { return __awaiter(void 0, void 0, void 0, function () {
@@ -309,11 +349,11 @@ export var useNordInstance = function () {
309
349
  signMessageWithWalletKey,
310
350
  signMessageWithSessionKey,
311
351
  signTransactionWithWalletKey,
352
+ nordUser,
353
+ createNordUser
312
354
  ]);
313
355
  return {
314
- nord: nord,
315
- createNordUser: createNordUser,
316
356
  nordUser: nordUser,
317
- createTransactionSignFunction: createTransactionSignFunction,
318
357
  };
319
358
  };
359
+ //# sourceMappingURL=useNordInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNordInstance.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/hooks/useNordInstance.ts"],"names":[],"mappings":"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","sourcesContent":["import { NordUser } from '@n1xyz/nord-ts';\nimport { generateSessionKeyPair, signEd25519 } from '@n1xyz/nts-sdk';\nimport { PublicKey, Transaction } from '@solana/web3.js';\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { WalletError, WalletErrorCode } from '../../../errors/types';\nimport {\n getSessionKeysFromLocalStorage,\n storeSessionKeysInLocalStorage,\n} from '../../../Logic/utils';\nimport {\n useN1WalletContext,\n useN1WalletInternalContext,\n} from '../../../Provider/hooks';\nimport { logger } from '../../../utils/logger';\nimport { sign } from 'crypto';\n\n\n/**\n * Hook to access the Nord instance and create a NordUser if needed\n */\nexport const useNordInstance = () => {\n const {\n nord,\n address,\n signMessageWithWalletKey,\n signMessageWithSessionKey,\n signTransactionWithWalletKey,\n nordUser,\n sessionPubKey,\n } = useN1WalletContext();\n const {\n setSessionPubKey,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n dynamicWallet,\n setNordUser,\n } = useN1WalletInternalContext();\n\n // Use refs to track previous values to prevent unnecessary re-renders\n const prevDynamicWalletRef = useRef(dynamicWallet);\n const prevAddressRef = useRef(address);\n\n // Create a wallet signing function if needed\n const createWalletSignFunction = useCallback(() => {\n if (!dynamicWallet) {\n return null;\n }\n\n const signWithWallet = async (msg: Uint8Array): Promise<Uint8Array> => {\n try {\n const hexMsg = Buffer.from(msg).toString('hex');\n const signature = await dynamicWallet.signMessage(hexMsg);\n const binaryString = atob(signature);\n const signatureUint8Array = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n signatureUint8Array[i] = binaryString.charCodeAt(i);\n }\n return signatureUint8Array;\n } catch (error) {\n console.error('Error signing with wallet:', error);\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Failed to sign message with wallet',\n { originalError: error }\n );\n }\n };\n\n // Set the wallet sign function in context\n setSignMessageWithWalletKey(() => signWithWallet);\n return signWithWallet;\n }, [dynamicWallet, setSignMessageWithWalletKey]);\n\n // Create a wallet transaction signing function\n const createTransactionSignFunction = useCallback(() => {\n if (!dynamicWallet) {\n return null;\n }\n \n const signTransactionWithWallet = async (\n transaction: any\n ): Promise<any> => {\n try {\n if (dynamicWallet.chain === 'SOL') {\n const signedTransaction = await (\n await dynamicWallet.getSigner()\n ).signTransaction(transaction);\n logger.debug('Solana transaction signature received');\n \n // Serialize the transaction and create a new one from the serialized data\n // This avoids the need to modify the signature property directly\n const serializedTx = signedTransaction.serialize();\n \n // Create a new transaction from the serialized data\n // This will have a proper signature property that can be accessed\n return Transaction.from(serializedTx);\n }\n\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Unsupported chain',\n { originalError: new Error('Unsupported chain') }\n );\n } catch (error) {\n console.error('Error signing transaction with wallet:', error);\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Failed to sign transaction with wallet',\n { originalError: error }\n );\n }\n };\n\n // Set the transaction sign function in context\n setSignTransactionWithWalletKey(() => signTransactionWithWallet);\n return signTransactionWithWallet;\n }, [dynamicWallet, setSignTransactionWithWalletKey]);\n\n // Create a session if we have the necessary dependencies but no session sign function\n const createSession = useCallback(async () => {\n try {\n // Try to load existing session keys from localStorage\n let sessionKeyPair = null;\n if (address) {\n const storedKeys = getSessionKeysFromLocalStorage(address);\n if (storedKeys) {\n // Reconstruct the key pair from the stored private key\n // We need to derive the public key from the private key\n try {\n // Generate a new key pair to get the proper structure\n const tempKeyPair = await generateSessionKeyPair();\n // Replace the private key with our stored one\n sessionKeyPair = {\n privateKey: storedKeys.ed25519PrivateKey,\n // For Ed25519, the public key is the second half of the private key\n publicKey: tempKeyPair.publicKey,\n };\n } catch (error) {\n console.error(\n 'Error reconstructing key pair from stored keys:',\n error\n );\n sessionKeyPair = null;\n }\n }\n }\n\n // If we couldn't load keys from localStorage, generate new ones\n if (!sessionKeyPair) {\n sessionKeyPair = await generateSessionKeyPair();\n }\n\n // Create session signing function\n const signFn = async (message: any): Promise<any> => {\n try {\n return await signEd25519(message, sessionKeyPair.privateKey);\n } catch (error) {\n console.error('Error signing with session key:', error);\n throw error;\n }\n };\n\n // Store session keys\n storeSessionKeysInLocalStorage({\n privKey: sessionKeyPair.privateKey,\n walletPublicKey: address,\n chainName: dynamicWallet?.chain || 'ETH', // Default to ETH if we don't have chain info\n });\n\n // Set session public key and sign function in context\n setSessionPubKey(sessionKeyPair.publicKey);\n setSignMessageWithSessionKey(() => signFn);\n return signFn;\n } catch (error) {\n console.error('Error creating session:', error);\n return null;\n }\n }, [address, dynamicWallet, setSessionPubKey, setSignMessageWithSessionKey]);\n\n // Create a NordUser instance if needed\n const createNordUser = useCallback(async () => {\n try {\n // If we don't have a wallet sign function, create one\n let walletSignFn = signMessageWithWalletKey;\n if (!walletSignFn && dynamicWallet) {\n walletSignFn = createWalletSignFunction();\n\n if (!walletSignFn) {\n console.error('Failed to create wallet sign function');\n return null;\n }\n }\n\n if (!walletSignFn) {\n console.error(\n 'Cannot create NordUser, no wallet sign function available'\n );\n return null;\n }\n\n // If we don't have a transaction sign function, create one\n if (!signTransactionWithWalletKey && dynamicWallet) {\n createTransactionSignFunction();\n }\n\n // If we don't have a session sign function, create one\n let sessionSignFn = signMessageWithSessionKey;\n if (!sessionSignFn) {\n const createdSignFn = await createSession();\n\n if (!createdSignFn) {\n console.error('Failed to create session sign function');\n return null;\n }\n\n sessionSignFn = createdSignFn;\n }\n\n // Check if there's a sessionId stored for the session public key\n let sessionId = undefined;\n if (address) {\n try {\n // Get the session key from localStorage\n const sessionKeyData = getSessionKeysFromLocalStorage(address);\n if (sessionKeyData) {\n // Check if there's a sessionId stored in localStorage\n const sessionIdKey = `n1_sessionId_${address}`;\n const storedSessionId = localStorage.getItem(sessionIdKey);\n if (storedSessionId !== null) {\n // Convert the stored sessionId to BigInt\n sessionId = BigInt(storedSessionId);\n logger.debug('Found existing sessionId in localStorage', {\n sessionId: storedSessionId,\n });\n }\n }\n } catch (error) {\n console.error('Error retrieving sessionId from localStorage:', error);\n }\n }\n\n if (!nord || !address || !sessionPubKey) {\n return null;\n }\n\n const user = new NordUser({\n nord: nord,\n address,\n walletSignFn,\n sessionSignFn,\n transactionSignFn: signTransactionWithWalletKey!,\n sessionId, // Pass the sessionId if it exists\n sessionPubKey: sessionPubKey!,\n publicKey: new PublicKey(address),\n });\n\n try {\n await user.updateAccountId();\n } catch (_) {\n // Ignore errors during account ID update\n }\n\n // Update the nordUser in the context\n setNordUser(user);\n return user;\n } catch (error) {\n console.error('Error creating NordUser:', error);\n setNordUser(null);\n return null;\n }\n }, [\n nord,\n address,\n dynamicWallet,\n signMessageWithWalletKey,\n signMessageWithSessionKey,\n signTransactionWithWalletKey,\n sessionPubKey,\n createWalletSignFunction,\n createTransactionSignFunction,\n createSession,\n setNordUser\n ]);\n\n // Initialize wallet and session functions only when dependencies change\n useEffect(() => {\n const currentDynamicWallet = dynamicWallet;\n const currentAddress = address;\n const prevDynamicWallet = prevDynamicWalletRef.current;\n const prevAddress = prevAddressRef.current;\n\n // Only run if dynamicWallet or address has actually changed\n if (\n (currentDynamicWallet !== prevDynamicWallet || \n currentAddress !== prevAddress) && \n currentDynamicWallet && \n nord && \n currentAddress\n ) {\n logger.debug('Wallet or address changed, initializing functions');\n \n if (signMessageWithSessionKey == null) createSession();\n if (signMessageWithWalletKey == null) createWalletSignFunction();\n if (signTransactionWithWalletKey == null) createTransactionSignFunction();\n \n // Update refs\n prevDynamicWalletRef.current = currentDynamicWallet;\n prevAddressRef.current = currentAddress;\n }\n }, [\n dynamicWallet, \n address, \n nord, \n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n createSession,\n createWalletSignFunction,\n createTransactionSignFunction\n ]);\n\n // Initialize NordUser when dependencies change, but only if we don't already have one\n useEffect(() => {\n const initNordUser = async () => {\n if (\n signMessageWithWalletKey &&\n signMessageWithSessionKey &&\n signTransactionWithWalletKey &&\n nordUser == null\n ) {\n logger.debug('Dependencies available, initializing NordUser');\n await createNordUser();\n }\n };\n\n initNordUser();\n }, [\n signMessageWithWalletKey,\n signMessageWithSessionKey,\n signTransactionWithWalletKey,\n nordUser,\n createNordUser\n ]);\n\n return {\n nordUser,\n };\n};\n"]}
@@ -51,8 +51,11 @@ export var useNordWalletConnect = function (state, transition, context, updateCo
51
51
  var _c = useState(false), isConnecting = _c[0], setIsConnecting = _c[1];
52
52
  var _d = useState(context.walletType), walletType = _d[0], setWalletType = _d[1];
53
53
  var _e = useState(false), hasProcessedWallet = _e[0], setHasProcessedWallet = _e[1];
54
- // Use a ref to track the current wallet address to prevent processing the same wallet multiple times
54
+ // Use refs to track previous values
55
55
  var processedWalletAddressRef = useRef(null);
56
+ var prevNordUserRef = useRef(nordUser);
57
+ var prevDynamicWalletRef = useRef(dynamicWallet);
58
+ var prevStateRef = useRef(state);
56
59
  /**
57
60
  * Determine wallet type from Dynamic wallet
58
61
  */
@@ -85,21 +88,24 @@ export var useNordWalletConnect = function (state, transition, context, updateCo
85
88
  logger.debug('Starting wallet connection process');
86
89
  _a.label = 1;
87
90
  case 1:
88
- _a.trys.push([1, 3, , 4]);
91
+ _a.trys.push([1, 4, , 5]);
89
92
  // Show Dynamic widget to connect wallet
90
- return [4 /*yield*/, showDynamicWidget(true)];
93
+ return [4 /*yield*/, disconnectWallet()];
91
94
  case 2:
92
95
  // Show Dynamic widget to connect wallet
93
96
  _a.sent();
94
- logger.debug('Dynamic widget shown');
95
- return [3 /*break*/, 4];
97
+ return [4 /*yield*/, showDynamicWidget(true)];
96
98
  case 3:
99
+ _a.sent();
100
+ logger.debug('Dynamic widget shown');
101
+ return [3 /*break*/, 5];
102
+ case 4:
97
103
  error_1 = _a.sent();
98
104
  setIsConnecting(false);
99
105
  updateContext({ walletType: null });
100
106
  logger.error('Error showing Dynamic widget:', error_1);
101
- return [3 /*break*/, 4];
102
- case 4: return [2 /*return*/];
107
+ return [3 /*break*/, 5];
108
+ case 5: return [2 /*return*/];
103
109
  }
104
110
  });
105
111
  }); }, [isConnecting, showDynamicWidget, updateContext]);
@@ -110,47 +116,48 @@ export var useNordWalletConnect = function (state, transition, context, updateCo
110
116
  logger.debug('Disconnecting wallet');
111
117
  setWalletType(null);
112
118
  setHasProcessedWallet(false);
119
+ processedWalletAddressRef.current = null;
113
120
  updateContext({ walletType: null });
114
121
  }, [updateContext]);
122
+ // Process nordUser changes
115
123
  useEffect(function () {
116
- if (hasProcessedWallet && nordUser) {
124
+ var currentNordUser = nordUser;
125
+ var prevNordUser = prevNordUserRef.current;
126
+ // Only run if nordUser has changed and we have processed a wallet
127
+ if (hasProcessedWallet && currentNordUser && currentNordUser !== prevNordUser) {
128
+ logger.debug('NordUser changed, checking account status');
117
129
  (function () { return __awaiter(void 0, void 0, void 0, function () {
118
- var hasNordAccount, sessionId, hasActiveSession, transitionDestination;
130
+ var hasNordAccount_1, sessionId, hasActiveSession_1, transitionDestination_1, error_2;
119
131
  return __generator(this, function (_a) {
120
132
  switch (_a.label) {
121
- case 0: return [4 /*yield*/, nord.accountExists(dynamicWallet.address)];
133
+ case 0:
134
+ _a.trys.push([0, 2, , 3]);
135
+ if (!dynamicWallet || !nord)
136
+ return [2 /*return*/];
137
+ return [4 /*yield*/, nord.accountExists(dynamicWallet.address)];
122
138
  case 1:
123
- hasNordAccount = _a.sent();
124
- sessionId = nordUser.sessionId;
125
- hasActiveSession = sessionId != null;
126
- updateContext({ hasNordAccount: hasNordAccount, hasActiveSession: hasActiveSession });
127
- transitionDestination = hasNordAccount
139
+ hasNordAccount_1 = _a.sent();
140
+ sessionId = currentNordUser.sessionId;
141
+ hasActiveSession_1 = sessionId != null;
142
+ updateContext({ hasNordAccount: hasNordAccount_1, hasActiveSession: hasActiveSession_1 });
143
+ transitionDestination_1 = hasNordAccount_1
128
144
  ? sessionId != null
129
145
  ? FlowState.FINAL_SUCCESS
130
146
  : FlowState.AUTH_LOADING
131
147
  : FlowState.CHAIN_SELECTION;
132
- if (hasNordAccount && sessionId != null) {
148
+ if (hasNordAccount_1 && sessionId != null) {
133
149
  setIsConnected(true);
134
150
  }
135
151
  // Force a small delay to ensure UI updates properly
136
152
  setTimeout(function () {
137
153
  try {
138
- logger.debug('Attempting transition to ' + transitionDestination);
139
- transition(transitionDestination, {
154
+ logger.debug('Attempting transition to ' + transitionDestination_1);
155
+ transition(transitionDestination_1, {
140
156
  walletType: 'solana',
141
- hasNordAccount: hasNordAccount,
142
- hasActiveSession: hasActiveSession,
157
+ hasNordAccount: hasNordAccount_1,
158
+ hasActiveSession: hasActiveSession_1,
143
159
  });
144
- logger.debug('Transition to ' + transitionDestination + ' completed');
145
- // Try again with a longer delay as a fallback
146
- setTimeout(function () {
147
- logger.debug('Trying fallback transition after delay');
148
- transition(transitionDestination, {
149
- walletType: 'solana',
150
- hasNordAccount: hasNordAccount,
151
- hasActiveSession: hasActiveSession,
152
- });
153
- }, 500);
160
+ logger.debug('Transition to ' + transitionDestination_1 + ' completed');
154
161
  }
155
162
  catch (error) {
156
163
  logger.error('Error during transition:', error);
@@ -159,24 +166,38 @@ export var useNordWalletConnect = function (state, transition, context, updateCo
159
166
  setIsConnecting(false);
160
167
  }
161
168
  }, 100);
162
- return [2 /*return*/];
169
+ return [3 /*break*/, 3];
170
+ case 2:
171
+ error_2 = _a.sent();
172
+ logger.error('Error checking account status:', error_2);
173
+ setIsConnecting(false);
174
+ return [3 /*break*/, 3];
175
+ case 3: return [2 /*return*/];
163
176
  }
164
177
  });
165
178
  }); })();
166
179
  }
167
- }, [hasProcessedWallet, nordUser]);
180
+ // Update ref
181
+ prevNordUserRef.current = currentNordUser;
182
+ }, [nordUser, hasProcessedWallet, dynamicWallet, nord, updateContext, transition, setIsConnected]);
168
183
  /**
169
184
  * Effect to handle wallet connection state changes
170
185
  */
171
186
  useEffect(function () {
172
187
  var isNordMode = sessionMode === N1SessionMode.Nord;
188
+ var currentDynamicWallet = dynamicWallet;
189
+ var prevDynamicWallet = prevDynamicWalletRef.current;
173
190
  // If we don't have a wallet, nothing to process
174
- if (!dynamicWallet) {
191
+ if (!currentDynamicWallet) {
192
+ return;
193
+ }
194
+ // If the wallet hasn't changed, don't reprocess
195
+ if (currentDynamicWallet === prevDynamicWallet) {
175
196
  return;
176
197
  }
177
198
  // If we've already processed this specific wallet address, don't process again
178
199
  if (hasProcessedWallet &&
179
- processedWalletAddressRef.current === dynamicWallet.address) {
200
+ processedWalletAddressRef.current === currentDynamicWallet.address) {
180
201
  logger.debug('Skipping wallet processing - already processed this address');
181
202
  return;
182
203
  }
@@ -191,24 +212,22 @@ export var useNordWalletConnect = function (state, transition, context, updateCo
191
212
  return [2 /*return*/];
192
213
  }
193
214
  logger.debug('Processing wallet connection:', {
194
- wallet: (_a = dynamicWallet.connector) === null || _a === void 0 ? void 0 : _a.name,
195
- address: (_b = dynamicWallet.address) === null || _b === void 0 ? void 0 : _b.slice(0, 8),
215
+ wallet: (_a = currentDynamicWallet.connector) === null || _a === void 0 ? void 0 : _a.name,
216
+ address: (_b = currentDynamicWallet.address) === null || _b === void 0 ? void 0 : _b.slice(0, 8),
196
217
  state: state,
197
218
  isNordMode: isNordMode,
198
219
  });
199
220
  // Set processed flag first to prevent re-entry
200
221
  setHasProcessedWallet(true);
201
- processedWalletAddressRef.current = dynamicWallet.address;
222
+ processedWalletAddressRef.current = currentDynamicWallet.address;
202
223
  type = determineWalletType();
203
224
  setWalletType(type);
204
225
  return [2 /*return*/];
205
226
  });
206
227
  }); })();
207
- // Cleanup function to handle component unmount
208
- return function () {
209
- logger.debug('Wallet connection effect cleanup');
210
- };
211
- }, [dynamicWallet, determineWalletType]);
228
+ // Update ref
229
+ prevDynamicWalletRef.current = currentDynamicWallet;
230
+ }, [dynamicWallet, determineWalletType, hasProcessedWallet, sessionMode, state]);
212
231
  // Handle wallet disconnection in a separate effect
213
232
  useEffect(function () {
214
233
  if (!dynamicWallet && hasProcessedWallet) {
@@ -219,17 +238,18 @@ export var useNordWalletConnect = function (state, transition, context, updateCo
219
238
  }, [dynamicWallet, hasProcessedWallet]);
220
239
  // Handle connecting state changes in a separate effect
221
240
  useEffect(function () {
222
- if (state === FlowState.CONNECTING_WALLET &&
223
- !dynamicWallet &&
224
- isConnecting) {
225
- // Only keep isConnecting true if we're in the connecting state and don't have a wallet yet
226
- // This prevents an infinite loop of setting isConnecting
227
- }
228
- else if (state !== FlowState.CONNECTING_WALLET && isConnecting) {
229
- // If we're no longer in the connecting state, reset the connecting flag
230
- setIsConnecting(false);
241
+ var currentState = state;
242
+ var prevState = prevStateRef.current;
243
+ // Only run if state has changed
244
+ if (currentState !== prevState) {
245
+ if (currentState !== FlowState.CONNECTING_WALLET && isConnecting) {
246
+ // If we're no longer in the connecting state, reset the connecting flag
247
+ setIsConnecting(false);
248
+ }
249
+ // Update ref
250
+ prevStateRef.current = currentState;
231
251
  }
232
- }, [state, dynamicWallet, isConnecting]);
252
+ }, [state, isConnecting]);
233
253
  return {
234
254
  isConnecting: isConnecting,
235
255
  walletType: walletType,
@@ -237,3 +257,4 @@ export var useNordWalletConnect = function (state, transition, context, updateCo
237
257
  disconnectWallet: disconnectWallet,
238
258
  };
239
259
  };
260
+ //# sourceMappingURL=useNordWalletConnect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNordWalletConnect.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/hooks/useNordWalletConnect.ts"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useState, useRef } from 'react';\nimport {\n useN1WalletContext,\n useN1WalletInternalContext,\n} from '../../../Provider/hooks';\nimport { N1SessionMode } from '../../../Provider/types';\nimport { logger } from '../../../utils/logger';\nimport { FlowState } from '../types';\n\n/**\n * Hook for handling wallet connection\n *\n * @param options Configuration options\n * @returns Wallet connection methods and state\n */\nexport const useNordWalletConnect = (\n state: FlowState,\n transition: (newState: FlowState, contextUpdates?: Partial<any>) => void,\n context: any,\n updateContext: (updates: Partial<any>) => void,\n sessionMode?: N1SessionMode\n) => {\n const { nord, nordUser } = useN1WalletContext();\n const { showDynamicWidget, dynamicWallet, setIsConnected } =\n useN1WalletInternalContext();\n\n const [isConnecting, setIsConnecting] = useState(false);\n const [walletType, setWalletType] = useState<'solana' | 'ethereum' | null>(\n context.walletType\n );\n const [hasProcessedWallet, setHasProcessedWallet] = useState(false);\n\n // Use refs to track previous values\n const processedWalletAddressRef = useRef<string | null>(null);\n const prevNordUserRef = useRef(nordUser);\n const prevDynamicWalletRef = useRef(dynamicWallet);\n const prevStateRef = useRef(state);\n\n /**\n * Determine wallet type from Dynamic wallet\n */\n const determineWalletType = useCallback((): 'solana' | 'ethereum' | null => {\n if (!dynamicWallet) return null;\n\n // Check wallet connector id to determine if it's ethereum or solana\n const connectorId = dynamicWallet.connector?.name?.toLowerCase() || '';\n if (connectorId.includes('solana') || connectorId.includes('phantom')) {\n return 'solana';\n } else {\n // Default to ethereum for most other wallets\n return 'ethereum';\n }\n }, [dynamicWallet]);\n\n /**\n * Connect wallet using Dynamic widget\n */\n const connectWallet = useCallback(async () => {\n if (isConnecting || !showDynamicWidget) return;\n\n setIsConnecting(true);\n setHasProcessedWallet(false);\n logger.debug('Starting wallet connection process');\n\n try {\n // Show Dynamic widget to connect wallet\n await disconnectWallet()\n await showDynamicWidget(true);\n logger.debug('Dynamic widget shown');\n } catch (error) {\n setIsConnecting(false);\n updateContext({ walletType: null });\n logger.error('Error showing Dynamic widget:', error);\n }\n }, [isConnecting, showDynamicWidget, updateContext]);\n\n /**\n * Disconnect wallet\n */\n const disconnectWallet = useCallback(() => {\n logger.debug('Disconnecting wallet');\n setWalletType(null);\n setHasProcessedWallet(false);\n processedWalletAddressRef.current = null;\n\n updateContext({ walletType: null });\n }, [updateContext]);\n\n // Process nordUser changes\n useEffect(() => {\n const currentNordUser = nordUser;\n const prevNordUser = prevNordUserRef.current;\n \n // Only run if nordUser has changed and we have processed a wallet\n if (hasProcessedWallet && currentNordUser && currentNordUser !== prevNordUser) {\n logger.debug('NordUser changed, checking account status');\n \n (async () => {\n try {\n if (!dynamicWallet || !nord) return;\n \n const hasNordAccount = await nord.accountExists(dynamicWallet.address);\n const sessionId = currentNordUser.sessionId;\n const hasActiveSession = sessionId != null;\n \n updateContext({ hasNordAccount, hasActiveSession });\n \n const transitionDestination = hasNordAccount\n ? sessionId != null\n ? FlowState.FINAL_SUCCESS\n : FlowState.AUTH_LOADING\n : FlowState.CHAIN_SELECTION;\n\n if (hasNordAccount && sessionId != null) {\n setIsConnected(true);\n }\n\n // Force a small delay to ensure UI updates properly\n setTimeout(() => {\n try {\n logger.debug('Attempting transition to ' + transitionDestination);\n transition(transitionDestination, {\n walletType: 'solana',\n hasNordAccount,\n hasActiveSession,\n });\n logger.debug(\n 'Transition to ' + transitionDestination + ' completed'\n );\n } catch (error) {\n logger.error('Error during transition:', error);\n } finally {\n setIsConnecting(false);\n }\n }, 100);\n } catch (error) {\n logger.error('Error checking account status:', error);\n setIsConnecting(false);\n }\n })();\n }\n \n // Update ref\n prevNordUserRef.current = currentNordUser;\n }, [nordUser, hasProcessedWallet, dynamicWallet, nord, updateContext, transition, setIsConnected]);\n\n /**\n * Effect to handle wallet connection state changes\n */\n useEffect(() => {\n const isNordMode = sessionMode === N1SessionMode.Nord;\n const currentDynamicWallet = dynamicWallet;\n const prevDynamicWallet = prevDynamicWalletRef.current;\n\n // If we don't have a wallet, nothing to process\n if (!currentDynamicWallet) {\n return;\n }\n\n // If the wallet hasn't changed, don't reprocess\n if (currentDynamicWallet === prevDynamicWallet) {\n return;\n }\n\n // If we've already processed this specific wallet address, don't process again\n if (\n hasProcessedWallet &&\n processedWalletAddressRef.current === currentDynamicWallet.address\n ) {\n logger.debug(\n 'Skipping wallet processing - already processed this address'\n );\n return;\n }\n\n // Use an IIFE to handle the async processing\n (async () => {\n // Prevent processing if already in progress\n if (hasProcessedWallet) {\n logger.debug('Skipping wallet processing - hasProcessedWallet is true');\n return;\n }\n\n logger.debug('Processing wallet connection:', {\n wallet: currentDynamicWallet.connector?.name,\n address: currentDynamicWallet.address?.slice(0, 8),\n state,\n isNordMode,\n });\n\n // Set processed flag first to prevent re-entry\n setHasProcessedWallet(true);\n processedWalletAddressRef.current = currentDynamicWallet.address;\n\n const type = determineWalletType();\n setWalletType(type);\n })();\n\n // Update ref\n prevDynamicWalletRef.current = currentDynamicWallet;\n }, [dynamicWallet, determineWalletType, hasProcessedWallet, sessionMode, state]);\n\n // Handle wallet disconnection in a separate effect\n useEffect(() => {\n if (!dynamicWallet && hasProcessedWallet) {\n logger.debug('Wallet disconnected, resetting processed flag');\n processedWalletAddressRef.current = null;\n setHasProcessedWallet(false);\n }\n }, [dynamicWallet, hasProcessedWallet]);\n\n // Handle connecting state changes in a separate effect\n useEffect(() => {\n const currentState = state;\n const prevState = prevStateRef.current;\n \n // Only run if state has changed\n if (currentState !== prevState) {\n if (currentState !== FlowState.CONNECTING_WALLET && isConnecting) {\n // If we're no longer in the connecting state, reset the connecting flag\n setIsConnecting(false);\n }\n \n // Update ref\n prevStateRef.current = currentState;\n }\n }, [state, isConnecting]);\n\n return {\n isConnecting,\n walletType,\n connectWallet,\n disconnectWallet,\n };\n};\n"]}
@@ -1 +1,2 @@
1
1
  export { NordFlow } from './NordFlow';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Modal/NordFlow/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC","sourcesContent":["export { NordFlow } from './NordFlow';\n"]}
@@ -15,3 +15,4 @@ export function ConnectWalletScreen(_a) {
15
15
  transform: isHovered === 'wallet' ? 'scale(0.99)' : 'scale(1)',
16
16
  }, children: _jsx("div", { className: "relative z-[200] pl-4 isolate", children: _jsxs("div", { className: "flex items-center", children: [_jsx(IoMdWallet, { className: "w-5 h-5 text-gray-500 dark:text-neutral-400 group-hover:text-gray-900 dark:group-hover:text-white transition-colors duration-300" }), _jsx("span", { className: "\n ml-2 text-base font-medium tracking-wide transition-colors duration-300 ".concat(ANIMATION_EASE, "\n text-gray-500 dark:text-neutral-400 group-hover:text-gray-900 dark:group-hover:text-white\n "), children: "Continue with Wallet" })] }) }) }), _jsx("button", { disabled: true, onMouseEnter: function () { return setIsHovered('google'); }, onMouseLeave: function () { return setIsHovered(null); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-not-allowed border-gray-200 dark:border-gray-800 opacity-50\n "), children: _jsx("div", { className: "relative z-[200] pl-4 isolate", children: _jsx("div", { className: "flex items-center", children: _jsx("span", { className: "text-base font-medium tracking-wide text-gray-500 dark:text-neutral-400", children: "Continue with Google (soon)" }) }) }) }), _jsx("button", { disabled: true, onMouseEnter: function () { return setIsHovered('email'); }, onMouseLeave: function () { return setIsHovered(null); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-not-allowed border-gray-200 dark:border-gray-800 opacity-50\n "), children: _jsx("div", { className: "relative z-[200] pl-4 isolate", children: _jsx("div", { className: "flex items-center", children: _jsx("span", { className: "text-base font-medium tracking-wide text-gray-500 dark:text-neutral-400", children: "Continue with Email (soon)" }) }) }) })] }) }));
17
17
  }
18
+ //# sourceMappingURL=01-ConnectWalletScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"01-ConnectWalletScreen.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/screens/01-ConnectWalletScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAO9C,MAAM,UAAU,mBAAmB,CAAC,EAGT;QAFzB,eAAe,qBAAA,EACf,YAAY,kBAAA;IAEN,IAAA,KAA4B,QAAQ,CAExC,IAAI,CAAC,EAFA,SAAS,QAAA,EAAE,YAAY,QAEvB,CAAC;IAER,oCAAoC;IACpC,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CACL,eAAK,SAAS,EAAC,2DAA2D,aACxE,KAAC,cAAc,KAAG,EAClB,eAAK,SAAS,EAAC,iCAAiC,aAC9C,aAAI,SAAS,EAAC,qDAAqD,kCAE9D,EACL,YAAG,SAAS,EAAC,6CAA6C,qEAEtD,IACA,IACF,CACP,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,OAAO,CACL,cAAK,SAAS,EAAC,8BAA8B,YAC3C,eAAK,SAAS,EAAC,WAAW,aACxB,iBACE,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,QAAQ,CAAC,EAAtB,CAAsB,EAC1C,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACtC,SAAS,EAAE,4KAEqB,cAAc,mIAE7C,EACD,KAAK,EAAE;wBACL,SAAS,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU;qBAC/D,YAED,cAAK,SAAS,EAAC,+BAA+B,YAC5C,eAAK,SAAS,EAAC,mBAAmB,aAChC,KAAC,UAAU,IAAC,SAAS,EAAC,kIAAkI,GAAG,EAC3J,eACE,SAAS,EAAE,oGAC+D,cAAc,gIAEzF,qCAGM,IACH,GACF,GACC,EAET,iBACE,QAAQ,QACR,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,QAAQ,CAAC,EAAtB,CAAsB,EAC1C,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACtC,SAAS,EAAE,4KAEqB,cAAc,iGAE7C,YAED,cAAK,SAAS,EAAC,+BAA+B,YAC5C,cAAK,SAAS,EAAC,mBAAmB,YAChC,eAAM,SAAS,EAAC,yEAAyE,4CAElF,GACH,GACF,GACC,EAET,iBACE,QAAQ,QACR,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,OAAO,CAAC,EAArB,CAAqB,EACzC,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACtC,SAAS,EAAE,4KAEqB,cAAc,iGAE7C,YAED,cAAK,SAAS,EAAC,+BAA+B,YAC5C,cAAK,SAAS,EAAC,mBAAmB,YAChC,eAAM,SAAS,EAAC,yEAAyE,2CAElF,GACH,GACF,GACC,IACL,GACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { useState } from 'react';\nimport { IoMdWallet } from 'react-icons/io';\nimport { LoadingSquares } from '../components/LoadingSquares';\nimport { ANIMATION_EASE } from '../constants';\n\ninterface ConnectWalletScreenProps {\n onConnectWallet: () => void;\n isConnecting: boolean;\n}\n\nexport function ConnectWalletScreen({\n onConnectWallet,\n isConnecting,\n}: ConnectWalletScreenProps) {\n const [isHovered, setIsHovered] = useState<\n 'wallet' | 'google' | 'email' | null\n >(null);\n\n // If connecting, show loading state\n if (isConnecting) {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 space-y-6\">\n <LoadingSquares />\n <div className=\"space-y-2 text-center w-[300px]\">\n <h3 className=\"text-xl text-gray-800 dark:text-white font-semibold\">\n Connecting Wallet\n </h3>\n <p className=\"text-sm text-gray-600 dark:text-neutral-400\">\n Please approve the connection request in your wallet\n </p>\n </div>\n </div>\n );\n }\n\n // If not connecting, show connect options (exactly like NTS flow)\n return (\n <div className=\"p-6 overflow-hidden relative\">\n <div className=\"space-y-4\">\n <button\n onClick={onConnectWallet}\n onMouseEnter={() => setIsHovered('wallet')}\n onMouseLeave={() => setIsHovered(null)}\n className={`\n group relative w-full overflow-hidden rounded-md border-2 bg-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-pointer border-gray-200 dark:border-gray-800 hover:border-gray-400 dark:hover:border-white/60\n `}\n style={{\n transform: isHovered === 'wallet' ? 'scale(0.99)' : 'scale(1)',\n }}\n >\n <div className=\"relative z-[200] pl-4 isolate\">\n <div className=\"flex items-center\">\n <IoMdWallet className=\"w-5 h-5 text-gray-500 dark:text-neutral-400 group-hover:text-gray-900 dark:group-hover:text-white transition-colors duration-300\" />\n <span\n className={`\n ml-2 text-base font-medium tracking-wide transition-colors duration-300 ${ANIMATION_EASE}\n text-gray-500 dark:text-neutral-400 group-hover:text-gray-900 dark:group-hover:text-white\n `}\n >\n Continue with Wallet\n </span>\n </div>\n </div>\n </button>\n\n <button\n disabled\n onMouseEnter={() => setIsHovered('google')}\n onMouseLeave={() => setIsHovered(null)}\n className={`\n group relative w-full overflow-hidden rounded-md border-2 bg-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-not-allowed border-gray-200 dark:border-gray-800 opacity-50\n `}\n >\n <div className=\"relative z-[200] pl-4 isolate\">\n <div className=\"flex items-center\">\n <span className=\"text-base font-medium tracking-wide text-gray-500 dark:text-neutral-400\">\n Continue with Google (soon)\n </span>\n </div>\n </div>\n </button>\n\n <button\n disabled\n onMouseEnter={() => setIsHovered('email')}\n onMouseLeave={() => setIsHovered(null)}\n className={`\n group relative w-full overflow-hidden rounded-md border-2 bg-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-not-allowed border-gray-200 dark:border-gray-800 opacity-50\n `}\n >\n <div className=\"relative z-[200] pl-4 isolate\">\n <div className=\"flex items-center\">\n <span className=\"text-base font-medium tracking-wide text-gray-500 dark:text-neutral-400\">\n Continue with Email (soon)\n </span>\n </div>\n </div>\n </button>\n </div>\n </div>\n );\n}\n"]}
@@ -45,3 +45,4 @@ export function EvmWalletAuthScreen(_a) {
45
45
  }
46
46
  // For backward compatibility
47
47
  export { EvmWalletAuthScreen as EthToSolAuthScreen };
48
+ //# sourceMappingURL=02-EvmWalletAuthScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"02-EvmWalletAuthScreen.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/screens/02-EvmWalletAuthScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react';\nimport { LoadingSquares } from '../components/LoadingSquares';\nimport { ANIMATION_EASE } from '../constants';\n\ninterface EvmWalletAuthScreenProps {\n onAuth: () => void;\n isAuthenticating?: boolean; // Optional for backward compatibility\n}\n\nenum AuthState {\n INITIAL = 'initial',\n WAITING_FOR_SIGNATURE = 'waiting_for_signature',\n SUCCESS = 'success',\n}\n\nexport function EvmWalletAuthScreen({\n onAuth,\n isAuthenticating = false,\n}: EvmWalletAuthScreenProps) {\n const [isHovered, setIsHovered] = useState(false);\n const [authState, setAuthState] = useState<AuthState>(\n isAuthenticating ? AuthState.WAITING_FOR_SIGNATURE : AuthState.INITIAL\n );\n\n // Handle signature request\n const handleSignatureRequest = () => {\n setAuthState(AuthState.WAITING_FOR_SIGNATURE);\n\n // Simulate signature process - in a real implementation,\n // this would be replaced with actual wallet signature logic\n setTimeout(() => {\n setAuthState(AuthState.SUCCESS);\n }, 2000);\n };\n\n // When signature is successful, trigger onAuth after a brief success message\n useEffect(() => {\n if (authState === AuthState.SUCCESS) {\n const timer = setTimeout(() => {\n onAuth();\n }, 1000);\n\n return () => clearTimeout(timer);\n }\n }, [authState, onAuth]);\n\n // Render waiting for signature screen\n if (authState === AuthState.WAITING_FOR_SIGNATURE) {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 space-y-6\">\n <LoadingSquares />\n <div className=\"space-y-2 text-center w-[300px]\">\n <h3 className=\"text-xl text-gray-800 dark:text-white font-semibold\">\n Waiting for Signature\n </h3>\n <p className=\"text-sm text-gray-600 dark:text-neutral-400\">\n Please sign the message in your Ethereum wallet to authenticate with\n Solana\n </p>\n </div>\n </div>\n );\n }\n\n // Render success screen\n if (authState === AuthState.SUCCESS) {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 space-y-6\">\n <div className=\"w-16 h-16 rounded-full bg-green-100 dark:bg-green-900 flex items-center justify-center\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-8 w-8 text-green-600 dark:text-green-400\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M5 13l4 4L19 7\"\n />\n </svg>\n </div>\n <div className=\"space-y-2 text-center w-[300px]\">\n <h3 className=\"text-xl text-gray-800 dark:text-white font-semibold\">\n Signature Verified\n </h3>\n <p className=\"text-sm text-gray-600 dark:text-neutral-400\">\n Your Ethereum wallet has been authenticated successfully\n </p>\n </div>\n </div>\n );\n }\n\n // Render initial screen\n return (\n <div className=\"overflow-hidden relative\">\n <div className=\"space-y-6\">\n <h2 className=\"text-xl text-gray-800 dark:text-white font-semibold mb-2 text-center\">\n EVM Wallet Authentication\n </h2>\n <p className=\"text-sm text-gray-600 dark:text-neutral-400 text-center mb-4\">\n You need to sign a message to authenticate your Ethereum wallet with\n Solana\n </p>\n\n <button\n onClick={handleSignatureRequest}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n className={`\n group relative w-full overflow-hidden rounded-md border-2 bg-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-pointer border-gray-200 dark:border-gray-800 hover:border-gray-400 dark:hover:border-white/60\n `}\n style={{\n transform: isHovered ? 'scale(0.99)' : 'scale(1)',\n }}\n >\n <span\n className={`\n text-base font-medium tracking-wide transition-colors duration-300 ${ANIMATION_EASE}\n text-gray-700 dark:text-gray-300 group-hover:text-gray-900 dark:group-hover:text-white\n `}\n >\n Sign Authentication Message\n </span>\n </button>\n </div>\n </div>\n );\n}\n\n// For backward compatibility\nexport { EvmWalletAuthScreen as EthToSolAuthScreen };\n"]}
@@ -61,3 +61,4 @@ export function ChainSelectionScreen(_a) {
61
61
  ];
62
62
  return (_jsxs("div", { className: "overflow-hidden relative", children: [_jsx("h2", { className: "text-xl text-gray-800 dark:text-white font-semibold mb-6 text-center", children: "Select Origin Network" }), isLoading ? (_jsx("div", { className: "flex justify-center items-center py-8", children: _jsx("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-main" }) })) : (_jsxs("div", { className: "space-y-8", children: [_jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsx(ChainButton, { chain: chainsWithNetworkInfo[0], onClick: function () { return handleChainSelect(chainsWithNetworkInfo[0].id); }, disabled: chainsWithNetworkInfo[0].disabled }, chainsWithNetworkInfo[0].id), _jsx(ChainButton, { chain: chainsWithNetworkInfo[1], onClick: function () { return handleChainSelect(chainsWithNetworkInfo[1].id); }, disabled: chainsWithNetworkInfo[1].disabled }, chainsWithNetworkInfo[1].id)] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsx(EVMChainsButton, { chain: chainsWithNetworkInfo[2], onClick: function () { return handleChainSelect(chainsWithNetworkInfo[2].id); }, disabled: chainsWithNetworkInfo[2].disabled }, chainsWithNetworkInfo[2].id), _jsx(MoreButton, { chain: chainsWithNetworkInfo[3], onClick: function () { return handleChainSelect(chainsWithNetworkInfo[3].id); }, disabled: chainsWithNetworkInfo[3].disabled }, chainsWithNetworkInfo[3].id)] })] }))] }));
63
63
  }
64
+ //# sourceMappingURL=03-ChainSelectionScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"03-ChainSelectionScreen.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/screens/03-ChainSelectionScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState } from 'react';\nimport { SolanaNetwork } from '../../../config/solana';\nimport { ChainButton } from '../components/ChainButton';\nimport { EVMChainsButton } from '../components/EVMChainsButton';\nimport { MoreButton } from '../components/MoreButton';\nimport { Chain } from '../types';\nimport { SolanaLogo } from '../../../components/logos';\nimport Logo from '../../../components/Logo';\nimport { logger } from '../../../utils/logger';\n\ninterface ChainSelectionScreenProps {\n chains: Chain[];\n onChainSelect: (chainId: string) => void;\n}\n\n// Custom N1Logo wrapper that responds to the group hover state\nconst N1Logo = ({ size = 38 }) => (\n <div className=\"text-gray-800 dark:text-white group-hover:text-red-500 dark:group-hover:text-red-500 transition-colors duration-200\">\n <Logo size={size} />\n </div>\n);\n\nexport function ChainSelectionScreen({\n onChainSelect,\n}: ChainSelectionScreenProps) {\n const [isLoading, setIsLoading] = useState(false);\n\n // Only allow devnet, gray out other chains\n const handleChainSelect = (chainId: string) => {\n logger.debug('Chain selected in ChainSelectionScreen:', chainId);\n\n // Only allow devnet to be selected\n if (chainId === 'devnet') {\n setIsLoading(true);\n onChainSelect(chainId);\n } else {\n logger.debug('Chain not allowed:', chainId);\n // Could show a toast or message here\n }\n };\n\n // Define the 4 options as requested\n const chainsWithNetworkInfo = [\n {\n id: 'devnet',\n name: 'Devnet',\n logo: (\n <div\n className=\"flex items-center justify-center\"\n style={{ width: 48, height: 48 }}\n >\n <N1Logo />\n </div>\n ),\n network: SolanaNetwork.DEVNET,\n disabled: false, // Only devnet is clickable\n },\n {\n id: 'solana',\n name: 'Solana',\n logo: (\n <div\n className=\"flex items-center justify-center\"\n style={{ width: 48, height: 48 }}\n >\n <SolanaLogo width={36} height={36} />\n </div>\n ),\n network: SolanaNetwork.MAINNET,\n disabled: true,\n },\n {\n id: 'evm-chains',\n name: 'EVM Chains',\n logo: '', // Not needed as we're using EVMChainsButton\n network: '', // Empty string instead of null\n disabled: true,\n },\n {\n id: 'more',\n name: 'More',\n logo: '', // Not needed as we're using MoreButton\n network: '', // Empty string instead of null\n disabled: true,\n },\n ];\n\n return (\n <div className=\"overflow-hidden relative\">\n <h2 className=\"text-xl text-gray-800 dark:text-white font-semibold mb-6 text-center\">\n Select Origin Network\n </h2>\n\n {isLoading ? (\n <div className=\"flex justify-center items-center py-8\">\n <div className=\"animate-spin rounded-full h-8 w-8 border-b-2 border-main\"></div>\n </div>\n ) : (\n <div className=\"space-y-8\">\n {/* First row: Devnet, Solana */}\n <div className=\"grid grid-cols-2 gap-4\">\n <ChainButton\n key={chainsWithNetworkInfo[0].id}\n chain={chainsWithNetworkInfo[0]}\n onClick={() => handleChainSelect(chainsWithNetworkInfo[0].id)}\n disabled={chainsWithNetworkInfo[0].disabled}\n />\n <ChainButton\n key={chainsWithNetworkInfo[1].id}\n chain={chainsWithNetworkInfo[1]}\n onClick={() => handleChainSelect(chainsWithNetworkInfo[1].id)}\n disabled={chainsWithNetworkInfo[1].disabled}\n />\n </div>\n\n {/* Second row: EVM Chains, More */}\n <div className=\"grid grid-cols-2 gap-4\">\n <EVMChainsButton\n key={chainsWithNetworkInfo[2].id}\n chain={chainsWithNetworkInfo[2]}\n onClick={() => handleChainSelect(chainsWithNetworkInfo[2].id)}\n disabled={chainsWithNetworkInfo[2].disabled}\n />\n <MoreButton\n key={chainsWithNetworkInfo[3].id}\n chain={chainsWithNetworkInfo[3]}\n onClick={() => handleChainSelect(chainsWithNetworkInfo[3].id)}\n disabled={chainsWithNetworkInfo[3].disabled}\n />\n </div>\n </div>\n )}\n </div>\n );\n}\n"]}
@@ -185,3 +185,4 @@ export function AmountInputScreen(_a) {
185
185
  transform: isHovered && isValidAmount ? 'scale(0.99)' : 'scale(1)',
186
186
  }, children: _jsx("span", { className: "\n text-base font-medium tracking-wide transition-colors duration-300 ".concat(ANIMATION_EASE, "\n text-gray-700 dark:text-gray-300 group-hover:text-gray-900 dark:group-hover:text-white\n "), children: "Continue" }) })] })] }));
187
187
  }
188
+ //# sourceMappingURL=04-AmountInputScreen.js.map