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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/README.md +117 -208
  2. package/dist/components/LoadingFallback.js.map +1 -0
  3. package/dist/{WidgetButton → components}/N1ConnectButton.js +3 -3
  4. package/dist/components/N1ConnectButton.js.map +1 -0
  5. package/dist/components/logos/ZeroOneLogo.d.ts +8 -0
  6. package/dist/components/logos/ZeroOneLogo.js +6 -0
  7. package/dist/components/logos/ZeroOneLogo.js.map +1 -0
  8. package/dist/components/logos/index.d.ts +1 -0
  9. package/dist/components/logos/index.js +1 -0
  10. package/dist/components/logos/index.js.map +1 -1
  11. package/dist/config/chains.js +2 -0
  12. package/dist/config/chains.js.map +1 -0
  13. package/dist/config/solana.js +1 -1
  14. package/dist/config/solana.js.map +1 -1
  15. package/dist/{Provider/context.d.ts → context/n1-wallet-context.d.ts} +2 -2
  16. package/dist/{Provider/context.js → context/n1-wallet-context.js} +1 -1
  17. package/dist/context/n1-wallet-context.js.map +1 -0
  18. package/dist/{Modal → features/onboarding-flow}/N1WalletModal.d.ts +1 -1
  19. package/dist/{Modal → features/onboarding-flow}/N1WalletModal.js +18 -15
  20. package/dist/features/onboarding-flow/N1WalletModal.js.map +1 -0
  21. package/dist/features/onboarding-flow/OnboardingFlow.d.ts +9 -0
  22. package/dist/features/onboarding-flow/OnboardingFlow.js +98 -0
  23. package/dist/features/onboarding-flow/OnboardingFlow.js.map +1 -0
  24. package/dist/{Modal/NordFlow → features/onboarding-flow}/components/ChainButton.d.ts +1 -2
  25. package/dist/features/onboarding-flow/components/ChainButton.js +21 -0
  26. package/dist/features/onboarding-flow/components/ChainButton.js.map +1 -0
  27. package/dist/{Modal/NordFlow → features/onboarding-flow}/components/Header.js +1 -1
  28. package/dist/features/onboarding-flow/components/Header.js.map +1 -0
  29. package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +1 -0
  30. package/dist/{Modal/NordFlow → features/onboarding-flow}/components/TransactionTable.js +1 -1
  31. package/dist/features/onboarding-flow/components/TransactionTable.js.map +1 -0
  32. package/dist/features/onboarding-flow/components/WaitingMessage.js +17 -0
  33. package/dist/features/onboarding-flow/components/WaitingMessage.js.map +1 -0
  34. package/dist/features/onboarding-flow/components/index.js.map +1 -0
  35. package/dist/features/onboarding-flow/index.d.ts +1 -0
  36. package/dist/features/onboarding-flow/index.js +2 -0
  37. package/dist/features/onboarding-flow/index.js.map +1 -0
  38. package/dist/{Modal/NordFlow/context/DepositContext.d.ts → features/onboarding-flow/providers/DepositFlowProvider.d.ts} +9 -7
  39. package/dist/{Modal/NordFlow/context/DepositContext.js → features/onboarding-flow/providers/DepositFlowProvider.js} +228 -78
  40. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -0
  41. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.d.ts +48 -0
  42. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +185 -0
  43. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -0
  44. package/dist/features/onboarding-flow/providers/StateProvider.d.ts +10 -0
  45. package/dist/features/onboarding-flow/providers/StateProvider.js +14 -0
  46. package/dist/features/onboarding-flow/providers/StateProvider.js.map +1 -0
  47. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.d.ts +21 -0
  48. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +394 -0
  49. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -0
  50. package/dist/features/onboarding-flow/providers/debug.d.ts +6 -0
  51. package/dist/features/onboarding-flow/providers/debug.js +63 -0
  52. package/dist/features/onboarding-flow/providers/debug.js.map +1 -0
  53. package/dist/features/onboarding-flow/providers/index.d.ts +5 -0
  54. package/dist/features/onboarding-flow/providers/index.js +8 -0
  55. package/dist/features/onboarding-flow/providers/index.js.map +1 -0
  56. package/dist/features/onboarding-flow/providers/onboardingStateMachine.d.ts +48 -0
  57. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js +83 -0
  58. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -0
  59. package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/01-ConnectWalletScreen.js +2 -2
  60. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -0
  61. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.d.ts +31 -0
  62. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js +100 -0
  63. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +1 -0
  64. package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/03-AmountInputScreen.d.ts +2 -0
  65. package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/03-AmountInputScreen.js +123 -61
  66. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +1 -0
  67. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.d.ts +3 -0
  68. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +31 -0
  69. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +1 -0
  70. package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/05-DepositSuccessScreen.js +31 -26
  71. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +1 -0
  72. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js +31 -0
  73. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +1 -0
  74. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +14 -0
  75. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +1 -0
  76. package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/index.d.ts +1 -0
  77. package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/index.js +1 -0
  78. package/dist/features/onboarding-flow/screens/index.js.map +1 -0
  79. package/dist/{Modal/NordFlow → features/onboarding-flow}/types.d.ts +13 -16
  80. package/dist/features/onboarding-flow/types.js +34 -0
  81. package/dist/features/onboarding-flow/types.js.map +1 -0
  82. package/dist/features/onboarding-flow/utils/depositStorage.js.map +1 -0
  83. package/dist/features/onboarding-flow/utils/imageUtils.js.map +1 -0
  84. package/dist/{utils/dynamicNord.d.ts → features/onboarding-flow/utils/nordUser.d.ts} +0 -1
  85. package/dist/{utils/dynamicNord.js → features/onboarding-flow/utils/nordUser.js} +2 -13
  86. package/dist/features/onboarding-flow/utils/nordUser.js.map +1 -0
  87. package/dist/features/onboarding-flow/utils/nordUtils.js.map +1 -0
  88. package/dist/{Logic/sessionManager.d.ts → features/onboarding-flow/utils/session.d.ts} +2 -2
  89. package/dist/{Logic/sessionManager.js → features/onboarding-flow/utils/session.js} +36 -5
  90. package/dist/features/onboarding-flow/utils/session.js.map +1 -0
  91. package/dist/{Logic/transactionManager.js → features/onboarding-flow/utils/transaction.js} +1 -1
  92. package/dist/features/onboarding-flow/utils/transaction.js.map +1 -0
  93. package/dist/{Logic → features/onboarding-flow/utils}/utils.d.ts +1 -1
  94. package/dist/{Logic → features/onboarding-flow/utils}/utils.js +1 -1
  95. package/dist/features/onboarding-flow/utils/utils.js.map +1 -0
  96. package/dist/features/onboarding-flow/utils/withImageFallback.js.map +1 -0
  97. package/dist/hooks/index.d.ts +2 -0
  98. package/dist/hooks/index.js +3 -0
  99. package/dist/hooks/index.js.map +1 -0
  100. package/dist/hooks/useN1Wallet.d.ts +2 -0
  101. package/dist/{Provider/hooks.js → hooks/useN1Wallet.js} +2 -2
  102. package/dist/hooks/useN1Wallet.js.map +1 -0
  103. package/dist/{Provider/hooks → hooks}/useNordUserInitialization.js +7 -7
  104. package/dist/hooks/useNordUserInitialization.js.map +1 -0
  105. package/dist/index.d.ts +4 -4
  106. package/dist/index.js +4 -4
  107. package/dist/index.js.map +1 -1
  108. package/dist/{Provider → providers}/LazyWalletProvider.js +34 -8
  109. package/dist/providers/LazyWalletProvider.js.map +1 -0
  110. package/dist/providers/N1WalletProvider.d.ts +3 -0
  111. package/dist/{Provider → providers}/N1WalletProvider.js +51 -22
  112. package/dist/providers/N1WalletProvider.js.map +1 -0
  113. package/dist/providers/ShadowRootWrapper.js.map +1 -0
  114. package/dist/providers/WalletErrorBoundary.js.map +1 -0
  115. package/dist/styles/embedded-main-css.d.ts +2 -0
  116. package/dist/styles/embedded-main-css.js +3 -0
  117. package/dist/styles/embedded-main-css.js.map +1 -0
  118. package/dist/styles/main.css +2 -0
  119. package/dist/{Provider/types.d.ts → types/wallet.d.ts} +7 -8
  120. package/dist/{Provider/types.js → types/wallet.js} +1 -1
  121. package/dist/types/wallet.js.map +1 -0
  122. package/dist/{Logic → utils}/getPseudoName.js.map +1 -1
  123. package/dist/{Logic → utils}/words.js.map +1 -1
  124. package/package.json +25 -21
  125. package/dist/Logic/sessionManager.js.map +0 -1
  126. package/dist/Logic/transactionManager.js.map +0 -1
  127. package/dist/Logic/utils.js.map +0 -1
  128. package/dist/Modal/LoadingFallback.js.map +0 -1
  129. package/dist/Modal/N1WalletModal.js.map +0 -1
  130. package/dist/Modal/NTSFlow/LoadingFallback.d.ts +0 -2
  131. package/dist/Modal/NTSFlow/LoadingFallback.js +0 -3
  132. package/dist/Modal/NTSFlow/LoadingFallback.js.map +0 -1
  133. package/dist/Modal/NTSFlow/NTSFlow.d.ts +0 -4
  134. package/dist/Modal/NTSFlow/NTSFlow.js +0 -35
  135. package/dist/Modal/NTSFlow/NTSFlow.js.map +0 -1
  136. package/dist/Modal/NTSFlow/components/BackButton.d.ts +0 -3
  137. package/dist/Modal/NTSFlow/components/BackButton.js +0 -26
  138. package/dist/Modal/NTSFlow/components/BackButton.js.map +0 -1
  139. package/dist/Modal/NTSFlow/components/ModalHeader.d.ts +0 -1
  140. package/dist/Modal/NTSFlow/components/ModalHeader.js +0 -21
  141. package/dist/Modal/NTSFlow/components/ModalHeader.js.map +0 -1
  142. package/dist/Modal/NTSFlow/index.d.ts +0 -1
  143. package/dist/Modal/NTSFlow/index.js +0 -2
  144. package/dist/Modal/NTSFlow/index.js.map +0 -1
  145. package/dist/Modal/NTSFlow/views/ConnectView.d.ts +0 -1
  146. package/dist/Modal/NTSFlow/views/ConnectView.js +0 -68
  147. package/dist/Modal/NTSFlow/views/ConnectView.js.map +0 -1
  148. package/dist/Modal/NTSFlow/views/CreateSessionView.d.ts +0 -1
  149. package/dist/Modal/NTSFlow/views/CreateSessionView.js +0 -246
  150. package/dist/Modal/NTSFlow/views/CreateSessionView.js.map +0 -1
  151. package/dist/Modal/NTSFlow/views/CreateUserView.d.ts +0 -1
  152. package/dist/Modal/NTSFlow/views/CreateUserView.js +0 -106
  153. package/dist/Modal/NTSFlow/views/CreateUserView.js.map +0 -1
  154. package/dist/Modal/NTSFlow/views/NoWhitelistView.d.ts +0 -1
  155. package/dist/Modal/NTSFlow/views/NoWhitelistView.js +0 -43
  156. package/dist/Modal/NTSFlow/views/NoWhitelistView.js.map +0 -1
  157. package/dist/Modal/NTSFlow/views/SigningView.d.ts +0 -1
  158. package/dist/Modal/NTSFlow/views/SigningView.js +0 -6
  159. package/dist/Modal/NTSFlow/views/SigningView.js.map +0 -1
  160. package/dist/Modal/NTSFlow/views/SuccessView.d.ts +0 -1
  161. package/dist/Modal/NTSFlow/views/SuccessView.js +0 -11
  162. package/dist/Modal/NTSFlow/views/SuccessView.js.map +0 -1
  163. package/dist/Modal/NordFlow/NordFlow.d.ts +0 -9
  164. package/dist/Modal/NordFlow/NordFlow.js +0 -84
  165. package/dist/Modal/NordFlow/NordFlow.js.map +0 -1
  166. package/dist/Modal/NordFlow/components/ChainButton.js +0 -25
  167. package/dist/Modal/NordFlow/components/ChainButton.js.map +0 -1
  168. package/dist/Modal/NordFlow/components/EVMChainsButton.d.ts +0 -9
  169. package/dist/Modal/NordFlow/components/EVMChainsButton.js +0 -21
  170. package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +0 -1
  171. package/dist/Modal/NordFlow/components/Header.js.map +0 -1
  172. package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +0 -1
  173. package/dist/Modal/NordFlow/components/LoadingSquares.d.ts +0 -1
  174. package/dist/Modal/NordFlow/components/LoadingSquares.js +0 -6
  175. package/dist/Modal/NordFlow/components/LoadingSquares.js.map +0 -1
  176. package/dist/Modal/NordFlow/components/MoreButton.d.ts +0 -8
  177. package/dist/Modal/NordFlow/components/MoreButton.js +0 -19
  178. package/dist/Modal/NordFlow/components/MoreButton.js.map +0 -1
  179. package/dist/Modal/NordFlow/components/TransactionTable.js.map +0 -1
  180. package/dist/Modal/NordFlow/components/WaitingMessage.js +0 -18
  181. package/dist/Modal/NordFlow/components/WaitingMessage.js.map +0 -1
  182. package/dist/Modal/NordFlow/components/index.js.map +0 -1
  183. package/dist/Modal/NordFlow/constants.d.ts +0 -37
  184. package/dist/Modal/NordFlow/constants.js +0 -183
  185. package/dist/Modal/NordFlow/constants.js.map +0 -1
  186. package/dist/Modal/NordFlow/context/DepositContext.js.map +0 -1
  187. package/dist/Modal/NordFlow/context/FlowContext.d.ts +0 -24
  188. package/dist/Modal/NordFlow/context/FlowContext.js +0 -218
  189. package/dist/Modal/NordFlow/context/FlowContext.js.map +0 -1
  190. package/dist/Modal/NordFlow/context/NordProvider.d.ts +0 -10
  191. package/dist/Modal/NordFlow/context/NordProvider.js +0 -14
  192. package/dist/Modal/NordFlow/context/NordProvider.js.map +0 -1
  193. package/dist/Modal/NordFlow/context/WalletConnectContext.d.ts +0 -20
  194. package/dist/Modal/NordFlow/context/WalletConnectContext.js +0 -269
  195. package/dist/Modal/NordFlow/context/WalletConnectContext.js.map +0 -1
  196. package/dist/Modal/NordFlow/context/index.d.ts +0 -5
  197. package/dist/Modal/NordFlow/context/index.js +0 -8
  198. package/dist/Modal/NordFlow/context/index.js.map +0 -1
  199. package/dist/Modal/NordFlow/hoc/index.d.ts +0 -1
  200. package/dist/Modal/NordFlow/hoc/index.js +0 -2
  201. package/dist/Modal/NordFlow/hoc/index.js.map +0 -1
  202. package/dist/Modal/NordFlow/hoc/withImageFallback.js.map +0 -1
  203. package/dist/Modal/NordFlow/hooks/useTestnetFaucet.d.ts +0 -18
  204. package/dist/Modal/NordFlow/hooks/useTestnetFaucet.js +0 -181
  205. package/dist/Modal/NordFlow/hooks/useTestnetFaucet.js.map +0 -1
  206. package/dist/Modal/NordFlow/index.d.ts +0 -1
  207. package/dist/Modal/NordFlow/index.js +0 -2
  208. package/dist/Modal/NordFlow/index.js.map +0 -1
  209. package/dist/Modal/NordFlow/screens/00-IdleScreen.d.ts +0 -6
  210. package/dist/Modal/NordFlow/screens/00-IdleScreen.js +0 -9
  211. package/dist/Modal/NordFlow/screens/00-IdleScreen.js.map +0 -1
  212. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +0 -1
  213. package/dist/Modal/NordFlow/screens/02-ChainSelectionScreen.d.ts +0 -1
  214. package/dist/Modal/NordFlow/screens/02-ChainSelectionScreen.js +0 -115
  215. package/dist/Modal/NordFlow/screens/02-ChainSelectionScreen.js.map +0 -1
  216. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -2
  217. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +0 -45
  218. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js.map +0 -1
  219. package/dist/Modal/NordFlow/screens/03-AmountInputScreen.js.map +0 -1
  220. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.d.ts +0 -1
  221. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +0 -66
  222. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js.map +0 -1
  223. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.d.ts +0 -1
  224. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +0 -204
  225. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +0 -1
  226. package/dist/Modal/NordFlow/screens/04-DepositProgressScreen.d.ts +0 -1
  227. package/dist/Modal/NordFlow/screens/04-DepositProgressScreen.js +0 -29
  228. package/dist/Modal/NordFlow/screens/04-DepositProgressScreen.js.map +0 -1
  229. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.d.ts +0 -1
  230. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +0 -51
  231. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js.map +0 -1
  232. package/dist/Modal/NordFlow/screens/05-DepositSuccessScreen.js.map +0 -1
  233. package/dist/Modal/NordFlow/screens/06-AuthLoadingScreen.js +0 -37
  234. package/dist/Modal/NordFlow/screens/06-AuthLoadingScreen.js.map +0 -1
  235. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.d.ts +0 -1
  236. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +0 -132
  237. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js.map +0 -1
  238. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.d.ts +0 -1
  239. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +0 -30
  240. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js.map +0 -1
  241. package/dist/Modal/NordFlow/screens/07-FinalSuccessScreen.d.ts +0 -5
  242. package/dist/Modal/NordFlow/screens/07-FinalSuccessScreen.js +0 -39
  243. package/dist/Modal/NordFlow/screens/07-FinalSuccessScreen.js.map +0 -1
  244. package/dist/Modal/NordFlow/screens/08-ErrorScreen.js +0 -68
  245. package/dist/Modal/NordFlow/screens/08-ErrorScreen.js.map +0 -1
  246. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.d.ts +0 -5
  247. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +0 -52
  248. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +0 -1
  249. package/dist/Modal/NordFlow/screens/09-ErrorScreen.d.ts +0 -1
  250. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +0 -68
  251. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js.map +0 -1
  252. package/dist/Modal/NordFlow/screens/index.js.map +0 -1
  253. package/dist/Modal/NordFlow/types.js +0 -34
  254. package/dist/Modal/NordFlow/types.js.map +0 -1
  255. package/dist/Modal/NordFlow/utils/depositStorage.js.map +0 -1
  256. package/dist/Modal/NordFlow/utils/imageUtils.js.map +0 -1
  257. package/dist/Modal/NordFlow/utils/index.d.ts +0 -2
  258. package/dist/Modal/NordFlow/utils/index.js +0 -3
  259. package/dist/Modal/NordFlow/utils/index.js.map +0 -1
  260. package/dist/Modal/NordFlow/utils/nordUtils.js.map +0 -1
  261. package/dist/Modal/Sidebar/N1Sidebar.d.ts +0 -1
  262. package/dist/Modal/Sidebar/N1Sidebar.js +0 -203
  263. package/dist/Modal/Sidebar/N1Sidebar.js.map +0 -1
  264. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.d.ts +0 -12
  265. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js +0 -90
  266. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js.map +0 -1
  267. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.d.ts +0 -6
  268. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +0 -43
  269. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +0 -1
  270. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.d.ts +0 -11
  271. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +0 -20
  272. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +0 -1
  273. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.d.ts +0 -1
  274. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +0 -143
  275. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +0 -1
  276. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +0 -248
  277. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +0 -1
  278. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.d.ts +0 -10
  279. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +0 -62
  280. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js.map +0 -1
  281. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.d.ts +0 -7
  282. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +0 -30
  283. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js.map +0 -1
  284. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.d.ts +0 -11
  285. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +0 -22
  286. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js.map +0 -1
  287. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.d.ts +0 -7
  288. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +0 -20
  289. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js.map +0 -1
  290. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.d.ts +0 -7
  291. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +0 -24
  292. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js.map +0 -1
  293. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.d.ts +0 -7
  294. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +0 -80
  295. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js.map +0 -1
  296. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.d.ts +0 -9
  297. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +0 -110
  298. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js.map +0 -1
  299. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.d.ts +0 -7
  300. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +0 -30
  301. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js.map +0 -1
  302. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.d.ts +0 -9
  303. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +0 -40
  304. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js.map +0 -1
  305. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.d.ts +0 -7
  306. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +0 -10
  307. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js.map +0 -1
  308. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.d.ts +0 -13
  309. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +0 -264
  310. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +0 -1
  311. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.d.ts +0 -5
  312. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +0 -113
  313. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +0 -1
  314. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.d.ts +0 -1
  315. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +0 -183
  316. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js.map +0 -1
  317. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.d.ts +0 -0
  318. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +0 -278
  319. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +0 -1
  320. package/dist/Provider/LazyWalletProvider.js.map +0 -1
  321. package/dist/Provider/N1WalletProvider.d.ts +0 -3
  322. package/dist/Provider/N1WalletProvider.js.map +0 -1
  323. package/dist/Provider/ShadowRootWrapper.js.map +0 -1
  324. package/dist/Provider/WalletErrorBoundary.js.map +0 -1
  325. package/dist/Provider/context.js.map +0 -1
  326. package/dist/Provider/hooks/useNordUserInitialization.js.map +0 -1
  327. package/dist/Provider/hooks.d.ts +0 -2
  328. package/dist/Provider/hooks.js.map +0 -1
  329. package/dist/Provider/icons/CoinbaseWalletIcon.d.ts +0 -1
  330. package/dist/Provider/icons/CoinbaseWalletIcon.js +0 -5
  331. package/dist/Provider/icons/CoinbaseWalletIcon.js.map +0 -1
  332. package/dist/Provider/icons/ConnectionDotsSVG.d.ts +0 -1
  333. package/dist/Provider/icons/ConnectionDotsSVG.js +0 -5
  334. package/dist/Provider/icons/ConnectionDotsSVG.js.map +0 -1
  335. package/dist/Provider/icons/MetamaskIcon.d.ts +0 -1
  336. package/dist/Provider/icons/MetamaskIcon.js +0 -5
  337. package/dist/Provider/icons/MetamaskIcon.js.map +0 -1
  338. package/dist/Provider/icons/PhantomIcon.d.ts +0 -1
  339. package/dist/Provider/icons/PhantomIcon.js +0 -5
  340. package/dist/Provider/icons/PhantomIcon.js.map +0 -1
  341. package/dist/Provider/icons/UserIcon.d.ts +0 -1
  342. package/dist/Provider/icons/UserIcon.js +0 -5
  343. package/dist/Provider/icons/UserIcon.js.map +0 -1
  344. package/dist/Provider/icons/WalletConnectIcon.d.ts +0 -1
  345. package/dist/Provider/icons/WalletConnectIcon.js +0 -5
  346. package/dist/Provider/icons/WalletConnectIcon.js.map +0 -1
  347. package/dist/Provider/index.d.ts +0 -3
  348. package/dist/Provider/index.js +0 -4
  349. package/dist/Provider/index.js.map +0 -1
  350. package/dist/Provider/types.js.map +0 -1
  351. package/dist/WidgetButton/N1ConnectButton.js.map +0 -1
  352. package/dist/components/QRCodeLoader.d.ts +0 -4
  353. package/dist/components/QRCodeLoader.js +0 -9
  354. package/dist/components/QRCodeLoader.js.map +0 -1
  355. package/dist/components/logos/EVMChainsGroup.d.ts +0 -7
  356. package/dist/components/logos/EVMChainsGroup.js +0 -19
  357. package/dist/components/logos/EVMChainsGroup.js.map +0 -1
  358. package/dist/components/logos/MoreChainsGroup.d.ts +0 -7
  359. package/dist/components/logos/MoreChainsGroup.js +0 -19
  360. package/dist/components/logos/MoreChainsGroup.js.map +0 -1
  361. package/dist/embedded-main-css.d.ts +0 -2
  362. package/dist/embedded-main-css.js +0 -3
  363. package/dist/embedded-main-css.js.map +0 -1
  364. package/dist/main.css +0 -2
  365. package/dist/utils/dynamicImports.js +0 -42
  366. package/dist/utils/dynamicImports.js.map +0 -1
  367. package/dist/utils/dynamicNord.js.map +0 -1
  368. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Bold-Italic-Trial.otf +0 -0
  369. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Bold-Trial.otf +0 -0
  370. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Extra-Bold-Italic-Trial.otf +0 -0
  371. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Extra-Bold-Trial.otf +0 -0
  372. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Light-Italic-Trial.otf +0 -0
  373. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Light-Trial.otf +0 -0
  374. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Medium-Italic-Trial.otf +0 -0
  375. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Medium-Trial.otf +0 -0
  376. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Regular-Italic-Trial.otf +0 -0
  377. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Regular-Trial.otf +0 -0
  378. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Semi-Bold-Italic-Trial.otf +0 -0
  379. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Semi-Bold-Trial.otf +0 -0
  380. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Thin-Italic-Trial.otf +0 -0
  381. /package/dist/{fonts → assets/fonts}/apk-galeria/APK-Galeria-Thin-Trial.otf +0 -0
  382. /package/dist/{Modal → components}/LoadingFallback.d.ts +0 -0
  383. /package/dist/{Modal → components}/LoadingFallback.js +0 -0
  384. /package/dist/{WidgetButton → components}/N1ConnectButton.d.ts +0 -0
  385. /package/dist/{Modal/Sidebar/NordTradingView/OrderBook/OrderBook.d.ts → config/chains.d.ts} +0 -0
  386. /package/dist/{Modal/NordFlow → features/onboarding-flow}/components/Header.d.ts +0 -0
  387. /package/dist/{Modal/NordFlow → features/onboarding-flow}/components/ImageWithFallback.d.ts +0 -0
  388. /package/dist/{Modal/NordFlow → features/onboarding-flow}/components/ImageWithFallback.js +0 -0
  389. /package/dist/{Modal/NordFlow → features/onboarding-flow}/components/TransactionTable.d.ts +0 -0
  390. /package/dist/{Modal/NordFlow → features/onboarding-flow}/components/WaitingMessage.d.ts +0 -0
  391. /package/dist/{Modal/NordFlow → features/onboarding-flow}/components/index.d.ts +0 -0
  392. /package/dist/{Modal/NordFlow → features/onboarding-flow}/components/index.js +0 -0
  393. /package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/01-ConnectWalletScreen.d.ts +0 -0
  394. /package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/05-DepositSuccessScreen.d.ts +0 -0
  395. /package/dist/{Modal/NordFlow → features/onboarding-flow}/screens/06-AuthLoadingScreen.d.ts +0 -0
  396. /package/dist/{Modal/NordFlow/screens/08-ErrorScreen.d.ts → features/onboarding-flow/screens/07-ErrorScreen.d.ts} +0 -0
  397. /package/dist/{Modal/NordFlow → features/onboarding-flow}/utils/depositStorage.d.ts +0 -0
  398. /package/dist/{Modal/NordFlow → features/onboarding-flow}/utils/depositStorage.js +0 -0
  399. /package/dist/{Modal/NordFlow → features/onboarding-flow}/utils/imageUtils.d.ts +0 -0
  400. /package/dist/{Modal/NordFlow → features/onboarding-flow}/utils/imageUtils.js +0 -0
  401. /package/dist/{Modal/NordFlow → features/onboarding-flow}/utils/nordUtils.d.ts +0 -0
  402. /package/dist/{Modal/NordFlow → features/onboarding-flow}/utils/nordUtils.js +0 -0
  403. /package/dist/{Logic/transactionManager.d.ts → features/onboarding-flow/utils/transaction.d.ts} +0 -0
  404. /package/dist/{Modal/NordFlow/hoc → features/onboarding-flow/utils}/withImageFallback.d.ts +0 -0
  405. /package/dist/{Modal/NordFlow/hoc → features/onboarding-flow/utils}/withImageFallback.js +0 -0
  406. /package/dist/{Provider/hooks → hooks}/useNordUserInitialization.d.ts +0 -0
  407. /package/dist/{Provider → providers}/LazyWalletProvider.d.ts +0 -0
  408. /package/dist/{Provider → providers}/ShadowRootWrapper.d.ts +0 -0
  409. /package/dist/{Provider → providers}/ShadowRootWrapper.js +0 -0
  410. /package/dist/{Provider → providers}/WalletErrorBoundary.d.ts +0 -0
  411. /package/dist/{Provider → providers}/WalletErrorBoundary.js +0 -0
  412. /package/dist/{Logic → utils}/getPseudoName.d.ts +0 -0
  413. /package/dist/{Logic → utils}/getPseudoName.js +0 -0
  414. /package/dist/{Logic → utils}/words.d.ts +0 -0
  415. /package/dist/{Logic → utils}/words.js +0 -0
