@n1xyz/wallet-widget 0.0.4 → 0.0.7

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 (428) hide show
  1. package/README.md +184 -19
  2. package/dist/Logic/sessionManager.d.ts +53 -0
  3. package/dist/Logic/sessionManager.js +182 -0
  4. package/dist/Logic/transactionManager.d.ts +41 -0
  5. package/dist/Logic/transactionManager.js +196 -0
  6. package/dist/Logic/utils.js +9 -12
  7. package/dist/Modal/BackButton.js +1 -1
  8. package/dist/Modal/ConnectView.js +1 -1
  9. package/dist/Modal/CreateSessionView.js +1 -1
  10. package/dist/Modal/LoadingFallback.d.ts +2 -0
  11. package/dist/Modal/LoadingFallback.js +2 -0
  12. package/dist/Modal/ModalHeader.js +1 -1
  13. package/dist/Modal/N1WalletModal.js +88 -82
  14. package/dist/Modal/NTSFlow/LoadingFallback.d.ts +2 -0
  15. package/dist/Modal/NTSFlow/LoadingFallback.js +2 -0
  16. package/dist/Modal/NTSFlow/NTSFlow.d.ts +4 -0
  17. package/dist/Modal/NTSFlow/NTSFlow.js +34 -0
  18. package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.d.ts +9 -0
  19. package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.js +145 -0
  20. package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.d.ts +14 -0
  21. package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.js +75 -0
  22. package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.d.ts +7 -0
  23. package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.js +5 -0
  24. package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.d.ts +1 -0
  25. package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.js +5 -0
  26. package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.d.ts +13 -0
  27. package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.js +58 -0
  28. package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.d.ts +6 -0
  29. package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.js +6 -0
  30. package/dist/Modal/NTSFlow/NordFlow/components/index.d.ts +5 -0
  31. package/dist/Modal/NTSFlow/NordFlow/components/index.js +5 -0
  32. package/dist/Modal/NTSFlow/NordFlow/constants.d.ts +37 -0
  33. package/dist/Modal/NTSFlow/NordFlow/constants.js +223 -0
  34. package/dist/Modal/NTSFlow/NordFlow/hooks/index.d.ts +8 -0
  35. package/dist/Modal/NTSFlow/NordFlow/hooks/index.js +8 -0
  36. package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.d.ts +7 -0
  37. package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.js +43 -0
  38. package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.d.ts +38 -0
  39. package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.js +166 -0
  40. package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.d.ts +32 -0
  41. package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.js +163 -0
  42. package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.d.ts +27 -0
  43. package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.js +101 -0
  44. package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.d.ts +32 -0
  45. package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.js +193 -0
  46. package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.d.ts +2 -0
  47. package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.js +69 -0
  48. package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.d.ts +6 -0
  49. package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.js +89 -0
  50. package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.d.ts +30 -0
  51. package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.js +132 -0
  52. package/dist/Modal/NTSFlow/NordFlow/index.d.ts +3 -0
  53. package/dist/Modal/NTSFlow/NordFlow/index.js +3 -0
  54. package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
  55. package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.js +17 -0
  56. package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
  57. package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.js +47 -0
  58. package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
  59. package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.js +7 -0
  60. package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.d.ts +8 -0
  61. package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.js +20 -0
  62. package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.d.ts +7 -0
  63. package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.js +6 -0
  64. package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
  65. package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.js +99 -0
  66. package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.d.ts +7 -0
  67. package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.js +14 -0
  68. package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
  69. package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.js +20 -0
  70. package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
  71. package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.js +18 -0
  72. package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.d.ts +7 -0
  73. package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.js +13 -0
  74. package/dist/Modal/NTSFlow/NordFlow/screens/index.d.ts +10 -0
  75. package/dist/Modal/NTSFlow/NordFlow/screens/index.js +10 -0
  76. package/dist/Modal/NTSFlow/NordFlow/types.d.ts +105 -0
  77. package/dist/Modal/NTSFlow/NordFlow/types.js +34 -0
  78. package/dist/Modal/NTSFlow/NordFlow/utils/persistence.d.ts +24 -0
  79. package/dist/Modal/NTSFlow/NordFlow/utils/persistence.js +83 -0
  80. package/dist/Modal/NTSFlow/components/BackButton.d.ts +3 -0
  81. package/dist/Modal/NTSFlow/components/BackButton.js +25 -0
  82. package/dist/Modal/NTSFlow/components/ModalHeader.d.ts +1 -0
  83. package/dist/Modal/NTSFlow/components/ModalHeader.js +20 -0
  84. package/dist/Modal/NTSFlow/index.d.ts +1 -0
  85. package/dist/Modal/NTSFlow/index.js +1 -0
  86. package/dist/Modal/NTSFlow/views/ConnectView.d.ts +1 -0
  87. package/dist/Modal/NTSFlow/views/ConnectView.js +68 -0
  88. package/dist/Modal/NTSFlow/views/CreateSessionView.d.ts +1 -0
  89. package/dist/Modal/NTSFlow/views/CreateSessionView.js +245 -0
  90. package/dist/Modal/NTSFlow/views/CreateUserView.d.ts +1 -0
  91. package/dist/Modal/NTSFlow/views/CreateUserView.js +105 -0
  92. package/dist/Modal/NTSFlow/views/NoWhitelistView.d.ts +1 -0
  93. package/dist/Modal/NTSFlow/views/NoWhitelistView.js +42 -0
  94. package/dist/Modal/NTSFlow/views/SigningView.d.ts +1 -0
  95. package/dist/Modal/NTSFlow/views/SigningView.js +5 -0
  96. package/dist/Modal/NTSFlow/views/SuccessView.d.ts +1 -0
  97. package/dist/Modal/NTSFlow/views/SuccessView.js +10 -0
  98. package/dist/Modal/NoWhitelistView.js +1 -1
  99. package/dist/Modal/NordFlow/NordFlow.d.ts +9 -0
  100. package/dist/Modal/NordFlow/NordFlow.js +267 -0
  101. package/dist/Modal/NordFlow/NordFlowWrapper.d.ts +11 -0
  102. package/dist/Modal/NordFlow/NordFlowWrapper.js +11 -0
  103. package/dist/Modal/NordFlow/WalletConnectionFlow.d.ts +9 -0
  104. package/dist/Modal/NordFlow/WalletConnectionFlow.js +145 -0
  105. package/dist/Modal/NordFlow/components/AnimatedButton.d.ts +14 -0
  106. package/dist/Modal/NordFlow/components/AnimatedButton.js +75 -0
  107. package/dist/Modal/NordFlow/components/ChainButton.d.ts +8 -0
  108. package/dist/Modal/NordFlow/components/ChainButton.js +21 -0
  109. package/dist/Modal/NordFlow/components/EVMChainsButton.d.ts +8 -0
  110. package/dist/Modal/NordFlow/components/EVMChainsButton.js +18 -0
  111. package/dist/Modal/NordFlow/components/ImageWithFallback.d.ts +17 -0
  112. package/dist/Modal/NordFlow/components/ImageWithFallback.js +32 -0
  113. package/dist/Modal/NordFlow/components/LoadingSquares.d.ts +1 -0
  114. package/dist/Modal/NordFlow/components/LoadingSquares.js +5 -0
  115. package/dist/Modal/NordFlow/components/MoreButton.d.ts +8 -0
  116. package/dist/Modal/NordFlow/components/MoreButton.js +18 -0
  117. package/dist/Modal/NordFlow/components/TransactionTable.d.ts +13 -0
  118. package/dist/Modal/NordFlow/components/TransactionTable.js +85 -0
  119. package/dist/Modal/NordFlow/components/WaitingMessage.d.ts +6 -0
  120. package/dist/Modal/NordFlow/components/WaitingMessage.js +6 -0
  121. package/dist/Modal/NordFlow/components/index.d.ts +5 -0
  122. package/dist/Modal/NordFlow/components/index.js +5 -0
  123. package/dist/Modal/NordFlow/constants.d.ts +37 -0
  124. package/dist/Modal/NordFlow/constants.js +192 -0
  125. package/dist/Modal/NordFlow/hoc/index.d.ts +1 -0
  126. package/dist/Modal/NordFlow/hoc/index.js +1 -0
  127. package/dist/Modal/NordFlow/hoc/withImageFallback.d.ts +7 -0
  128. package/dist/Modal/NordFlow/hoc/withImageFallback.js +60 -0
  129. package/dist/Modal/NordFlow/hooks/index.d.ts +5 -0
  130. package/dist/Modal/NordFlow/hooks/index.js +5 -0
  131. package/dist/Modal/NordFlow/hooks/useButtonTyping.d.ts +7 -0
  132. package/dist/Modal/NordFlow/hooks/useButtonTyping.js +43 -0
  133. package/dist/Modal/NordFlow/hooks/useDepositFlow.d.ts +52 -0
  134. package/dist/Modal/NordFlow/hooks/useDepositFlow.js +380 -0
  135. package/dist/Modal/NordFlow/hooks/useFlowState.d.ts +32 -0
  136. package/dist/Modal/NordFlow/hooks/useFlowState.js +167 -0
  137. package/dist/Modal/NordFlow/hooks/useInterruptHandler.d.ts +24 -0
  138. package/dist/Modal/NordFlow/hooks/useInterruptHandler.js +56 -0
  139. package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +10 -0
  140. package/dist/Modal/NordFlow/hooks/useNordInstance.js +319 -0
  141. package/dist/Modal/NordFlow/hooks/useNordSession.d.ts +32 -0
  142. package/dist/Modal/NordFlow/hooks/useNordSession.js +391 -0
  143. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.d.ts +14 -0
  144. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +239 -0
  145. package/dist/Modal/NordFlow/hooks/useTableValues.d.ts +2 -0
  146. package/dist/Modal/NordFlow/hooks/useTableValues.js +69 -0
  147. package/dist/Modal/NordFlow/hooks/useWaitingMessage.d.ts +6 -0
  148. package/dist/Modal/NordFlow/hooks/useWaitingMessage.js +89 -0
  149. package/dist/Modal/NordFlow/hooks/useWalletConnect.d.ts +14 -0
  150. package/dist/Modal/NordFlow/hooks/useWalletConnect.js +221 -0
  151. package/dist/Modal/NordFlow/index copy.d.ts +1 -0
  152. package/dist/Modal/NordFlow/index copy.js +1 -0
  153. package/dist/Modal/NordFlow/index.d.ts +1 -0
  154. package/dist/Modal/NordFlow/index.js +1 -0
  155. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
  156. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +17 -0
  157. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
  158. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +47 -0
  159. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
  160. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +63 -0
  161. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.d.ts +12 -0
  162. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +186 -0
  163. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.d.ts +6 -0
  164. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +45 -0
  165. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
  166. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +121 -0
  167. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.d.ts +6 -0
  168. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +135 -0
  169. package/dist/Modal/NordFlow/screens/07-NordAuthScreen.d.ts +5 -0
  170. package/dist/Modal/NordFlow/screens/07-NordAuthScreen.js +17 -0
  171. package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
  172. package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.js +153 -0
  173. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.d.ts +5 -0
  174. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +36 -0
  175. package/dist/Modal/NordFlow/screens/09-ErrorScreen.d.ts +7 -0
  176. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +67 -0
  177. package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
  178. package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.js +47 -0
  179. package/dist/Modal/NordFlow/screens/10-ErrorScreen.d.ts +7 -0
  180. package/dist/Modal/NordFlow/screens/10-ErrorScreen.js +62 -0
  181. package/dist/Modal/NordFlow/screens/index.d.ts +9 -0
  182. package/dist/Modal/NordFlow/screens/index.js +9 -0
  183. package/dist/Modal/NordFlow/types.d.ts +110 -0
  184. package/dist/Modal/NordFlow/types.js +32 -0
  185. package/dist/Modal/NordFlow/utils/imageUtils.d.ts +21 -0
  186. package/dist/Modal/NordFlow/utils/imageUtils.js +109 -0
  187. package/dist/Modal/NordFlow/utils/index.d.ts +3 -0
  188. package/dist/Modal/NordFlow/utils/index.js +3 -0
  189. package/dist/Modal/NordFlow/utils/nordUtils.d.ts +40 -0
  190. package/dist/Modal/NordFlow/utils/nordUtils.js +63 -0
  191. package/dist/Modal/NordFlow/utils/persistence.d.ts +24 -0
  192. package/dist/Modal/NordFlow/utils/persistence.js +83 -0
  193. package/dist/Modal/Sidebar/N1Sidebar.js +38 -18
  194. package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.d.ts +1 -0
  195. package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.js +116 -0
  196. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.d.ts +7 -0
  197. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js +86 -0
  198. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.d.ts +6 -0
  199. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +42 -0
  200. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.d.ts +7 -0
  201. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +15 -0
  202. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.d.ts +1 -0
  203. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +54 -0
  204. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.d.ts +5 -0
  205. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +208 -0
  206. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.d.ts +10 -0
  207. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +61 -0
  208. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.d.ts +7 -0
  209. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +29 -0
  210. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.d.ts +11 -0
  211. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +21 -0
  212. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.d.ts +7 -0
  213. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +19 -0
  214. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.d.ts +7 -0
  215. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +23 -0
  216. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.d.ts +7 -0
  217. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +79 -0
  218. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.d.ts +9 -0
  219. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +109 -0
  220. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.d.ts +7 -0
  221. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +29 -0
  222. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.d.ts +9 -0
  223. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +39 -0
  224. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.d.ts +7 -0
  225. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +9 -0
  226. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.d.ts +8 -0
  227. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +259 -0
  228. package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.d.ts +5 -0
  229. package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.js +138 -0
  230. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.d.ts +1 -0
  231. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +108 -0
  232. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.d.ts +1 -0
  233. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +182 -0
  234. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.d.ts +1 -0
  235. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +195 -0
  236. package/dist/NordFlow/WalletConnectionFlow.d.ts +9 -0
  237. package/dist/NordFlow/WalletConnectionFlow.js +145 -0
  238. package/dist/NordFlow/components/AnimatedButton.d.ts +14 -0
  239. package/dist/NordFlow/components/AnimatedButton.js +75 -0
  240. package/dist/NordFlow/components/ChainButton.d.ts +7 -0
  241. package/dist/NordFlow/components/ChainButton.js +5 -0
  242. package/dist/NordFlow/components/LoadingSquares.d.ts +1 -0
  243. package/dist/NordFlow/components/LoadingSquares.js +5 -0
  244. package/dist/NordFlow/components/TransactionTable.d.ts +13 -0
  245. package/dist/NordFlow/components/TransactionTable.js +58 -0
  246. package/dist/NordFlow/components/WaitingMessage.d.ts +6 -0
  247. package/dist/NordFlow/components/WaitingMessage.js +6 -0
  248. package/dist/NordFlow/components/index.d.ts +5 -0
  249. package/dist/NordFlow/components/index.js +5 -0
  250. package/dist/NordFlow/constants.d.ts +37 -0
  251. package/dist/NordFlow/constants.js +223 -0
  252. package/dist/NordFlow/hooks/index.d.ts +8 -0
  253. package/dist/NordFlow/hooks/index.js +8 -0
  254. package/dist/NordFlow/hooks/useButtonTyping.d.ts +7 -0
  255. package/dist/NordFlow/hooks/useButtonTyping.js +43 -0
  256. package/dist/NordFlow/hooks/useDepositFlow.d.ts +38 -0
  257. package/dist/NordFlow/hooks/useDepositFlow.js +166 -0
  258. package/dist/NordFlow/hooks/useFlowState.d.ts +32 -0
  259. package/dist/NordFlow/hooks/useFlowState.js +163 -0
  260. package/dist/NordFlow/hooks/useInterruptHandler.d.ts +27 -0
  261. package/dist/NordFlow/hooks/useInterruptHandler.js +101 -0
  262. package/dist/NordFlow/hooks/useNordSession.d.ts +32 -0
  263. package/dist/NordFlow/hooks/useNordSession.js +193 -0
  264. package/dist/NordFlow/hooks/useTableValues.d.ts +2 -0
  265. package/dist/NordFlow/hooks/useTableValues.js +69 -0
  266. package/dist/NordFlow/hooks/useWaitingMessage.d.ts +6 -0
  267. package/dist/NordFlow/hooks/useWaitingMessage.js +89 -0
  268. package/dist/NordFlow/hooks/useWalletConnect.d.ts +30 -0
  269. package/dist/NordFlow/hooks/useWalletConnect.js +132 -0
  270. package/dist/NordFlow/index.d.ts +3 -0
  271. package/dist/NordFlow/index.js +3 -0
  272. package/dist/NordFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
  273. package/dist/NordFlow/screens/01-ConnectWalletScreen.js +17 -0
  274. package/dist/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
  275. package/dist/NordFlow/screens/02-EvmWalletAuthScreen.js +47 -0
  276. package/dist/NordFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
  277. package/dist/NordFlow/screens/03-ChainSelectionScreen.js +7 -0
  278. package/dist/NordFlow/screens/04-AmountInputScreen.d.ts +8 -0
  279. package/dist/NordFlow/screens/04-AmountInputScreen.js +20 -0
  280. package/dist/NordFlow/screens/05-DepositProgressScreen.d.ts +7 -0
  281. package/dist/NordFlow/screens/05-DepositProgressScreen.js +6 -0
  282. package/dist/NordFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
  283. package/dist/NordFlow/screens/06-DepositSuccessScreen.js +99 -0
  284. package/dist/NordFlow/screens/07-NordAuthScreen.d.ts +7 -0
  285. package/dist/NordFlow/screens/07-NordAuthScreen.js +14 -0
  286. package/dist/NordFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
  287. package/dist/NordFlow/screens/08-AuthLoadingScreen.js +20 -0
  288. package/dist/NordFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
  289. package/dist/NordFlow/screens/09-FinalSuccessScreen.js +18 -0
  290. package/dist/NordFlow/screens/10-ErrorScreen.d.ts +7 -0
  291. package/dist/NordFlow/screens/10-ErrorScreen.js +13 -0
  292. package/dist/NordFlow/screens/index.d.ts +10 -0
  293. package/dist/NordFlow/screens/index.js +10 -0
  294. package/dist/NordFlow/types.d.ts +105 -0
  295. package/dist/NordFlow/types.js +34 -0
  296. package/dist/NordFlow/utils/persistence.d.ts +24 -0
  297. package/dist/NordFlow/utils/persistence.js +83 -0
  298. package/dist/Provider/LazyWalletProvider.js +81 -42
  299. package/dist/Provider/N1WalletProvider.d.ts +1 -1
  300. package/dist/Provider/N1WalletProvider.js +65 -46
  301. package/dist/Provider/types.d.ts +61 -0
  302. package/dist/WalletConnectionFlow/WalletConnectionFlow.d.ts +9 -0
  303. package/dist/WalletConnectionFlow/WalletConnectionFlow.js +145 -0
  304. package/dist/WalletConnectionFlow/components/AnimatedButton.d.ts +14 -0
  305. package/dist/WalletConnectionFlow/components/AnimatedButton.js +75 -0
  306. package/dist/WalletConnectionFlow/components/ChainButton.d.ts +7 -0
  307. package/dist/WalletConnectionFlow/components/ChainButton.js +5 -0
  308. package/dist/WalletConnectionFlow/components/LoadingSquares.d.ts +1 -0
  309. package/dist/WalletConnectionFlow/components/LoadingSquares.js +5 -0
  310. package/dist/WalletConnectionFlow/components/TransactionTable.d.ts +13 -0
  311. package/dist/WalletConnectionFlow/components/TransactionTable.js +58 -0
  312. package/dist/WalletConnectionFlow/components/WaitingMessage.d.ts +6 -0
  313. package/dist/WalletConnectionFlow/components/WaitingMessage.js +6 -0
  314. package/dist/WalletConnectionFlow/components/index.d.ts +5 -0
  315. package/dist/WalletConnectionFlow/components/index.js +5 -0
  316. package/dist/WalletConnectionFlow/constants.d.ts +37 -0
  317. package/dist/WalletConnectionFlow/constants.js +223 -0
  318. package/dist/WalletConnectionFlow/hooks/index.d.ts +8 -0
  319. package/dist/WalletConnectionFlow/hooks/index.js +8 -0
  320. package/dist/WalletConnectionFlow/hooks/useButtonTyping.d.ts +7 -0
  321. package/dist/WalletConnectionFlow/hooks/useButtonTyping.js +43 -0
  322. package/dist/WalletConnectionFlow/hooks/useDepositFlow.d.ts +38 -0
  323. package/dist/WalletConnectionFlow/hooks/useDepositFlow.js +166 -0
  324. package/dist/WalletConnectionFlow/hooks/useFlowState.d.ts +32 -0
  325. package/dist/WalletConnectionFlow/hooks/useFlowState.js +163 -0
  326. package/dist/WalletConnectionFlow/hooks/useInterruptHandler.d.ts +27 -0
  327. package/dist/WalletConnectionFlow/hooks/useInterruptHandler.js +101 -0
  328. package/dist/WalletConnectionFlow/hooks/useNordSession.d.ts +32 -0
  329. package/dist/WalletConnectionFlow/hooks/useNordSession.js +193 -0
  330. package/dist/WalletConnectionFlow/hooks/useTableValues.d.ts +2 -0
  331. package/dist/WalletConnectionFlow/hooks/useTableValues.js +69 -0
  332. package/dist/WalletConnectionFlow/hooks/useWaitingMessage.d.ts +6 -0
  333. package/dist/WalletConnectionFlow/hooks/useWaitingMessage.js +89 -0
  334. package/dist/WalletConnectionFlow/hooks/useWalletConnect.d.ts +30 -0
  335. package/dist/WalletConnectionFlow/hooks/useWalletConnect.js +132 -0
  336. package/dist/WalletConnectionFlow/index.d.ts +3 -0
  337. package/dist/WalletConnectionFlow/index.js +3 -0
  338. package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
  339. package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.js +17 -0
  340. package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
  341. package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.js +47 -0
  342. package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
  343. package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.js +7 -0
  344. package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.d.ts +8 -0
  345. package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.js +20 -0
  346. package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.d.ts +7 -0
  347. package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.js +6 -0
  348. package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
  349. package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.js +99 -0
  350. package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.d.ts +7 -0
  351. package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.js +14 -0
  352. package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
  353. package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.js +20 -0
  354. package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
  355. package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.js +18 -0
  356. package/dist/WalletConnectionFlow/screens/10-ErrorScreen.d.ts +7 -0
  357. package/dist/WalletConnectionFlow/screens/10-ErrorScreen.js +13 -0
  358. package/dist/WalletConnectionFlow/screens/AmountInputScreen.d.ts +8 -0
  359. package/dist/WalletConnectionFlow/screens/AmountInputScreen.js +20 -0
  360. package/dist/WalletConnectionFlow/screens/AppsTableScreen.d.ts +8 -0
  361. package/dist/WalletConnectionFlow/screens/AppsTableScreen.js +28 -0
  362. package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.d.ts +6 -0
  363. package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.js +20 -0
  364. package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.d.ts +7 -0
  365. package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.js +7 -0
  366. package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.d.ts +6 -0
  367. package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.js +17 -0
  368. package/dist/WalletConnectionFlow/screens/DepositProgressScreen.d.ts +7 -0
  369. package/dist/WalletConnectionFlow/screens/DepositProgressScreen.js +6 -0
  370. package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.d.ts +8 -0
  371. package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.js +99 -0
  372. package/dist/WalletConnectionFlow/screens/ErrorScreen.d.ts +7 -0
  373. package/dist/WalletConnectionFlow/screens/ErrorScreen.js +13 -0
  374. package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.d.ts +6 -0
  375. package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.js +47 -0
  376. package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.d.ts +6 -0
  377. package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.js +47 -0
  378. package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.d.ts +5 -0
  379. package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.js +18 -0
  380. package/dist/WalletConnectionFlow/screens/NordAuthScreen.d.ts +7 -0
  381. package/dist/WalletConnectionFlow/screens/NordAuthScreen.js +14 -0
  382. package/dist/WalletConnectionFlow/screens/SigningScreen.d.ts +6 -0
  383. package/dist/WalletConnectionFlow/screens/SigningScreen.js +6 -0
  384. package/dist/WalletConnectionFlow/screens/index.d.ts +10 -0
  385. package/dist/WalletConnectionFlow/screens/index.js +10 -0
  386. package/dist/WalletConnectionFlow/types.d.ts +105 -0
  387. package/dist/WalletConnectionFlow/types.js +34 -0
  388. package/dist/WalletConnectionFlow/utils/persistence.d.ts +24 -0
  389. package/dist/WalletConnectionFlow/utils/persistence.js +83 -0
  390. package/dist/components/WalletDeposit/components/TransactionTable.d.ts +9 -2
  391. package/dist/components/WalletDeposit/components/TransactionTable.js +55 -5
  392. package/dist/components/WalletDeposit/types.d.ts +5 -0
  393. package/dist/components/logos/ArbitrumLogo.d.ts +8 -0
  394. package/dist/components/logos/ArbitrumLogo.js +5 -0
  395. package/dist/components/logos/BaseLogo.d.ts +8 -0
  396. package/dist/components/logos/BaseLogo.js +5 -0
  397. package/dist/components/logos/BeraLogo.d.ts +8 -0
  398. package/dist/components/logos/BeraLogo.js +5 -0
  399. package/dist/components/logos/BitcoinLogo.d.ts +8 -0
  400. package/dist/components/logos/BitcoinLogo.js +5 -0
  401. package/dist/components/logos/EVMChainsGroup.d.ts +7 -0
  402. package/dist/components/logos/EVMChainsGroup.js +18 -0
  403. package/dist/components/logos/EthereumLogo.d.ts +8 -0
  404. package/dist/components/logos/EthereumLogo.js +5 -0
  405. package/dist/components/logos/HyperliquidLogo.d.ts +8 -0
  406. package/dist/components/logos/HyperliquidLogo.js +5 -0
  407. package/dist/components/logos/MoreChainsGroup.d.ts +7 -0
  408. package/dist/components/logos/MoreChainsGroup.js +18 -0
  409. package/dist/components/logos/OptimismLogo.d.ts +8 -0
  410. package/dist/components/logos/OptimismLogo.js +5 -0
  411. package/dist/components/logos/SolanaLogo.d.ts +8 -0
  412. package/dist/components/logos/SolanaLogo.js +5 -0
  413. package/dist/components/logos/index.d.ts +10 -0
  414. package/dist/components/logos/index.js +10 -0
  415. package/dist/config/dynamic.d.ts +20 -0
  416. package/dist/config/dynamic.js +47 -0
  417. package/dist/config/solana.d.ts +25 -0
  418. package/dist/config/solana.js +41 -0
  419. package/dist/errors/types.d.ts +5 -1
  420. package/dist/errors/types.js +12 -0
  421. package/dist/hooks/useSolanaSession.d.ts +17 -0
  422. package/dist/hooks/useSolanaSession.js +180 -0
  423. package/dist/index.d.ts +1 -2
  424. package/dist/index.js +1 -2
  425. package/dist/main.css +1 -1
  426. package/dist/utils/solana-session.d.ts +84 -0
  427. package/dist/utils/solana-session.js +230 -0
  428. package/package.json +14 -11
