@n1xyz/wallet-widget 0.0.9 → 0.0.11

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 (180) hide show
  1. package/dist/Logic/transactionManager.d.ts +1 -1
  2. package/dist/Logic/transactionManager.js +1 -1
  3. package/dist/Logic/transactionManager.js.map +1 -1
  4. package/dist/Modal/LoadingFallback.js +1 -1
  5. package/dist/Modal/LoadingFallback.js.map +1 -1
  6. package/dist/Modal/NTSFlow/LoadingFallback.js +1 -1
  7. package/dist/Modal/NTSFlow/LoadingFallback.js.map +1 -1
  8. package/dist/Modal/NTSFlow/components/BackButton.js +2 -2
  9. package/dist/Modal/NTSFlow/components/BackButton.js.map +1 -1
  10. package/dist/Modal/NTSFlow/components/ModalHeader.js +1 -1
  11. package/dist/Modal/NTSFlow/components/ModalHeader.js.map +1 -1
  12. package/dist/Modal/NTSFlow/views/ConnectView.js +2 -2
  13. package/dist/Modal/NTSFlow/views/ConnectView.js.map +1 -1
  14. package/dist/Modal/NTSFlow/views/CreateSessionView.js +5 -5
  15. package/dist/Modal/NTSFlow/views/CreateSessionView.js.map +1 -1
  16. package/dist/Modal/NTSFlow/views/CreateUserView.js +1 -1
  17. package/dist/Modal/NTSFlow/views/CreateUserView.js.map +1 -1
  18. package/dist/Modal/NTSFlow/views/NoWhitelistView.js +3 -3
  19. package/dist/Modal/NTSFlow/views/NoWhitelistView.js.map +1 -1
  20. package/dist/Modal/NTSFlow/views/SigningView.js +1 -1
  21. package/dist/Modal/NTSFlow/views/SigningView.js.map +1 -1
  22. package/dist/Modal/NordFlow/NordFlow.js +22 -228
  23. package/dist/Modal/NordFlow/NordFlow.js.map +1 -1
  24. package/dist/Modal/NordFlow/components/ChainButton.js +5 -5
  25. package/dist/Modal/NordFlow/components/ChainButton.js.map +1 -1
  26. package/dist/Modal/NordFlow/components/EVMChainsButton.js +4 -4
  27. package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +1 -1
  28. package/dist/Modal/NordFlow/components/Header.d.ts +10 -0
  29. package/dist/Modal/NordFlow/components/Header.js +11 -0
  30. package/dist/Modal/NordFlow/components/Header.js.map +1 -0
  31. package/dist/Modal/NordFlow/components/ImageWithFallback.js +1 -1
  32. package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +1 -1
  33. package/dist/Modal/NordFlow/components/LoadingSquares.js +1 -1
  34. package/dist/Modal/NordFlow/components/LoadingSquares.js.map +1 -1
  35. package/dist/Modal/NordFlow/components/MoreButton.js +4 -4
  36. package/dist/Modal/NordFlow/components/MoreButton.js.map +1 -1
  37. package/dist/Modal/NordFlow/components/TransactionTable.js +7 -10
  38. package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -1
  39. package/dist/Modal/NordFlow/components/WaitingMessage.js +1 -1
  40. package/dist/Modal/NordFlow/components/WaitingMessage.js.map +1 -1
  41. package/dist/Modal/NordFlow/components/index.d.ts +1 -0
  42. package/dist/Modal/NordFlow/components/index.js +1 -0
  43. package/dist/Modal/NordFlow/components/index.js.map +1 -1
  44. package/dist/Modal/NordFlow/constants.js +116 -95
  45. package/dist/Modal/NordFlow/constants.js.map +1 -1
  46. package/dist/Modal/NordFlow/context/DepositContext.d.ts +27 -0
  47. package/dist/Modal/NordFlow/context/DepositContext.js +308 -0
  48. package/dist/Modal/NordFlow/context/DepositContext.js.map +1 -0
  49. package/dist/Modal/NordFlow/context/FlowContext.d.ts +23 -0
  50. package/dist/Modal/NordFlow/context/FlowContext.js +125 -0
  51. package/dist/Modal/NordFlow/context/FlowContext.js.map +1 -0
  52. package/dist/Modal/NordFlow/context/NordProvider.d.ts +10 -0
  53. package/dist/Modal/NordFlow/context/NordProvider.js +14 -0
  54. package/dist/Modal/NordFlow/context/NordProvider.js.map +1 -0
  55. package/dist/Modal/NordFlow/context/WalletConnectContext.d.ts +20 -0
  56. package/dist/Modal/NordFlow/context/WalletConnectContext.js +214 -0
  57. package/dist/Modal/NordFlow/context/WalletConnectContext.js.map +1 -0
  58. package/dist/Modal/NordFlow/context/deposit/types.d.ts +26 -0
  59. package/dist/Modal/NordFlow/context/deposit/types.js +2 -0
  60. package/dist/Modal/NordFlow/context/deposit/types.js.map +1 -0
  61. package/dist/Modal/NordFlow/context/deposit/useDepositAuth.d.ts +7 -0
  62. package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js +113 -0
  63. package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js.map +1 -0
  64. package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.d.ts +20 -0
  65. package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js +235 -0
  66. package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js.map +1 -0
  67. package/dist/Modal/NordFlow/context/index.d.ts +5 -0
  68. package/dist/Modal/NordFlow/context/index.js +8 -0
  69. package/dist/Modal/NordFlow/context/index.js.map +1 -0
  70. package/dist/Modal/NordFlow/hooks/index.d.ts +3 -5
  71. package/dist/Modal/NordFlow/hooks/index.js +3 -5
  72. package/dist/Modal/NordFlow/hooks/index.js.map +1 -1
  73. package/dist/Modal/NordFlow/hooks/useDepositFlow.js +2 -4
  74. package/dist/Modal/NordFlow/hooks/useDepositFlow.js.map +1 -1
  75. package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +0 -6
  76. package/dist/Modal/NordFlow/hooks/useNordInstance.js +2 -358
  77. package/dist/Modal/NordFlow/hooks/useNordInstance.js.map +1 -1
  78. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.d.ts +0 -1
  79. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +0 -1
  80. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js.map +1 -1
  81. package/dist/Modal/NordFlow/screens/00-IdleScreen.d.ts +6 -0
  82. package/dist/Modal/NordFlow/screens/00-IdleScreen.js +9 -0
  83. package/dist/Modal/NordFlow/screens/00-IdleScreen.js.map +1 -0
  84. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.d.ts +1 -6
  85. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +12 -6
  86. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -1
  87. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +1 -5
  88. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +13 -16
  89. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js.map +1 -1
  90. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.d.ts +1 -7
  91. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +11 -9
  92. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js.map +1 -1
  93. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.d.ts +1 -13
  94. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +59 -31
  95. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -1
  96. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.d.ts +1 -6
  97. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +9 -4
  98. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js.map +1 -1
  99. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.d.ts +1 -8
  100. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +18 -7
  101. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js.map +1 -1
  102. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.d.ts +1 -6
  103. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +15 -121
  104. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js.map +1 -1
  105. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.d.ts +1 -1
  106. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +10 -5
  107. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +1 -1
  108. package/dist/Modal/NordFlow/screens/09-ErrorScreen.d.ts +1 -7
  109. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +9 -9
  110. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js.map +1 -1
  111. package/dist/Modal/NordFlow/screens/index.d.ts +1 -0
  112. package/dist/Modal/NordFlow/screens/index.js +1 -0
  113. package/dist/Modal/NordFlow/screens/index.js.map +1 -1
  114. package/dist/Modal/NordFlow/types.d.ts +0 -5
  115. package/dist/Modal/NordFlow/types.js +0 -1
  116. package/dist/Modal/NordFlow/types.js.map +1 -1
  117. package/dist/Modal/NordFlow/utils/index.d.ts +0 -1
  118. package/dist/Modal/NordFlow/utils/index.js +0 -1
  119. package/dist/Modal/NordFlow/utils/index.js.map +1 -1
  120. package/dist/Modal/Sidebar/N1Sidebar.js +10 -10
  121. package/dist/Modal/Sidebar/N1Sidebar.js.map +1 -1
  122. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +5 -5
  123. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +1 -1
  124. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +3 -3
  125. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +1 -1
  126. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +2 -2
  127. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +1 -1
  128. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +2 -2
  129. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +1 -1
  130. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +1 -1
  131. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js.map +1 -1
  132. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +4 -4
  133. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js.map +1 -1
  134. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +6 -6
  135. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js.map +1 -1
  136. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +1 -1
  137. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js.map +1 -1
  138. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +3 -3
  139. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js.map +1 -1
  140. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +7 -7
  141. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js.map +1 -1
  142. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +13 -13
  143. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js.map +1 -1
  144. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +1 -1
  145. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js.map +1 -1
  146. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +2 -2
  147. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js.map +1 -1
  148. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +1 -1
  149. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js.map +1 -1
  150. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +5 -5
  151. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +1 -1
  152. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +1 -1
  153. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +1 -1
  154. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +5 -5
  155. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js.map +1 -1
  156. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +4 -4
  157. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +1 -1
  158. package/dist/Provider/LazyWalletProvider.js +2 -0
  159. package/dist/Provider/LazyWalletProvider.js.map +1 -1
  160. package/dist/Provider/N1WalletProvider.js +48 -63
  161. package/dist/Provider/N1WalletProvider.js.map +1 -1
  162. package/dist/Provider/WalletErrorBoundary.d.ts +10 -0
  163. package/dist/Provider/WalletErrorBoundary.js +39 -0
  164. package/dist/Provider/WalletErrorBoundary.js.map +1 -0
  165. package/dist/Provider/hooks/useNordUserInitialization.d.ts +20 -0
  166. package/dist/Provider/hooks/useNordUserInitialization.js +293 -0
  167. package/dist/Provider/hooks/useNordUserInitialization.js.map +1 -0
  168. package/dist/Provider/types.d.ts +2 -0
  169. package/dist/Provider/types.js.map +1 -1
  170. package/dist/Provider/useN1WalletProvider.d.ts +37 -0
  171. package/dist/Provider/useN1WalletProvider.js +398 -0
  172. package/dist/Provider/useN1WalletProvider.js.map +1 -0
  173. package/dist/components/QRCodeLoader.js +1 -1
  174. package/dist/components/QRCodeLoader.js.map +1 -1
  175. package/dist/components/logos/EVMChainsGroup.js +1 -1
  176. package/dist/components/logos/EVMChainsGroup.js.map +1 -1
  177. package/dist/components/logos/MoreChainsGroup.js +1 -1
  178. package/dist/components/logos/MoreChainsGroup.js.map +1 -1
  179. package/dist/main.css +1 -1
  180. package/package.json +1 -1