@@ -1,183 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
38
- import { RefreshCw, X } from 'lucide-react';
39
- import { useEffect, useState, useRef } from 'react';
40
- import { useN1WalletContext } from '../../../../Provider/hooks';
41
- import { logger } from '../../../../utils/logger';
42
- export default function UserOrders() {
43
- var _this = this;
44
- var _a = useN1WalletContext(), nord = _a.nord, nordUser = _a.nordUser;
45
- var _b = useState([]), activeOrders = _b[0], setActiveOrders = _b[1];
46
- var _c = useState([]), orderHistory = _c[0], setOrderHistory = _c[1];
47
- var _d = useState(false), loading = _d[0], setLoading = _d[1];
48
- var _e = useState(null), error = _e[0], setError = _e[1];
49
- var _f = useState(null), cancellingOrderId = _f[0], setCancellingOrderId = _f[1];
50
- var _g = useState(false), compactView = _g[0], setCompactView = _g[1];
51
- var containerRef = useRef(null);
52
- // Fetch user orders
53
- useEffect(function () {
54
- if (!nordUser)
55
- return;
56
- var fetchOrders = function () { return __awaiter(_this, void 0, void 0, function () {
57
- var allOrders_1, err_1;
58
- return __generator(this, function (_a) {
59
- switch (_a.label) {
60
- case 0:
61
- setLoading(true);
62
- setError(null);
63
- _a.label = 1;
64
- case 1:
65
- _a.trys.push([1, 3, 4, 5]);
66
- // Refresh user info to get latest orders
67
- return [4 /*yield*/, nordUser.fetchInfo()];
68
- case 2:
69
- // Refresh user info to get latest orders
70
- _a.sent();
71
- allOrders_1 = [];
72
- // This is a simplified approach - in a real implementation, you would
73
- // properly extract and format orders from the nordUser object
74
- logger.debug(nord === null || nord === void 0 ? void 0 : nord.markets, nordUser.orders);
75
- Object.values(nordUser.orders || {}).forEach(function (accountOrders) {
76
- if (Array.isArray(accountOrders)) {
77
- accountOrders.forEach(function (order) {
78
- var _a;
79
- // Get market name from nord object
80
- var market = (_a = nord === null || nord === void 0 ? void 0 : nord.markets) === null || _a === void 0 ? void 0 : _a.find(function (m) { return m.marketId === order.marketId; });
81
- var marketName = (market === null || market === void 0 ? void 0 : market.symbol) || "Unknown Market";
82
- // Convert to our Order interface format
83
- var formattedOrder = {
84
- orderId: order.orderId,
85
- marketId: order.marketId,
86
- symbol: marketName,
87
- isLong: order.isLong,
88
- size: order.size,
89
- price: order.price,
90
- status: order.status || 'OPEN',
91
- createdAt: order.createdAt || Date.now(),
92
- };
93
- allOrders_1.push(formattedOrder);
94
- });
95
- }
96
- });
97
- // Split into active and historical orders
98
- setActiveOrders(allOrders_1.filter(function (order) { return order.status === 'OPEN'; }));
99
- setOrderHistory(allOrders_1.filter(function (order) { return order.status !== 'OPEN'; }));
100
- return [3 /*break*/, 5];
101
- case 3:
102
- err_1 = _a.sent();
103
- logger.error('Error fetching orders:', err_1);
104
- setError('Failed to load orders');
105
- return [3 /*break*/, 5];
106
- case 4:
107
- setLoading(false);
108
- return [7 /*endfinally*/];
109
- case 5: return [2 /*return*/];
110
- }
111
- });
112
- }); };
113
- fetchOrders();
114
- // Set up polling for order updates
115
- var intervalId = setInterval(fetchOrders, 10000); // Update every 10 seconds
116
- return function () { return clearInterval(intervalId); };
117
- }, [nordUser, nord]);
118
- // Check container width and update layout
119
- useEffect(function () {
120
- if (!containerRef.current)
121
- return;
122
- var checkWidth = function () {
123
- if (containerRef.current) {
124
- setCompactView(containerRef.current.offsetWidth < 400);
125
- }
126
- };
127
- // Initial check
128
- checkWidth();
129
- // Set up resize observer
130
- var resizeObserver = new ResizeObserver(checkWidth);
131
- resizeObserver.observe(containerRef.current);
132
- return function () {
133
- if (containerRef.current) {
134
- resizeObserver.unobserve(containerRef.current);
135
- }
136
- };
137
- }, []);
138
- // Handle order cancellation
139
- var handleCancelOrder = function (orderId) { return __awaiter(_this, void 0, void 0, function () {
140
- var err_2;
141
- return __generator(this, function (_a) {
142
- switch (_a.label) {
143
- case 0:
144
- if (!nordUser)
145
- return [2 /*return*/];
146
- _a.label = 1;
147
- case 1:
148
- _a.trys.push([1, 4, 5, 6]);
149
- setCancellingOrderId(orderId); // Set the cancelling order ID to show animation
150
- return [4 /*yield*/, nordUser.cancelOrder(orderId)];
151
- case 2:
152
- _a.sent();
153
- // Refresh orders after cancellation
154
- return [4 /*yield*/, nordUser.fetchInfo()];
155
- case 3:
156
- // Refresh orders after cancellation
157
- _a.sent();
158
- // Update state (simplified - would be better to wait for the fetchOrders to run)
159
- setActiveOrders(activeOrders.filter(function (order) { return order.orderId !== orderId; }));
160
- return [3 /*break*/, 6];
161
- case 4:
162
- err_2 = _a.sent();
163
- logger.error('Error cancelling order:', err_2);
164
- setError('Failed to cancel order');
165
- return [3 /*break*/, 6];
166
- case 5:
167
- setCancellingOrderId(null); // Reset cancelling order ID
168
- return [7 /*endfinally*/];
169
- case 6: return [2 /*return*/];
170
- }
171
- });
172
- }); };
173
- return (_jsx("div", { className: "bg-white dark:bg-n1-ww-gray-950 shadow-sm border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 overflow-hidden", children: _jsxs("div", { className: "p-4", children: [_jsx("h2", { className: "text-lg font-semibold text-n1-ww-gray-900 dark:text-n1-ww-gray-100 mb-4", children: "Orders" }), _jsxs("div", { className: "overflow-hidden", ref: containerRef, children: [loading && activeOrders.length === 0 && orderHistory.length === 0 ? (_jsx("div", { className: "flex items-center justify-center h-32", children: _jsx(RefreshCw, { size: 20, className: "text-n1-ww-gray-400 n1-ww-animate-spin" }) })) : error ? (_jsx("div", { className: "p-3 bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 text-sm", children: error })) : activeOrders.length === 0 ? (_jsx("div", { className: "p-3 bg-n1-ww-gray-50 dark:bg-n1-ww-gray-800 text-n1-ww-gray-500 dark:text-n1-ww-gray-400 text-sm text-center", children: "No active orders" })) : !compactView ? (
174
- // Standard table view for larger containers
175
- _jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "min-w-full divide-y divide-n1-ww-gray-200 dark:divide-n1-ww-gray-800", children: [_jsx("thead", { className: "bg-n1-ww-gray-50 dark:bg-n1-ww-gray-800", children: _jsxs("tr", { children: [_jsx("th", { className: "px-3 py-2 text-left text-xs font-medium text-n1-ww-gray-500 dark:text-n1-ww-gray-400 uppercase tracking-wider", children: "Market" }), _jsx("th", { className: "px-3 py-2 text-left text-xs font-medium text-n1-ww-gray-500 dark:text-n1-ww-gray-400 uppercase tracking-wider", children: "Side" }), _jsx("th", { className: "px-3 py-2 text-right text-xs font-medium text-n1-ww-gray-500 dark:text-n1-ww-gray-400 uppercase tracking-wider", children: "Size" }), _jsx("th", { className: "px-3 py-2 text-right text-xs font-medium text-n1-ww-gray-500 dark:text-n1-ww-gray-400 uppercase tracking-wider", children: "Price" }), _jsx("th", { className: "px-3 py-2 text-right text-xs font-medium text-n1-ww-gray-500 dark:text-n1-ww-gray-400 uppercase tracking-wider", children: "Action" })] }) }), _jsx("tbody", { className: "bg-white dark:bg-n1-ww-gray-950 divide-y divide-n1-ww-gray-200 dark:divide-n1-ww-gray-800", children: activeOrders.map(function (order) { return (_jsxs("tr", { className: "hover:bg-n1-ww-gray-50 dark:hover:bg-n1-ww-gray-800", children: [_jsx("td", { className: "px-3 py-2 whitespace-nowrap text-sm text-n1-ww-gray-900 dark:text-n1-ww-gray-100", children: order.symbol }), _jsx("td", { className: "px-3 py-2 whitespace-nowrap text-sm", children: _jsx("span", { className: "font-medium ".concat(order.isLong ? 'text-green-600 dark:text-green-400' : 'text-red-600 dark:text-red-400'), children: order.isLong ? 'BUY' : 'SELL' }) }), _jsx("td", { className: "px-3 py-2 whitespace-nowrap text-sm text-n1-ww-gray-900 dark:text-n1-ww-gray-100 text-right font-mono", children: order.size }), _jsx("td", { className: "px-3 py-2 whitespace-nowrap text-sm text-n1-ww-gray-900 dark:text-n1-ww-gray-100 text-right font-mono", children: order.price }), _jsx("td", { className: "px-3 py-2 whitespace-nowrap text-sm text-right", children: _jsx("button", { onClick: function () { return handleCancelOrder(order.orderId); }, disabled: cancellingOrderId === order.orderId, className: "text-red-600 dark:text-red-400 hover:text-red-800 dark:hover:text-red-300 relative ".concat(cancellingOrderId === order.orderId
176
- ? 'cursor-not-allowed'
177
- : ''), children: cancellingOrderId === order.orderId ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "opacity-0", children: "Cancel" }), _jsx(X, { size: 16, className: "absolute inset-0 m-auto n1-ww-animate-pulse text-red-500" })] })) : ('Cancel') }) })] }, order.orderId)); }) })] }) })) : (
178
- // Compact card view for smaller containers
179
- _jsx("div", { className: "grid gap-2", children: activeOrders.map(function (order) { return (_jsxs("div", { className: "bg-white dark:bg-n1-ww-gray-900 border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 rounded p-2 hover:bg-n1-ww-gray-50 dark:hover:bg-n1-ww-gray-800", children: [_jsxs("div", { className: "flex justify-between items-start mb-1", children: [_jsx("div", { className: "font-medium text-sm text-n1-ww-gray-900 dark:text-n1-ww-gray-100", children: order.symbol }), _jsx("button", { onClick: function () { return handleCancelOrder(order.orderId); }, disabled: cancellingOrderId === order.orderId, className: "text-red-600 dark:text-red-400 hover:text-red-800 dark:hover:text-red-300 text-xs relative ".concat(cancellingOrderId === order.orderId
180
- ? 'cursor-not-allowed'
181
- : ''), children: cancellingOrderId === order.orderId ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "opacity-0", children: "Cancel" }), _jsx(X, { size: 14, className: "absolute inset-0 m-auto n1-ww-animate-pulse text-red-500" })] })) : ('Cancel') })] }), _jsxs("div", { className: "grid grid-cols-3 gap-1 text-xs", children: [_jsx("div", { children: _jsx("span", { className: "font-medium ".concat(order.isLong ? 'text-green-600 dark:text-green-400' : 'text-red-600 dark:text-red-400'), children: order.isLong ? 'BUY' : 'SELL' }) }), _jsx("div", { className: "text-right font-mono text-n1-ww-gray-700 dark:text-n1-ww-gray-300", children: order.size }), _jsx("div", { className: "text-right font-mono text-n1-ww-gray-700 dark:text-n1-ww-gray-300", children: order.price })] })] }, order.orderId)); }) })), loading && (activeOrders.length > 0 || orderHistory.length > 0) && (_jsx("div", { className: "flex justify-center mt-2", children: _jsx(RefreshCw, { size: 16, className: "text-n1-ww-gray-400 n1-ww-animate-spin" }) }))] })] }) }));
182
- }
183
- //# sourceMappingURL=UserOrders.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserOrders.js","sourceRoot":"","sources":["../../../../../src/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.tsx"],"names":[],"mappings":"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","sourcesContent":["import { RefreshCw, X } from 'lucide-react';\nimport { useEffect, useState, useRef } from 'react';\nimport { useN1WalletContext } from '../../../../Provider/hooks';\nimport { logger } from '../../../../utils/logger';\n\ninterface Order {\n orderId: number;\n marketId: number;\n symbol: string;\n isLong: boolean;\n size: number;\n price: number;\n status: 'OPEN' | 'FILLED' | 'CANCELLED' | 'EXPIRED';\n createdAt: number;\n}\n\nexport default function UserOrders() {\n const { nord, nordUser } = useN1WalletContext();\n const [activeOrders, setActiveOrders] = useState<Order[]>([]);\n const [orderHistory, setOrderHistory] = useState<Order[]>([]);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [cancellingOrderId, setCancellingOrderId] = useState<number | null>(\n null\n );\n const [compactView, setCompactView] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n\n // Fetch user orders\n useEffect(() => {\n if (!nordUser) return;\n\n const fetchOrders = async () => {\n setLoading(true);\n setError(null);\n\n try {\n // Refresh user info to get latest orders\n await nordUser.fetchInfo();\n\n // Process orders from all accounts\n const allOrders: Order[] = [];\n\n // This is a simplified approach - in a real implementation, you would\n // properly extract and format orders from the nordUser object\n logger.debug(nord?.markets, nordUser.orders);\n Object.values(nordUser.orders || {}).forEach((accountOrders: any) => {\n if (Array.isArray(accountOrders)) {\n accountOrders.forEach((order: any) => {\n // Get market name from nord object\n const market = nord?.markets?.find(\n (m: any) => m.marketId === order.marketId\n );\n const marketName = market?.symbol || `Unknown Market`;\n\n // Convert to our Order interface format\n const formattedOrder: Order = {\n orderId: order.orderId,\n marketId: order.marketId,\n symbol: marketName,\n isLong: order.isLong,\n size: order.size,\n price: order.price,\n status: order.status || 'OPEN',\n createdAt: order.createdAt || Date.now(),\n };\n allOrders.push(formattedOrder);\n });\n }\n });\n\n // Split into active and historical orders\n setActiveOrders(allOrders.filter((order) => order.status === 'OPEN'));\n setOrderHistory(allOrders.filter((order) => order.status !== 'OPEN'));\n } catch (err) {\n logger.error('Error fetching orders:', err);\n setError('Failed to load orders');\n } finally {\n setLoading(false);\n }\n };\n\n fetchOrders();\n\n // Set up polling for order updates\n const intervalId = setInterval(fetchOrders, 10000); // Update every 10 seconds\n\n return () => clearInterval(intervalId);\n }, [nordUser, nord]);\n\n // Check container width and update layout\n useEffect(() => {\n if (!containerRef.current) return;\n\n const checkWidth = () => {\n if (containerRef.current) {\n setCompactView(containerRef.current.offsetWidth < 400);\n }\n };\n\n // Initial check\n checkWidth();\n\n // Set up resize observer\n const resizeObserver = new ResizeObserver(checkWidth);\n resizeObserver.observe(containerRef.current);\n\n return () => {\n if (containerRef.current) {\n resizeObserver.unobserve(containerRef.current);\n }\n };\n }, []);\n\n // Handle order cancellation\n const handleCancelOrder = async (orderId: number) => {\n if (!nordUser) return;\n\n try {\n setCancellingOrderId(orderId); // Set the cancelling order ID to show animation\n await nordUser.cancelOrder(orderId);\n // Refresh orders after cancellation\n await nordUser.fetchInfo();\n // Update state (simplified - would be better to wait for the fetchOrders to run)\n setActiveOrders(\n activeOrders.filter((order) => order.orderId !== orderId)\n );\n } catch (err) {\n logger.error('Error cancelling order:', err);\n setError('Failed to cancel order');\n } finally {\n setCancellingOrderId(null); // Reset cancelling order ID\n }\n };\n\n return (\n <div className=\"bg-white dark:bg-n1-ww-gray-950 shadow-sm border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 overflow-hidden\">\n <div className=\"p-4\">\n <h2 className=\"text-lg font-semibold text-n1-ww-gray-900 dark:text-n1-ww-gray-100 mb-4\">\n Orders\n </h2>\n\n {/* Order list */}\n <div className=\"overflow-hidden\" ref={containerRef}>\n {loading && activeOrders.length === 0 && orderHistory.length === 0 ? (\n <div className=\"flex items-center justify-center h-32\">\n <RefreshCw size={20} className=\"text-n1-ww-gray-400 n1-ww-animate-spin\" />\n </div>\n ) : error ? (\n <div className=\"p-3 bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 text-sm\">\n {error}\n </div>\n ) : activeOrders.length === 0 ? (\n <div className=\"p-3 bg-n1-ww-gray-50 dark:bg-n1-ww-gray-800 text-n1-ww-gray-500 dark:text-n1-ww-gray-400 text-sm text-center\">\n No active orders\n </div>\n ) : !compactView ? (\n // Standard table view for larger containers\n <div className=\"overflow-x-auto\">\n <table className=\"min-w-full divide-y divide-n1-ww-gray-200 dark:divide-n1-ww-gray-800\">\n <thead className=\"bg-n1-ww-gray-50 dark:bg-n1-ww-gray-800\">\n <tr>\n <th className=\"px-3 py-2 text-left text-xs font-medium text-n1-ww-gray-500 dark:text-n1-ww-gray-400 uppercase tracking-wider\">\n Market\n </th>\n <th className=\"px-3 py-2 text-left text-xs font-medium text-n1-ww-gray-500 dark:text-n1-ww-gray-400 uppercase tracking-wider\">\n Side\n </th>\n <th className=\"px-3 py-2 text-right text-xs font-medium text-n1-ww-gray-500 dark:text-n1-ww-gray-400 uppercase tracking-wider\">\n Size\n </th>\n <th className=\"px-3 py-2 text-right text-xs font-medium text-n1-ww-gray-500 dark:text-n1-ww-gray-400 uppercase tracking-wider\">\n Price\n </th>\n <th className=\"px-3 py-2 text-right text-xs font-medium text-n1-ww-gray-500 dark:text-n1-ww-gray-400 uppercase tracking-wider\">\n Action\n </th>\n </tr>\n </thead>\n <tbody className=\"bg-white dark:bg-n1-ww-gray-950 divide-y divide-n1-ww-gray-200 dark:divide-n1-ww-gray-800\">\n {activeOrders.map((order) => (\n <tr\n key={order.orderId}\n className=\"hover:bg-n1-ww-gray-50 dark:hover:bg-n1-ww-gray-800\"\n >\n <td className=\"px-3 py-2 whitespace-nowrap text-sm text-n1-ww-gray-900 dark:text-n1-ww-gray-100\">\n {order.symbol}\n </td>\n <td className=\"px-3 py-2 whitespace-nowrap text-sm\">\n <span\n className={`font-medium ${order.isLong ? 'text-green-600 dark:text-green-400' : 'text-red-600 dark:text-red-400'}`}\n >\n {order.isLong ? 'BUY' : 'SELL'}\n </span>\n </td>\n <td className=\"px-3 py-2 whitespace-nowrap text-sm text-n1-ww-gray-900 dark:text-n1-ww-gray-100 text-right font-mono\">\n {order.size}\n </td>\n <td className=\"px-3 py-2 whitespace-nowrap text-sm text-n1-ww-gray-900 dark:text-n1-ww-gray-100 text-right font-mono\">\n {order.price}\n </td>\n <td className=\"px-3 py-2 whitespace-nowrap text-sm text-right\">\n <button\n onClick={() => handleCancelOrder(order.orderId)}\n disabled={cancellingOrderId === order.orderId}\n className={`text-red-600 dark:text-red-400 hover:text-red-800 dark:hover:text-red-300 relative ${\n cancellingOrderId === order.orderId\n ? 'cursor-not-allowed'\n : ''\n }`}\n >\n {cancellingOrderId === order.orderId ? (\n <>\n <span className=\"opacity-0\">Cancel</span>\n <X\n size={16}\n className=\"absolute inset-0 m-auto n1-ww-animate-pulse text-red-500\"\n />\n </>\n ) : (\n 'Cancel'\n )}\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n ) : (\n // Compact card view for smaller containers\n <div className=\"grid gap-2\">\n {activeOrders.map((order) => (\n <div\n key={order.orderId}\n className=\"bg-white dark:bg-n1-ww-gray-900 border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 rounded p-2 hover:bg-n1-ww-gray-50 dark:hover:bg-n1-ww-gray-800\"\n >\n <div className=\"flex justify-between items-start mb-1\">\n <div className=\"font-medium text-sm text-n1-ww-gray-900 dark:text-n1-ww-gray-100\">\n {order.symbol}\n </div>\n <button\n onClick={() => handleCancelOrder(order.orderId)}\n disabled={cancellingOrderId === order.orderId}\n className={`text-red-600 dark:text-red-400 hover:text-red-800 dark:hover:text-red-300 text-xs relative ${\n cancellingOrderId === order.orderId\n ? 'cursor-not-allowed'\n : ''\n }`}\n >\n {cancellingOrderId === order.orderId ? (\n <>\n <span className=\"opacity-0\">Cancel</span>\n <X\n size={14}\n className=\"absolute inset-0 m-auto n1-ww-animate-pulse text-red-500\"\n />\n </>\n ) : (\n 'Cancel'\n )}\n </button>\n </div>\n <div className=\"grid grid-cols-3 gap-1 text-xs\">\n <div>\n <span\n className={`font-medium ${order.isLong ? 'text-green-600 dark:text-green-400' : 'text-red-600 dark:text-red-400'}`}\n >\n {order.isLong ? 'BUY' : 'SELL'}\n </span>\n </div>\n <div className=\"text-right font-mono text-n1-ww-gray-700 dark:text-n1-ww-gray-300\">\n {order.size}\n </div>\n <div className=\"text-right font-mono text-n1-ww-gray-700 dark:text-n1-ww-gray-300\">\n {order.price}\n </div>\n </div>\n </div>\n ))}\n </div>\n )}\n\n {/* Loading indicator for refreshing */}\n {loading && (activeOrders.length > 0 || orderHistory.length > 0) && (\n <div className=\"flex justify-center mt-2\">\n <RefreshCw size={16} className=\"text-n1-ww-gray-400 n1-ww-animate-spin\" />\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n"]}
@@ -1,278 +0,0 @@
1
- "use strict";
2
- // DEPRECATED: This entire component has been deprecated due to errors
3
- // All code below has been commented out to prevent issues
4
- /*
5
-
6
- import { useState, useEffect } from 'react';
7
- import { useN1WalletContext } from '../../../../Provider/hooks';
8
- import { RefreshCw, X } from 'lucide-react';
9
-
10
- interface Position {
11
- marketId: number;
12
- symbol: string;
13
- size: number;
14
- entryPrice: number;
15
- markPrice: number;
16
- pnl: number;
17
- pnlPercentage: number;
18
- liquidationPrice?: number;
19
- accountId: number;
20
- }
21
-
22
- // Interface for market stats based on the Nord API
23
- interface MarketStats {
24
- market_id: number;
25
- index_price: [number, number];
26
- volume_24h: number;
27
- high_24h: number;
28
- low_24h: number;
29
- perp_stats?: {
30
- mark_price?: number;
31
- funding_rate?: number;
32
- next_funding_time?: Date;
33
- open_interest?: number;
34
- };
35
- }
36
-
37
- export default function UserPositions() {
38
- const { nord, nordUser } = useN1WalletContext();
39
- const [positions, setPositions] = useState<Position[]>([]);
40
- const [loading, setLoading] = useState(false);
41
- const [error, setError] = useState<string | null>(null);
42
- const [marketStats, setMarketStats] = useState<MarketStats[]>([]);
43
-
44
- // Fetch user positions
45
- useEffect(() => {
46
- if (!nordUser || !nord) return;
47
-
48
- const fetchPositions = async () => {
49
- setLoading(true);
50
- setError(null);
51
-
52
- try {
53
- // Refresh user info to get latest positions
54
- await nordUser.fetchInfo();
55
-
56
- // Get market stats for mark prices
57
- try {
58
- const stats = await nord.marketsStats();
59
- setMarketStats(stats.markets);
60
- } catch (statsErr) {
61
- console.error('Error fetching market stats:', statsErr);
62
- // Don't set loading to false here, as we still want to try to get positions
63
- }
64
-
65
- // Extract real positions from nordUser
66
- const realPositions: Position[] = [];
67
-
68
- // Loop through all accounts
69
- if (nordUser.accountIds) {
70
- for (const accountId of nordUser.accountIds) {
71
- // Check if this account has positions
72
- const accountPositions = nordUser.positions[accountId];
73
-
74
- if (accountPositions && accountPositions.length > 0) {
75
- // Process each position
76
- for (const position of accountPositions) {
77
- // Only include positions with perp data and non-zero size
78
- if (position.perp && Math.abs(position.perp.baseSize) > 0) {
79
- // Find market info to get symbol
80
- const market = nord.markets.find(
81
- (m) => m.marketId === position.marketId
82
- );
83
- const symbol = market
84
- ? market.symbol
85
- : `Market-${position.marketId}`;
86
-
87
- // Calculate PnL
88
- const totalPnl =
89
- position.perp.sizePricePnl +
90
- position.perp.fundingPaymentPnl;
91
- const entryValue =
92
- Math.abs(position.perp.baseSize) * position.perp.price;
93
- const pnlPercentage =
94
- entryValue > 0 ? (totalPnl / entryValue) * 100 : 0;
95
-
96
- // Get mark price from market stats or use entry price as fallback
97
- const stats = marketStats.find(
98
- (m) => m.market_id === position.marketId
99
- );
100
- const markPrice =
101
- stats?.perp_stats?.mark_price || position.perp.price;
102
-
103
- realPositions.push({
104
- marketId: position.marketId,
105
- symbol: symbol,
106
- size: position.perp.isLong
107
- ? position.perp.baseSize
108
- : -position.perp.baseSize,
109
- entryPrice: position.perp.price,
110
- markPrice: markPrice,
111
- pnl: totalPnl,
112
- pnlPercentage: pnlPercentage,
113
- accountId: accountId,
114
- });
115
- }
116
- }
117
- }
118
- }
119
- }
120
-
121
- setPositions(realPositions);
122
- setLoading(false); // Explicitly set loading to false on success
123
- } catch (err) {
124
- console.error('Error fetching positions:', err);
125
- setError('Failed to load positions');
126
- setLoading(false); // Ensure loading is set to false on error
127
- }
128
- };
129
-
130
- fetchPositions();
131
-
132
- // Set up polling for position updates
133
- const intervalId = setInterval(fetchPositions, 10000); // Update every 10 seconds
134
-
135
- return () => clearInterval(intervalId);
136
- }, [nordUser, nord]); // Remove marketStats from dependency array to prevent infinite loops
137
-
138
- // Handle position close
139
- const handleClosePosition = async (marketId: number, accountId: number) => {
140
- if (!nordUser) return;
141
-
142
- try {
143
- // Find the position to close
144
- const position = positions.find(
145
- (pos) => pos.marketId === marketId && pos.accountId === accountId
146
- );
147
-
148
- if (!position) {
149
- throw new Error('Position not found');
150
- }
151
-
152
- // Place an order to close the position (opposite side, same size)
153
- await nordUser.placeOrder({
154
- marketId: marketId,
155
- side: position.size > 0 ? 'ask' : 'bid', // Opposite side to close
156
- fillMode: 'market', // Market order to ensure it gets filled
157
- isReduceOnly: true, // Reduce-only to ensure it only closes the position
158
- size: Math.abs(position.size), // Absolute size value
159
- accountId: accountId,
160
- });
161
-
162
- // Refresh positions after closing
163
- await nordUser.fetchInfo();
164
-
165
- // Remove the position from the local state
166
- setPositions(
167
- positions.filter(
168
- (pos) => !(pos.marketId === marketId && pos.accountId === accountId)
169
- )
170
- );
171
- } catch (err) {
172
- console.error('Error closing position:', err);
173
- setError('Failed to close position');
174
- }
175
- };
176
-
177
- return (
178
- <div className="bg-white dark:bg-n1-ww-gray-950 overflow-hidden">
179
- <div className="p-4">
180
- <h2 className="text-lg font-semibold text-n1-ww-gray-900 dark:text-n1-ww-gray-100 mb-4">
181
- Positions
182
- </h2>
183
-
184
- {loading && positions.length === 0 ? (
185
- <div className="flex items-center justify-center h-32">
186
- <RefreshCw size={20} className="text-n1-ww-gray-400 n1-ww-animate-spin" />
187
- </div>
188
- ) : error ? (
189
- <div className="p-3 bg-red-50 dark:bg-red-900/20 rounded-lg text-red-600 dark:text-red-400 text-sm">
190
- {error}
191
- </div>
192
- ) : positions.length === 0 ? (
193
- <div className="p-3 bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950 rounded-lg text-n1-ww-gray-500 dark:text-n1-ww-gray-400 text-sm text-center">
194
- No open positions
195
- </div>
196
- ) : (
197
- <div className="space-y-3">
198
- {positions.map((position, index) => (
199
- <div
200
- key={index}
201
- className="p-3 bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950 rounded-lg"
202
- >
203
- <div className="flex items-center justify-between mb-2">
204
- <div className="flex items-center">
205
- <span className="font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100 mr-2">
206
- {position.symbol}
207
- </span>
208
- <span
209
- className={`text-xs px-2 py-0.5 rounded ${
210
- position.size > 0
211
- ? 'bg-green-100 dark:bg-green-900/20 text-green-600 dark:text-green-400'
212
- : 'bg-red-100 dark:bg-red-900/20 text-red-600 dark:text-red-400'
213
- }`}
214
- >
215
- {position.size > 0 ? 'Long' : 'Short'}{' '}
216
- {Math.abs(position.size)}
217
- </span>
218
- </div>
219
- </div>
220
-
221
- <div className="grid grid-cols-2 gap-2 text-sm">
222
- <div>
223
- <div className="text-n1-ww-gray-500 dark:text-n1-ww-gray-400">
224
- Entry Price
225
- </div>
226
- <div className="font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100 font-mono">
227
- {position.entryPrice.toFixed(2)}
228
- </div>
229
- </div>
230
- <div>
231
- <div className="text-n1-ww-gray-500 dark:text-n1-ww-gray-400">
232
- Mark Price
233
- </div>
234
- <div className="font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100 font-mono">
235
- {position.markPrice.toFixed(2)}
236
- </div>
237
- </div>
238
- <div>
239
- <div className="text-n1-ww-gray-500 dark:text-n1-ww-gray-400">PnL</div>
240
- <div
241
- className={`font-medium font-mono ${
242
- position.pnl >= 0
243
- ? 'text-green-600 dark:text-green-400'
244
- : 'text-red-600 dark:text-red-400'
245
- }`}
246
- >
247
- {position.pnl >= 0 ? '+' : ''}
248
- {position.pnl.toFixed(2)} (
249
- {position.pnlPercentage.toFixed(2)}%)
250
- </div>
251
- </div>
252
- <div>
253
- <div className="text-n1-ww-gray-500 dark:text-n1-ww-gray-400">
254
- Liquidation
255
- </div>
256
- <div className="font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100 font-mono">
257
- {position.liquidationPrice
258
- ? position.liquidationPrice.toFixed(2)
259
- : 'N/A'}
260
- </div>
261
- </div>
262
- </div>
263
- </div>
264
- ))}
265
-
266
- {loading && positions.length > 0 && (
267
- <div className="flex justify-center mt-2">
268
- <RefreshCw size={16} className="text-n1-ww-gray-400 n1-ww-animate-spin" />
269
- </div>
270
- )}
271
- </div>
272
- )}
273
- </div>
274
- </div>
275
- );
276
- }
277
- */
278
- //# sourceMappingURL=UserPositions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserPositions.js","sourceRoot":"","sources":["../../../../../src/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.tsx"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,0DAA0D;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiRE","sourcesContent":["// DEPRECATED: This entire component has been deprecated due to errors\n// All code below has been commented out to prevent issues\n\n/*\n\nimport { useState, useEffect } from 'react';\nimport { useN1WalletContext } from '../../../../Provider/hooks';\nimport { RefreshCw, X } from 'lucide-react';\n\ninterface Position {\n marketId: number;\n symbol: string;\n size: number;\n entryPrice: number;\n markPrice: number;\n pnl: number;\n pnlPercentage: number;\n liquidationPrice?: number;\n accountId: number;\n}\n\n// Interface for market stats based on the Nord API\ninterface MarketStats {\n market_id: number;\n index_price: [number, number];\n volume_24h: number;\n high_24h: number;\n low_24h: number;\n perp_stats?: {\n mark_price?: number;\n funding_rate?: number;\n next_funding_time?: Date;\n open_interest?: number;\n };\n}\n\nexport default function UserPositions() {\n const { nord, nordUser } = useN1WalletContext();\n const [positions, setPositions] = useState<Position[]>([]);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [marketStats, setMarketStats] = useState<MarketStats[]>([]);\n\n // Fetch user positions\n useEffect(() => {\n if (!nordUser || !nord) return;\n\n const fetchPositions = async () => {\n setLoading(true);\n setError(null);\n\n try {\n // Refresh user info to get latest positions\n await nordUser.fetchInfo();\n\n // Get market stats for mark prices\n try {\n const stats = await nord.marketsStats();\n setMarketStats(stats.markets);\n } catch (statsErr) {\n console.error('Error fetching market stats:', statsErr);\n // Don't set loading to false here, as we still want to try to get positions\n }\n\n // Extract real positions from nordUser\n const realPositions: Position[] = [];\n\n // Loop through all accounts\n if (nordUser.accountIds) {\n for (const accountId of nordUser.accountIds) {\n // Check if this account has positions\n const accountPositions = nordUser.positions[accountId];\n\n if (accountPositions && accountPositions.length > 0) {\n // Process each position\n for (const position of accountPositions) {\n // Only include positions with perp data and non-zero size\n if (position.perp && Math.abs(position.perp.baseSize) > 0) {\n // Find market info to get symbol\n const market = nord.markets.find(\n (m) => m.marketId === position.marketId\n );\n const symbol = market\n ? market.symbol\n : `Market-${position.marketId}`;\n\n // Calculate PnL\n const totalPnl =\n position.perp.sizePricePnl +\n position.perp.fundingPaymentPnl;\n const entryValue =\n Math.abs(position.perp.baseSize) * position.perp.price;\n const pnlPercentage =\n entryValue > 0 ? (totalPnl / entryValue) * 100 : 0;\n\n // Get mark price from market stats or use entry price as fallback\n const stats = marketStats.find(\n (m) => m.market_id === position.marketId\n );\n const markPrice =\n stats?.perp_stats?.mark_price || position.perp.price;\n\n realPositions.push({\n marketId: position.marketId,\n symbol: symbol,\n size: position.perp.isLong\n ? position.perp.baseSize\n : -position.perp.baseSize,\n entryPrice: position.perp.price,\n markPrice: markPrice,\n pnl: totalPnl,\n pnlPercentage: pnlPercentage,\n accountId: accountId,\n });\n }\n }\n }\n }\n }\n\n setPositions(realPositions);\n setLoading(false); // Explicitly set loading to false on success\n } catch (err) {\n console.error('Error fetching positions:', err);\n setError('Failed to load positions');\n setLoading(false); // Ensure loading is set to false on error\n }\n };\n\n fetchPositions();\n\n // Set up polling for position updates\n const intervalId = setInterval(fetchPositions, 10000); // Update every 10 seconds\n\n return () => clearInterval(intervalId);\n }, [nordUser, nord]); // Remove marketStats from dependency array to prevent infinite loops\n\n // Handle position close\n const handleClosePosition = async (marketId: number, accountId: number) => {\n if (!nordUser) return;\n\n try {\n // Find the position to close\n const position = positions.find(\n (pos) => pos.marketId === marketId && pos.accountId === accountId\n );\n\n if (!position) {\n throw new Error('Position not found');\n }\n\n // Place an order to close the position (opposite side, same size)\n await nordUser.placeOrder({\n marketId: marketId,\n side: position.size > 0 ? 'ask' : 'bid', // Opposite side to close\n fillMode: 'market', // Market order to ensure it gets filled\n isReduceOnly: true, // Reduce-only to ensure it only closes the position\n size: Math.abs(position.size), // Absolute size value\n accountId: accountId,\n });\n\n // Refresh positions after closing\n await nordUser.fetchInfo();\n\n // Remove the position from the local state\n setPositions(\n positions.filter(\n (pos) => !(pos.marketId === marketId && pos.accountId === accountId)\n )\n );\n } catch (err) {\n console.error('Error closing position:', err);\n setError('Failed to close position');\n }\n };\n\n return (\n <div className=\"bg-white dark:bg-n1-ww-gray-950 overflow-hidden\">\n <div className=\"p-4\">\n <h2 className=\"text-lg font-semibold text-n1-ww-gray-900 dark:text-n1-ww-gray-100 mb-4\">\n Positions\n </h2>\n\n {loading && positions.length === 0 ? (\n <div className=\"flex items-center justify-center h-32\">\n <RefreshCw size={20} className=\"text-n1-ww-gray-400 n1-ww-animate-spin\" />\n </div>\n ) : error ? (\n <div className=\"p-3 bg-red-50 dark:bg-red-900/20 rounded-lg text-red-600 dark:text-red-400 text-sm\">\n {error}\n </div>\n ) : positions.length === 0 ? (\n <div className=\"p-3 bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950 rounded-lg text-n1-ww-gray-500 dark:text-n1-ww-gray-400 text-sm text-center\">\n No open positions\n </div>\n ) : (\n <div className=\"space-y-3\">\n {positions.map((position, index) => (\n <div\n key={index}\n className=\"p-3 bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950 rounded-lg\"\n >\n <div className=\"flex items-center justify-between mb-2\">\n <div className=\"flex items-center\">\n <span className=\"font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100 mr-2\">\n {position.symbol}\n </span>\n <span\n className={`text-xs px-2 py-0.5 rounded ${\n position.size > 0\n ? 'bg-green-100 dark:bg-green-900/20 text-green-600 dark:text-green-400'\n : 'bg-red-100 dark:bg-red-900/20 text-red-600 dark:text-red-400'\n }`}\n >\n {position.size > 0 ? 'Long' : 'Short'}{' '}\n {Math.abs(position.size)}\n </span>\n </div>\n </div>\n\n <div className=\"grid grid-cols-2 gap-2 text-sm\">\n <div>\n <div className=\"text-n1-ww-gray-500 dark:text-n1-ww-gray-400\">\n Entry Price\n </div>\n <div className=\"font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100 font-mono\">\n {position.entryPrice.toFixed(2)}\n </div>\n </div>\n <div>\n <div className=\"text-n1-ww-gray-500 dark:text-n1-ww-gray-400\">\n Mark Price\n </div>\n <div className=\"font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100 font-mono\">\n {position.markPrice.toFixed(2)}\n </div>\n </div>\n <div>\n <div className=\"text-n1-ww-gray-500 dark:text-n1-ww-gray-400\">PnL</div>\n <div\n className={`font-medium font-mono ${\n position.pnl >= 0\n ? 'text-green-600 dark:text-green-400'\n : 'text-red-600 dark:text-red-400'\n }`}\n >\n {position.pnl >= 0 ? '+' : ''}\n {position.pnl.toFixed(2)} (\n {position.pnlPercentage.toFixed(2)}%)\n </div>\n </div>\n <div>\n <div className=\"text-n1-ww-gray-500 dark:text-n1-ww-gray-400\">\n Liquidation\n </div>\n <div className=\"font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100 font-mono\">\n {position.liquidationPrice\n ? position.liquidationPrice.toFixed(2)\n : 'N/A'}\n </div>\n </div>\n </div>\n </div>\n ))}\n\n {loading && positions.length > 0 && (\n <div className=\"flex justify-center mt-2\">\n <RefreshCw size={16} className=\"text-n1-ww-gray-400 n1-ww-animate-spin\" />\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n*/"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LazyWalletProvider.js","sourceRoot":"","sources":["../../src/Provider/LazyWalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { useN1WalletContext, useN1WalletInternalContext } from './hooks';\nimport { logger } from '../utils/logger';\n\nfunction DynamicContextConsumer({ children }: { children: any }) {\n const [DynamicContext, setDynamicContext] = useState<any>(null);\n const showAuthFlowRef = useRef<((show: boolean) => void) | null>(null);\n const primaryWalletStateRef = useRef<any>(null);\n\n // Use refs to track previous values and prevent unnecessary updates\n const prevPrimaryWalletRef = useRef<any>(null);\n const prevHandleLogOutRef = useRef<any>(null);\n const prevSdkHasLoadedRef = useRef<boolean | null>(null);\n\n const {\n setDynamicWallet,\n setDynamicHandleLogOut,\n setDynamicSdkHasLoaded,\n setAddress,\n setShowDynamicWidget,\n setStartClosingLogin,\n } = useN1WalletInternalContext();\n\n const {\n setShowLogin,\n } = useN1WalletContext();\n\n\n // Load the Dynamic context only once\n useEffect(() => {\n let isMounted = true;\n import('@dynamic-labs/sdk-react-core').then(({ useDynamicContext }) => {\n if (isMounted) {\n setDynamicContext(() => useDynamicContext);\n }\n });\n return () => {\n isMounted = false;\n };\n }, []);\n\n // Set up a stable widget function that uses the ref - only once\n useEffect(() => {\n const stableShowWidget = (show: boolean) => {\n if (showAuthFlowRef.current) {\n showAuthFlowRef.current(show);\n }\n };\n\n setShowDynamicWidget(() => stableShowWidget);\n }, [setShowDynamicWidget]);\n\n if (!DynamicContext) {\n return <>{children}</>;\n }\n\n const DynamicComponent = () => {\n const { primaryWallet, sdkHasLoaded, setShowAuthFlow, handleLogOut } =\n DynamicContext();\n\n // Store setShowAuthFlow in ref to avoid re-renders - only when it changes\n useEffect(() => {\n if (!setShowAuthFlow) {\n showAuthFlowRef.current = null;\n return;\n }\n\n const proxiedSetShowAuthFlow = (show: boolean) => {\n setShowAuthFlow(show);\n\n if (!show && !primaryWalletStateRef.current) {\n logger.debug(\n 'Dynamic auth flow closed before wallet connection; closing modal'\n );\n setShowLogin(false);\n setStartClosingLogin(true);\n }\n };\n\n showAuthFlowRef.current = proxiedSetShowAuthFlow;\n\n return () => {\n if (showAuthFlowRef.current === proxiedSetShowAuthFlow) {\n showAuthFlowRef.current = null;\n }\n };\n }, [setShowAuthFlow, setShowLogin, setStartClosingLogin]);\n\n // Set the dynamic wallet and address when the primary wallet changes\n // Use deep comparison to prevent unnecessary updates\n useEffect(() => {\n \n // Skip if the wallet hasn't actually changed\n if (primaryWallet === prevPrimaryWalletRef.current) {\n return;\n }\n\n prevPrimaryWalletRef.current = primaryWallet;\n primaryWalletStateRef.current = primaryWallet;\n\n if (primaryWallet) {\n setDynamicWallet(primaryWallet);\n setAddress(primaryWallet.address);\n } else {\n setDynamicWallet(null);\n setAddress('');\n }\n }, [primaryWallet, setDynamicWallet, setAddress]);\n\n // Set the logout handler when it changes - only when it actually changes\n useEffect(() => {\n if (handleLogOut && handleLogOut !== prevHandleLogOutRef.current) {\n prevHandleLogOutRef.current = handleLogOut;\n setDynamicHandleLogOut(() => handleLogOut);\n }\n }, [handleLogOut, setDynamicHandleLogOut]);\n\n // Set the SDK loaded flag when it changes - only when it actually changes\n useEffect(() => {\n if (sdkHasLoaded !== prevSdkHasLoadedRef.current) {\n prevSdkHasLoadedRef.current = sdkHasLoaded;\n setDynamicSdkHasLoaded(sdkHasLoaded);\n }\n }, [sdkHasLoaded, setDynamicSdkHasLoaded]);\n\n return <>{children}</>;\n };\n\n return <DynamicComponent />;\n}\n\nconst getSettings = () => ({\n initialAuthenticationMode: 'connect-only',\n environmentId: '61fe6031-545b-4e27-bc05-03c8a09f190b',\n silentAuthentication: true,\n silentAuth: true,\n theme: {\n mode: 'dark',\n },\n events: {\n onAuthSuccess: (args: any) => {\n logger.debug('onAuthSuccess was called', args);\n },\n },\n});\n\nfunction LazyInternal(props: { children: any }) {\n const [Provider, setProvider] = useState<any>(null);\n const [DynamicWidgetComponent, setDynamicWidgetComponent] = useState<any>(null);\n const [walletConnectors, setWalletConnectors] = useState<any[]>([]);\n\n useEffect(() => {\n\n const loadDynamicDeps = async () => {\n try {\n const [\n { DynamicContextProvider, DynamicWidget },\n { SolanaWalletConnectors },\n ] = await Promise.all([\n import('@dynamic-labs/sdk-react-core'),\n import('@dynamic-labs/solana'),\n ]);\n\n setProvider(() => DynamicContextProvider);\n setDynamicWidgetComponent(() => DynamicWidget);\n setWalletConnectors([SolanaWalletConnectors]);\n } catch (error) {\n logger.error('Failed to load Dynamic dependencies:', error);\n }\n };\n\n loadDynamicDeps();\n }, []);\n\n // Memoize the dynamic settings to prevent unnecessary re-renders\n const dynamicSettings = useCallback(\n () => ({\n ...getSettings(),\n walletConnectors,\n }),\n [walletConnectors]\n );\n\n if (!Provider || walletConnectors.length === 0) {\n return null;\n }\n\n return (\n <Provider settings={dynamicSettings()} theme=\"dark\">\n <DynamicContextConsumer>{props.children}</DynamicContextConsumer>\n {DynamicWidgetComponent ? <DynamicWidgetComponent /> : null}\n </Provider>\n );\n}\n\nexport function LazyWalletProvider({ children }: any) {\n return <LazyInternal>{children}</LazyInternal>;\n}\n"]}
@@ -1,3 +0,0 @@
1
- import '../polyfills/windowEthereumGuard';
2
- import { N1WalletProviderProps } from './types';
3
- export declare function N1WalletProvider({ children, providedSessionMode, appId, onError, nord, colorOverrides, skipFinalScreen, }: N1WalletProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -1 +0,0 @@
1
- {"version":3,"file":"N1WalletProvider.js","sourceRoot":"","sources":["../../src/Provider/N1WalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport '../polyfills/windowEthereumGuard';\n\nimport React, { Suspense, useCallback, useEffect, useRef, useState } from 'react';\nimport root from 'react-shadow';\nimport { N1WalletModal } from '../Modal/N1WalletModal';\nimport { NordProvider } from '../Modal/NordFlow/context';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { logger } from '../utils/logger';\nimport WalletErrorBoundary from './WalletErrorBoundary';\nimport { N1InternalWalletContext, N1WalletContext } from './context';\nimport { useNordUserInitialization } from './hooks/useNordUserInitialization';\nimport {\n Balance,\n N1ModalViewMode,\n N1SessionMode,\n N1WalletProviderProps,\n} from './types';\n\nconst LazyWalletProvider = React.lazy(() =>\n import('./LazyWalletProvider').then((mod) => ({\n default: mod.LazyWalletProvider,\n }))\n);\n\nimport mainCss from '../embedded-main-css';\n\nfunction NordWrapper({ children }: { children: React.ReactNode }) {\n\n // Use the extracted hook for NordUser initialization\n useNordUserInitialization();\n return (\n <>\n {children}\n </>\n )\n}\n\nexport function N1WalletProvider({\n children,\n providedSessionMode,\n appId,\n onError,\n nord,\n colorOverrides,\n skipFinalScreen,\n}: N1WalletProviderProps) {\n const [isConnected, setIsConnected] = useState<boolean>(false);\n const [sessionPubKey, setSessionPubKey] = useState<Uint8Array | null>(null);\n const [walletPubKey, setWalletPubKey] = useState<Uint8Array | null>(null);\n const [userChain, setUserChain] = useState<string | null>(null);\n const [username, setUsername] = useState<string>('');\n const [signMessageWithSessionKey, setSignMessageWithSessionKey] = useState<\n ((message: any) => Promise<any>) | null\n >(null);\n const [signMessageWithWalletKey, setSignMessageWithWalletKey] = useState<\n ((message: any) => Promise<any>) | null\n >(null);\n const [signTransactionWithWalletKey, setSignTransactionWithWalletKey] =\n useState<((transaction: any) => Promise<any>) | null>(null);\n const [loading, setLoading] = useState<boolean>(false);\n const [viewMode, setViewMode] = useState<N1ModalViewMode>(\n N1ModalViewMode.Automatic\n );\n const [nordUser, setNordUser] = useState<any>(null);\n\n // dynamic\n const [balances, setBalances] = useState<Balance[]>([]);\n const [chain, setChain] = useState<string>('');\n const [dynamicSdkHasLoaded, setDynamicSdkHasLoaded] = useState<any>(null);\n\n const [showLogin, setShowLoginState] = useState<boolean>(false);\n const [startClosingLogin, setStartClosingLogin] = useState<boolean>(false);\n const [showDynamicWidget, setShowDynamicWidget] = useState<any>(null);\n const [depositFlowRequestId, setDepositFlowRequestId] = useState(0);\n const nextOpenAllowedAtRef = useRef(0);\n\n // dynamic\n const [address, setAddress] = useState<string>('');\n const [dynamicHandleLogOut, setDynamicHandleLogOut] = useState<any>(null);\n const [dynamicWallet, setDynamicWallet] = useState<any>(null);\n const sessionMode = N1SessionMode.Nord;\n\n useEffect(() => {\n if (providedSessionMode !== N1SessionMode.Nord) {\n logger.warn(\n `Only Nord session mode is supported. Received ${providedSessionMode}, defaulting to Nord.`\n );\n }\n }, [providedSessionMode]);\n\n useEffect(() => {\n const isDynamicReady = Boolean(dynamicSdkHasLoaded);\n setLoading(!isDynamicReady);\n }, [dynamicSdkHasLoaded, setLoading]);\n\n const handleError = useCallback(\n (error: WalletError) => {\n onError?.(error);\n },\n [onError]\n );\n\n const throwTestError = async () => {\n handleError(\n new WalletError(\n WalletErrorCode.WALLET_NOT_FOUND,\n 'Test error: No compatible wallet was found'\n )\n );\n };\n\n // Prepare CSS with color overrides if provided\n let injectedCss = mainCss;\n if (Array.isArray(colorOverrides) && colorOverrides.length > 0) {\n // Apply all color overrides in order\n colorOverrides.forEach(({ color, replacement }) => {\n if (color && replacement) {\n // Replace all instances, case-insensitive\n const regex = new RegExp(color.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'gi');\n injectedCss = injectedCss.replace(regex, replacement);\n }\n });\n }\n\n const blockModalReopen = useCallback((duration: number = 600) => {\n const unblockAt = Date.now() + duration;\n logger.debug('blockModalReopen invoked', { duration, unblockAt });\n nextOpenAllowedAtRef.current = Date.now() + duration;\n }, []);\n\n const setShowLogin = useCallback(\n (next: boolean) => {\n setShowLoginState((prev) => {\n logger.debug('setShowLogin invoked', {\n next,\n prev,\n now: Date.now(),\n nextOpenAllowed: nextOpenAllowedAtRef.current,\n });\n\n if (next === prev) {\n return prev;\n }\n\n if (next) {\n logger.debug('setShowLogin opening request stack trace', {\n stack: new Error('setShowLogin stack').stack,\n });\n if (Date.now() < nextOpenAllowedAtRef.current) {\n logger.debug('setShowLogin blocked by cooldown', {\n next,\n prev,\n });\n return prev;\n }\n logger.debug('setShowLogin opening modal');\n return true;\n }\n\n logger.debug('setShowLogin closing modal');\n blockModalReopen();\n return false;\n });\n },\n [blockModalReopen]\n );\n\n const startDepositFlow = useCallback(() => {\n if (!nordUser || !nordUser.sessionId) {\n logger.warn(\n 'startDepositFlow called without an authenticated Nord session; falling back to regular flow'\n );\n setShowLogin(true);\n return false;\n }\n\n setStartClosingLogin(false);\n setDepositFlowRequestId((prev) => prev + 1);\n setShowLogin(true);\n return true;\n }, [nordUser, setShowLogin, setStartClosingLogin]);\n\n // Create the wallet context value\n const walletContextValue = {\n address,\n appId,\n balances,\n chain,\n isConnected,\n sessionMode,\n sessionPubKey,\n setShowLogin,\n startDepositFlow,\n setViewMode,\n showLogin,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n userChain,\n username,\n viewMode,\n walletPubKey,\n throwTestError,\n nord,\n nordUser,\n };\n\n // Create the internal wallet context value\n const internalWalletContextValue = {\n dynamicHandleLogOut,\n dynamicWallet,\n loading,\n dynamicSdkHasLoaded,\n handleError,\n setDynamicSdkHasLoaded,\n setAddress,\n setBalances,\n setChain,\n setDynamicHandleLogOut,\n setDynamicWallet,\n setIsConnected,\n setLoading,\n blockModalReopen,\n setSessionPubKey,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n setStartClosingLogin,\n setUsername,\n setUserChain,\n setViewMode,\n setWalletPubKey,\n startClosingLogin,\n showDynamicWidget,\n setShowDynamicWidget,\n sessionMode,\n setNordUser,\n depositFlowRequestId,\n };\n\n const ModalContent = () => (\n <root.div>\n <style>{injectedCss}</style>\n <N1WalletModal />\n </root.div>\n );\n\n return (\n <WalletErrorBoundary onError={handleError}>\n <N1WalletContext.Provider value={walletContextValue}>\n <N1InternalWalletContext.Provider\n value={{\n ...internalWalletContextValue,\n skipFinalScreen, // make available to modal context tree\n }}\n >\n <NordWrapper>\n <NordProvider>\n <>\n {children}\n <Suspense fallback={<ModalContent />}>\n <LazyWalletProvider>\n <ModalContent />\n </LazyWalletProvider>\n </Suspense>\n </>\n </NordProvider>\n </NordWrapper>\n </N1InternalWalletContext.Provider>\n </N1WalletContext.Provider>\n </WalletErrorBoundary>\n );\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShadowRootWrapper.js","sourceRoot":"","sources":["../../src/Provider/ShadowRootWrapper.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,cAAc,CAAC;AAOhC,MAAM,UAAU,iBAAiB,CAAC,EAAiD;QAA/C,QAAQ,cAAA,EAAE,WAAW,iBAAA;IACvD,OAAO,CACL,MAAC,IAAI,CAAC,GAAG,eACP,0BAAQ,WAAW,GAAS,EAC3B,QAAQ,IACA,CACZ,CAAC;AACJ,CAAC","sourcesContent":["import React from 'react';\nimport root from 'react-shadow';\n\ninterface ShadowRootWrapperProps {\n children: React.ReactNode;\n injectedCss: string;\n}\n\nexport function ShadowRootWrapper({ children, injectedCss }: ShadowRootWrapperProps) {\n return (\n <root.div>\n <style>{injectedCss}</style>\n {children}\n </root.div>\n );\n} \n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WalletErrorBoundary.js","sourceRoot":"","sources":["../../src/Provider/WalletErrorBoundary.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAW/D,uCAAuC;AACvC;IAAkC,uCAGjC;IAHD;;QAIE,WAAK,GAA6B;YAChC,QAAQ,EAAE,KAAK;SAChB,CAAC;;IAuCJ,CAAC;IArCQ,4CAAwB,GAA/B;QACE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,+CAAiB,GAAjB,UAAkB,KAAY;QAC5B,OAAO,CAAC,KAAK,CAAC,8DAA8D,EAAE,KAAK,CAAC,CAAC;QACrF,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAChB,IAAI,WAAW,CACb,eAAe,CAAC,OAAO,EACvB,KAAK,CAAC,OAAO,IAAI,8BAA8B,EAC/C,EAAE,aAAa,EAAE,KAAK,EAAE,CACzB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gDAAkB,GAAlB,UACE,SAAmC,EACnC,SAAmC;QAEnC,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC5F,wDAAwD;YACxD,yDAAyD;YACzD,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,oCAAM,GAAN;QACE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IACH,0BAAC;AAAD,CAAC,AA7CD,CAAkC,KAAK,CAAC,SAAS,GA6ChD;AAED,eAAe,mBAAmB,CAAC","sourcesContent":["import React from 'react';\nimport { WalletError, WalletErrorCode } from '../errors/types';\n\ntype WalletErrorBoundaryProps = {\n children: React.ReactNode;\n onError: (error: WalletError) => void;\n};\n\ntype WalletErrorBoundaryState = {\n hasError: boolean;\n};\n\n// Error boundary to catch WalletErrors\nclass WalletErrorBoundary extends React.Component<\n WalletErrorBoundaryProps,\n WalletErrorBoundaryState\n> {\n state: WalletErrorBoundaryState = {\n hasError: false,\n };\n\n static getDerivedStateFromError(): WalletErrorBoundaryState {\n return { hasError: true };\n }\n\n componentDidCatch(error: Error) {\n console.error('[N1 Wallet] Unhandled error captured by WalletErrorBoundary:', error);\n if (error instanceof WalletError) {\n this.props.onError(error);\n } else {\n // Convert unknown errors to WalletError\n this.props.onError(\n new WalletError(\n WalletErrorCode.UNKNOWN,\n error.message || 'An unexpected error occurred',\n { originalError: error }\n )\n );\n }\n }\n\n componentDidUpdate(\n prevProps: WalletErrorBoundaryProps,\n prevState: WalletErrorBoundaryState\n ) {\n if (prevState.hasError && this.state.hasError && prevProps.children !== this.props.children) {\n // reset error state when children change after an error\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ hasError: false });\n }\n }\n\n render() {\n if (this.state.hasError) {\n return null;\n }\n return this.props.children;\n }\n}\n\nexport default WalletErrorBoundary;\n"]}