@n1xyz/wallet-widget 0.0.4 → 0.0.5

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 (401) hide show
  1. package/README.md +184 -19
  2. package/dist/Logic/sessionManager.d.ts +53 -0
  3. package/dist/Logic/sessionManager.js +178 -0
  4. package/dist/Logic/transactionManager.d.ts +41 -0
  5. package/dist/Logic/transactionManager.js +192 -0
  6. package/dist/Modal/BackButton.js +1 -1
  7. package/dist/Modal/ConnectView.js +1 -1
  8. package/dist/Modal/CreateSessionView.js +1 -1
  9. package/dist/Modal/LoadingFallback.d.ts +2 -0
  10. package/dist/Modal/LoadingFallback.js +2 -0
  11. package/dist/Modal/ModalHeader.js +1 -1
  12. package/dist/Modal/N1WalletModal.js +88 -81
  13. package/dist/Modal/NTSFlow/LoadingFallback.d.ts +2 -0
  14. package/dist/Modal/NTSFlow/LoadingFallback.js +2 -0
  15. package/dist/Modal/NTSFlow/NTSFlow.d.ts +4 -0
  16. package/dist/Modal/NTSFlow/NTSFlow.js +30 -0
  17. package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.d.ts +9 -0
  18. package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.js +145 -0
  19. package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.d.ts +14 -0
  20. package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.js +75 -0
  21. package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.d.ts +7 -0
  22. package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.js +5 -0
  23. package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.d.ts +1 -0
  24. package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.js +5 -0
  25. package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.d.ts +13 -0
  26. package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.js +58 -0
  27. package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.d.ts +6 -0
  28. package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.js +6 -0
  29. package/dist/Modal/NTSFlow/NordFlow/components/index.d.ts +5 -0
  30. package/dist/Modal/NTSFlow/NordFlow/components/index.js +5 -0
  31. package/dist/Modal/NTSFlow/NordFlow/constants.d.ts +37 -0
  32. package/dist/Modal/NTSFlow/NordFlow/constants.js +223 -0
  33. package/dist/Modal/NTSFlow/NordFlow/hooks/index.d.ts +8 -0
  34. package/dist/Modal/NTSFlow/NordFlow/hooks/index.js +8 -0
  35. package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.d.ts +7 -0
  36. package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.js +43 -0
  37. package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.d.ts +38 -0
  38. package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.js +166 -0
  39. package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.d.ts +32 -0
  40. package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.js +163 -0
  41. package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.d.ts +27 -0
  42. package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.js +101 -0
  43. package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.d.ts +32 -0
  44. package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.js +193 -0
  45. package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.d.ts +2 -0
  46. package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.js +69 -0
  47. package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.d.ts +6 -0
  48. package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.js +89 -0
  49. package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.d.ts +30 -0
  50. package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.js +132 -0
  51. package/dist/Modal/NTSFlow/NordFlow/index.d.ts +3 -0
  52. package/dist/Modal/NTSFlow/NordFlow/index.js +3 -0
  53. package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
  54. package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.js +17 -0
  55. package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
  56. package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.js +47 -0
  57. package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
  58. package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.js +7 -0
  59. package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.d.ts +8 -0
  60. package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.js +20 -0
  61. package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.d.ts +7 -0
  62. package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.js +6 -0
  63. package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
  64. package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.js +99 -0
  65. package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.d.ts +7 -0
  66. package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.js +14 -0
  67. package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
  68. package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.js +20 -0
  69. package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
  70. package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.js +18 -0
  71. package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.d.ts +7 -0
  72. package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.js +13 -0
  73. package/dist/Modal/NTSFlow/NordFlow/screens/index.d.ts +10 -0
  74. package/dist/Modal/NTSFlow/NordFlow/screens/index.js +10 -0
  75. package/dist/Modal/NTSFlow/NordFlow/types.d.ts +105 -0
  76. package/dist/Modal/NTSFlow/NordFlow/types.js +34 -0
  77. package/dist/Modal/NTSFlow/NordFlow/utils/persistence.d.ts +24 -0
  78. package/dist/Modal/NTSFlow/NordFlow/utils/persistence.js +83 -0
  79. package/dist/Modal/NTSFlow/components/BackButton.d.ts +3 -0
  80. package/dist/Modal/NTSFlow/components/BackButton.js +26 -0
  81. package/dist/Modal/NTSFlow/components/ModalHeader.d.ts +1 -0
  82. package/dist/Modal/NTSFlow/components/ModalHeader.js +20 -0
  83. package/dist/Modal/NTSFlow/index.d.ts +1 -0
  84. package/dist/Modal/NTSFlow/index.js +1 -0
  85. package/dist/Modal/NTSFlow/views/ConnectView.d.ts +1 -0
  86. package/dist/Modal/NTSFlow/views/ConnectView.js +68 -0
  87. package/dist/Modal/NTSFlow/views/CreateSessionView.d.ts +1 -0
  88. package/dist/Modal/NTSFlow/views/CreateSessionView.js +245 -0
  89. package/dist/Modal/NTSFlow/views/CreateUserView.d.ts +1 -0
  90. package/dist/Modal/NTSFlow/views/CreateUserView.js +105 -0
  91. package/dist/Modal/NTSFlow/views/NoWhitelistView.d.ts +1 -0
  92. package/dist/Modal/NTSFlow/views/NoWhitelistView.js +42 -0
  93. package/dist/Modal/NTSFlow/views/SigningView.d.ts +1 -0
  94. package/dist/Modal/NTSFlow/views/SigningView.js +5 -0
  95. package/dist/Modal/NTSFlow/views/SuccessView.d.ts +1 -0
  96. package/dist/Modal/NTSFlow/views/SuccessView.js +10 -0
  97. package/dist/Modal/NoWhitelistView.js +1 -1
  98. package/dist/Modal/NordFlow/NordFlow.d.ts +9 -0
  99. package/dist/Modal/NordFlow/NordFlow.js +262 -0
  100. package/dist/Modal/NordFlow/NordFlowWrapper.d.ts +11 -0
  101. package/dist/Modal/NordFlow/NordFlowWrapper.js +11 -0
  102. package/dist/Modal/NordFlow/WalletConnectionFlow.d.ts +9 -0
  103. package/dist/Modal/NordFlow/WalletConnectionFlow.js +145 -0
  104. package/dist/Modal/NordFlow/components/AnimatedButton.d.ts +14 -0
  105. package/dist/Modal/NordFlow/components/AnimatedButton.js +75 -0
  106. package/dist/Modal/NordFlow/components/ChainButton.d.ts +8 -0
  107. package/dist/Modal/NordFlow/components/ChainButton.js +21 -0
  108. package/dist/Modal/NordFlow/components/ImageWithFallback.d.ts +17 -0
  109. package/dist/Modal/NordFlow/components/ImageWithFallback.js +32 -0
  110. package/dist/Modal/NordFlow/components/LoadingSquares.d.ts +1 -0
  111. package/dist/Modal/NordFlow/components/LoadingSquares.js +5 -0
  112. package/dist/Modal/NordFlow/components/TransactionTable.d.ts +13 -0
  113. package/dist/Modal/NordFlow/components/TransactionTable.js +83 -0
  114. package/dist/Modal/NordFlow/components/WaitingMessage.d.ts +6 -0
  115. package/dist/Modal/NordFlow/components/WaitingMessage.js +6 -0
  116. package/dist/Modal/NordFlow/components/index.d.ts +5 -0
  117. package/dist/Modal/NordFlow/components/index.js +5 -0
  118. package/dist/Modal/NordFlow/constants.d.ts +37 -0
  119. package/dist/Modal/NordFlow/constants.js +192 -0
  120. package/dist/Modal/NordFlow/hoc/index.d.ts +1 -0
  121. package/dist/Modal/NordFlow/hoc/index.js +1 -0
  122. package/dist/Modal/NordFlow/hoc/withImageFallback.d.ts +7 -0
  123. package/dist/Modal/NordFlow/hoc/withImageFallback.js +60 -0
  124. package/dist/Modal/NordFlow/hooks/index.d.ts +5 -0
  125. package/dist/Modal/NordFlow/hooks/index.js +5 -0
  126. package/dist/Modal/NordFlow/hooks/useButtonTyping.d.ts +7 -0
  127. package/dist/Modal/NordFlow/hooks/useButtonTyping.js +43 -0
  128. package/dist/Modal/NordFlow/hooks/useDepositFlow.d.ts +52 -0
  129. package/dist/Modal/NordFlow/hooks/useDepositFlow.js +365 -0
  130. package/dist/Modal/NordFlow/hooks/useFlowState.d.ts +32 -0
  131. package/dist/Modal/NordFlow/hooks/useFlowState.js +166 -0
  132. package/dist/Modal/NordFlow/hooks/useInterruptHandler.d.ts +24 -0
  133. package/dist/Modal/NordFlow/hooks/useInterruptHandler.js +56 -0
  134. package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +10 -0
  135. package/dist/Modal/NordFlow/hooks/useNordInstance.js +310 -0
  136. package/dist/Modal/NordFlow/hooks/useNordSession.d.ts +32 -0
  137. package/dist/Modal/NordFlow/hooks/useNordSession.js +391 -0
  138. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.d.ts +14 -0
  139. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +231 -0
  140. package/dist/Modal/NordFlow/hooks/useTableValues.d.ts +2 -0
  141. package/dist/Modal/NordFlow/hooks/useTableValues.js +69 -0
  142. package/dist/Modal/NordFlow/hooks/useWaitingMessage.d.ts +6 -0
  143. package/dist/Modal/NordFlow/hooks/useWaitingMessage.js +89 -0
  144. package/dist/Modal/NordFlow/hooks/useWalletConnect.d.ts +14 -0
  145. package/dist/Modal/NordFlow/hooks/useWalletConnect.js +221 -0
  146. package/dist/Modal/NordFlow/index copy.d.ts +1 -0
  147. package/dist/Modal/NordFlow/index copy.js +1 -0
  148. package/dist/Modal/NordFlow/index.d.ts +1 -0
  149. package/dist/Modal/NordFlow/index.js +1 -0
  150. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
  151. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +17 -0
  152. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
  153. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +47 -0
  154. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
  155. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +47 -0
  156. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.d.ts +10 -0
  157. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +165 -0
  158. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.d.ts +6 -0
  159. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +44 -0
  160. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
  161. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +119 -0
  162. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.d.ts +6 -0
  163. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +126 -0
  164. package/dist/Modal/NordFlow/screens/07-NordAuthScreen.d.ts +5 -0
  165. package/dist/Modal/NordFlow/screens/07-NordAuthScreen.js +17 -0
  166. package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
  167. package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.js +153 -0
  168. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.d.ts +5 -0
  169. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +36 -0
  170. package/dist/Modal/NordFlow/screens/09-ErrorScreen.d.ts +7 -0
  171. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +62 -0
  172. package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
  173. package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.js +47 -0
  174. package/dist/Modal/NordFlow/screens/10-ErrorScreen.d.ts +7 -0
  175. package/dist/Modal/NordFlow/screens/10-ErrorScreen.js +62 -0
  176. package/dist/Modal/NordFlow/screens/index.d.ts +9 -0
  177. package/dist/Modal/NordFlow/screens/index.js +9 -0
  178. package/dist/Modal/NordFlow/types.d.ts +108 -0
  179. package/dist/Modal/NordFlow/types.js +32 -0
  180. package/dist/Modal/NordFlow/utils/imageUtils.d.ts +21 -0
  181. package/dist/Modal/NordFlow/utils/imageUtils.js +109 -0
  182. package/dist/Modal/NordFlow/utils/index.d.ts +3 -0
  183. package/dist/Modal/NordFlow/utils/index.js +3 -0
  184. package/dist/Modal/NordFlow/utils/nordUtils.d.ts +40 -0
  185. package/dist/Modal/NordFlow/utils/nordUtils.js +61 -0
  186. package/dist/Modal/NordFlow/utils/persistence.d.ts +24 -0
  187. package/dist/Modal/NordFlow/utils/persistence.js +83 -0
  188. package/dist/Modal/Sidebar/N1Sidebar.js +32 -18
  189. package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.d.ts +1 -0
  190. package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.js +116 -0
  191. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.d.ts +7 -0
  192. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js +86 -0
  193. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.d.ts +6 -0
  194. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +38 -0
  195. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.d.ts +7 -0
  196. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +15 -0
  197. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.d.ts +1 -0
  198. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +54 -0
  199. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.d.ts +5 -0
  200. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +197 -0
  201. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.d.ts +10 -0
  202. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +61 -0
  203. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.d.ts +7 -0
  204. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +28 -0
  205. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.d.ts +11 -0
  206. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +22 -0
  207. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.d.ts +7 -0
  208. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +19 -0
  209. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.d.ts +7 -0
  210. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +23 -0
  211. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.d.ts +7 -0
  212. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +76 -0
  213. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.d.ts +9 -0
  214. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +103 -0
  215. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.d.ts +7 -0
  216. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +29 -0
  217. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.d.ts +9 -0
  218. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +39 -0
  219. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.d.ts +7 -0
  220. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +7 -0
  221. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.d.ts +8 -0
  222. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +249 -0
  223. package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.d.ts +5 -0
  224. package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.js +138 -0
  225. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.d.ts +1 -0
  226. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +108 -0
  227. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.d.ts +1 -0
  228. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +177 -0
  229. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.d.ts +1 -0
  230. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +188 -0
  231. package/dist/NordFlow/WalletConnectionFlow.d.ts +9 -0
  232. package/dist/NordFlow/WalletConnectionFlow.js +145 -0
  233. package/dist/NordFlow/components/AnimatedButton.d.ts +14 -0
  234. package/dist/NordFlow/components/AnimatedButton.js +75 -0
  235. package/dist/NordFlow/components/ChainButton.d.ts +7 -0
  236. package/dist/NordFlow/components/ChainButton.js +5 -0
  237. package/dist/NordFlow/components/LoadingSquares.d.ts +1 -0
  238. package/dist/NordFlow/components/LoadingSquares.js +5 -0
  239. package/dist/NordFlow/components/TransactionTable.d.ts +13 -0
  240. package/dist/NordFlow/components/TransactionTable.js +58 -0
  241. package/dist/NordFlow/components/WaitingMessage.d.ts +6 -0
  242. package/dist/NordFlow/components/WaitingMessage.js +6 -0
  243. package/dist/NordFlow/components/index.d.ts +5 -0
  244. package/dist/NordFlow/components/index.js +5 -0
  245. package/dist/NordFlow/constants.d.ts +37 -0
  246. package/dist/NordFlow/constants.js +223 -0
  247. package/dist/NordFlow/hooks/index.d.ts +8 -0
  248. package/dist/NordFlow/hooks/index.js +8 -0
  249. package/dist/NordFlow/hooks/useButtonTyping.d.ts +7 -0
  250. package/dist/NordFlow/hooks/useButtonTyping.js +43 -0
  251. package/dist/NordFlow/hooks/useDepositFlow.d.ts +38 -0
  252. package/dist/NordFlow/hooks/useDepositFlow.js +166 -0
  253. package/dist/NordFlow/hooks/useFlowState.d.ts +32 -0
  254. package/dist/NordFlow/hooks/useFlowState.js +163 -0
  255. package/dist/NordFlow/hooks/useInterruptHandler.d.ts +27 -0
  256. package/dist/NordFlow/hooks/useInterruptHandler.js +101 -0
  257. package/dist/NordFlow/hooks/useNordSession.d.ts +32 -0
  258. package/dist/NordFlow/hooks/useNordSession.js +193 -0
  259. package/dist/NordFlow/hooks/useTableValues.d.ts +2 -0
  260. package/dist/NordFlow/hooks/useTableValues.js +69 -0
  261. package/dist/NordFlow/hooks/useWaitingMessage.d.ts +6 -0
  262. package/dist/NordFlow/hooks/useWaitingMessage.js +89 -0
  263. package/dist/NordFlow/hooks/useWalletConnect.d.ts +30 -0
  264. package/dist/NordFlow/hooks/useWalletConnect.js +132 -0
  265. package/dist/NordFlow/index.d.ts +3 -0
  266. package/dist/NordFlow/index.js +3 -0
  267. package/dist/NordFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
  268. package/dist/NordFlow/screens/01-ConnectWalletScreen.js +17 -0
  269. package/dist/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
  270. package/dist/NordFlow/screens/02-EvmWalletAuthScreen.js +47 -0
  271. package/dist/NordFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
  272. package/dist/NordFlow/screens/03-ChainSelectionScreen.js +7 -0
  273. package/dist/NordFlow/screens/04-AmountInputScreen.d.ts +8 -0
  274. package/dist/NordFlow/screens/04-AmountInputScreen.js +20 -0
  275. package/dist/NordFlow/screens/05-DepositProgressScreen.d.ts +7 -0
  276. package/dist/NordFlow/screens/05-DepositProgressScreen.js +6 -0
  277. package/dist/NordFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
  278. package/dist/NordFlow/screens/06-DepositSuccessScreen.js +99 -0
  279. package/dist/NordFlow/screens/07-NordAuthScreen.d.ts +7 -0
  280. package/dist/NordFlow/screens/07-NordAuthScreen.js +14 -0
  281. package/dist/NordFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
  282. package/dist/NordFlow/screens/08-AuthLoadingScreen.js +20 -0
  283. package/dist/NordFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
  284. package/dist/NordFlow/screens/09-FinalSuccessScreen.js +18 -0
  285. package/dist/NordFlow/screens/10-ErrorScreen.d.ts +7 -0
  286. package/dist/NordFlow/screens/10-ErrorScreen.js +13 -0
  287. package/dist/NordFlow/screens/index.d.ts +10 -0
  288. package/dist/NordFlow/screens/index.js +10 -0
  289. package/dist/NordFlow/types.d.ts +105 -0
  290. package/dist/NordFlow/types.js +34 -0
  291. package/dist/NordFlow/utils/persistence.d.ts +24 -0
  292. package/dist/NordFlow/utils/persistence.js +83 -0
  293. package/dist/Provider/LazyWalletProvider.js +75 -42
  294. package/dist/Provider/N1WalletProvider.d.ts +1 -1
  295. package/dist/Provider/N1WalletProvider.js +61 -43
  296. package/dist/Provider/types.d.ts +61 -0
  297. package/dist/WalletConnectionFlow/WalletConnectionFlow.d.ts +9 -0
  298. package/dist/WalletConnectionFlow/WalletConnectionFlow.js +145 -0
  299. package/dist/WalletConnectionFlow/components/AnimatedButton.d.ts +14 -0
  300. package/dist/WalletConnectionFlow/components/AnimatedButton.js +75 -0
  301. package/dist/WalletConnectionFlow/components/ChainButton.d.ts +7 -0
  302. package/dist/WalletConnectionFlow/components/ChainButton.js +5 -0
  303. package/dist/WalletConnectionFlow/components/LoadingSquares.d.ts +1 -0
  304. package/dist/WalletConnectionFlow/components/LoadingSquares.js +5 -0
  305. package/dist/WalletConnectionFlow/components/TransactionTable.d.ts +13 -0
  306. package/dist/WalletConnectionFlow/components/TransactionTable.js +58 -0
  307. package/dist/WalletConnectionFlow/components/WaitingMessage.d.ts +6 -0
  308. package/dist/WalletConnectionFlow/components/WaitingMessage.js +6 -0
  309. package/dist/WalletConnectionFlow/components/index.d.ts +5 -0
  310. package/dist/WalletConnectionFlow/components/index.js +5 -0
  311. package/dist/WalletConnectionFlow/constants.d.ts +37 -0
  312. package/dist/WalletConnectionFlow/constants.js +223 -0
  313. package/dist/WalletConnectionFlow/hooks/index.d.ts +8 -0
  314. package/dist/WalletConnectionFlow/hooks/index.js +8 -0
  315. package/dist/WalletConnectionFlow/hooks/useButtonTyping.d.ts +7 -0
  316. package/dist/WalletConnectionFlow/hooks/useButtonTyping.js +43 -0
  317. package/dist/WalletConnectionFlow/hooks/useDepositFlow.d.ts +38 -0
  318. package/dist/WalletConnectionFlow/hooks/useDepositFlow.js +166 -0
  319. package/dist/WalletConnectionFlow/hooks/useFlowState.d.ts +32 -0
  320. package/dist/WalletConnectionFlow/hooks/useFlowState.js +163 -0
  321. package/dist/WalletConnectionFlow/hooks/useInterruptHandler.d.ts +27 -0
  322. package/dist/WalletConnectionFlow/hooks/useInterruptHandler.js +101 -0
  323. package/dist/WalletConnectionFlow/hooks/useNordSession.d.ts +32 -0
  324. package/dist/WalletConnectionFlow/hooks/useNordSession.js +193 -0
  325. package/dist/WalletConnectionFlow/hooks/useTableValues.d.ts +2 -0
  326. package/dist/WalletConnectionFlow/hooks/useTableValues.js +69 -0
  327. package/dist/WalletConnectionFlow/hooks/useWaitingMessage.d.ts +6 -0
  328. package/dist/WalletConnectionFlow/hooks/useWaitingMessage.js +89 -0
  329. package/dist/WalletConnectionFlow/hooks/useWalletConnect.d.ts +30 -0
  330. package/dist/WalletConnectionFlow/hooks/useWalletConnect.js +132 -0
  331. package/dist/WalletConnectionFlow/index.d.ts +3 -0
  332. package/dist/WalletConnectionFlow/index.js +3 -0
  333. package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
  334. package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.js +17 -0
  335. package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
  336. package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.js +47 -0
  337. package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
  338. package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.js +7 -0
  339. package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.d.ts +8 -0
  340. package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.js +20 -0
  341. package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.d.ts +7 -0
  342. package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.js +6 -0
  343. package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
  344. package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.js +99 -0
  345. package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.d.ts +7 -0
  346. package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.js +14 -0
  347. package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
  348. package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.js +20 -0
  349. package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
  350. package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.js +18 -0
  351. package/dist/WalletConnectionFlow/screens/10-ErrorScreen.d.ts +7 -0
  352. package/dist/WalletConnectionFlow/screens/10-ErrorScreen.js +13 -0
  353. package/dist/WalletConnectionFlow/screens/AmountInputScreen.d.ts +8 -0
  354. package/dist/WalletConnectionFlow/screens/AmountInputScreen.js +20 -0
  355. package/dist/WalletConnectionFlow/screens/AppsTableScreen.d.ts +8 -0
  356. package/dist/WalletConnectionFlow/screens/AppsTableScreen.js +28 -0
  357. package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.d.ts +6 -0
  358. package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.js +20 -0
  359. package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.d.ts +7 -0
  360. package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.js +7 -0
  361. package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.d.ts +6 -0
  362. package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.js +17 -0
  363. package/dist/WalletConnectionFlow/screens/DepositProgressScreen.d.ts +7 -0
  364. package/dist/WalletConnectionFlow/screens/DepositProgressScreen.js +6 -0
  365. package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.d.ts +8 -0
  366. package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.js +99 -0
  367. package/dist/WalletConnectionFlow/screens/ErrorScreen.d.ts +7 -0
  368. package/dist/WalletConnectionFlow/screens/ErrorScreen.js +13 -0
  369. package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.d.ts +6 -0
  370. package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.js +47 -0
  371. package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.d.ts +6 -0
  372. package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.js +47 -0
  373. package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.d.ts +5 -0
  374. package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.js +18 -0
  375. package/dist/WalletConnectionFlow/screens/NordAuthScreen.d.ts +7 -0
  376. package/dist/WalletConnectionFlow/screens/NordAuthScreen.js +14 -0
  377. package/dist/WalletConnectionFlow/screens/SigningScreen.d.ts +6 -0
  378. package/dist/WalletConnectionFlow/screens/SigningScreen.js +6 -0
  379. package/dist/WalletConnectionFlow/screens/index.d.ts +10 -0
  380. package/dist/WalletConnectionFlow/screens/index.js +10 -0
  381. package/dist/WalletConnectionFlow/types.d.ts +105 -0
  382. package/dist/WalletConnectionFlow/types.js +34 -0
  383. package/dist/WalletConnectionFlow/utils/persistence.d.ts +24 -0
  384. package/dist/WalletConnectionFlow/utils/persistence.js +83 -0
  385. package/dist/components/WalletDeposit/components/TransactionTable.d.ts +9 -2
  386. package/dist/components/WalletDeposit/components/TransactionTable.js +55 -5
  387. package/dist/components/WalletDeposit/types.d.ts +5 -0
  388. package/dist/config/dynamic.d.ts +20 -0
  389. package/dist/config/dynamic.js +47 -0
  390. package/dist/config/solana.d.ts +25 -0
  391. package/dist/config/solana.js +41 -0
  392. package/dist/errors/types.d.ts +5 -1
  393. package/dist/errors/types.js +12 -0
  394. package/dist/hooks/useSolanaSession.d.ts +17 -0
  395. package/dist/hooks/useSolanaSession.js +180 -0
  396. package/dist/index.d.ts +1 -2
  397. package/dist/index.js +1 -2
  398. package/dist/main.css +1 -1
  399. package/dist/utils/solana-session.d.ts +84 -0
  400. package/dist/utils/solana-session.js +230 -0
  401. package/package.json +14 -11