@@ -0,0 +1,380 @@
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 { useCallback, useEffect, useState } from 'react';
38
+ import { FlowState } from '../types';
39
+ import { AVAILABLE_CHAINS } from '../constants';
40
+ import { getExplorerUrl, } from '../../../Logic/transactionManager';
41
+ import { useN1WalletContext, useN1WalletInternalContext, } from '../../../Provider/hooks';
42
+ import { N1SessionMode } from '../../../Provider/types';
43
+ import { isNordConfigured } from '../utils/nordUtils';
44
+ import { useNordInstance } from './useNordInstance';
45
+ import { logger } from '../../../utils/logger';
46
+ /**
47
+ * Hook for handling the deposit flow
48
+ *
49
+ * @param options Configuration options
50
+ * @returns Deposit flow methods and state
51
+ */
52
+ export var useDepositFlow = function (options) {
53
+ var _a = useState(null), txId = _a[0], setTxId = _a[1];
54
+ var state = options.state, context = options.context, transition = options.transition, handleError = options.handleError;
55
+ var _b = useN1WalletContext(), address = _b.address, nord = _b.nord, signMessageWithWalletKey = _b.signMessageWithWalletKey, signMessageWithSessionKey = _b.signMessageWithSessionKey, nordUser = _b.nordUser;
56
+ var sessionMode = useN1WalletInternalContext().sessionMode;
57
+ var instanceNordUser = useNordInstance().nordUser;
58
+ var _c = useState(context.selectedChain), selectedChain = _c[0], setSelectedChain = _c[1];
59
+ var _d = useState(context.amount), amount = _d[0], setAmount = _d[1];
60
+ var _e = useState(false), isDepositing = _e[0], setIsDepositing = _e[1];
61
+ var _f = useState(context.transactionId), transactionId = _f[0], setTransactionId = _f[1];
62
+ var _g = useState(null), transactionResult = _g[0], setTransactionResult = _g[1];
63
+ // Use the nordUser from context, falling back to the one from useNordInstance
64
+ var currentNordUser = nordUser || instanceNordUser;
65
+ useEffect(function () {
66
+ if (txId) {
67
+ // Transition to the appropriate screen based on whether user has an active session
68
+ if (context.hasActiveSession) {
69
+ // If user has an active session, go directly to FINAL_SUCCESS
70
+ transition(FlowState.FINAL_SUCCESS, { transactionId: txId });
71
+ }
72
+ else {
73
+ // Check if there's a sessionId stored in localStorage
74
+ var sessionIdKey = "n1_sessionId_".concat(address);
75
+ var storedSessionId = localStorage.getItem(sessionIdKey);
76
+ if (storedSessionId !== null) {
77
+ // If we have a sessionId in localStorage (even if it's 0), go directly to FINAL_SUCCESS
78
+ transition(FlowState.FINAL_SUCCESS, { transactionId: txId });
79
+ }
80
+ else {
81
+ // If user doesn't have an active session and no sessionId in localStorage, go to DEPOSIT_SUCCESS first
82
+ transition(FlowState.DEPOSIT_SUCCESS, { transactionId: txId });
83
+ }
84
+ }
85
+ setTxId(null);
86
+ }
87
+ }, [txId, transition, context.hasActiveSession, address]);
88
+ /**
89
+ * Select a chain for deposit
90
+ */
91
+ var selectChain = useCallback(function (chainId) {
92
+ var validChain = AVAILABLE_CHAINS.find(function (chain) { return chain.id === chainId; });
93
+ if (!validChain) {
94
+ handleError(new Error("Invalid chain: ".concat(chainId)));
95
+ return;
96
+ }
97
+ setSelectedChain(chainId);
98
+ transition(FlowState.AMOUNT_INPUT, { selectedChain: chainId });
99
+ }, [transition, handleError]);
100
+ /**
101
+ * Update amount for deposit
102
+ */
103
+ var updateAmount = useCallback(function (newAmount) {
104
+ setAmount(newAmount);
105
+ // Only update the context without transitioning to the same state
106
+ // This prevents the "Transition from AMOUNT_INPUT to AMOUNT_INPUT is not allowed" error
107
+ if (state === FlowState.AMOUNT_INPUT) {
108
+ // Use updateContext function if available to update without state transition
109
+ if (options.updateContext) {
110
+ options.updateContext({ amount: newAmount });
111
+ }
112
+ }
113
+ else {
114
+ transition(state, { amount: newAmount });
115
+ }
116
+ }, [state, transition, options.updateContext]);
117
+ /**
118
+ * Start deposit process
119
+ */
120
+ var startDeposit = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
121
+ var currentSessionMode, txId_1, usdcToken, accountInitialized, i, exists, result, depositError_1, error_1, error_2;
122
+ var _a;
123
+ return __generator(this, function (_b) {
124
+ switch (_b.label) {
125
+ case 0:
126
+ if (isDepositing)
127
+ return [2 /*return*/];
128
+ logger.debug('tah dah!');
129
+ // Validate input
130
+ if (!selectedChain) {
131
+ handleError(new Error('No chain selected'));
132
+ return [2 /*return*/];
133
+ }
134
+ if (!amount || parseFloat(amount) <= 0) {
135
+ handleError(new Error('Invalid amount'));
136
+ return [2 /*return*/];
137
+ }
138
+ if (!address) {
139
+ handleError(new Error('No wallet address found'));
140
+ return [2 /*return*/];
141
+ }
142
+ setIsDepositing(true);
143
+ transition(FlowState.DEPOSIT_PROGRESS);
144
+ _b.label = 1;
145
+ case 1:
146
+ _b.trys.push([1, 18, , 19]);
147
+ currentSessionMode = sessionMode !== null && sessionMode !== void 0 ? sessionMode : N1SessionMode.NTS;
148
+ txId_1 = '';
149
+ if (!(currentNordUser && nord && isNordConfigured(nord))) return [3 /*break*/, 16];
150
+ _b.label = 2;
151
+ case 2:
152
+ _b.trys.push([2, 14, , 15]);
153
+ usdcToken = nord.tokens.find(function (t) { return t.symbol === 'USDC'; });
154
+ if (!usdcToken) {
155
+ throw new Error('USDC token not found');
156
+ }
157
+ _b.label = 3;
158
+ case 3:
159
+ _b.trys.push([3, 12, , 13]);
160
+ if (!(typeof currentNordUser.depositSpl === 'function')) return [3 /*break*/, 10];
161
+ return [4 /*yield*/, currentNordUser.depositSpl(parseFloat(amount), usdcToken.tokenId)];
162
+ case 4:
163
+ txId_1 = _b.sent();
164
+ accountInitialized = false;
165
+ i = 0;
166
+ _b.label = 5;
167
+ case 5:
168
+ if (!(i < 70)) return [3 /*break*/, 9];
169
+ return [4 /*yield*/, (nord === null || nord === void 0 ? void 0 : nord.accountExists(address))];
170
+ case 6:
171
+ exists = _b.sent();
172
+ if (exists) {
173
+ accountInitialized = true;
174
+ return [3 /*break*/, 9];
175
+ }
176
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 5000); })];
177
+ case 7:
178
+ _b.sent();
179
+ _b.label = 8;
180
+ case 8:
181
+ i++;
182
+ return [3 /*break*/, 5];
183
+ case 9:
184
+ if (!accountInitialized) {
185
+ throw new Error('Account failed to intialize on N1.');
186
+ }
187
+ logger.debug('Deposit successful using Nord-TS', txId_1);
188
+ // Make sure we have a valid chain ID
189
+ if (selectedChain) {
190
+ result = {
191
+ success: true,
192
+ transactionId: txId_1,
193
+ amount: amount,
194
+ tokenSymbol: 'USDC', // Default to USDC for now
195
+ fromAddress: address || 'Your Wallet',
196
+ toAddress: currentSessionMode === N1SessionMode.Nord
197
+ ? 'Exchange Account'
198
+ : 'NTS Account',
199
+ networkName: ((_a = AVAILABLE_CHAINS.find(function (chain) { return chain.id === selectedChain; })) === null || _a === void 0 ? void 0 : _a.name) || selectedChain,
200
+ status: 'Completed',
201
+ explorerUrl: getExplorerUrl(txId_1, selectedChain),
202
+ };
203
+ // Update state with transaction result
204
+ setTransactionId(txId_1);
205
+ setTransactionResult(result);
206
+ logger.debug('yayayyay');
207
+ setTxId(txId_1);
208
+ return [2 /*return*/]; // Exit the function early since we've handled everything
209
+ }
210
+ else {
211
+ throw new Error('No chain selected for deposit');
212
+ }
213
+ return [3 /*break*/, 11];
214
+ case 10:
215
+ // If depositSpl doesn't exist, throw an error to fall back to mock implementation
216
+ throw new Error('depositSpl method not available');
217
+ case 11: return [3 /*break*/, 13];
218
+ case 12:
219
+ depositError_1 = _b.sent();
220
+ logger.warn('Error using depositSpl, falling back to mock implementation:', depositError_1);
221
+ setIsDepositing(false);
222
+ return [3 /*break*/, 13];
223
+ case 13: return [3 /*break*/, 15];
224
+ case 14:
225
+ error_1 = _b.sent();
226
+ logger.error('Error using Nord-TS for deposit:', error_1);
227
+ throw error_1;
228
+ case 15: return [3 /*break*/, 17];
229
+ case 16:
230
+ logger.debug('Nord configuration issue:', {
231
+ hasNord: !!nord,
232
+ isConfigured: nord ? isNordConfigured(nord) : false,
233
+ hasAddress: !!address,
234
+ hasWalletSignFn: !!signMessageWithWalletKey,
235
+ hasSessionSignFn: !!signMessageWithSessionKey,
236
+ });
237
+ throw new Error('Nord is not configured or user is not initialized');
238
+ case 17: return [3 /*break*/, 19];
239
+ case 18:
240
+ error_2 = _b.sent();
241
+ setIsDepositing(false);
242
+ handleError(error_2 instanceof Error ? error_2 : new Error('Failed to process deposit'));
243
+ return [3 /*break*/, 19];
244
+ case 19: return [2 /*return*/];
245
+ }
246
+ });
247
+ }); }, [
248
+ isDepositing,
249
+ selectedChain,
250
+ amount,
251
+ address,
252
+ sessionMode,
253
+ transition,
254
+ handleError,
255
+ nord,
256
+ signMessageWithWalletKey,
257
+ signMessageWithSessionKey,
258
+ currentNordUser,
259
+ ]);
260
+ /**
261
+ * Complete the deposit process and move to the next screen
262
+ */
263
+ var completeDeposit = useCallback(function () {
264
+ // Check if user has an active session to determine the next state
265
+ if (context.hasActiveSession) {
266
+ // If user has an active session, go directly to FINAL_SUCCESS
267
+ transition(FlowState.FINAL_SUCCESS);
268
+ }
269
+ else {
270
+ // Check if there's a sessionId stored in localStorage
271
+ var sessionIdKey = "n1_sessionId_".concat(address);
272
+ var storedSessionId = localStorage.getItem(sessionIdKey);
273
+ if (storedSessionId !== null) {
274
+ // If we have a sessionId in localStorage (even if it's 0), go directly to FINAL_SUCCESS
275
+ transition(FlowState.FINAL_SUCCESS);
276
+ }
277
+ else {
278
+ // If user doesn't have an active session and no sessionId in localStorage, go to NORD_AUTH
279
+ transition(FlowState.AUTH_LOADING);
280
+ }
281
+ }
282
+ }, [context.hasActiveSession, transition, address]);
283
+ /**
284
+ * Go back to chain selection
285
+ */
286
+ var goBackToChainSelection = useCallback(function () {
287
+ setAmount('');
288
+ transition(FlowState.CHAIN_SELECTION, { amount: '' });
289
+ }, [transition]);
290
+ /**
291
+ * Update state based on context changes
292
+ */
293
+ useEffect(function () {
294
+ if (context.selectedChain !== selectedChain) {
295
+ setSelectedChain(context.selectedChain);
296
+ }
297
+ if (context.amount !== amount) {
298
+ setAmount(context.amount);
299
+ }
300
+ if (context.transactionId !== transactionId) {
301
+ setTransactionId(context.transactionId);
302
+ }
303
+ }, [
304
+ context.selectedChain,
305
+ context.amount,
306
+ context.transactionId,
307
+ selectedChain,
308
+ amount,
309
+ transactionId,
310
+ ]);
311
+ /**
312
+ * Auto-start deposit if in deposit progress state
313
+ */
314
+ useEffect(function () {
315
+ if (state === FlowState.DEPOSIT_PROGRESS &&
316
+ !isDepositing &&
317
+ !transactionId) {
318
+ startDeposit();
319
+ }
320
+ }, [state, isDepositing, transactionId, startDeposit]);
321
+ /**
322
+ * Get transaction details for display
323
+ */
324
+ var getTransactionDetails = useCallback(function () {
325
+ var _a;
326
+ // Ensure we have a valid session mode
327
+ var currentSessionMode = sessionMode !== null && sessionMode !== void 0 ? sessionMode : N1SessionMode.NTS;
328
+ // Determine account type based on session mode
329
+ var accountType = currentSessionMode === N1SessionMode.Nord
330
+ ? 'Exchange Account'
331
+ : 'NTS Account';
332
+ if (!transactionResult) {
333
+ // If we don't have a transaction result yet, return default values
334
+ return {
335
+ amount: amount || '0',
336
+ tx: transactionId || 'Processing...',
337
+ from: address || 'Your Wallet',
338
+ to: accountType,
339
+ network: selectedChain
340
+ ? ((_a = AVAILABLE_CHAINS.find(function (chain) { return chain.id === selectedChain; })) === null || _a === void 0 ? void 0 : _a.name) || selectedChain
341
+ : 'Unknown',
342
+ status: 'Processing',
343
+ explorerUrl: '',
344
+ };
345
+ }
346
+ // Return actual transaction details
347
+ return {
348
+ amount: "".concat(transactionResult.amount, " ").concat(transactionResult.tokenSymbol),
349
+ tx: transactionResult.transactionId,
350
+ from: transactionResult.fromAddress,
351
+ to: transactionResult.toAddress,
352
+ network: transactionResult.networkName,
353
+ status: transactionResult.status,
354
+ explorerUrl: transactionResult.explorerUrl ||
355
+ getExplorerUrl(transactionResult.transactionId, selectedChain || ''),
356
+ };
357
+ }, [
358
+ transactionResult,
359
+ amount,
360
+ transactionId,
361
+ address,
362
+ sessionMode,
363
+ selectedChain,
364
+ ]);
365
+ return {
366
+ selectedChain: selectedChain,
367
+ setSelectedChain: setSelectedChain,
368
+ amount: amount,
369
+ setAmount: setAmount,
370
+ isDepositing: isDepositing,
371
+ transactionId: transactionId,
372
+ transactionResult: transactionResult,
373
+ selectChain: selectChain,
374
+ updateAmount: updateAmount,
375
+ startDeposit: startDeposit,
376
+ completeDeposit: completeDeposit,
377
+ goBackToChainSelection: goBackToChainSelection,
378
+ getTransactionDetails: getTransactionDetails,
379
+ };
380
+ };
@@ -0,0 +1,32 @@
1
+ import { FlowContext, FlowState } from '../types';
2
+ /**
3
+ * Custom hook for managing the wallet connection flow state machine
4
+ * @param options Configuration options
5
+ * @returns Flow state management methods and properties
6
+ */
7
+ export declare const useFlowState: (options: {
8
+ /**
9
+ * Whether to automatically recover saved state on initialization
10
+ */
11
+ autoRecover?: boolean;
12
+ /**
13
+ * Callback when state changes
14
+ */
15
+ onStateChange?: (newState: FlowState, prevState: FlowState | null) => void;
16
+ /**
17
+ * Callback when an error occurs
18
+ */
19
+ onError?: (error: Error) => void;
20
+ }) => {
21
+ state: FlowState;
22
+ prevState: FlowState | null;
23
+ context: FlowContext;
24
+ isTransitioning: boolean;
25
+ isRecoveryAvailable: boolean;
26
+ transition: (targetState: FlowState, contextUpdates?: Partial<FlowContext>) => boolean;
27
+ updateContext: (updates: Partial<FlowContext>) => void;
28
+ reset: () => void;
29
+ recover: () => boolean;
30
+ recordInterruption: () => void;
31
+ handleError: (error: Error) => void;
32
+ };
@@ -0,0 +1,167 @@
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 { useCallback, useEffect, useState } from 'react';
13
+ import { FlowState, initialFlowContext } from '../types';
14
+ import { STATE_TRANSITIONS } from '../constants';
15
+ import { clearStoredState, loadStateFromLocalStorage, saveStateToLocalStorage, } from '../utils/persistence';
16
+ import { logger } from '../../../utils/logger';
17
+ /**
18
+ * Custom hook for managing the wallet connection flow state machine
19
+ * @param options Configuration options
20
+ * @returns Flow state management methods and properties
21
+ */
22
+ export var useFlowState = function (options) {
23
+ var _a = options.autoRecover, autoRecover = _a === void 0 ? true : _a, onStateChange = options.onStateChange, onError = options.onError;
24
+ // Flow state
25
+ var _b = useState(FlowState.IDLE), state = _b[0], setState = _b[1];
26
+ var _c = useState(null), prevState = _c[0], setPrevState = _c[1];
27
+ var _d = useState(initialFlowContext), context = _d[0], setContext = _d[1];
28
+ var _e = useState(false), isTransitioning = _e[0], setIsTransitioning = _e[1];
29
+ var _f = useState(false), isRecoveryAvailable = _f[0], setIsRecoveryAvailable = _f[1];
30
+ /**
31
+ * Check if a transition is allowed based on current state and context
32
+ */
33
+ var canTransition = useCallback(function (targetState, context) {
34
+ return STATE_TRANSITIONS.some(function (transition) {
35
+ var fromMatches = Array.isArray(transition.from)
36
+ ? transition.from.includes(state)
37
+ : transition.from === state;
38
+ if (!fromMatches || transition.to !== targetState) {
39
+ return false;
40
+ }
41
+ if (transition.condition) {
42
+ return transition.condition(context);
43
+ }
44
+ return true;
45
+ });
46
+ }, [state, context]);
47
+ /**
48
+ * Transition to a new state if allowed
49
+ */
50
+ var transition = useCallback(function (targetState, contextUpdates) {
51
+ if (contextUpdates === void 0) { contextUpdates = {}; }
52
+ if (!canTransition(targetState, __assign(__assign({}, context), contextUpdates))) {
53
+ logger.warn("Transition from ".concat(state, " to ").concat(targetState, " is not allowed"));
54
+ return false;
55
+ }
56
+ setIsTransitioning(true);
57
+ // Update context first
58
+ setContext(function (prevContext) {
59
+ var newContext = __assign(__assign({}, prevContext), contextUpdates);
60
+ // Save new state and context to localStorage for recovery
61
+ saveStateToLocalStorage(targetState, newContext);
62
+ return newContext;
63
+ });
64
+ // Then update state
65
+ setPrevState(state);
66
+ logger.debug(targetState, 'targetState');
67
+ setState(targetState);
68
+ if (onStateChange) {
69
+ onStateChange(targetState, state);
70
+ }
71
+ setIsTransitioning(false);
72
+ return true;
73
+ }, [canTransition, state, onStateChange]);
74
+ /**
75
+ * Reset flow to initial state
76
+ */
77
+ var reset = useCallback(function () {
78
+ clearStoredState();
79
+ setContext(initialFlowContext);
80
+ setPrevState(null);
81
+ logger.debug('resetting');
82
+ setState(FlowState.IDLE);
83
+ if (onStateChange) {
84
+ onStateChange(FlowState.IDLE, state);
85
+ }
86
+ }, [state, onStateChange]);
87
+ /**
88
+ * Handle an error by transitioning to error state
89
+ */
90
+ var handleError = useCallback(function (error) {
91
+ if (onError) {
92
+ onError(error);
93
+ }
94
+ transition(FlowState.ERROR, { error: error });
95
+ }, [transition, onError]);
96
+ /**
97
+ * Recover state from localStorage
98
+ */
99
+ var recover = useCallback(function () {
100
+ var savedState = loadStateFromLocalStorage();
101
+ if (!savedState) {
102
+ setIsRecoveryAvailable(false);
103
+ return false;
104
+ }
105
+ setContext(savedState.context);
106
+ setPrevState(state);
107
+ logger.debug(savedState.state, 'savedState.state');
108
+ setState(savedState.state);
109
+ if (onStateChange) {
110
+ onStateChange(savedState.state, state);
111
+ }
112
+ return true;
113
+ }, [state, onStateChange]);
114
+ /**
115
+ * Update context without state transition
116
+ */
117
+ var updateContext = useCallback(function (updates) {
118
+ setContext(function (prevContext) {
119
+ var newContext = __assign(__assign({}, prevContext), updates);
120
+ saveStateToLocalStorage(state, newContext);
121
+ return newContext;
122
+ });
123
+ }, [state]);
124
+ /**
125
+ * Record an interruption in the flow (e.g., modal close, page reload)
126
+ */
127
+ var recordInterruption = useCallback(function () {
128
+ updateContext({
129
+ lastInterruption: {
130
+ timestamp: Date.now(),
131
+ state: state,
132
+ context: __assign({}, context),
133
+ },
134
+ });
135
+ }, [state, context, updateContext]);
136
+ // Check for recoverable state on mount
137
+ useEffect(function () {
138
+ var hasRecoverable = loadStateFromLocalStorage() !== null;
139
+ setIsRecoveryAvailable(hasRecoverable);
140
+ if (autoRecover && hasRecoverable) {
141
+ recover();
142
+ }
143
+ }, [autoRecover, recover]);
144
+ // Register unload handler to record interruptions
145
+ useEffect(function () {
146
+ var handleBeforeUnload = function () {
147
+ recordInterruption();
148
+ };
149
+ window.addEventListener('beforeunload', handleBeforeUnload);
150
+ return function () {
151
+ window.removeEventListener('beforeunload', handleBeforeUnload);
152
+ };
153
+ }, [recordInterruption]);
154
+ return {
155
+ state: state,
156
+ prevState: prevState,
157
+ context: context,
158
+ isTransitioning: isTransitioning,
159
+ isRecoveryAvailable: isRecoveryAvailable,
160
+ transition: transition,
161
+ updateContext: updateContext,
162
+ reset: reset,
163
+ recover: recover,
164
+ recordInterruption: recordInterruption,
165
+ handleError: handleError,
166
+ };
167
+ };
@@ -0,0 +1,24 @@
1
+ import { FlowState } from '../types';
2
+ /**
3
+ * Hook for handling interruptions during the flow
4
+ *
5
+ * @param options Configuration options
6
+ * @returns Interruption handling methods and state
7
+ */
8
+ export declare const useInterruptHandler: (options: {
9
+ /**
10
+ * Flow state
11
+ */
12
+ state: FlowState;
13
+ /**
14
+ * Record an interruption
15
+ */
16
+ recordInterruption: () => void;
17
+ /**
18
+ * Callback to handle modal close
19
+ */
20
+ onClose?: () => void;
21
+ }) => {
22
+ isClosing: boolean;
23
+ handleCloseRequest: () => true;
24
+ };
@@ -0,0 +1,56 @@
1
+ import { useCallback, useEffect, useState } from 'react';
2
+ /**
3
+ * Hook for handling interruptions during the flow
4
+ *
5
+ * @param options Configuration options
6
+ * @returns Interruption handling methods and state
7
+ */
8
+ export var useInterruptHandler = function (options) {
9
+ var state = options.state, recordInterruption = options.recordInterruption, onClose = options.onClose;
10
+ var _a = useState(false), isClosing = _a[0], setIsClosing = _a[1];
11
+ /**
12
+ * Handle modal close request
13
+ */
14
+ var handleCloseRequest = useCallback(function () {
15
+ // Always proceed with closing
16
+ setIsClosing(true);
17
+ recordInterruption();
18
+ // Delay actual close to allow animation
19
+ setTimeout(function () {
20
+ if (onClose) {
21
+ onClose();
22
+ }
23
+ }, 300);
24
+ return true;
25
+ }, [recordInterruption, onClose]);
26
+ /**
27
+ * Handle beforeunload event to record interruptions
28
+ */
29
+ useEffect(function () {
30
+ var handleBeforeUnload = function (event) {
31
+ // Record the interruption
32
+ recordInterruption();
33
+ };
34
+ window.addEventListener('beforeunload', handleBeforeUnload);
35
+ return function () {
36
+ window.removeEventListener('beforeunload', handleBeforeUnload);
37
+ };
38
+ }, [recordInterruption]);
39
+ /**
40
+ * Handle focus events to detect when user returns to the page
41
+ */
42
+ useEffect(function () {
43
+ var handleFocus = function () {
44
+ // Here we could potentially check for state changes
45
+ // that happened while the user was away
46
+ };
47
+ window.addEventListener('focus', handleFocus);
48
+ return function () {
49
+ window.removeEventListener('focus', handleFocus);
50
+ };
51
+ }, []);
52
+ return {
53
+ isClosing: isClosing,
54
+ handleCloseRequest: handleCloseRequest,
55
+ };
56
+ };
@@ -0,0 +1,10 @@
1
+ import { NordUser } from '@n1xyz/nord-ts';
2
+ /**
3
+ * Hook to access the Nord instance and create a NordUser if needed
4
+ */
5
+ export declare const useNordInstance: () => {
6
+ nord: import("@n1xyz/nord-ts").Nord | undefined;
7
+ createNordUser: () => Promise<NordUser | null>;
8
+ nordUser: any;
9
+ createTransactionSignFunction: () => (transaction: any) => Promise<any>;
10
+ };