@@ -0,0 +1,214 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { jsx as _jsx } from "react/jsx-runtime";
38
+ import { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react';
39
+ import { useN1WalletContext, useN1WalletInternalContext } from '../../../Provider/hooks';
40
+ import { logger } from '../../../utils/logger';
41
+ import { FlowState } from '../types';
42
+ import { useFlowStateContext } from './FlowContext';
43
+ // Create the context with a default value
44
+ var WalletConnectContext = createContext(undefined);
45
+ /**
46
+ * Provider component for the wallet connect context
47
+ */
48
+ export var WalletConnectProvider = function (_a) {
49
+ var children = _a.children;
50
+ var _b = useN1WalletContext(), nord = _b.nord, nordUser = _b.nordUser;
51
+ var _c = useN1WalletInternalContext(), showDynamicWidget = _c.showDynamicWidget, dynamicWallet = _c.dynamicWallet, setIsConnected = _c.setIsConnected, dynamicSdkHasLoaded = _c.dynamicSdkHasLoaded;
52
+ var dynamicHandleLogOut = useN1WalletInternalContext().dynamicHandleLogOut;
53
+ // Get flow context
54
+ var _d = useFlowStateContext(), state = _d.state, transition = _d.transition, updateContext = _d.updateContext;
55
+ var _e = useState(false), isConnecting = _e[0], setIsConnecting = _e[1];
56
+ // Use refs to track previous values
57
+ var processedWalletAddressRef = useRef(null);
58
+ var prevNordUserRef = useRef(nordUser);
59
+ var prevStateRef = useRef(state);
60
+ /**
61
+ * Disconnect wallet
62
+ */
63
+ var disconnectWallet = useCallback(function () {
64
+ logger.debug('Disconnecting wallet');
65
+ try {
66
+ dynamicHandleLogOut();
67
+ }
68
+ catch (_) {
69
+ //
70
+ }
71
+ processedWalletAddressRef.current = null;
72
+ updateContext({ walletType: null });
73
+ // todo: delete sessionId from localStorage
74
+ window.location.reload();
75
+ }, [updateContext]);
76
+ /**
77
+ * Connect wallet using Dynamic widget
78
+ */
79
+ var connectWallet = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
80
+ var error_1;
81
+ return __generator(this, function (_a) {
82
+ switch (_a.label) {
83
+ case 0:
84
+ if (isConnecting || !showDynamicWidget || !dynamicSdkHasLoaded)
85
+ return [2 /*return*/];
86
+ setIsConnecting(true);
87
+ logger.debug('Starting wallet connection process');
88
+ _a.label = 1;
89
+ case 1:
90
+ _a.trys.push([1, 3, , 4]);
91
+ return [4 /*yield*/, showDynamicWidget(true)];
92
+ case 2:
93
+ _a.sent();
94
+ logger.debug('Dynamic widget shown');
95
+ return [3 /*break*/, 4];
96
+ case 3:
97
+ error_1 = _a.sent();
98
+ setIsConnecting(false);
99
+ updateContext({ walletType: null });
100
+ logger.error('Error showing Dynamic widget:', error_1);
101
+ return [3 /*break*/, 4];
102
+ case 4: return [2 /*return*/];
103
+ }
104
+ });
105
+ }); }, [isConnecting, showDynamicWidget, updateContext, dynamicSdkHasLoaded]);
106
+ // Process nordUser changes
107
+ useEffect(function () {
108
+ if (!dynamicSdkHasLoaded)
109
+ return;
110
+ var currentNordUser = nordUser;
111
+ var prevNordUser = prevNordUserRef.current;
112
+ // Only run if nordUser has changed and we have processed a wallet
113
+ if (currentNordUser && currentNordUser !== prevNordUser) {
114
+ logger.debug('NordUser changed, checking account status');
115
+ (function () { return __awaiter(void 0, void 0, void 0, function () {
116
+ var hasNordAccount_1, sessionId, hasActiveSession_1, transitionDestination_1, error_2;
117
+ return __generator(this, function (_a) {
118
+ switch (_a.label) {
119
+ case 0:
120
+ _a.trys.push([0, 2, , 3]);
121
+ if (!dynamicWallet)
122
+ return [2 /*return*/];
123
+ return [4 /*yield*/, nord.accountExists(dynamicWallet.address)];
124
+ case 1:
125
+ hasNordAccount_1 = _a.sent();
126
+ sessionId = currentNordUser.sessionId;
127
+ hasActiveSession_1 = sessionId != null;
128
+ console.log('hasNordAccount', hasNordAccount_1, 'hasActiveSession', hasActiveSession_1, 'sessionId', sessionId, 'dynamicWallet', dynamicWallet, 'zzzzzzzzzzzz');
129
+ updateContext({ hasNordAccount: hasNordAccount_1, hasActiveSession: hasActiveSession_1 });
130
+ console.log('hasNordAccount', hasNordAccount_1, 'hasActiveSession', hasActiveSession_1, 'sessionId', sessionId, 'dynamicWallet', dynamicWallet);
131
+ transitionDestination_1 = hasNordAccount_1
132
+ ? sessionId != null
133
+ ? FlowState.FINAL_SUCCESS
134
+ : FlowState.AUTH_LOADING
135
+ : FlowState.CHAIN_SELECTION;
136
+ if (hasNordAccount_1 && sessionId != null) {
137
+ setIsConnected(true);
138
+ }
139
+ // Force a small delay to ensure UI updates properly
140
+ setTimeout(function () {
141
+ try {
142
+ logger.debug('Attempting transition to ' + transitionDestination_1);
143
+ transition(transitionDestination_1, {
144
+ walletType: 'solana',
145
+ hasNordAccount: hasNordAccount_1,
146
+ hasActiveSession: hasActiveSession_1,
147
+ });
148
+ logger.debug('Transition to ' + transitionDestination_1 + ' completed');
149
+ }
150
+ catch (error) {
151
+ logger.error('Error during transition:', error);
152
+ }
153
+ finally {
154
+ setIsConnecting(false);
155
+ }
156
+ }, 100);
157
+ return [3 /*break*/, 3];
158
+ case 2:
159
+ error_2 = _a.sent();
160
+ logger.error('Error checking account status:', error_2);
161
+ setIsConnecting(false);
162
+ return [3 /*break*/, 3];
163
+ case 3: return [2 /*return*/];
164
+ }
165
+ });
166
+ }); })();
167
+ }
168
+ else {
169
+ transition(FlowState.CONNECTING_WALLET);
170
+ }
171
+ // Update ref
172
+ prevNordUserRef.current = currentNordUser;
173
+ }, [
174
+ nordUser,
175
+ dynamicWallet,
176
+ updateContext,
177
+ transition,
178
+ setIsConnected
179
+ ]);
180
+ // Handle connecting state changes in a separate effect
181
+ useEffect(function () {
182
+ var currentState = state;
183
+ var prevState = prevStateRef.current;
184
+ // Only run if state has changed
185
+ if (currentState !== prevState) {
186
+ if (currentState !== FlowState.CONNECTING_WALLET && isConnecting) {
187
+ // If we're no longer in the connecting state, reset the connecting flag
188
+ setIsConnecting(false);
189
+ }
190
+ // Update ref
191
+ prevStateRef.current = currentState;
192
+ }
193
+ }, [state, isConnecting]);
194
+ // Create the context value
195
+ var contextValue = {
196
+ isConnecting: isConnecting,
197
+ connectWallet: connectWallet,
198
+ disconnectWallet: disconnectWallet,
199
+ };
200
+ return (_jsx(WalletConnectContext.Provider, { value: contextValue, children: children }));
201
+ };
202
+ /**
203
+ * Custom hook to use the wallet connect context
204
+ * @returns The wallet connect context value
205
+ * @throws Error if used outside of a WalletConnectProvider
206
+ */
207
+ export var useWalletConnectContext = function () {
208
+ var context = useContext(WalletConnectContext);
209
+ if (context === undefined) {
210
+ throw new Error('useWalletConnectContext must be used within a WalletConnectProvider');
211
+ }
212
+ return context;
213
+ };
214
+ //# sourceMappingURL=WalletConnectContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletConnectContext.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/context/WalletConnectContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { useN1WalletContext, useN1WalletInternalContext } from '../../../Provider/hooks';\nimport { N1SessionMode } from '../../../Provider/types';\nimport { logger } from '../../../utils/logger';\nimport { FlowState, initialFlowContext } from '../types';\nimport { useFlowStateContext } from './FlowContext';\n\n// Define the shape of the context value\nexport interface WalletConnectContextValue {\n isConnecting: boolean;\n connectWallet: () => Promise<void>;\n disconnectWallet: () => void;\n}\n\n// Create the context with a default value\nconst WalletConnectContext = createContext<WalletConnectContextValue | undefined>(undefined);\n\n// Props for the provider component\ninterface WalletConnectProviderProps {\n children: React.ReactNode;\n}\n\n/**\n * Provider component for the wallet connect context\n */\nexport const WalletConnectProvider: React.FC<WalletConnectProviderProps> = ({\n children,\n}) => {\n const { nord, nordUser } = useN1WalletContext();\n const { showDynamicWidget, dynamicWallet, setIsConnected, dynamicSdkHasLoaded } = useN1WalletInternalContext();\n const { dynamicHandleLogOut } = useN1WalletInternalContext();\n\n // Get flow context\n const {\n state,\n transition,\n updateContext,\n } = useFlowStateContext();\n\n const [isConnecting, setIsConnecting] = useState(false);\n\n // Use refs to track previous values\n const processedWalletAddressRef = useRef<string | null>(null);\n const prevNordUserRef = useRef(nordUser);\n const prevStateRef = useRef(state);\n\n\n /**\n * Disconnect wallet\n */\n const disconnectWallet = useCallback(() => {\n logger.debug('Disconnecting wallet');\n try {\n dynamicHandleLogOut()\n } catch (_) {\n // \n }\n processedWalletAddressRef.current = null;\n updateContext({ walletType: null });\n // todo: delete sessionId from localStorage\n window.location.reload();\n }, [updateContext]);\n\n /**\n * Connect wallet using Dynamic widget\n */\n const connectWallet = useCallback(async () => {\n if (isConnecting || !showDynamicWidget || !dynamicSdkHasLoaded) return;\n\n setIsConnecting(true);\n logger.debug('Starting wallet connection process');\n\n try {\n await showDynamicWidget(true);\n logger.debug('Dynamic widget shown');\n } catch (error) {\n setIsConnecting(false);\n updateContext({ walletType: null });\n logger.error('Error showing Dynamic widget:', error);\n }\n }, [isConnecting, showDynamicWidget, updateContext, dynamicSdkHasLoaded]);\n\n // Process nordUser changes\n useEffect(() => {\n if (!dynamicSdkHasLoaded) return\n\n const currentNordUser = nordUser;\n const prevNordUser = prevNordUserRef.current;\n\n // Only run if nordUser has changed and we have processed a wallet\n if (currentNordUser && currentNordUser !== prevNordUser) {\n logger.debug('NordUser changed, checking account status');\n\n (async () => {\n try {\n if (!dynamicWallet) return;\n\n const hasNordAccount = await nord!.accountExists(dynamicWallet.address);\n const sessionId = currentNordUser.sessionId;\n const hasActiveSession = sessionId != null;\n console.log('hasNordAccount', hasNordAccount, 'hasActiveSession', hasActiveSession, 'sessionId', sessionId, 'dynamicWallet', dynamicWallet,'zzzzzzzzzzzz')\n\n updateContext({ hasNordAccount, hasActiveSession });\n\n console.log('hasNordAccount', hasNordAccount, 'hasActiveSession', hasActiveSession, 'sessionId', sessionId, 'dynamicWallet', dynamicWallet)\n\n const transitionDestination = hasNordAccount\n ? sessionId != null\n ? FlowState.FINAL_SUCCESS\n : FlowState.AUTH_LOADING\n : FlowState.CHAIN_SELECTION;\n\n if (hasNordAccount && sessionId != null) {\n setIsConnected(true);\n }\n\n // Force a small delay to ensure UI updates properly\n setTimeout(() => {\n try {\n logger.debug('Attempting transition to ' + transitionDestination);\n transition(transitionDestination, {\n walletType: 'solana',\n hasNordAccount,\n hasActiveSession,\n });\n logger.debug(\n 'Transition to ' + transitionDestination + ' completed'\n );\n } catch (error) {\n logger.error('Error during transition:', error);\n } finally {\n setIsConnecting(false);\n }\n }, 100);\n } catch (error) {\n logger.error('Error checking account status:', error);\n setIsConnecting(false);\n }\n })();\n }else{\n transition(FlowState.CONNECTING_WALLET)\n }\n\n // Update ref\n prevNordUserRef.current = currentNordUser;\n }, [\n nordUser,\n dynamicWallet,\n updateContext,\n transition,\n setIsConnected\n ]);\n\n\n\n\n // Handle connecting state changes in a separate effect\n useEffect(() => {\n const currentState = state;\n const prevState = prevStateRef.current;\n\n // Only run if state has changed\n if (currentState !== prevState) {\n if (currentState !== FlowState.CONNECTING_WALLET && isConnecting) {\n // If we're no longer in the connecting state, reset the connecting flag\n setIsConnecting(false);\n }\n\n // Update ref\n prevStateRef.current = currentState;\n }\n }, [state, isConnecting]);\n\n // Create the context value\n const contextValue: WalletConnectContextValue = {\n isConnecting,\n connectWallet,\n disconnectWallet,\n };\n\n return (\n <WalletConnectContext.Provider value={contextValue}>\n {children}\n </WalletConnectContext.Provider>\n );\n};\n\n/**\n * Custom hook to use the wallet connect context\n * @returns The wallet connect context value\n * @throws Error if used outside of a WalletConnectProvider\n */\nexport const useWalletConnectContext = (): WalletConnectContextValue => {\n const context = useContext(WalletConnectContext);\n\n if (context === undefined) {\n throw new Error('useWalletConnectContext must be used within a WalletConnectProvider');\n }\n\n return context;\n}; "]}
@@ -0,0 +1,26 @@
1
+ import { TransactionResult } from '../../../../Logic/transactionManager';
2
+ export interface DepositContextValue {
3
+ amount: string;
4
+ isDepositing: boolean;
5
+ transactionId: string | null;
6
+ transactionResult: TransactionResult | null;
7
+ authStatus: 'loading' | 'success' | 'error';
8
+ authErrorMessage: string | null;
9
+ authStatusMessage: string | null;
10
+ updateAmount: (newAmount: string) => void;
11
+ startDeposit: () => Promise<void>;
12
+ completeDeposit: () => void;
13
+ performAuth: () => Promise<void>;
14
+ getTransactionDetails: () => {
15
+ amount: string;
16
+ tx: string;
17
+ from: string;
18
+ to: string;
19
+ network: string;
20
+ status: string;
21
+ explorerUrl: string;
22
+ };
23
+ }
24
+ export interface DepositProviderProps {
25
+ children: React.ReactNode;
26
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/Modal/NordFlow/context/deposit/types.ts"],"names":[],"mappings":"","sourcesContent":["import { TransactionResult } from '../../../../Logic/transactionManager';\n\n// Define the shape of the deposit context value\nexport interface DepositContextValue {\n amount: string;\n isDepositing: boolean;\n transactionId: string | null;\n transactionResult: TransactionResult | null;\n authStatus: 'loading' | 'success' | 'error';\n authErrorMessage: string | null;\n authStatusMessage: string | null;\n updateAmount: (newAmount: string) => void;\n startDeposit: () => Promise<void>;\n completeDeposit: () => void;\n performAuth: () => Promise<void>;\n getTransactionDetails: () => {\n amount: string;\n tx: string;\n from: string;\n to: string;\n network: string;\n status: string;\n explorerUrl: string;\n };\n}\n\n// Props for the provider component\nexport interface DepositProviderProps {\n children: React.ReactNode;\n} "]}
@@ -0,0 +1,7 @@
1
+ import { FlowState } from '../../types';
2
+ export declare const useDepositAuth: (updateContext: (context: any) => void, transition: (state: FlowState, context?: any) => void, address: string | null) => {
3
+ authStatus: "error" | "loading" | "success";
4
+ authErrorMessage: string | null;
5
+ authStatusMessage: string | null;
6
+ performAuth: () => Promise<void>;
7
+ };
@@ -0,0 +1,113 @@
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, useState } from 'react';
38
+ import { useN1WalletContext } from '../../../../Provider/hooks';
39
+ import { logger } from '../../../../utils/logger';
40
+ import { FlowState } from '../../types';
41
+ export var useDepositAuth = function (updateContext, transition, address) {
42
+ // auth states
43
+ var _a = useState('loading'), authStatus = _a[0], setAuthStatus = _a[1];
44
+ var _b = useState(null), authErrorMessage = _b[0], setAuthErrorMessage = _b[1];
45
+ var _c = useState(null), authStatusMessage = _c[0], setAuthStatusMessage = _c[1];
46
+ var nordUser = useN1WalletContext().nordUser;
47
+ /**
48
+ * Authenticate session
49
+ */
50
+ var performAuth = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
51
+ var sessionPubKey, sessionId, sessionIdKey, error_1;
52
+ return __generator(this, function (_a) {
53
+ switch (_a.label) {
54
+ case 0:
55
+ _a.trys.push([0, 3, , 4]);
56
+ // Step 1: Tell user to sign transaction
57
+ setAuthStatusMessage('Please sign the transaction to authenticate your session');
58
+ if (!nordUser) {
59
+ throw new Error('Nord user is not initialized');
60
+ }
61
+ // Step 2: Call nordUser.refreshSession and get sessionId
62
+ setAuthStatusMessage('Session is being authenticated...');
63
+ sessionPubKey = nordUser.sessionPubKey;
64
+ if (!sessionPubKey) {
65
+ throw new Error('Session public key is not available');
66
+ }
67
+ // Refresh the session
68
+ return [4 /*yield*/, nordUser.refreshSession(sessionPubKey)];
69
+ case 1:
70
+ // Refresh the session
71
+ _a.sent();
72
+ return [4 /*yield*/, nordUser.updateAccountId()];
73
+ case 2:
74
+ _a.sent();
75
+ sessionId = nordUser.sessionId;
76
+ if (!sessionId) {
77
+ throw new Error('Failed to get session ID after refresh');
78
+ }
79
+ logger.debug('Session refreshed successfully', {
80
+ sessionId: sessionId.toString(),
81
+ });
82
+ // Step 3: Store sessionId in localStorage
83
+ if (address) {
84
+ sessionIdKey = "n1_sessionId_".concat(address);
85
+ localStorage.setItem(sessionIdKey, sessionId.toString());
86
+ logger.debug('Stored sessionId in localStorage', { key: sessionIdKey });
87
+ }
88
+ // Step 4: Update status to success
89
+ setAuthStatus('success');
90
+ // Step 5: Update context and transition to success
91
+ updateContext({ hasActiveSession: true });
92
+ setTimeout(function () {
93
+ transition(FlowState.FINAL_SUCCESS, { hasActiveSession: true, hasNordAccount: true });
94
+ }, 100);
95
+ return [3 /*break*/, 4];
96
+ case 3:
97
+ error_1 = _a.sent();
98
+ console.error('Authentication error:', error_1);
99
+ setAuthStatus('error');
100
+ setAuthErrorMessage(error_1 instanceof Error ? error_1.message : 'Unknown error occurred');
101
+ return [3 /*break*/, 4];
102
+ case 4: return [2 /*return*/];
103
+ }
104
+ });
105
+ }); }, [updateContext, transition, address, nordUser]);
106
+ return {
107
+ authStatus: authStatus,
108
+ authErrorMessage: authErrorMessage,
109
+ authStatusMessage: authStatusMessage,
110
+ performAuth: performAuth
111
+ };
112
+ };
113
+ //# sourceMappingURL=useDepositAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDepositAuth.js","sourceRoot":"","sources":["../../../../../src/Modal/NordFlow/context/deposit/useDepositAuth.ts"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useState } from 'react';\nimport { useN1WalletContext } from '../../../../Provider/hooks';\nimport { logger } from '../../../../utils/logger';\nimport { FlowState } from '../../types';\n\nexport const useDepositAuth = (\n updateContext: (context: any) => void,\n transition: (state: FlowState, context?: any) => void,\n address: string | null\n) => {\n // auth states\n const [authStatus, setAuthStatus] = useState<'loading' | 'success' | 'error'>('loading');\n const [authErrorMessage, setAuthErrorMessage] = useState<string | null>(null);\n const [authStatusMessage, setAuthStatusMessage] = useState<string | null>(null);\n\n const { nordUser } = useN1WalletContext();\n\n /**\n * Authenticate session\n */\n const performAuth = useCallback(async () => {\n try {\n // Step 1: Tell user to sign transaction\n setAuthStatusMessage(\n 'Please sign the transaction to authenticate your session'\n );\n\n if (!nordUser) {\n throw new Error('Nord user is not initialized');\n }\n\n // Step 2: Call nordUser.refreshSession and get sessionId\n setAuthStatusMessage('Session is being authenticated...');\n\n // Get the session public key from the nordUser\n const sessionPubKey = nordUser.sessionPubKey;\n if (!sessionPubKey) {\n throw new Error('Session public key is not available');\n }\n\n // Refresh the session\n await nordUser.refreshSession(sessionPubKey);\n await nordUser.updateAccountId();\n\n // Get the sessionId after refresh\n const sessionId = nordUser.sessionId;\n if (!sessionId) {\n throw new Error('Failed to get session ID after refresh');\n }\n\n logger.debug('Session refreshed successfully', {\n sessionId: sessionId.toString(),\n });\n\n // Step 3: Store sessionId in localStorage\n if (address) {\n const sessionIdKey = `n1_sessionId_${address}`;\n localStorage.setItem(sessionIdKey, sessionId.toString());\n logger.debug('Stored sessionId in localStorage', { key: sessionIdKey });\n }\n\n // Step 4: Update status to success\n setAuthStatus('success');\n\n // Step 5: Update context and transition to success\n updateContext({ hasActiveSession: true });\n setTimeout(() => {\n transition(FlowState.FINAL_SUCCESS, { hasActiveSession: true, hasNordAccount: true });\n }, 100);\n\n } catch (error) {\n console.error('Authentication error:', error);\n setAuthStatus('error');\n setAuthErrorMessage(\n error instanceof Error ? error.message : 'Unknown error occurred'\n );\n }\n }, [updateContext, transition, address, nordUser]);\n\n return {\n authStatus,\n authErrorMessage,\n authStatusMessage,\n performAuth\n };\n}; "]}
@@ -0,0 +1,20 @@
1
+ import { TransactionResult } from '../../../../Logic/transactionManager';
2
+ import { FlowState } from '../../types';
3
+ export declare const useDepositTransaction: (selectedChain: string | null, initialAmount: string, transition: (state: FlowState, context?: any) => void, updateContext: (context: any) => void) => {
4
+ amount: string;
5
+ isDepositing: boolean;
6
+ transactionId: string | null;
7
+ transactionResult: TransactionResult | null;
8
+ updateAmount: (newAmount: string) => void;
9
+ startDeposit: () => Promise<void>;
10
+ completeDeposit: () => void;
11
+ getTransactionDetails: () => {
12
+ amount: string;
13
+ tx: string;
14
+ from: string;
15
+ to: string;
16
+ network: string;
17
+ status: string;
18
+ explorerUrl: string;
19
+ };
20
+ };