@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.
- package/dist/Logic/transactionManager.d.ts +1 -1
- package/dist/Logic/transactionManager.js +1 -1
- package/dist/Logic/transactionManager.js.map +1 -1
- package/dist/Modal/LoadingFallback.js +1 -1
- package/dist/Modal/LoadingFallback.js.map +1 -1
- package/dist/Modal/NTSFlow/LoadingFallback.js +1 -1
- package/dist/Modal/NTSFlow/LoadingFallback.js.map +1 -1
- package/dist/Modal/NTSFlow/components/BackButton.js +2 -2
- package/dist/Modal/NTSFlow/components/BackButton.js.map +1 -1
- package/dist/Modal/NTSFlow/components/ModalHeader.js +1 -1
- package/dist/Modal/NTSFlow/components/ModalHeader.js.map +1 -1
- package/dist/Modal/NTSFlow/views/ConnectView.js +2 -2
- package/dist/Modal/NTSFlow/views/ConnectView.js.map +1 -1
- package/dist/Modal/NTSFlow/views/CreateSessionView.js +5 -5
- package/dist/Modal/NTSFlow/views/CreateSessionView.js.map +1 -1
- package/dist/Modal/NTSFlow/views/CreateUserView.js +1 -1
- package/dist/Modal/NTSFlow/views/CreateUserView.js.map +1 -1
- package/dist/Modal/NTSFlow/views/NoWhitelistView.js +3 -3
- package/dist/Modal/NTSFlow/views/NoWhitelistView.js.map +1 -1
- package/dist/Modal/NTSFlow/views/SigningView.js +1 -1
- package/dist/Modal/NTSFlow/views/SigningView.js.map +1 -1
- package/dist/Modal/NordFlow/NordFlow.js +22 -228
- package/dist/Modal/NordFlow/NordFlow.js.map +1 -1
- package/dist/Modal/NordFlow/components/ChainButton.js +5 -5
- package/dist/Modal/NordFlow/components/ChainButton.js.map +1 -1
- package/dist/Modal/NordFlow/components/EVMChainsButton.js +4 -4
- package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +1 -1
- package/dist/Modal/NordFlow/components/Header.d.ts +10 -0
- package/dist/Modal/NordFlow/components/Header.js +11 -0
- package/dist/Modal/NordFlow/components/Header.js.map +1 -0
- package/dist/Modal/NordFlow/components/ImageWithFallback.js +1 -1
- package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +1 -1
- package/dist/Modal/NordFlow/components/LoadingSquares.js +1 -1
- package/dist/Modal/NordFlow/components/LoadingSquares.js.map +1 -1
- package/dist/Modal/NordFlow/components/MoreButton.js +4 -4
- package/dist/Modal/NordFlow/components/MoreButton.js.map +1 -1
- package/dist/Modal/NordFlow/components/TransactionTable.js +7 -10
- package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -1
- package/dist/Modal/NordFlow/components/WaitingMessage.js +1 -1
- package/dist/Modal/NordFlow/components/WaitingMessage.js.map +1 -1
- package/dist/Modal/NordFlow/components/index.d.ts +1 -0
- package/dist/Modal/NordFlow/components/index.js +1 -0
- package/dist/Modal/NordFlow/components/index.js.map +1 -1
- package/dist/Modal/NordFlow/constants.js +116 -95
- package/dist/Modal/NordFlow/constants.js.map +1 -1
- package/dist/Modal/NordFlow/context/DepositContext.d.ts +27 -0
- package/dist/Modal/NordFlow/context/DepositContext.js +308 -0
- package/dist/Modal/NordFlow/context/DepositContext.js.map +1 -0
- package/dist/Modal/NordFlow/context/FlowContext.d.ts +23 -0
- package/dist/Modal/NordFlow/context/FlowContext.js +125 -0
- package/dist/Modal/NordFlow/context/FlowContext.js.map +1 -0
- package/dist/Modal/NordFlow/context/NordProvider.d.ts +10 -0
- package/dist/Modal/NordFlow/context/NordProvider.js +14 -0
- package/dist/Modal/NordFlow/context/NordProvider.js.map +1 -0
- package/dist/Modal/NordFlow/context/WalletConnectContext.d.ts +20 -0
- package/dist/Modal/NordFlow/context/WalletConnectContext.js +214 -0
- package/dist/Modal/NordFlow/context/WalletConnectContext.js.map +1 -0
- package/dist/Modal/NordFlow/context/deposit/types.d.ts +26 -0
- package/dist/Modal/NordFlow/context/deposit/types.js +2 -0
- package/dist/Modal/NordFlow/context/deposit/types.js.map +1 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositAuth.d.ts +7 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js +113 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js.map +1 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.d.ts +20 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js +235 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js.map +1 -0
- package/dist/Modal/NordFlow/context/index.d.ts +5 -0
- package/dist/Modal/NordFlow/context/index.js +8 -0
- package/dist/Modal/NordFlow/context/index.js.map +1 -0
- package/dist/Modal/NordFlow/hooks/index.d.ts +3 -5
- package/dist/Modal/NordFlow/hooks/index.js +3 -5
- package/dist/Modal/NordFlow/hooks/index.js.map +1 -1
- package/dist/Modal/NordFlow/hooks/useDepositFlow.js +2 -4
- package/dist/Modal/NordFlow/hooks/useDepositFlow.js.map +1 -1
- package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +0 -6
- package/dist/Modal/NordFlow/hooks/useNordInstance.js +2 -358
- package/dist/Modal/NordFlow/hooks/useNordInstance.js.map +1 -1
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.d.ts +0 -1
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +0 -1
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js.map +1 -1
- package/dist/Modal/NordFlow/screens/00-IdleScreen.d.ts +6 -0
- package/dist/Modal/NordFlow/screens/00-IdleScreen.js +9 -0
- package/dist/Modal/NordFlow/screens/00-IdleScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.d.ts +1 -6
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +12 -6
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +1 -5
- package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +13 -16
- package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.d.ts +1 -7
- package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +11 -9
- package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.d.ts +1 -13
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +59 -31
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.d.ts +1 -6
- package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +9 -4
- package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.d.ts +1 -8
- package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +18 -7
- package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.d.ts +1 -6
- package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +15 -121
- package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.d.ts +1 -1
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +10 -5
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/09-ErrorScreen.d.ts +1 -7
- package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +9 -9
- package/dist/Modal/NordFlow/screens/09-ErrorScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/index.d.ts +1 -0
- package/dist/Modal/NordFlow/screens/index.js +1 -0
- package/dist/Modal/NordFlow/screens/index.js.map +1 -1
- package/dist/Modal/NordFlow/types.d.ts +0 -5
- package/dist/Modal/NordFlow/types.js +0 -1
- package/dist/Modal/NordFlow/types.js.map +1 -1
- package/dist/Modal/NordFlow/utils/index.d.ts +0 -1
- package/dist/Modal/NordFlow/utils/index.js +0 -1
- package/dist/Modal/NordFlow/utils/index.js.map +1 -1
- package/dist/Modal/Sidebar/N1Sidebar.js +10 -10
- package/dist/Modal/Sidebar/N1Sidebar.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +5 -5
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +3 -3
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +2 -2
- package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +2 -2
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +4 -4
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +6 -6
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +3 -3
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +7 -7
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +13 -13
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +2 -2
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +5 -5
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +1 -1
- package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +5 -5
- package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +4 -4
- package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +1 -1
- package/dist/Provider/LazyWalletProvider.js +2 -0
- package/dist/Provider/LazyWalletProvider.js.map +1 -1
- package/dist/Provider/N1WalletProvider.js +48 -63
- package/dist/Provider/N1WalletProvider.js.map +1 -1
- package/dist/Provider/WalletErrorBoundary.d.ts +10 -0
- package/dist/Provider/WalletErrorBoundary.js +39 -0
- package/dist/Provider/WalletErrorBoundary.js.map +1 -0
- package/dist/Provider/hooks/useNordUserInitialization.d.ts +20 -0
- package/dist/Provider/hooks/useNordUserInitialization.js +293 -0
- package/dist/Provider/hooks/useNordUserInitialization.js.map +1 -0
- package/dist/Provider/types.d.ts +2 -0
- package/dist/Provider/types.js.map +1 -1
- package/dist/Provider/useN1WalletProvider.d.ts +37 -0
- package/dist/Provider/useN1WalletProvider.js +398 -0
- package/dist/Provider/useN1WalletProvider.js.map +1 -0
- package/dist/components/QRCodeLoader.js +1 -1
- package/dist/components/QRCodeLoader.js.map +1 -1
- package/dist/components/logos/EVMChainsGroup.js +1 -1
- package/dist/components/logos/EVMChainsGroup.js.map +1 -1
- package/dist/components/logos/MoreChainsGroup.js +1 -1
- package/dist/components/logos/MoreChainsGroup.js.map +1 -1
- package/dist/main.css +1 -1
- 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 @@
|
|
|
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
|
+
};
|