@n1xyz/wallet-widget 0.0.33-alpha.2 → 0.0.33-alpha.3
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/animations/N1Loader.js +14 -8
- package/dist/animations/N1Loader.js.map +1 -1
- package/dist/animations/Processing.js +14 -8
- package/dist/animations/Processing.js.map +1 -1
- package/dist/components/LoadingFallback.js +6 -2
- package/dist/components/LoadingFallback.js.map +1 -1
- package/dist/components/Logo.js +25 -22
- package/dist/components/Logo.js.map +1 -1
- package/dist/components/N1ConnectButton.js +18 -12
- package/dist/components/N1ConnectButton.js.map +1 -1
- package/dist/components/logos/ArbitrumLogo.js +7 -3
- package/dist/components/logos/ArbitrumLogo.js.map +1 -1
- package/dist/components/logos/BaseLogo.js +7 -3
- package/dist/components/logos/BaseLogo.js.map +1 -1
- package/dist/components/logos/BeraLogo.js +7 -3
- package/dist/components/logos/BeraLogo.js.map +1 -1
- package/dist/components/logos/BitcoinLogo.js +7 -3
- package/dist/components/logos/BitcoinLogo.js.map +1 -1
- package/dist/components/logos/EthereumLogo.js +7 -3
- package/dist/components/logos/EthereumLogo.js.map +1 -1
- package/dist/components/logos/HyperliquidLogo.js +7 -3
- package/dist/components/logos/HyperliquidLogo.js.map +1 -1
- package/dist/components/logos/OptimismLogo.js +7 -3
- package/dist/components/logos/OptimismLogo.js.map +1 -1
- package/dist/components/logos/SolanaLogo.js +7 -3
- package/dist/components/logos/SolanaLogo.js.map +1 -1
- package/dist/components/logos/ZeroOneLogo.js +7 -3
- package/dist/components/logos/ZeroOneLogo.js.map +1 -1
- package/dist/components/logos/index.js +25 -9
- package/dist/components/logos/index.js.map +1 -1
- package/dist/config/solana.js +7 -3
- package/dist/config/solana.js.map +1 -1
- package/dist/config.js +5 -2
- package/dist/config.js.map +1 -1
- package/dist/context/n1-wallet-context.js +8 -4
- package/dist/context/n1-wallet-context.js.map +1 -1
- package/dist/errors/types.js +6 -3
- package/dist/errors/types.js.map +1 -1
- package/dist/features/onboarding-flow/N1WalletModal.js +59 -23
- package/dist/features/onboarding-flow/N1WalletModal.js.map +1 -1
- package/dist/features/onboarding-flow/OnboardingFlow.js +50 -46
- package/dist/features/onboarding-flow/OnboardingFlow.js.map +1 -1
- package/dist/features/onboarding-flow/components/ChainButton.js +7 -4
- package/dist/features/onboarding-flow/components/ChainButton.js.map +1 -1
- package/dist/features/onboarding-flow/components/Header.js +15 -11
- package/dist/features/onboarding-flow/components/Header.js.map +1 -1
- package/dist/features/onboarding-flow/components/ImageWithFallback.js +10 -6
- package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +1 -1
- package/dist/features/onboarding-flow/components/TransactionTable.js +13 -10
- package/dist/features/onboarding-flow/components/TransactionTable.js.map +1 -1
- package/dist/features/onboarding-flow/components/WaitingMessage.js +14 -8
- package/dist/features/onboarding-flow/components/WaitingMessage.js.map +1 -1
- package/dist/features/onboarding-flow/components/index.js +21 -5
- package/dist/features/onboarding-flow/components/index.js.map +1 -1
- package/dist/features/onboarding-flow/index.js +5 -1
- package/dist/features/onboarding-flow/index.js.map +1 -1
- package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +60 -55
- package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +48 -43
- package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/StateProvider.js +11 -7
- package/dist/features/onboarding-flow/providers/StateProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +74 -69
- package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/debug.js +21 -18
- package/dist/features/onboarding-flow/providers/debug.js.map +1 -1
- package/dist/features/onboarding-flow/providers/index.js +16 -5
- package/dist/features/onboarding-flow/providers/index.js.map +1 -1
- package/dist/features/onboarding-flow/providers/onboardingStateMachine.js +20 -15
- package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -1
- package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js +11 -8
- package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js +38 -34
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +51 -47
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +12 -8
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js +28 -25
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js +13 -10
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +10 -7
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/index.js +23 -7
- package/dist/features/onboarding-flow/screens/index.js.map +1 -1
- package/dist/features/onboarding-flow/types.js +6 -3
- package/dist/features/onboarding-flow/types.js.map +1 -1
- package/dist/features/onboarding-flow/utils/depositStorage.js +8 -3
- package/dist/features/onboarding-flow/utils/depositStorage.js.map +1 -1
- package/dist/features/onboarding-flow/utils/imageUtils.js +9 -3
- package/dist/features/onboarding-flow/utils/imageUtils.js.map +1 -1
- package/dist/features/onboarding-flow/utils/nordUser.js +38 -2
- package/dist/features/onboarding-flow/utils/nordUser.js.map +1 -1
- package/dist/features/onboarding-flow/utils/nordUtils.js +12 -5
- package/dist/features/onboarding-flow/utils/nordUtils.js.map +1 -1
- package/dist/features/onboarding-flow/utils/session.js +17 -14
- package/dist/features/onboarding-flow/utils/session.js.map +1 -1
- package/dist/features/onboarding-flow/utils/transaction.js +4 -1
- package/dist/features/onboarding-flow/utils/transaction.js.map +1 -1
- package/dist/features/onboarding-flow/utils/utils.js +16 -8
- package/dist/features/onboarding-flow/utils/utils.js.map +1 -1
- package/dist/features/onboarding-flow/utils/withImageFallback.js +15 -9
- package/dist/features/onboarding-flow/utils/withImageFallback.js.map +1 -1
- package/dist/hooks/index.js +18 -2
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useN1Wallet.js +10 -6
- package/dist/hooks/useN1Wallet.js.map +1 -1
- package/dist/hooks/useNordUserInitialization.js +34 -31
- package/dist/hooks/useNordUserInitialization.js.map +1 -1
- package/dist/index.js +21 -7
- package/dist/index.js.map +1 -1
- package/dist/polyfills/windowEthereumGuard.js +2 -1
- package/dist/polyfills/windowEthereumGuard.js.map +1 -1
- package/dist/providers/LazyWalletProvider.js +74 -38
- package/dist/providers/LazyWalletProvider.js.map +1 -1
- package/dist/providers/N1WalletProvider.js +109 -70
- package/dist/providers/N1WalletProvider.js.map +1 -1
- package/dist/providers/ShadowRootWrapper.js +10 -4
- package/dist/providers/ShadowRootWrapper.js.map +1 -1
- package/dist/providers/WalletErrorBoundary.js +11 -6
- package/dist/providers/WalletErrorBoundary.js.map +1 -1
- package/dist/styles/embedded-main-css.js +3 -1
- package/dist/styles/embedded-main-css.js.map +1 -1
- package/dist/types/wallet.js +7 -4
- package/dist/types/wallet.js.map +1 -1
- package/dist/utils/ed25519.js +20 -14
- package/dist/utils/ed25519.js.map +1 -1
- package/dist/utils/getPseudoName.js +10 -7
- package/dist/utils/getPseudoName.js.map +1 -1
- package/dist/utils/logger.js +5 -3
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/shortenString.js +6 -2
- package/dist/utils/shortenString.js.map +1 -1
- package/dist/utils/words.js +4 -1
- package/dist/utils/words.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useN1WalletContext = useN1WalletContext;
|
|
4
|
+
exports.useN1WalletInternalContext = useN1WalletInternalContext;
|
|
5
|
+
var react_1 = require("react");
|
|
6
|
+
var n1_wallet_context_1 = require("../context/n1-wallet-context");
|
|
7
|
+
function useN1WalletContext() {
|
|
8
|
+
var context = (0, react_1.useContext)(n1_wallet_context_1.N1WalletContext);
|
|
5
9
|
if (context === undefined) {
|
|
6
10
|
throw new Error('useN1WalletContext must be used within a N1WalletProvider');
|
|
7
11
|
}
|
|
8
12
|
return context;
|
|
9
13
|
}
|
|
10
|
-
|
|
11
|
-
var context = useContext(N1InternalWalletContext);
|
|
14
|
+
function useN1WalletInternalContext() {
|
|
15
|
+
var context = (0, react_1.useContext)(n1_wallet_context_1.N1InternalWalletContext);
|
|
12
16
|
if (context === undefined) {
|
|
13
17
|
throw new Error('useN1WalletInternalContext must be used within a N1WalletProvider');
|
|
14
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useN1Wallet.js","sourceRoot":"","sources":["../../src/hooks/useN1Wallet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useN1Wallet.js","sourceRoot":"","sources":["../../src/hooks/useN1Wallet.ts"],"names":[],"mappings":";;AAGA,gDAQC;AAED,gEAQC;AArBD,+BAAmC;AACnC,kEAAwF;AAExF,SAAgB,kBAAkB;IAChC,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,mCAAe,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,0BAA0B;IACxC,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,2CAAuB,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { useContext } from 'react';\nimport { N1WalletContext, N1InternalWalletContext } from '../context/n1-wallet-context';\n\nexport function useN1WalletContext() {\n const context = useContext(N1WalletContext);\n if (context === undefined) {\n throw new Error(\n 'useN1WalletContext must be used within a N1WalletProvider'\n );\n }\n return context;\n}\n\nexport function useN1WalletInternalContext() {\n const context = useContext(N1InternalWalletContext);\n if (context === undefined) {\n throw new Error(\n 'useN1WalletInternalContext must be used within a N1WalletProvider'\n );\n }\n return context;\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -34,22 +35,24 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
34
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
36
|
}
|
|
36
37
|
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.useNordUserInitialization = useNordUserInitialization;
|
|
40
|
+
var react_1 = require("react");
|
|
41
|
+
var web3_js_1 = require("@solana/web3.js");
|
|
42
|
+
var ed25519_1 = require("../utils/ed25519");
|
|
43
|
+
var types_1 = require("../errors/types");
|
|
44
|
+
var logger_1 = require("../utils/logger");
|
|
45
|
+
var wallet_1 = require("../types/wallet");
|
|
46
|
+
var useN1Wallet_1 = require("./useN1Wallet");
|
|
47
|
+
var utils_1 = require("../features/onboarding-flow/utils/utils");
|
|
48
|
+
var nordUser_1 = require("../features/onboarding-flow/utils/nordUser");
|
|
49
|
+
function useNordUserInitialization() {
|
|
47
50
|
var _this = this;
|
|
48
|
-
var _a = useN1WalletInternalContext(), setNordUser = _a.setNordUser, setSessionPubKey = _a.setSessionPubKey, setSignMessageWithSessionKey = _a.setSignMessageWithSessionKey, setSignMessageWithWalletKey = _a.setSignMessageWithWalletKey, setSignTransactionWithWalletKey = _a.setSignTransactionWithWalletKey, dynamicWallet = _a.dynamicWallet;
|
|
49
|
-
var _b = useN1WalletContext(), address = _b.address, nordUser = _b.nordUser, sessionMode = _b.sessionMode, nord = _b.nord, signMessageWithSessionKey = _b.signMessageWithSessionKey, signMessageWithWalletKey = _b.signMessageWithWalletKey, signTransactionWithWalletKey = _b.signTransactionWithWalletKey, sessionPubKey = _b.sessionPubKey;
|
|
51
|
+
var _a = (0, useN1Wallet_1.useN1WalletInternalContext)(), setNordUser = _a.setNordUser, setSessionPubKey = _a.setSessionPubKey, setSignMessageWithSessionKey = _a.setSignMessageWithSessionKey, setSignMessageWithWalletKey = _a.setSignMessageWithWalletKey, setSignTransactionWithWalletKey = _a.setSignTransactionWithWalletKey, dynamicWallet = _a.dynamicWallet;
|
|
52
|
+
var _b = (0, useN1Wallet_1.useN1WalletContext)(), address = _b.address, nordUser = _b.nordUser, sessionMode = _b.sessionMode, nord = _b.nord, signMessageWithSessionKey = _b.signMessageWithSessionKey, signMessageWithWalletKey = _b.signMessageWithWalletKey, signTransactionWithWalletKey = _b.signTransactionWithWalletKey, sessionPubKey = _b.sessionPubKey;
|
|
50
53
|
// First useEffect: Initialize signing functions
|
|
51
|
-
useEffect(function () {
|
|
52
|
-
if (sessionMode !== N1SessionMode.Nord || address === null || address === '') {
|
|
54
|
+
(0, react_1.useEffect)(function () {
|
|
55
|
+
if (sessionMode !== wallet_1.N1SessionMode.Nord || address === null || address === '') {
|
|
53
56
|
return;
|
|
54
57
|
}
|
|
55
58
|
var createTransactionSignFunction = function () {
|
|
@@ -67,17 +70,17 @@ export function useNordUserInitialization() {
|
|
|
67
70
|
case 1: return [4 /*yield*/, (_a.sent()).signTransaction(transaction)];
|
|
68
71
|
case 2:
|
|
69
72
|
signedTransaction = _a.sent();
|
|
70
|
-
logger.debug('Solana transaction signature received');
|
|
73
|
+
logger_1.logger.debug('Solana transaction signature received');
|
|
71
74
|
// const serializedTx = signedTransaction.serialize();
|
|
72
75
|
// return Transaction.from(serializedTx);
|
|
73
76
|
console.log('signedTransaction', signedTransaction.signatures);
|
|
74
77
|
console.log('signedTransaction - 2', signedTransaction);
|
|
75
78
|
return [2 /*return*/, signedTransaction];
|
|
76
|
-
case 3: throw new WalletError(WalletErrorCode.USER_REJECTED, 'Unsupported chain', { originalError: new Error('Unsupported chain') });
|
|
79
|
+
case 3: throw new types_1.WalletError(types_1.WalletErrorCode.USER_REJECTED, 'Unsupported chain', { originalError: new Error('Unsupported chain') });
|
|
77
80
|
case 4:
|
|
78
81
|
error_1 = _a.sent();
|
|
79
82
|
console.error('Error signing transaction with wallet:', error_1);
|
|
80
|
-
throw new WalletError(WalletErrorCode.USER_REJECTED, 'Failed to sign transaction with wallet', { originalError: error_1 });
|
|
83
|
+
throw new types_1.WalletError(types_1.WalletErrorCode.USER_REJECTED, 'Failed to sign transaction with wallet', { originalError: error_1 });
|
|
81
84
|
case 5: return [2 /*return*/];
|
|
82
85
|
}
|
|
83
86
|
});
|
|
@@ -108,13 +111,13 @@ export function useNordUserInitialization() {
|
|
|
108
111
|
if (!(result === null || result === void 0 ? void 0 : result.signature)) {
|
|
109
112
|
throw new Error('Wallet did not return a signature');
|
|
110
113
|
}
|
|
111
|
-
logger.debug('Solana message signature received');
|
|
114
|
+
logger_1.logger.debug('Solana message signature received');
|
|
112
115
|
return [2 /*return*/, result.signature];
|
|
113
|
-
case 3: throw new WalletError(WalletErrorCode.USER_REJECTED, 'Unsupported chain', { originalError: new Error('Unsupported chain') });
|
|
116
|
+
case 3: throw new types_1.WalletError(types_1.WalletErrorCode.USER_REJECTED, 'Unsupported chain', { originalError: new Error('Unsupported chain') });
|
|
114
117
|
case 4:
|
|
115
118
|
error_2 = _a.sent();
|
|
116
119
|
console.error('Error signing message with wallet:', error_2);
|
|
117
|
-
throw new WalletError(WalletErrorCode.USER_REJECTED, 'Failed to sign message with wallet', { originalError: error_2 });
|
|
120
|
+
throw new types_1.WalletError(types_1.WalletErrorCode.USER_REJECTED, 'Failed to sign message with wallet', { originalError: error_2 });
|
|
118
121
|
case 5: return [2 /*return*/];
|
|
119
122
|
}
|
|
120
123
|
});
|
|
@@ -132,7 +135,7 @@ export function useNordUserInitialization() {
|
|
|
132
135
|
sessionKeyPair_1 = null;
|
|
133
136
|
if (address) {
|
|
134
137
|
try {
|
|
135
|
-
storedKeys = getSessionKeysFromLocalStorage(address);
|
|
138
|
+
storedKeys = (0, utils_1.getSessionKeysFromLocalStorage)(address);
|
|
136
139
|
if (storedKeys) {
|
|
137
140
|
sessionKeyPair_1 = {
|
|
138
141
|
privateKey: storedKeys.ed25519PrivateKey,
|
|
@@ -146,7 +149,7 @@ export function useNordUserInitialization() {
|
|
|
146
149
|
}
|
|
147
150
|
}
|
|
148
151
|
if (!!sessionKeyPair_1) return [3 /*break*/, 2];
|
|
149
|
-
return [4 /*yield*/, generateSessionKeyPair()];
|
|
152
|
+
return [4 /*yield*/, (0, utils_1.generateSessionKeyPair)()];
|
|
150
153
|
case 1:
|
|
151
154
|
sessionKeyPair_1 = _a.sent();
|
|
152
155
|
_a.label = 2;
|
|
@@ -157,7 +160,7 @@ export function useNordUserInitialization() {
|
|
|
157
160
|
switch (_a.label) {
|
|
158
161
|
case 0:
|
|
159
162
|
_a.trys.push([0, 2, , 3]);
|
|
160
|
-
return [4 /*yield*/, signEd25519Message(message, sessionKeyPair_1.privateKey)];
|
|
163
|
+
return [4 /*yield*/, (0, ed25519_1.signEd25519Message)(message, sessionKeyPair_1.privateKey)];
|
|
161
164
|
case 1: return [2 /*return*/, _a.sent()];
|
|
162
165
|
case 2:
|
|
163
166
|
error_4 = _a.sent();
|
|
@@ -167,7 +170,7 @@ export function useNordUserInitialization() {
|
|
|
167
170
|
}
|
|
168
171
|
});
|
|
169
172
|
}); };
|
|
170
|
-
storeSessionKeysInLocalStorage({
|
|
173
|
+
(0, utils_1.storeSessionKeysInLocalStorage)({
|
|
171
174
|
privKey: sessionKeyPair_1.privateKey,
|
|
172
175
|
publicKey: sessionKeyPair_1.publicKey,
|
|
173
176
|
walletPublicKey: address,
|
|
@@ -214,8 +217,8 @@ export function useNordUserInitialization() {
|
|
|
214
217
|
signTransactionWithWalletKey,
|
|
215
218
|
]);
|
|
216
219
|
// Second useEffect: Initialize NordUser
|
|
217
|
-
useEffect(function () {
|
|
218
|
-
if (sessionMode !== N1SessionMode.Nord) {
|
|
220
|
+
(0, react_1.useEffect)(function () {
|
|
221
|
+
if (sessionMode !== wallet_1.N1SessionMode.Nord) {
|
|
219
222
|
return;
|
|
220
223
|
}
|
|
221
224
|
var createNordUser = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -230,13 +233,13 @@ export function useNordUserInitialization() {
|
|
|
230
233
|
sessionId = undefined;
|
|
231
234
|
if (address) {
|
|
232
235
|
try {
|
|
233
|
-
sessionKeyData = getSessionKeysFromLocalStorage(address);
|
|
236
|
+
sessionKeyData = (0, utils_1.getSessionKeysFromLocalStorage)(address);
|
|
234
237
|
if (sessionKeyData) {
|
|
235
238
|
sessionIdKey = "n1_sessionId_".concat(address);
|
|
236
239
|
storedSessionId = localStorage.getItem(sessionIdKey);
|
|
237
240
|
if (storedSessionId !== null) {
|
|
238
241
|
sessionId = BigInt(storedSessionId);
|
|
239
|
-
logger.debug('Found existing sessionId in localStorage', {
|
|
242
|
+
logger_1.logger.debug('Found existing sessionId in localStorage', {
|
|
240
243
|
sessionId: storedSessionId,
|
|
241
244
|
});
|
|
242
245
|
}
|
|
@@ -246,12 +249,12 @@ export function useNordUserInitialization() {
|
|
|
246
249
|
console.error('Error retrieving sessionId from localStorage:', error);
|
|
247
250
|
}
|
|
248
251
|
}
|
|
249
|
-
return [4 /*yield*/, dynamicImportNordUser()];
|
|
252
|
+
return [4 /*yield*/, (0, nordUser_1.dynamicImportNordUser)()];
|
|
250
253
|
case 1:
|
|
251
254
|
NordUser = _a.sent();
|
|
252
255
|
return [4 /*yield*/, NordUser.new({
|
|
253
256
|
nord: nord,
|
|
254
|
-
walletPubkey: new PublicKey(address),
|
|
257
|
+
walletPubkey: new web3_js_1.PublicKey(address),
|
|
255
258
|
sessionPubkey: sessionPubKey,
|
|
256
259
|
sessionId: sessionId,
|
|
257
260
|
signSessionFn: signMessageWithSessionKey,
|
|
@@ -288,7 +291,7 @@ export function useNordUserInitialization() {
|
|
|
288
291
|
signTransactionWithWalletKey &&
|
|
289
292
|
sessionPubKey &&
|
|
290
293
|
nordUser === null) {
|
|
291
|
-
logger.debug('Dependencies available, initializing NordUser');
|
|
294
|
+
logger_1.logger.debug('Dependencies available, initializing NordUser');
|
|
292
295
|
createNordUser();
|
|
293
296
|
}
|
|
294
297
|
}, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNordUserInitialization.js","sourceRoot":"","sources":["../../src/hooks/useNordUserInitialization.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect } from 'react';\nimport { PublicKey } from '@solana/web3.js';\nimport { signEd25519Message } from '../utils/ed25519';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { logger } from '../utils/logger';\nimport { N1SessionMode } from '../types/wallet';\nimport { useN1WalletContext, useN1WalletInternalContext } from './useN1Wallet';\nimport { generateSessionKeyPair, getSessionKeysFromLocalStorage, storeSessionKeysInLocalStorage } from '../features/onboarding-flow/utils/utils';\nimport { dynamicImportNordUser } from '../features/onboarding-flow/utils/nordUser';\n\n\n\nexport function useNordUserInitialization() {\n const {\n setNordUser,\n setSessionPubKey,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n dynamicWallet,\n } = useN1WalletInternalContext();\n\n const {\n address,\n nordUser,\n sessionMode,\n nord,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n sessionPubKey,\n } = useN1WalletContext();\n // First useEffect: Initialize signing functions\n useEffect(() => {\n if (sessionMode !== N1SessionMode.Nord || address === null || address === '') {\n return;\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 console.log('signedTransaction', signedTransaction.signatures);\n console.log('signedTransaction - 2', signedTransaction);\n return signedTransaction;\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 createWalletMessageSignFunction = () => {\n if (!dynamicWallet) {\n return null;\n }\n\n const signMessageWithWallet = async (\n message: Uint8Array\n ): Promise<Uint8Array> => {\n try {\n if (dynamicWallet.chain === 'SOL') {\n const signer = await dynamicWallet.getSigner();\n if (!signer?.signMessage) {\n throw new Error('signMessage is not supported by this wallet');\n }\n const result = await signer.signMessage(message);\n if (!result?.signature) {\n throw new Error('Wallet did not return a signature');\n }\n logger.debug('Solana message signature received');\n return result.signature;\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 message 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(() => signMessageWithWallet);\n return signMessageWithWallet;\n };\n\n const createSession = async () => {\n try {\n let sessionKeyPair = null;\n if (address) {\n try {\n const storedKeys = getSessionKeysFromLocalStorage(address);\n if (storedKeys) {\n sessionKeyPair = {\n privateKey: storedKeys.ed25519PrivateKey,\n publicKey: storedKeys.ed25519PublicKey,\n };\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 if (!sessionKeyPair) {\n sessionKeyPair = await generateSessionKeyPair();\n }\n\n const signFn = async (message: any): Promise<any> => {\n try {\n return await signEd25519Message(message, sessionKeyPair.privateKey);\n } catch (error) {\n console.error('Error signing with session key:', error);\n throw error;\n }\n };\n\n\n storeSessionKeysInLocalStorage({\n privKey: sessionKeyPair.privateKey,\n publicKey: sessionKeyPair.publicKey!,\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 // Initialize signing functions if needed\n const initSigningFunctions = async () => {\n if (!signTransactionWithWalletKey && dynamicWallet) {\n createTransactionSignFunction();\n }\n\n if (!signMessageWithWalletKey && dynamicWallet) {\n createWalletMessageSignFunction();\n }\n\n if (!signMessageWithSessionKey) {\n await createSession();\n }\n };\n\n initSigningFunctions();\n }, [\n dynamicWallet,\n address,\n sessionMode,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n ]);\n\n // Second useEffect: Initialize NordUser\n useEffect(() => {\n if (sessionMode !== N1SessionMode.Nord) {\n return;\n }\n\n const createNordUser = async () => {\n try {\n if (!nord || !address || !sessionPubKey || !signMessageWithSessionKey || !signMessageWithWalletKey || !signTransactionWithWalletKey) {\n return null;\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 const NordUser = await dynamicImportNordUser();\n const user = await NordUser.new({\n nord,\n walletPubkey: new PublicKey(address),\n sessionPubkey: sessionPubKey,\n sessionId,\n signSessionFn: signMessageWithSessionKey,\n signTransactionFn: signTransactionWithWalletKey,\n signMessageFn: signMessageWithWalletKey,\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 // Only create NordUser when all dependencies are available and nordUser is null\n if (\n signMessageWithSessionKey &&\n signMessageWithWalletKey &&\n signTransactionWithWalletKey &&\n sessionPubKey &&\n nordUser === null\n ) {\n logger.debug('Dependencies available, initializing NordUser');\n createNordUser();\n }\n }, [\n sessionMode,\n nord,\n address,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n sessionPubKey,\n nordUser,\n setNordUser\n ]);\n} \n"]}
|
|
1
|
+
{"version":3,"file":"useNordUserInitialization.js","sourceRoot":"","sources":["../../src/hooks/useNordUserInitialization.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect } from 'react';\nimport { PublicKey } from '@solana/web3.js';\nimport { signEd25519Message } from '../utils/ed25519';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { logger } from '../utils/logger';\nimport { N1SessionMode } from '../types/wallet';\nimport { useN1WalletContext, useN1WalletInternalContext } from './useN1Wallet';\nimport { generateSessionKeyPair, getSessionKeysFromLocalStorage, storeSessionKeysInLocalStorage } from '../features/onboarding-flow/utils/utils';\nimport { dynamicImportNordUser } from '../features/onboarding-flow/utils/nordUser';\n\n\n\nexport function useNordUserInitialization() {\n const {\n setNordUser,\n setSessionPubKey,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n dynamicWallet,\n } = useN1WalletInternalContext();\n\n const {\n address,\n nordUser,\n sessionMode,\n nord,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n sessionPubKey,\n } = useN1WalletContext();\n // First useEffect: Initialize signing functions\n useEffect(() => {\n if (sessionMode !== N1SessionMode.Nord || address === null || address === '') {\n return;\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 console.log('signedTransaction', signedTransaction.signatures);\n console.log('signedTransaction - 2', signedTransaction);\n return signedTransaction;\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 createWalletMessageSignFunction = () => {\n if (!dynamicWallet) {\n return null;\n }\n\n const signMessageWithWallet = async (\n message: Uint8Array\n ): Promise<Uint8Array> => {\n try {\n if (dynamicWallet.chain === 'SOL') {\n const signer = await dynamicWallet.getSigner();\n if (!signer?.signMessage) {\n throw new Error('signMessage is not supported by this wallet');\n }\n const result = await signer.signMessage(message);\n if (!result?.signature) {\n throw new Error('Wallet did not return a signature');\n }\n logger.debug('Solana message signature received');\n return result.signature;\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 message 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(() => signMessageWithWallet);\n return signMessageWithWallet;\n };\n\n const createSession = async () => {\n try {\n let sessionKeyPair = null;\n if (address) {\n try {\n const storedKeys = getSessionKeysFromLocalStorage(address);\n if (storedKeys) {\n sessionKeyPair = {\n privateKey: storedKeys.ed25519PrivateKey,\n publicKey: storedKeys.ed25519PublicKey,\n };\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 if (!sessionKeyPair) {\n sessionKeyPair = await generateSessionKeyPair();\n }\n\n const signFn = async (message: any): Promise<any> => {\n try {\n return await signEd25519Message(message, sessionKeyPair.privateKey);\n } catch (error) {\n console.error('Error signing with session key:', error);\n throw error;\n }\n };\n\n\n storeSessionKeysInLocalStorage({\n privKey: sessionKeyPair.privateKey,\n publicKey: sessionKeyPair.publicKey!,\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 // Initialize signing functions if needed\n const initSigningFunctions = async () => {\n if (!signTransactionWithWalletKey && dynamicWallet) {\n createTransactionSignFunction();\n }\n\n if (!signMessageWithWalletKey && dynamicWallet) {\n createWalletMessageSignFunction();\n }\n\n if (!signMessageWithSessionKey) {\n await createSession();\n }\n };\n\n initSigningFunctions();\n }, [\n dynamicWallet,\n address,\n sessionMode,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n ]);\n\n // Second useEffect: Initialize NordUser\n useEffect(() => {\n if (sessionMode !== N1SessionMode.Nord) {\n return;\n }\n\n const createNordUser = async () => {\n try {\n if (!nord || !address || !sessionPubKey || !signMessageWithSessionKey || !signMessageWithWalletKey || !signTransactionWithWalletKey) {\n return null;\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 const NordUser = await dynamicImportNordUser();\n const user = await NordUser.new({\n nord,\n walletPubkey: new PublicKey(address),\n sessionPubkey: sessionPubKey,\n sessionId,\n signSessionFn: signMessageWithSessionKey,\n signTransactionFn: signTransactionWithWalletKey,\n signMessageFn: signMessageWithWalletKey,\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 // Only create NordUser when all dependencies are available and nordUser is null\n if (\n signMessageWithSessionKey &&\n signMessageWithWalletKey &&\n signTransactionWithWalletKey &&\n sessionPubKey &&\n nordUser === null\n ) {\n logger.debug('Dependencies available, initializing NordUser');\n createNordUser();\n }\n }, [\n sessionMode,\n nord,\n address,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n sessionPubKey,\n nordUser,\n setNordUser\n ]);\n} \n"]}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ProcessingAnimation = exports.N1LoaderAnimation = exports.Logo = exports.useN1WalletContext = exports.N1ConnectButton = exports.N1SessionMode = exports.N1ModalViewMode = exports.N1WalletProvider = void 0;
|
|
7
|
+
var N1WalletProvider_1 = require("./providers/N1WalletProvider");
|
|
8
|
+
Object.defineProperty(exports, "N1WalletProvider", { enumerable: true, get: function () { return N1WalletProvider_1.N1WalletProvider; } });
|
|
9
|
+
var wallet_1 = require("./types/wallet");
|
|
10
|
+
Object.defineProperty(exports, "N1ModalViewMode", { enumerable: true, get: function () { return wallet_1.N1ModalViewMode; } });
|
|
11
|
+
Object.defineProperty(exports, "N1SessionMode", { enumerable: true, get: function () { return wallet_1.N1SessionMode; } });
|
|
12
|
+
var N1ConnectButton_1 = require("./components/N1ConnectButton");
|
|
13
|
+
Object.defineProperty(exports, "N1ConnectButton", { enumerable: true, get: function () { return N1ConnectButton_1.N1ConnectButton; } });
|
|
14
|
+
var useN1Wallet_1 = require("./hooks/useN1Wallet");
|
|
15
|
+
Object.defineProperty(exports, "useN1WalletContext", { enumerable: true, get: function () { return useN1Wallet_1.useN1WalletContext; } });
|
|
16
|
+
var Logo_1 = require("./components/Logo");
|
|
17
|
+
Object.defineProperty(exports, "Logo", { enumerable: true, get: function () { return __importDefault(Logo_1).default; } });
|
|
18
|
+
var N1Loader_1 = require("./animations/N1Loader");
|
|
19
|
+
Object.defineProperty(exports, "N1LoaderAnimation", { enumerable: true, get: function () { return N1Loader_1.N1LoaderAnimation; } });
|
|
20
|
+
var Processing_1 = require("./animations/Processing");
|
|
21
|
+
Object.defineProperty(exports, "ProcessingAnimation", { enumerable: true, get: function () { return Processing_1.ProcessingAnimation; } });
|
|
8
22
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,iEAAgE;AAAvD,oHAAA,gBAAgB,OAAA;AACzB,yCAIwB;AAHtB,yGAAA,eAAe,OAAA;AACf,uGAAA,aAAa,OAAA;AAGf,gEAA+D;AAAtD,kHAAA,eAAe,OAAA;AACxB,mDAAyD;AAAhD,iHAAA,kBAAkB,OAAA;AAC3B,0CAAoD;AAA3C,6GAAA,OAAO,OAAQ;AACxB,kDAA0D;AAAjD,6GAAA,iBAAiB,OAAA;AAC1B,sDAA8D;AAArD,iHAAA,mBAAmB,OAAA","sourcesContent":["export { N1WalletProvider } from './providers/N1WalletProvider';\nexport {\n N1ModalViewMode,\n N1SessionMode,\n type N1NordFunctions,\n} from './types/wallet';\nexport { N1ConnectButton } from './components/N1ConnectButton';\nexport { useN1WalletContext } from './hooks/useN1Wallet';\nexport { default as Logo } from './components/Logo';\nexport { N1LoaderAnimation } from './animations/N1Loader';\nexport { ProcessingAnimation } from './animations/Processing';\n"]}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
3
|
var patchWindowEthereumGuard = function () {
|
|
2
4
|
if (typeof window === 'undefined' || window.__n1EthereumGuardPatched) {
|
|
3
5
|
return;
|
|
@@ -24,5 +26,4 @@ var patchWindowEthereumGuard = function () {
|
|
|
24
26
|
window.__n1EthereumGuardPatched = true;
|
|
25
27
|
};
|
|
26
28
|
patchWindowEthereumGuard();
|
|
27
|
-
export {};
|
|
28
29
|
//# sourceMappingURL=windowEthereumGuard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windowEthereumGuard.js","sourceRoot":"","sources":["../../src/polyfills/windowEthereumGuard.ts"],"names":[],"mappings":"AAMA,IAAM,wBAAwB,GAAG;IAC/B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACrE,OAAO;IACT,CAAC;IAED,IAAM,sBAAsB,GAAG,MAAM,CAAC,cAAc,CAAC;IACrD,IAAM,WAAW,GAAG,MAA0D,CAAC;IAE/E,IAAM,+BAA+B,GAAiC,UACpE,MAAM,EACN,QAAqB,EACrB,UAA8C;QAE9C,IAAI,MAAM,KAAK,WAAW,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;YACjF,IAAI,CAAC;gBACH,OAAO,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IACE,KAAK,YAAY,SAAS;oBAC1B,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;oBACjC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oCAAoC,CAAC,EAC5D,CAAC;oBACD,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,MAAM,CAAC,cAAc,GAAG,+BAA+B,CAAC;IAExD,MAAM,CAAC,wBAAwB,GAAG,IAAI,CAAC;AACzC,CAAC,CAAC;AAEF,wBAAwB,EAAE,CAAC","sourcesContent":["declare global {\n interface Window {\n __n1EthereumGuardPatched?: boolean;\n }\n}\n\nconst patchWindowEthereumGuard = () => {\n if (typeof window === 'undefined' || window.__n1EthereumGuardPatched) {\n return;\n }\n\n const originalDefineProperty = Object.defineProperty;\n const typedWindow = window as unknown as Window & Record<PropertyKey, unknown>;\n\n const definePropertyWithEthereumGuard: typeof Object.defineProperty = function (\n target,\n property: PropertyKey,\n attributes: PropertyDescriptor & ThisType<any>\n ) {\n if (target === typedWindow && property === 'ethereum' && property in typedWindow) {\n try {\n return originalDefineProperty(target, property, attributes);\n } catch (error) {\n if (\n error instanceof TypeError &&\n typeof error.message === 'string' &&\n error.message.includes('Cannot redefine property: ethereum')\n ) {\n return target;\n }\n throw error;\n }\n }\n\n return originalDefineProperty(target, property, attributes);\n };\n\n Object.defineProperty = definePropertyWithEthereumGuard;\n\n window.__n1EthereumGuardPatched = true;\n};\n\npatchWindowEthereumGuard();\n\nexport {};\n"]}
|
|
1
|
+
{"version":3,"file":"windowEthereumGuard.js","sourceRoot":"","sources":["../../src/polyfills/windowEthereumGuard.ts"],"names":[],"mappings":";;AAMA,IAAM,wBAAwB,GAAG;IAC/B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACrE,OAAO;IACT,CAAC;IAED,IAAM,sBAAsB,GAAG,MAAM,CAAC,cAAc,CAAC;IACrD,IAAM,WAAW,GAAG,MAA0D,CAAC;IAE/E,IAAM,+BAA+B,GAAiC,UACpE,MAAM,EACN,QAAqB,EACrB,UAA8C;QAE9C,IAAI,MAAM,KAAK,WAAW,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;YACjF,IAAI,CAAC;gBACH,OAAO,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IACE,KAAK,YAAY,SAAS;oBAC1B,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;oBACjC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oCAAoC,CAAC,EAC5D,CAAC;oBACD,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,MAAM,CAAC,cAAc,GAAG,+BAA+B,CAAC;IAExD,MAAM,CAAC,wBAAwB,GAAG,IAAI,CAAC;AACzC,CAAC,CAAC;AAEF,wBAAwB,EAAE,CAAC","sourcesContent":["declare global {\n interface Window {\n __n1EthereumGuardPatched?: boolean;\n }\n}\n\nconst patchWindowEthereumGuard = () => {\n if (typeof window === 'undefined' || window.__n1EthereumGuardPatched) {\n return;\n }\n\n const originalDefineProperty = Object.defineProperty;\n const typedWindow = window as unknown as Window & Record<PropertyKey, unknown>;\n\n const definePropertyWithEthereumGuard: typeof Object.defineProperty = function (\n target,\n property: PropertyKey,\n attributes: PropertyDescriptor & ThisType<any>\n ) {\n if (target === typedWindow && property === 'ethereum' && property in typedWindow) {\n try {\n return originalDefineProperty(target, property, attributes);\n } catch (error) {\n if (\n error instanceof TypeError &&\n typeof error.message === 'string' &&\n error.message.includes('Cannot redefine property: ethereum')\n ) {\n return target;\n }\n throw error;\n }\n }\n\n return originalDefineProperty(target, property, attributes);\n };\n\n Object.defineProperty = definePropertyWithEthereumGuard;\n\n window.__n1EthereumGuardPatched = true;\n};\n\npatchWindowEthereumGuard();\n\nexport {};\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __assign = (this && this.__assign) || function () {
|
|
2
3
|
__assign = Object.assign || function(t) {
|
|
3
4
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -9,6 +10,39 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
10
|
};
|
|
10
11
|
return __assign.apply(this, arguments);
|
|
11
12
|
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
30
|
+
var ownKeys = function(o) {
|
|
31
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
32
|
+
var ar = [];
|
|
33
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
34
|
+
return ar;
|
|
35
|
+
};
|
|
36
|
+
return ownKeys(o);
|
|
37
|
+
};
|
|
38
|
+
return function (mod) {
|
|
39
|
+
if (mod && mod.__esModule) return mod;
|
|
40
|
+
var result = {};
|
|
41
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
42
|
+
__setModuleDefault(result, mod);
|
|
43
|
+
return result;
|
|
44
|
+
};
|
|
45
|
+
})();
|
|
12
46
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
13
47
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
14
48
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -45,28 +79,30 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
45
79
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
80
|
}
|
|
47
81
|
};
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
82
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
83
|
+
exports.LazyWalletProvider = LazyWalletProvider;
|
|
84
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
85
|
+
var react_1 = require("react");
|
|
86
|
+
var useN1Wallet_1 = require("../hooks/useN1Wallet");
|
|
87
|
+
var logger_1 = require("../utils/logger");
|
|
52
88
|
var AUTH_FLOW_IDLE_CLOSE_DELAY_MS = 1200;
|
|
53
89
|
function DynamicContextConsumer(_a) {
|
|
54
90
|
var children = _a.children;
|
|
55
|
-
var _b = useState(null), DynamicContext = _b[0], setDynamicContext = _b[1];
|
|
56
|
-
var showAuthFlowRef = useRef(null);
|
|
57
|
-
var primaryWalletStateRef = useRef(null);
|
|
58
|
-
var prevShowAuthFlowRef = useRef(false);
|
|
91
|
+
var _b = (0, react_1.useState)(null), DynamicContext = _b[0], setDynamicContext = _b[1];
|
|
92
|
+
var showAuthFlowRef = (0, react_1.useRef)(null);
|
|
93
|
+
var primaryWalletStateRef = (0, react_1.useRef)(null);
|
|
94
|
+
var prevShowAuthFlowRef = (0, react_1.useRef)(false);
|
|
59
95
|
// Use refs to track previous values and prevent unnecessary updates
|
|
60
|
-
var prevPrimaryWalletRef = useRef(null);
|
|
61
|
-
var prevHandleLogOutRef = useRef(null);
|
|
62
|
-
var prevSdkHasLoadedRef = useRef(null);
|
|
63
|
-
var _c = useN1WalletInternalContext(), setDynamicWallet = _c.setDynamicWallet, setDynamicHandleLogOut = _c.setDynamicHandleLogOut, setDynamicSdkHasLoaded = _c.setDynamicSdkHasLoaded, setAddress = _c.setAddress, setShowDynamicWidget = _c.setShowDynamicWidget, setStartClosingLogin = _c.setStartClosingLogin;
|
|
64
|
-
var _d = useN1WalletContext(), setShowLogin = _d.setShowLogin, showLogin = _d.showLogin;
|
|
65
|
-
var pendingAuthCloseRef = useRef(null);
|
|
96
|
+
var prevPrimaryWalletRef = (0, react_1.useRef)(null);
|
|
97
|
+
var prevHandleLogOutRef = (0, react_1.useRef)(null);
|
|
98
|
+
var prevSdkHasLoadedRef = (0, react_1.useRef)(null);
|
|
99
|
+
var _c = (0, useN1Wallet_1.useN1WalletInternalContext)(), setDynamicWallet = _c.setDynamicWallet, setDynamicHandleLogOut = _c.setDynamicHandleLogOut, setDynamicSdkHasLoaded = _c.setDynamicSdkHasLoaded, setAddress = _c.setAddress, setShowDynamicWidget = _c.setShowDynamicWidget, setStartClosingLogin = _c.setStartClosingLogin;
|
|
100
|
+
var _d = (0, useN1Wallet_1.useN1WalletContext)(), setShowLogin = _d.setShowLogin, showLogin = _d.showLogin;
|
|
101
|
+
var pendingAuthCloseRef = (0, react_1.useRef)(null);
|
|
66
102
|
// Load the Dynamic context only once
|
|
67
|
-
useEffect(function () {
|
|
103
|
+
(0, react_1.useEffect)(function () {
|
|
68
104
|
var isMounted = true;
|
|
69
|
-
|
|
105
|
+
Promise.resolve().then(function () { return __importStar(require('@dynamic-labs/sdk-react-core')); }).then(function (_a) {
|
|
70
106
|
var useDynamicContext = _a.useDynamicContext;
|
|
71
107
|
if (isMounted) {
|
|
72
108
|
setDynamicContext(function () { return useDynamicContext; });
|
|
@@ -77,7 +113,7 @@ function DynamicContextConsumer(_a) {
|
|
|
77
113
|
};
|
|
78
114
|
}, []);
|
|
79
115
|
// Set up a stable widget function that uses the ref - only once
|
|
80
|
-
useEffect(function () {
|
|
116
|
+
(0, react_1.useEffect)(function () {
|
|
81
117
|
var stableShowWidget = function (show) {
|
|
82
118
|
if (showAuthFlowRef.current) {
|
|
83
119
|
showAuthFlowRef.current(show);
|
|
@@ -86,12 +122,12 @@ function DynamicContextConsumer(_a) {
|
|
|
86
122
|
setShowDynamicWidget(function () { return stableShowWidget; });
|
|
87
123
|
}, [setShowDynamicWidget]);
|
|
88
124
|
if (!DynamicContext) {
|
|
89
|
-
return
|
|
125
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
|
|
90
126
|
}
|
|
91
127
|
var DynamicComponent = function () {
|
|
92
128
|
var _a = DynamicContext(), primaryWallet = _a.primaryWallet, sdkHasLoaded = _a.sdkHasLoaded, setShowAuthFlow = _a.setShowAuthFlow, handleLogOut = _a.handleLogOut, showAuthFlow = _a.showAuthFlow;
|
|
93
129
|
// Store setShowAuthFlow in ref to avoid re-renders - only when it changes
|
|
94
|
-
useEffect(function () {
|
|
130
|
+
(0, react_1.useEffect)(function () {
|
|
95
131
|
if (!setShowAuthFlow) {
|
|
96
132
|
showAuthFlowRef.current = null;
|
|
97
133
|
return;
|
|
@@ -108,7 +144,7 @@ function DynamicContextConsumer(_a) {
|
|
|
108
144
|
}, [setShowAuthFlow, setShowLogin, setStartClosingLogin]);
|
|
109
145
|
// Set the dynamic wallet and address when the primary wallet changes
|
|
110
146
|
// Use deep comparison to prevent unnecessary updates
|
|
111
|
-
useEffect(function () {
|
|
147
|
+
(0, react_1.useEffect)(function () {
|
|
112
148
|
// Skip if the wallet hasn't actually changed
|
|
113
149
|
if (primaryWallet === prevPrimaryWalletRef.current) {
|
|
114
150
|
return;
|
|
@@ -124,7 +160,7 @@ function DynamicContextConsumer(_a) {
|
|
|
124
160
|
setAddress('');
|
|
125
161
|
}
|
|
126
162
|
}, [primaryWallet, setDynamicWallet, setAddress]);
|
|
127
|
-
useEffect(function () {
|
|
163
|
+
(0, react_1.useEffect)(function () {
|
|
128
164
|
var wasAuthFlowOpen = prevShowAuthFlowRef.current;
|
|
129
165
|
prevShowAuthFlowRef.current = showAuthFlow;
|
|
130
166
|
if (pendingAuthCloseRef.current != null) {
|
|
@@ -139,7 +175,7 @@ function DynamicContextConsumer(_a) {
|
|
|
139
175
|
var closeIfStillIdle = function () {
|
|
140
176
|
pendingAuthCloseRef.current = null;
|
|
141
177
|
if (!primaryWalletStateRef.current) {
|
|
142
|
-
logger.debug('Dynamic auth flow closed before wallet connection; closing Nord widget');
|
|
178
|
+
logger_1.logger.debug('Dynamic auth flow closed before wallet connection; closing Nord widget');
|
|
143
179
|
setShowLogin(false);
|
|
144
180
|
setStartClosingLogin(true);
|
|
145
181
|
}
|
|
@@ -153,22 +189,22 @@ function DynamicContextConsumer(_a) {
|
|
|
153
189
|
}
|
|
154
190
|
}, [showAuthFlow, showLogin, setShowLogin, setStartClosingLogin]);
|
|
155
191
|
// Set the logout handler when it changes - only when it actually changes
|
|
156
|
-
useEffect(function () {
|
|
192
|
+
(0, react_1.useEffect)(function () {
|
|
157
193
|
if (handleLogOut && handleLogOut !== prevHandleLogOutRef.current) {
|
|
158
194
|
prevHandleLogOutRef.current = handleLogOut;
|
|
159
195
|
setDynamicHandleLogOut(function () { return handleLogOut; });
|
|
160
196
|
}
|
|
161
197
|
}, [handleLogOut, setDynamicHandleLogOut]);
|
|
162
198
|
// Set the SDK loaded flag when it changes - only when it actually changes
|
|
163
|
-
useEffect(function () {
|
|
199
|
+
(0, react_1.useEffect)(function () {
|
|
164
200
|
if (sdkHasLoaded !== prevSdkHasLoadedRef.current) {
|
|
165
201
|
prevSdkHasLoadedRef.current = sdkHasLoaded;
|
|
166
202
|
setDynamicSdkHasLoaded(sdkHasLoaded);
|
|
167
203
|
}
|
|
168
204
|
}, [sdkHasLoaded, setDynamicSdkHasLoaded]);
|
|
169
|
-
return
|
|
205
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
|
|
170
206
|
};
|
|
171
|
-
return
|
|
207
|
+
return (0, jsx_runtime_1.jsx)(DynamicComponent, {});
|
|
172
208
|
}
|
|
173
209
|
var getSettings = function () { return ({
|
|
174
210
|
initialAuthenticationMode: 'connect-only',
|
|
@@ -180,16 +216,16 @@ var getSettings = function () { return ({
|
|
|
180
216
|
},
|
|
181
217
|
events: {
|
|
182
218
|
onAuthSuccess: function (args) {
|
|
183
|
-
logger.debug('onAuthSuccess was called', args);
|
|
219
|
+
logger_1.logger.debug('onAuthSuccess was called', args);
|
|
184
220
|
},
|
|
185
221
|
},
|
|
186
222
|
}); };
|
|
187
223
|
function LazyInternal(props) {
|
|
188
224
|
var _this = this;
|
|
189
|
-
var _a = useState(null), Provider = _a[0], setProvider = _a[1];
|
|
190
|
-
var _b = useState(null), DynamicWidgetComponent = _b[0], setDynamicWidgetComponent = _b[1];
|
|
191
|
-
var _c = useState([]), walletConnectors = _c[0], setWalletConnectors = _c[1];
|
|
192
|
-
useEffect(function () {
|
|
225
|
+
var _a = (0, react_1.useState)(null), Provider = _a[0], setProvider = _a[1];
|
|
226
|
+
var _b = (0, react_1.useState)(null), DynamicWidgetComponent = _b[0], setDynamicWidgetComponent = _b[1];
|
|
227
|
+
var _c = (0, react_1.useState)([]), walletConnectors = _c[0], setWalletConnectors = _c[1];
|
|
228
|
+
(0, react_1.useEffect)(function () {
|
|
193
229
|
var loadDynamicDeps = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
194
230
|
var _a, _b, DynamicContextProvider_1, DynamicWidget_1, SolanaWalletConnectors, error_1;
|
|
195
231
|
return __generator(this, function (_c) {
|
|
@@ -197,8 +233,8 @@ function LazyInternal(props) {
|
|
|
197
233
|
case 0:
|
|
198
234
|
_c.trys.push([0, 2, , 3]);
|
|
199
235
|
return [4 /*yield*/, Promise.all([
|
|
200
|
-
|
|
201
|
-
|
|
236
|
+
Promise.resolve().then(function () { return __importStar(require('@dynamic-labs/sdk-react-core')); }),
|
|
237
|
+
Promise.resolve().then(function () { return __importStar(require('@dynamic-labs/solana')); }),
|
|
202
238
|
])];
|
|
203
239
|
case 1:
|
|
204
240
|
_a = _c.sent(), _b = _a[0], DynamicContextProvider_1 = _b.DynamicContextProvider, DynamicWidget_1 = _b.DynamicWidget, SolanaWalletConnectors = _a[1].SolanaWalletConnectors;
|
|
@@ -208,7 +244,7 @@ function LazyInternal(props) {
|
|
|
208
244
|
return [3 /*break*/, 3];
|
|
209
245
|
case 2:
|
|
210
246
|
error_1 = _c.sent();
|
|
211
|
-
logger.error('Failed to load Dynamic dependencies:', error_1);
|
|
247
|
+
logger_1.logger.error('Failed to load Dynamic dependencies:', error_1);
|
|
212
248
|
return [3 /*break*/, 3];
|
|
213
249
|
case 3: return [2 /*return*/];
|
|
214
250
|
}
|
|
@@ -217,14 +253,14 @@ function LazyInternal(props) {
|
|
|
217
253
|
loadDynamicDeps();
|
|
218
254
|
}, []);
|
|
219
255
|
// Memoize the dynamic settings to prevent unnecessary re-renders
|
|
220
|
-
var dynamicSettings = useCallback(function () { return (__assign(__assign({}, getSettings()), { walletConnectors: walletConnectors })); }, [walletConnectors]);
|
|
256
|
+
var dynamicSettings = (0, react_1.useCallback)(function () { return (__assign(__assign({}, getSettings()), { walletConnectors: walletConnectors })); }, [walletConnectors]);
|
|
221
257
|
if (!Provider || walletConnectors.length === 0) {
|
|
222
258
|
return null;
|
|
223
259
|
}
|
|
224
|
-
return (
|
|
260
|
+
return ((0, jsx_runtime_1.jsxs)(Provider, { settings: dynamicSettings(), theme: "dark", children: [(0, jsx_runtime_1.jsx)(DynamicContextConsumer, { children: props.children }), DynamicWidgetComponent ? (0, jsx_runtime_1.jsx)(DynamicWidgetComponent, {}) : null] }));
|
|
225
261
|
}
|
|
226
|
-
|
|
262
|
+
function LazyWalletProvider(_a) {
|
|
227
263
|
var children = _a.children;
|
|
228
|
-
return
|
|
264
|
+
return (0, jsx_runtime_1.jsx)(LazyInternal, { children: children });
|
|
229
265
|
}
|
|
230
266
|
//# sourceMappingURL=LazyWalletProvider.js.map
|