@@ -0,0 +1,7 @@
1
+ import { Dispatch, SetStateAction } from 'react';
2
+ import { ButtonKey, ButtonStates } from '../types';
3
+ interface ButtonConfig {
4
+ text: string;
5
+ }
6
+ export declare function useButtonTyping(buttonStates: ButtonStates, setButtonStates: Dispatch<SetStateAction<ButtonStates>>, buttonConfigs?: Record<ButtonKey, ButtonConfig>): void;
7
+ export {};
@@ -0,0 +1,43 @@
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 { useEffect } from 'react';
13
+ import { TYPING_INTERVAL } from '../constants';
14
+ var DEFAULT_BUTTON_CONFIGS = {
15
+ deposit: { text: 'Deposit' },
16
+ continue: { text: 'Continue' },
17
+ openApp: { text: 'Launch' },
18
+ };
19
+ export function useButtonTyping(buttonStates, setButtonStates, buttonConfigs) {
20
+ if (buttonConfigs === void 0) { buttonConfigs = DEFAULT_BUTTON_CONFIGS; }
21
+ useEffect(function () {
22
+ Object.entries(buttonStates).forEach(function (_a) {
23
+ var key = _a[0], state = _a[1];
24
+ if (state.isTyping) {
25
+ var config_1 = buttonConfigs[key];
26
+ var index_1 = 0;
27
+ var interval_1 = setInterval(function () {
28
+ if (index_1 <= config_1.text.length) {
29
+ setButtonStates(function (prev) {
30
+ var _a;
31
+ return (__assign(__assign({}, prev), (_a = {}, _a[key] = __assign(__assign({}, prev[key]), { text: config_1.text.slice(0, index_1) }), _a)));
32
+ });
33
+ index_1++;
34
+ }
35
+ else {
36
+ clearInterval(interval_1);
37
+ }
38
+ }, TYPING_INTERVAL);
39
+ return function () { return clearInterval(interval_1); };
40
+ }
41
+ });
42
+ }, [buttonStates, setButtonStates, buttonConfigs]);
43
+ }
@@ -0,0 +1,38 @@
1
+ import { FlowContext, FlowState } from '../types';
2
+ /**
3
+ * Hook for handling the deposit flow
4
+ *
5
+ * @param options Configuration options
6
+ * @returns Deposit flow methods and state
7
+ */
8
+ export declare const useDepositFlow: (options: {
9
+ /**
10
+ * Flow state
11
+ */
12
+ state: FlowState;
13
+ /**
14
+ * Flow context
15
+ */
16
+ context: FlowContext;
17
+ /**
18
+ * Transition to a new state
19
+ */
20
+ transition: (newState: FlowState, contextUpdates?: Partial<FlowContext>) => boolean;
21
+ /**
22
+ * Handle errors
23
+ */
24
+ handleError: (error: Error) => void;
25
+ /**
26
+ * Update context
27
+ */
28
+ updateContext?: (contextUpdates: Partial<FlowContext>) => void;
29
+ }) => {
30
+ selectedChain: string | null;
31
+ amount: string;
32
+ isDepositing: boolean;
33
+ transactionId: string | null;
34
+ selectChain: (chainId: string) => void;
35
+ updateAmount: (newAmount: string) => void;
36
+ startDeposit: () => Promise<void>;
37
+ goBackToChainSelection: () => void;
38
+ };
@@ -0,0 +1,166 @@
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
+ /**
41
+ * Hook for handling the deposit flow
42
+ *
43
+ * @param options Configuration options
44
+ * @returns Deposit flow methods and state
45
+ */
46
+ export var useDepositFlow = function (options) {
47
+ var state = options.state, context = options.context, transition = options.transition, handleError = options.handleError;
48
+ var _a = useState(context.selectedChain), selectedChain = _a[0], setSelectedChain = _a[1];
49
+ var _b = useState(context.amount), amount = _b[0], setAmount = _b[1];
50
+ var _c = useState(false), isDepositing = _c[0], setIsDepositing = _c[1];
51
+ var _d = useState(context.transactionId), transactionId = _d[0], setTransactionId = _d[1];
52
+ /**
53
+ * Select a chain for deposit
54
+ */
55
+ var selectChain = useCallback(function (chainId) {
56
+ var validChain = AVAILABLE_CHAINS.find(function (chain) { return chain.id === chainId; });
57
+ if (!validChain) {
58
+ handleError(new Error("Invalid chain: ".concat(chainId)));
59
+ return;
60
+ }
61
+ setSelectedChain(chainId);
62
+ transition(FlowState.AMOUNT_INPUT, { selectedChain: chainId });
63
+ }, [transition, handleError]);
64
+ /**
65
+ * Update amount for deposit
66
+ */
67
+ var updateAmount = useCallback(function (newAmount) {
68
+ setAmount(newAmount);
69
+ // Only update the context without transitioning to the same state
70
+ // This prevents the "Transition from AMOUNT_INPUT to AMOUNT_INPUT is not allowed" error
71
+ if (state === FlowState.AMOUNT_INPUT) {
72
+ // Use updateContext function if available to update without state transition
73
+ if (options.updateContext) {
74
+ options.updateContext({ amount: newAmount });
75
+ }
76
+ }
77
+ else {
78
+ transition(state, { amount: newAmount });
79
+ }
80
+ }, [state, transition, options.updateContext]);
81
+ /**
82
+ * Start deposit process
83
+ */
84
+ var startDeposit = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
85
+ return __generator(this, function (_a) {
86
+ if (isDepositing)
87
+ return [2 /*return*/];
88
+ // Validate input
89
+ if (!selectedChain) {
90
+ handleError(new Error('No chain selected'));
91
+ return [2 /*return*/];
92
+ }
93
+ if (!amount || parseFloat(amount) <= 0) {
94
+ handleError(new Error('Invalid amount'));
95
+ return [2 /*return*/];
96
+ }
97
+ setIsDepositing(true);
98
+ transition(FlowState.DEPOSIT_PROGRESS);
99
+ try {
100
+ // In the real implementation, this would call the API to initiate the deposit
101
+ // For now, simulate the deposit with a timeout
102
+ setTimeout(function () {
103
+ // Generate a mock transaction ID
104
+ var mockTxId = "tx_".concat(Math.random().toString(36).substr(2, 9));
105
+ setTransactionId(mockTxId);
106
+ // Update context and transition to success
107
+ transition(FlowState.DEPOSIT_SUCCESS, { transactionId: mockTxId });
108
+ setIsDepositing(false);
109
+ }, 3000);
110
+ }
111
+ catch (error) {
112
+ setIsDepositing(false);
113
+ handleError(error instanceof Error ? error : new Error('Failed to process deposit'));
114
+ }
115
+ return [2 /*return*/];
116
+ });
117
+ }); }, [isDepositing, selectedChain, amount, transition, handleError]);
118
+ /**
119
+ * Go back to chain selection
120
+ */
121
+ var goBackToChainSelection = useCallback(function () {
122
+ setAmount('');
123
+ transition(FlowState.CHAIN_SELECTION, { amount: '' });
124
+ }, [transition]);
125
+ /**
126
+ * Update state based on context changes
127
+ */
128
+ useEffect(function () {
129
+ if (context.selectedChain !== selectedChain) {
130
+ setSelectedChain(context.selectedChain);
131
+ }
132
+ if (context.amount !== amount) {
133
+ setAmount(context.amount);
134
+ }
135
+ if (context.transactionId !== transactionId) {
136
+ setTransactionId(context.transactionId);
137
+ }
138
+ }, [
139
+ context.selectedChain,
140
+ context.amount,
141
+ context.transactionId,
142
+ selectedChain,
143
+ amount,
144
+ transactionId,
145
+ ]);
146
+ /**
147
+ * Auto-start deposit if in deposit progress state
148
+ */
149
+ useEffect(function () {
150
+ if (state === FlowState.DEPOSIT_PROGRESS &&
151
+ !isDepositing &&
152
+ !transactionId) {
153
+ startDeposit();
154
+ }
155
+ }, [state, isDepositing, transactionId, startDeposit]);
156
+ return {
157
+ selectedChain: selectedChain,
158
+ amount: amount,
159
+ isDepositing: isDepositing,
160
+ transactionId: transactionId,
161
+ selectChain: selectChain,
162
+ updateAmount: updateAmount,
163
+ startDeposit: startDeposit,
164
+ goBackToChainSelection: goBackToChainSelection,
165
+ };
166
+ };
@@ -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,163 @@
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
+ /**
17
+ * Custom hook for managing the wallet connection flow state machine
18
+ * @param options Configuration options
19
+ * @returns Flow state management methods and properties
20
+ */
21
+ export var useFlowState = function (options) {
22
+ var _a = options.autoRecover, autoRecover = _a === void 0 ? true : _a, onStateChange = options.onStateChange, onError = options.onError;
23
+ // Flow state
24
+ var _b = useState(FlowState.IDLE), state = _b[0], setState = _b[1];
25
+ var _c = useState(null), prevState = _c[0], setPrevState = _c[1];
26
+ var _d = useState(initialFlowContext), context = _d[0], setContext = _d[1];
27
+ var _e = useState(false), isTransitioning = _e[0], setIsTransitioning = _e[1];
28
+ var _f = useState(false), isRecoveryAvailable = _f[0], setIsRecoveryAvailable = _f[1];
29
+ /**
30
+ * Check if a transition is allowed based on current state and context
31
+ */
32
+ var canTransition = useCallback(function (targetState) {
33
+ return STATE_TRANSITIONS.some(function (transition) {
34
+ var fromMatches = Array.isArray(transition.from)
35
+ ? transition.from.includes(state)
36
+ : transition.from === state;
37
+ if (!fromMatches || transition.to !== targetState) {
38
+ return false;
39
+ }
40
+ if (transition.condition) {
41
+ return transition.condition(context);
42
+ }
43
+ return true;
44
+ });
45
+ }, [state, context]);
46
+ /**
47
+ * Transition to a new state if allowed
48
+ */
49
+ var transition = useCallback(function (targetState, contextUpdates) {
50
+ if (contextUpdates === void 0) { contextUpdates = {}; }
51
+ if (!canTransition(targetState)) {
52
+ console.warn("Transition from ".concat(state, " to ").concat(targetState, " is not allowed"));
53
+ return false;
54
+ }
55
+ setIsTransitioning(true);
56
+ // Update context first
57
+ setContext(function (prevContext) {
58
+ var newContext = __assign(__assign({}, prevContext), contextUpdates);
59
+ // Save new state and context to localStorage for recovery
60
+ saveStateToLocalStorage(targetState, newContext);
61
+ return newContext;
62
+ });
63
+ // Then update state
64
+ setPrevState(state);
65
+ setState(targetState);
66
+ if (onStateChange) {
67
+ onStateChange(targetState, state);
68
+ }
69
+ setIsTransitioning(false);
70
+ return true;
71
+ }, [canTransition, state, onStateChange]);
72
+ /**
73
+ * Reset flow to initial state
74
+ */
75
+ var reset = useCallback(function () {
76
+ clearStoredState();
77
+ setContext(initialFlowContext);
78
+ setPrevState(null);
79
+ setState(FlowState.IDLE);
80
+ if (onStateChange) {
81
+ onStateChange(FlowState.IDLE, state);
82
+ }
83
+ }, [state, onStateChange]);
84
+ /**
85
+ * Handle an error by transitioning to error state
86
+ */
87
+ var handleError = useCallback(function (error) {
88
+ if (onError) {
89
+ onError(error);
90
+ }
91
+ transition(FlowState.ERROR, { error: error });
92
+ }, [transition, onError]);
93
+ /**
94
+ * Recover state from localStorage
95
+ */
96
+ var recover = useCallback(function () {
97
+ var savedState = loadStateFromLocalStorage();
98
+ if (!savedState) {
99
+ setIsRecoveryAvailable(false);
100
+ return false;
101
+ }
102
+ setContext(savedState.context);
103
+ setPrevState(state);
104
+ setState(savedState.state);
105
+ if (onStateChange) {
106
+ onStateChange(savedState.state, state);
107
+ }
108
+ return true;
109
+ }, [state, onStateChange]);
110
+ /**
111
+ * Update context without state transition
112
+ */
113
+ var updateContext = useCallback(function (updates) {
114
+ setContext(function (prevContext) {
115
+ var newContext = __assign(__assign({}, prevContext), updates);
116
+ saveStateToLocalStorage(state, newContext);
117
+ return newContext;
118
+ });
119
+ }, [state]);
120
+ /**
121
+ * Record an interruption in the flow (e.g., modal close, page reload)
122
+ */
123
+ var recordInterruption = useCallback(function () {
124
+ updateContext({
125
+ lastInterruption: {
126
+ timestamp: Date.now(),
127
+ state: state,
128
+ context: __assign({}, context),
129
+ },
130
+ });
131
+ }, [state, context, updateContext]);
132
+ // Check for recoverable state on mount
133
+ useEffect(function () {
134
+ var hasRecoverable = loadStateFromLocalStorage() !== null;
135
+ setIsRecoveryAvailable(hasRecoverable);
136
+ if (autoRecover && hasRecoverable) {
137
+ recover();
138
+ }
139
+ }, [autoRecover, recover]);
140
+ // Register unload handler to record interruptions
141
+ useEffect(function () {
142
+ var handleBeforeUnload = function () {
143
+ recordInterruption();
144
+ };
145
+ window.addEventListener('beforeunload', handleBeforeUnload);
146
+ return function () {
147
+ window.removeEventListener('beforeunload', handleBeforeUnload);
148
+ };
149
+ }, [recordInterruption]);
150
+ return {
151
+ state: state,
152
+ prevState: prevState,
153
+ context: context,
154
+ isTransitioning: isTransitioning,
155
+ isRecoveryAvailable: isRecoveryAvailable,
156
+ transition: transition,
157
+ updateContext: updateContext,
158
+ reset: reset,
159
+ recover: recover,
160
+ recordInterruption: recordInterruption,
161
+ handleError: handleError,
162
+ };
163
+ };
@@ -0,0 +1,27 @@
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
+ showConfirmation: boolean;
24
+ handleCloseRequest: () => boolean;
25
+ confirmClose: () => void;
26
+ cancelClose: () => void;
27
+ };
@@ -0,0 +1,101 @@
1
+ import { useCallback, useEffect, useState } from 'react';
2
+ import { FlowState } from '../types';
3
+ /**
4
+ * Critical states that require confirmation before closing
5
+ */
6
+ var CRITICAL_STATES = [
7
+ FlowState.DEPOSIT_PROGRESS,
8
+ FlowState.AUTH_LOADING,
9
+ FlowState.ETH_TO_SOL_AUTH,
10
+ ];
11
+ /**
12
+ * Hook for handling interruptions during the flow
13
+ *
14
+ * @param options Configuration options
15
+ * @returns Interruption handling methods and state
16
+ */
17
+ export var useInterruptHandler = function (options) {
18
+ var state = options.state, recordInterruption = options.recordInterruption, onClose = options.onClose;
19
+ var _a = useState(false), isClosing = _a[0], setIsClosing = _a[1];
20
+ var _b = useState(false), showConfirmation = _b[0], setShowConfirmation = _b[1];
21
+ /**
22
+ * Handle modal close request
23
+ */
24
+ var handleCloseRequest = useCallback(function () {
25
+ // If in a critical state, show confirmation
26
+ if (CRITICAL_STATES.includes(state)) {
27
+ setShowConfirmation(true);
28
+ return false;
29
+ }
30
+ // Otherwise, proceed with closing
31
+ setIsClosing(true);
32
+ recordInterruption();
33
+ // Delay actual close to allow animation
34
+ setTimeout(function () {
35
+ if (onClose) {
36
+ onClose();
37
+ }
38
+ }, 300);
39
+ return true;
40
+ }, [state, recordInterruption, onClose]);
41
+ /**
42
+ * Confirm close
43
+ */
44
+ var confirmClose = useCallback(function () {
45
+ setShowConfirmation(false);
46
+ setIsClosing(true);
47
+ recordInterruption();
48
+ // Delay actual close to allow animation
49
+ setTimeout(function () {
50
+ if (onClose) {
51
+ onClose();
52
+ }
53
+ }, 300);
54
+ }, [recordInterruption, onClose]);
55
+ /**
56
+ * Cancel close
57
+ */
58
+ var cancelClose = useCallback(function () {
59
+ setShowConfirmation(false);
60
+ }, []);
61
+ /**
62
+ * Handle beforeunload event to record interruptions
63
+ */
64
+ useEffect(function () {
65
+ var handleBeforeUnload = function (event) {
66
+ // Record the interruption
67
+ recordInterruption();
68
+ // If in a critical state, show confirmation
69
+ if (CRITICAL_STATES.includes(state)) {
70
+ // Show a confirmation dialog
71
+ event.preventDefault();
72
+ event.returnValue = '';
73
+ return '';
74
+ }
75
+ };
76
+ window.addEventListener('beforeunload', handleBeforeUnload);
77
+ return function () {
78
+ window.removeEventListener('beforeunload', handleBeforeUnload);
79
+ };
80
+ }, [state, recordInterruption]);
81
+ /**
82
+ * Handle focus events to detect when user returns to the page
83
+ */
84
+ useEffect(function () {
85
+ var handleFocus = function () {
86
+ // Here we could potentially check for state changes
87
+ // that happened while the user was away
88
+ };
89
+ window.addEventListener('focus', handleFocus);
90
+ return function () {
91
+ window.removeEventListener('focus', handleFocus);
92
+ };
93
+ }, []);
94
+ return {
95
+ isClosing: isClosing,
96
+ showConfirmation: showConfirmation,
97
+ handleCloseRequest: handleCloseRequest,
98
+ confirmClose: confirmClose,
99
+ cancelClose: cancelClose,
100
+ };
101
+ };
@@ -0,0 +1,32 @@
1
+ import { FlowContext, FlowState } from '../types';
2
+ /**
3
+ * Hook for handling Nord session authentication
4
+ *
5
+ * @param options Configuration options
6
+ * @returns Nord session methods and state
7
+ */
8
+ export declare const useNordSession: (options: {
9
+ /**
10
+ * Flow state
11
+ */
12
+ state: FlowState;
13
+ /**
14
+ * Flow context
15
+ */
16
+ context: FlowContext;
17
+ /**
18
+ * Transition to a new state
19
+ */
20
+ transition: (newState: FlowState, contextUpdates?: Partial<FlowContext>) => boolean;
21
+ /**
22
+ * Handle errors
23
+ */
24
+ handleError: (error: Error) => void;
25
+ }) => {
26
+ isAuthenticating: boolean;
27
+ hasNordAccount: boolean;
28
+ hasActiveSession: boolean;
29
+ checkNordAccount: () => Promise<void>;
30
+ checkActiveSession: () => Promise<void>;
31
+ authenticateSession: () => Promise<void>;
32
+ };