@n1xyz/wallet-widget 0.0.15 → 0.0.17
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/utils.d.ts +3 -1
- package/dist/Logic/utils.js +16 -2
- package/dist/Logic/utils.js.map +1 -1
- package/dist/Modal/N1WalletModal.d.ts +1 -0
- package/dist/Modal/N1WalletModal.js +1 -0
- package/dist/Modal/N1WalletModal.js.map +1 -1
- package/dist/Modal/NTSFlow/views/CreateSessionView.js +1 -0
- package/dist/Modal/NTSFlow/views/CreateSessionView.js.map +1 -1
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +1 -1
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.d.ts +1 -1
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +14 -12
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +1 -1
- package/dist/Provider/N1WalletProvider.d.ts +1 -1
- package/dist/Provider/N1WalletProvider.js +65 -37
- package/dist/Provider/N1WalletProvider.js.map +1 -1
- package/dist/Provider/hooks/useNordUserInitialization.js +33 -37
- package/dist/Provider/hooks/useNordUserInitialization.js.map +1 -1
- package/dist/Provider/types.d.ts +13 -0
- package/dist/Provider/types.js.map +1 -1
- package/dist/embedded-main-css.d.ts +2 -0
- package/dist/embedded-main-css.js +3 -0
- package/dist/embedded-main-css.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/main.css +1 -1
- package/package.json +7 -4
- package/dist/Modal/NordFlow/context/deposit/types.d.ts +0 -26
- package/dist/Modal/NordFlow/context/deposit/types.js +0 -2
- package/dist/Modal/NordFlow/context/deposit/types.js.map +0 -1
- package/dist/Modal/NordFlow/context/deposit/useDepositAuth.d.ts +0 -7
- package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js +0 -113
- package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js.map +0 -1
- package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.d.ts +0 -20
- package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js +0 -235
- package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js.map +0 -1
- package/dist/Modal/NordFlow/hooks/index.d.ts +0 -3
- package/dist/Modal/NordFlow/hooks/index.js +0 -4
- package/dist/Modal/NordFlow/hooks/index.js.map +0 -1
- package/dist/Modal/NordFlow/hooks/useDepositFlow.d.ts +0 -52
- package/dist/Modal/NordFlow/hooks/useDepositFlow.js +0 -385
- package/dist/Modal/NordFlow/hooks/useDepositFlow.js.map +0 -1
- package/dist/Modal/NordFlow/hooks/useFlowState.d.ts +0 -32
- package/dist/Modal/NordFlow/hooks/useFlowState.js +0 -189
- package/dist/Modal/NordFlow/hooks/useFlowState.js.map +0 -1
- package/dist/Modal/NordFlow/hooks/useInterruptHandler.d.ts +0 -24
- package/dist/Modal/NordFlow/hooks/useInterruptHandler.js +0 -59
- package/dist/Modal/NordFlow/hooks/useInterruptHandler.js.map +0 -1
- package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +0 -0
- package/dist/Modal/NordFlow/hooks/useNordInstance.js +0 -3
- package/dist/Modal/NordFlow/hooks/useNordInstance.js.map +0 -1
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.d.ts +0 -13
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +0 -259
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js.map +0 -1
- package/dist/Modal/NordFlow/utils/persistence.d.ts +0 -24
- package/dist/Modal/NordFlow/utils/persistence.js +0 -84
- package/dist/Modal/NordFlow/utils/persistence.js.map +0 -1
- package/dist/Provider/useN1WalletProvider.d.ts +0 -37
- package/dist/Provider/useN1WalletProvider.js +0 -398
- package/dist/Provider/useN1WalletProvider.js.map +0 -1
|
@@ -1,398 +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 { useState, useEffect, useCallback } from 'react';
|
|
38
|
-
import { logger } from '../utils/logger';
|
|
39
|
-
import { WalletError, WalletErrorCode } from '../errors/types';
|
|
40
|
-
import { generateSessionKeyPair, signEd25519 } from '@n1xyz/nts-sdk';
|
|
41
|
-
import { getSessionKeysFromLocalStorage, storeSessionKeysInLocalStorage } from '../Logic/utils';
|
|
42
|
-
import { PublicKey, Transaction } from '@solana/web3.js';
|
|
43
|
-
import { N1SessionMode, N1ModalViewMode } from './types';
|
|
44
|
-
import { NordUser } from '@n1xyz/nord-ts';
|
|
45
|
-
export function useN1WalletProvider(_a) {
|
|
46
|
-
var _this = this;
|
|
47
|
-
var providedSessionMode = _a.providedSessionMode, onError = _a.onError, nord = _a.nord, address = _a.address, dynamicWallet = _a.dynamicWallet;
|
|
48
|
-
var _b = useState(false), isConnected = _b[0], setIsConnected = _b[1];
|
|
49
|
-
var _c = useState(null), ntsInterface = _c[0], setNtsInterface = _c[1];
|
|
50
|
-
var _d = useState(null), sessionPubKey = _d[0], setSessionPubKey = _d[1];
|
|
51
|
-
var _e = useState(null), walletPubKey = _e[0], setWalletPubKey = _e[1];
|
|
52
|
-
var _f = useState(null), userChain = _f[0], setUserChain = _f[1];
|
|
53
|
-
var _g = useState(''), username = _g[0], setUsername = _g[1];
|
|
54
|
-
var _h = useState(null), signMessageWithSessionKey = _h[0], setSignMessageWithSessionKey = _h[1];
|
|
55
|
-
var _j = useState(null), signMessageWithWalletKey = _j[0], setSignMessageWithWalletKey = _j[1];
|
|
56
|
-
var _k = useState(null), signTransactionWithWalletKey = _k[0], setSignTransactionWithWalletKey = _k[1];
|
|
57
|
-
var _l = useState(false), loading = _l[0], setLoading = _l[1];
|
|
58
|
-
var _m = useState(N1ModalViewMode.Connect), viewMode = _m[0], setViewMode = _m[1];
|
|
59
|
-
var _o = useState(null), nordUser = _o[0], setNordUser = _o[1];
|
|
60
|
-
// dynamic
|
|
61
|
-
var _p = useState([]), balances = _p[0], setBalances = _p[1];
|
|
62
|
-
var _q = useState(''), chain = _q[0], setChain = _q[1];
|
|
63
|
-
var _r = useState(null), dynamicSdkHasLoaded = _r[0], setDynamicSdkHasLoaded = _r[1];
|
|
64
|
-
var _s = useState(null), sessionMode = _s[0], setSessionMode = _s[1];
|
|
65
|
-
// Combine SDK loading and initialization into a single effect
|
|
66
|
-
useEffect(function () {
|
|
67
|
-
var mounted = true;
|
|
68
|
-
// Set the session mode from props
|
|
69
|
-
setSessionMode(providedSessionMode);
|
|
70
|
-
// Load the appropriate SDK
|
|
71
|
-
var loadSDK = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
72
|
-
var NTSInterface, error_1;
|
|
73
|
-
return __generator(this, function (_a) {
|
|
74
|
-
switch (_a.label) {
|
|
75
|
-
case 0:
|
|
76
|
-
// eslint-disable-next-line no-console
|
|
77
|
-
logger.debug('Loading NTS SDK');
|
|
78
|
-
if (providedSessionMode === N1SessionMode.Nord) {
|
|
79
|
-
return [2 /*return*/];
|
|
80
|
-
}
|
|
81
|
-
_a.label = 1;
|
|
82
|
-
case 1:
|
|
83
|
-
_a.trys.push([1, 3, , 4]);
|
|
84
|
-
return [4 /*yield*/, import('@n1xyz/nts-sdk')];
|
|
85
|
-
case 2:
|
|
86
|
-
NTSInterface = (_a.sent()).NTSInterface;
|
|
87
|
-
if (mounted) {
|
|
88
|
-
// eslint-disable-next-line no-console
|
|
89
|
-
logger.debug('NTS SDK loaded successfully');
|
|
90
|
-
setNtsInterface(new NTSInterface(process.env.NTS_URL));
|
|
91
|
-
}
|
|
92
|
-
return [3 /*break*/, 4];
|
|
93
|
-
case 3:
|
|
94
|
-
error_1 = _a.sent();
|
|
95
|
-
if (mounted) {
|
|
96
|
-
// eslint-disable-next-line no-console
|
|
97
|
-
logger.error('Error loading NTS SDK:', error_1);
|
|
98
|
-
}
|
|
99
|
-
return [3 /*break*/, 4];
|
|
100
|
-
case 4: return [2 /*return*/];
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}); };
|
|
104
|
-
loadSDK();
|
|
105
|
-
return function () {
|
|
106
|
-
mounted = false;
|
|
107
|
-
};
|
|
108
|
-
}, [providedSessionMode, onError]);
|
|
109
|
-
// Separate effect to handle loading state based on both SDKs
|
|
110
|
-
useEffect(function () {
|
|
111
|
-
var isDynamicReady = dynamicSdkHasLoaded || providedSessionMode === N1SessionMode.Nord;
|
|
112
|
-
var isNtsReady = ntsInterface || providedSessionMode === N1SessionMode.Nord;
|
|
113
|
-
setLoading(!isDynamicReady || !isNtsReady);
|
|
114
|
-
}, [dynamicSdkHasLoaded, ntsInterface, providedSessionMode]);
|
|
115
|
-
var handleError = useCallback(function (error) {
|
|
116
|
-
onError === null || onError === void 0 ? void 0 : onError(error);
|
|
117
|
-
}, [onError]);
|
|
118
|
-
// Add logic to create wallet sign functions, session functions, and NordUser instance
|
|
119
|
-
useEffect(function () {
|
|
120
|
-
var createWalletSignFunction = function () {
|
|
121
|
-
if (!dynamicWallet) {
|
|
122
|
-
return null;
|
|
123
|
-
}
|
|
124
|
-
var signWithWallet = function (msg) { return __awaiter(_this, void 0, void 0, function () {
|
|
125
|
-
var hexMsg, signature, binaryString, signatureUint8Array, i, error_2;
|
|
126
|
-
return __generator(this, function (_a) {
|
|
127
|
-
switch (_a.label) {
|
|
128
|
-
case 0:
|
|
129
|
-
_a.trys.push([0, 2, , 3]);
|
|
130
|
-
hexMsg = Buffer.from(msg).toString('hex');
|
|
131
|
-
return [4 /*yield*/, dynamicWallet.signMessage(hexMsg)];
|
|
132
|
-
case 1:
|
|
133
|
-
signature = _a.sent();
|
|
134
|
-
binaryString = atob(signature);
|
|
135
|
-
signatureUint8Array = new Uint8Array(binaryString.length);
|
|
136
|
-
for (i = 0; i < binaryString.length; i++) {
|
|
137
|
-
signatureUint8Array[i] = binaryString.charCodeAt(i);
|
|
138
|
-
}
|
|
139
|
-
return [2 /*return*/, signatureUint8Array];
|
|
140
|
-
case 2:
|
|
141
|
-
error_2 = _a.sent();
|
|
142
|
-
console.error('Error signing with wallet:', error_2);
|
|
143
|
-
throw new WalletError(WalletErrorCode.USER_REJECTED, 'Failed to sign message with wallet', { originalError: error_2 });
|
|
144
|
-
case 3: return [2 /*return*/];
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
}); };
|
|
148
|
-
setSignMessageWithWalletKey(function () { return signWithWallet; });
|
|
149
|
-
return signWithWallet;
|
|
150
|
-
};
|
|
151
|
-
var createTransactionSignFunction = function () {
|
|
152
|
-
if (!dynamicWallet) {
|
|
153
|
-
return null;
|
|
154
|
-
}
|
|
155
|
-
var signTransactionWithWallet = function (transaction) { return __awaiter(_this, void 0, void 0, function () {
|
|
156
|
-
var signedTransaction, serializedTx, error_3;
|
|
157
|
-
return __generator(this, function (_a) {
|
|
158
|
-
switch (_a.label) {
|
|
159
|
-
case 0:
|
|
160
|
-
_a.trys.push([0, 4, , 5]);
|
|
161
|
-
if (!(dynamicWallet.chain === 'SOL')) return [3 /*break*/, 3];
|
|
162
|
-
return [4 /*yield*/, dynamicWallet.getSigner()];
|
|
163
|
-
case 1: return [4 /*yield*/, (_a.sent()).signTransaction(transaction)];
|
|
164
|
-
case 2:
|
|
165
|
-
signedTransaction = _a.sent();
|
|
166
|
-
logger.debug('Solana transaction signature received');
|
|
167
|
-
serializedTx = signedTransaction.serialize();
|
|
168
|
-
return [2 /*return*/, Transaction.from(serializedTx)];
|
|
169
|
-
case 3: throw new WalletError(WalletErrorCode.USER_REJECTED, 'Unsupported chain', { originalError: new Error('Unsupported chain') });
|
|
170
|
-
case 4:
|
|
171
|
-
error_3 = _a.sent();
|
|
172
|
-
console.error('Error signing transaction with wallet:', error_3);
|
|
173
|
-
throw new WalletError(WalletErrorCode.USER_REJECTED, 'Failed to sign transaction with wallet', { originalError: error_3 });
|
|
174
|
-
case 5: return [2 /*return*/];
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
}); };
|
|
178
|
-
setSignTransactionWithWalletKey(function () { return signTransactionWithWallet; });
|
|
179
|
-
return signTransactionWithWallet;
|
|
180
|
-
};
|
|
181
|
-
var createSession = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
182
|
-
var sessionKeyPair_1, storedKeys, tempKeyPair, error_4, signFn_1, error_5;
|
|
183
|
-
var _this = this;
|
|
184
|
-
return __generator(this, function (_a) {
|
|
185
|
-
switch (_a.label) {
|
|
186
|
-
case 0:
|
|
187
|
-
_a.trys.push([0, 7, , 8]);
|
|
188
|
-
sessionKeyPair_1 = null;
|
|
189
|
-
if (!address) return [3 /*break*/, 4];
|
|
190
|
-
storedKeys = getSessionKeysFromLocalStorage(address);
|
|
191
|
-
if (!storedKeys) return [3 /*break*/, 4];
|
|
192
|
-
_a.label = 1;
|
|
193
|
-
case 1:
|
|
194
|
-
_a.trys.push([1, 3, , 4]);
|
|
195
|
-
return [4 /*yield*/, generateSessionKeyPair()];
|
|
196
|
-
case 2:
|
|
197
|
-
tempKeyPair = _a.sent();
|
|
198
|
-
sessionKeyPair_1 = {
|
|
199
|
-
privateKey: storedKeys.ed25519PrivateKey,
|
|
200
|
-
publicKey: tempKeyPair.publicKey,
|
|
201
|
-
};
|
|
202
|
-
return [3 /*break*/, 4];
|
|
203
|
-
case 3:
|
|
204
|
-
error_4 = _a.sent();
|
|
205
|
-
console.error('Error reconstructing key pair from stored keys:', error_4);
|
|
206
|
-
sessionKeyPair_1 = null;
|
|
207
|
-
return [3 /*break*/, 4];
|
|
208
|
-
case 4:
|
|
209
|
-
if (!!sessionKeyPair_1) return [3 /*break*/, 6];
|
|
210
|
-
return [4 /*yield*/, generateSessionKeyPair()];
|
|
211
|
-
case 5:
|
|
212
|
-
sessionKeyPair_1 = _a.sent();
|
|
213
|
-
_a.label = 6;
|
|
214
|
-
case 6:
|
|
215
|
-
signFn_1 = function (message) { return __awaiter(_this, void 0, void 0, function () {
|
|
216
|
-
var error_6;
|
|
217
|
-
return __generator(this, function (_a) {
|
|
218
|
-
switch (_a.label) {
|
|
219
|
-
case 0:
|
|
220
|
-
_a.trys.push([0, 2, , 3]);
|
|
221
|
-
return [4 /*yield*/, signEd25519(message, sessionKeyPair_1.privateKey)];
|
|
222
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
223
|
-
case 2:
|
|
224
|
-
error_6 = _a.sent();
|
|
225
|
-
console.error('Error signing with session key:', error_6);
|
|
226
|
-
throw error_6;
|
|
227
|
-
case 3: return [2 /*return*/];
|
|
228
|
-
}
|
|
229
|
-
});
|
|
230
|
-
}); };
|
|
231
|
-
storeSessionKeysInLocalStorage({
|
|
232
|
-
privKey: sessionKeyPair_1.privateKey,
|
|
233
|
-
walletPublicKey: address,
|
|
234
|
-
chainName: (dynamicWallet === null || dynamicWallet === void 0 ? void 0 : dynamicWallet.chain) || 'ETH',
|
|
235
|
-
});
|
|
236
|
-
setSessionPubKey(sessionKeyPair_1.publicKey);
|
|
237
|
-
setSignMessageWithSessionKey(function () { return signFn_1; });
|
|
238
|
-
return [2 /*return*/, signFn_1];
|
|
239
|
-
case 7:
|
|
240
|
-
error_5 = _a.sent();
|
|
241
|
-
console.error('Error creating session:', error_5);
|
|
242
|
-
return [2 /*return*/, null];
|
|
243
|
-
case 8: return [2 /*return*/];
|
|
244
|
-
}
|
|
245
|
-
});
|
|
246
|
-
}); };
|
|
247
|
-
var createNordUser = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
248
|
-
var walletSignFn, sessionSignFn, createdSignFn, sessionId, sessionKeyData, sessionIdKey, storedSessionId, user, _1, error_7;
|
|
249
|
-
return __generator(this, function (_a) {
|
|
250
|
-
switch (_a.label) {
|
|
251
|
-
case 0:
|
|
252
|
-
_a.trys.push([0, 7, , 8]);
|
|
253
|
-
walletSignFn = signMessageWithWalletKey;
|
|
254
|
-
if (!walletSignFn && dynamicWallet) {
|
|
255
|
-
walletSignFn = createWalletSignFunction();
|
|
256
|
-
if (!walletSignFn) {
|
|
257
|
-
console.error('Failed to create wallet sign function');
|
|
258
|
-
return [2 /*return*/, null];
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
if (!walletSignFn) {
|
|
262
|
-
console.error('Cannot create NordUser, no wallet sign function available');
|
|
263
|
-
return [2 /*return*/, null];
|
|
264
|
-
}
|
|
265
|
-
if (!signTransactionWithWalletKey && dynamicWallet) {
|
|
266
|
-
createTransactionSignFunction();
|
|
267
|
-
}
|
|
268
|
-
sessionSignFn = signMessageWithSessionKey;
|
|
269
|
-
if (!!sessionSignFn) return [3 /*break*/, 2];
|
|
270
|
-
return [4 /*yield*/, createSession()];
|
|
271
|
-
case 1:
|
|
272
|
-
createdSignFn = _a.sent();
|
|
273
|
-
if (!createdSignFn) {
|
|
274
|
-
console.error('Failed to create session sign function');
|
|
275
|
-
return [2 /*return*/, null];
|
|
276
|
-
}
|
|
277
|
-
sessionSignFn = createdSignFn;
|
|
278
|
-
_a.label = 2;
|
|
279
|
-
case 2:
|
|
280
|
-
sessionId = undefined;
|
|
281
|
-
if (address) {
|
|
282
|
-
try {
|
|
283
|
-
sessionKeyData = getSessionKeysFromLocalStorage(address);
|
|
284
|
-
if (sessionKeyData) {
|
|
285
|
-
sessionIdKey = "n1_sessionId_".concat(address);
|
|
286
|
-
storedSessionId = localStorage.getItem(sessionIdKey);
|
|
287
|
-
if (storedSessionId !== null) {
|
|
288
|
-
sessionId = BigInt(storedSessionId);
|
|
289
|
-
logger.debug('Found existing sessionId in localStorage', {
|
|
290
|
-
sessionId: storedSessionId,
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
catch (error) {
|
|
296
|
-
console.error('Error retrieving sessionId from localStorage:', error);
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
if (!nord || !address || !sessionPubKey) {
|
|
300
|
-
return [2 /*return*/, null];
|
|
301
|
-
}
|
|
302
|
-
user = new NordUser({
|
|
303
|
-
nord: nord,
|
|
304
|
-
address: address,
|
|
305
|
-
walletSignFn: walletSignFn,
|
|
306
|
-
sessionSignFn: sessionSignFn,
|
|
307
|
-
transactionSignFn: signTransactionWithWalletKey,
|
|
308
|
-
sessionId: sessionId,
|
|
309
|
-
sessionPubKey: sessionPubKey,
|
|
310
|
-
publicKey: new PublicKey(address),
|
|
311
|
-
});
|
|
312
|
-
_a.label = 3;
|
|
313
|
-
case 3:
|
|
314
|
-
_a.trys.push([3, 5, , 6]);
|
|
315
|
-
return [4 /*yield*/, user.updateAccountId()];
|
|
316
|
-
case 4:
|
|
317
|
-
_a.sent();
|
|
318
|
-
return [3 /*break*/, 6];
|
|
319
|
-
case 5:
|
|
320
|
-
_1 = _a.sent();
|
|
321
|
-
return [3 /*break*/, 6];
|
|
322
|
-
case 6:
|
|
323
|
-
setNordUser(user);
|
|
324
|
-
return [2 /*return*/, user];
|
|
325
|
-
case 7:
|
|
326
|
-
error_7 = _a.sent();
|
|
327
|
-
console.error('Error creating NordUser:', error_7);
|
|
328
|
-
setNordUser(null);
|
|
329
|
-
return [2 /*return*/, null];
|
|
330
|
-
case 8: return [2 /*return*/];
|
|
331
|
-
}
|
|
332
|
-
});
|
|
333
|
-
}); };
|
|
334
|
-
var initNordUser = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
335
|
-
return __generator(this, function (_a) {
|
|
336
|
-
switch (_a.label) {
|
|
337
|
-
case 0:
|
|
338
|
-
if (!(signMessageWithWalletKey &&
|
|
339
|
-
signMessageWithSessionKey &&
|
|
340
|
-
signTransactionWithWalletKey &&
|
|
341
|
-
nordUser == null)) return [3 /*break*/, 2];
|
|
342
|
-
logger.debug('Dependencies available, initializing NordUser');
|
|
343
|
-
return [4 /*yield*/, createNordUser()];
|
|
344
|
-
case 1:
|
|
345
|
-
_a.sent();
|
|
346
|
-
_a.label = 2;
|
|
347
|
-
case 2: return [2 /*return*/];
|
|
348
|
-
}
|
|
349
|
-
});
|
|
350
|
-
}); };
|
|
351
|
-
initNordUser();
|
|
352
|
-
}, [
|
|
353
|
-
dynamicWallet,
|
|
354
|
-
address,
|
|
355
|
-
nord,
|
|
356
|
-
signMessageWithSessionKey,
|
|
357
|
-
signMessageWithWalletKey,
|
|
358
|
-
signTransactionWithWalletKey,
|
|
359
|
-
sessionPubKey,
|
|
360
|
-
setNordUser,
|
|
361
|
-
]);
|
|
362
|
-
return {
|
|
363
|
-
isConnected: isConnected,
|
|
364
|
-
ntsInterface: ntsInterface,
|
|
365
|
-
sessionPubKey: sessionPubKey,
|
|
366
|
-
walletPubKey: walletPubKey,
|
|
367
|
-
userChain: userChain,
|
|
368
|
-
username: username,
|
|
369
|
-
signMessageWithSessionKey: signMessageWithSessionKey,
|
|
370
|
-
signMessageWithWalletKey: signMessageWithWalletKey,
|
|
371
|
-
signTransactionWithWalletKey: signTransactionWithWalletKey,
|
|
372
|
-
loading: loading,
|
|
373
|
-
viewMode: viewMode,
|
|
374
|
-
nordUser: nordUser,
|
|
375
|
-
balances: balances,
|
|
376
|
-
chain: chain,
|
|
377
|
-
dynamicSdkHasLoaded: dynamicSdkHasLoaded,
|
|
378
|
-
sessionMode: sessionMode,
|
|
379
|
-
handleError: handleError,
|
|
380
|
-
setIsConnected: setIsConnected,
|
|
381
|
-
setNtsInterface: setNtsInterface,
|
|
382
|
-
setSessionPubKey: setSessionPubKey,
|
|
383
|
-
setWalletPubKey: setWalletPubKey,
|
|
384
|
-
setUserChain: setUserChain,
|
|
385
|
-
setUsername: setUsername,
|
|
386
|
-
setSignMessageWithSessionKey: setSignMessageWithSessionKey,
|
|
387
|
-
setSignMessageWithWalletKey: setSignMessageWithWalletKey,
|
|
388
|
-
setSignTransactionWithWalletKey: setSignTransactionWithWalletKey,
|
|
389
|
-
setLoading: setLoading,
|
|
390
|
-
setViewMode: setViewMode,
|
|
391
|
-
setNordUser: setNordUser,
|
|
392
|
-
setBalances: setBalances,
|
|
393
|
-
setChain: setChain,
|
|
394
|
-
setDynamicSdkHasLoaded: setDynamicSdkHasLoaded,
|
|
395
|
-
setSessionMode: setSessionMode,
|
|
396
|
-
};
|
|
397
|
-
}
|
|
398
|
-
//# sourceMappingURL=useN1WalletProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useN1WalletProvider.js","sourceRoot":"","sources":["../../src/Provider/useN1WalletProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import { useState, useEffect, useCallback } from 'react';\nimport { logger } from '../utils/logger';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { generateSessionKeyPair, signEd25519 } from '@n1xyz/nts-sdk';\nimport { getSessionKeysFromLocalStorage, storeSessionKeysInLocalStorage } from '../Logic/utils';\nimport { PublicKey, Transaction } from '@solana/web3.js';\nimport { N1SessionMode, Balance, N1ModalViewMode, N1WalletProviderProps } from './types';\nimport { NordUser } from '@n1xyz/nord-ts';\n\nexport function useN1WalletProvider({\n providedSessionMode,\n onError,\n nord,\n address,\n dynamicWallet,\n}: N1WalletProviderProps) {\n const [isConnected, setIsConnected] = useState<boolean>(false);\n const [ntsInterface, setNtsInterface] = useState<any>(null);\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.Connect\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 const [sessionMode, setSessionMode] = useState<N1SessionMode | null>(null);\n\n // Combine SDK loading and initialization into a single effect\n useEffect(() => {\n let mounted = true;\n\n // Set the session mode from props\n setSessionMode(providedSessionMode);\n\n // Load the appropriate SDK\n const loadSDK = async () => {\n // eslint-disable-next-line no-console\n logger.debug('Loading NTS SDK');\n\n if (providedSessionMode === N1SessionMode.Nord) {\n return;\n }\n\n try {\n const { NTSInterface } = await import('@n1xyz/nts-sdk');\n if (mounted) {\n // eslint-disable-next-line no-console\n logger.debug('NTS SDK loaded successfully');\n setNtsInterface(new NTSInterface(process.env.NTS_URL!));\n }\n } catch (error) {\n if (mounted) {\n // eslint-disable-next-line no-console\n logger.error('Error loading NTS SDK:', error);\n }\n }\n };\n\n loadSDK();\n\n return () => {\n mounted = false;\n };\n }, [providedSessionMode, onError]);\n\n // Separate effect to handle loading state based on both SDKs\n useEffect(() => {\n const isDynamicReady =\n dynamicSdkHasLoaded || providedSessionMode === N1SessionMode.Nord;\n const isNtsReady =\n ntsInterface || providedSessionMode === N1SessionMode.Nord;\n\n setLoading(!isDynamicReady || !isNtsReady);\n }, [dynamicSdkHasLoaded, ntsInterface, providedSessionMode]);\n\n const handleError = useCallback(\n (error: WalletError) => {\n onError?.(error);\n },\n [onError]\n );\n\n // Add logic to create wallet sign functions, session functions, and NordUser instance\n useEffect(() => {\n const createWalletSignFunction = () => {\n if (!dynamicWallet) {\n return null;\n }\n\n const signWithWallet = async (msg: Uint8Array): Promise<Uint8Array> => {\n try {\n const hexMsg = Buffer.from(msg).toString('hex');\n const signature = await dynamicWallet.signMessage(hexMsg);\n const binaryString = atob(signature);\n const signatureUint8Array = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n signatureUint8Array[i] = binaryString.charCodeAt(i);\n }\n return signatureUint8Array;\n } catch (error) {\n console.error('Error signing with wallet:', error);\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Failed to sign message with wallet',\n { originalError: error }\n );\n }\n };\n\n setSignMessageWithWalletKey(() => signWithWallet);\n return signWithWallet;\n };\n\n const createTransactionSignFunction = () => {\n if (!dynamicWallet) {\n return null;\n }\n\n const signTransactionWithWallet = async (\n transaction: any\n ): Promise<any> => {\n try {\n if (dynamicWallet.chain === 'SOL') {\n const signedTransaction = await (\n await dynamicWallet.getSigner()\n ).signTransaction(transaction);\n logger.debug('Solana transaction signature received');\n\n const serializedTx = signedTransaction.serialize();\n return Transaction.from(serializedTx);\n }\n\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Unsupported chain',\n { originalError: new Error('Unsupported chain') }\n );\n } catch (error) {\n console.error('Error signing transaction with wallet:', error);\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Failed to sign transaction with wallet',\n { originalError: error }\n );\n }\n };\n\n setSignTransactionWithWalletKey(() => signTransactionWithWallet);\n return signTransactionWithWallet;\n };\n\n const createSession = async () => {\n try {\n let sessionKeyPair = null;\n if (address) {\n const storedKeys = getSessionKeysFromLocalStorage(address);\n if (storedKeys) {\n try {\n const tempKeyPair = await generateSessionKeyPair();\n sessionKeyPair = {\n privateKey: storedKeys.ed25519PrivateKey,\n publicKey: tempKeyPair.publicKey,\n };\n } catch (error) {\n console.error(\n 'Error reconstructing key pair from stored keys:',\n error\n );\n sessionKeyPair = null;\n }\n }\n }\n\n if (!sessionKeyPair) {\n sessionKeyPair = await generateSessionKeyPair();\n }\n\n const signFn = async (message: any): Promise<any> => {\n try {\n return await signEd25519(message, sessionKeyPair.privateKey);\n } catch (error) {\n console.error('Error signing with session key:', error);\n throw error;\n }\n };\n\n storeSessionKeysInLocalStorage({\n privKey: sessionKeyPair.privateKey,\n walletPublicKey: address,\n chainName: dynamicWallet?.chain || 'ETH',\n });\n\n setSessionPubKey(sessionKeyPair.publicKey);\n setSignMessageWithSessionKey(() => signFn);\n return signFn;\n } catch (error) {\n console.error('Error creating session:', error);\n return null;\n }\n };\n\n const createNordUser = async () => {\n try {\n let walletSignFn = signMessageWithWalletKey;\n if (!walletSignFn && dynamicWallet) {\n walletSignFn = createWalletSignFunction();\n\n if (!walletSignFn) {\n console.error('Failed to create wallet sign function');\n return null;\n }\n }\n\n if (!walletSignFn) {\n console.error(\n 'Cannot create NordUser, no wallet sign function available'\n );\n return null;\n }\n\n if (!signTransactionWithWalletKey && dynamicWallet) {\n createTransactionSignFunction();\n }\n\n let sessionSignFn = signMessageWithSessionKey;\n if (!sessionSignFn) {\n const createdSignFn = await createSession();\n\n if (!createdSignFn) {\n console.error('Failed to create session sign function');\n return null;\n }\n\n sessionSignFn = createdSignFn;\n }\n\n let sessionId = undefined;\n if (address) {\n try {\n const sessionKeyData = getSessionKeysFromLocalStorage(address);\n if (sessionKeyData) {\n const sessionIdKey = `n1_sessionId_${address}`;\n const storedSessionId = localStorage.getItem(sessionIdKey);\n if (storedSessionId !== null) {\n sessionId = BigInt(storedSessionId);\n logger.debug('Found existing sessionId in localStorage', {\n sessionId: storedSessionId,\n });\n }\n }\n } catch (error) {\n console.error('Error retrieving sessionId from localStorage:', error);\n }\n }\n\n if (!nord || !address || !sessionPubKey) {\n return null;\n }\n\n const user = new NordUser({\n nord: nord,\n address,\n walletSignFn,\n sessionSignFn,\n transactionSignFn: signTransactionWithWalletKey!,\n sessionId,\n sessionPubKey: sessionPubKey!,\n publicKey: new PublicKey(address),\n });\n\n try {\n await user.updateAccountId();\n } catch (_) {}\n\n setNordUser(user);\n return user;\n } catch (error) {\n console.error('Error creating NordUser:', error);\n setNordUser(null);\n return null;\n }\n };\n\n const initNordUser = async () => {\n if (\n signMessageWithWalletKey &&\n signMessageWithSessionKey &&\n signTransactionWithWalletKey &&\n nordUser == null\n ) {\n logger.debug('Dependencies available, initializing NordUser');\n await createNordUser();\n }\n };\n\n initNordUser();\n }, [\n dynamicWallet,\n address,\n nord,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n sessionPubKey,\n setNordUser,\n ]);\n\n return {\n isConnected,\n ntsInterface,\n sessionPubKey,\n walletPubKey,\n userChain,\n username,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n loading,\n viewMode,\n nordUser,\n balances,\n chain,\n dynamicSdkHasLoaded,\n sessionMode,\n handleError,\n setIsConnected,\n setNtsInterface,\n setSessionPubKey,\n setWalletPubKey,\n setUserChain,\n setUsername,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n setLoading,\n setViewMode,\n setNordUser,\n setBalances,\n setChain,\n setDynamicSdkHasLoaded,\n setSessionMode,\n };\n} "]}
|