@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.
Files changed (137) hide show
  1. package/dist/animations/N1Loader.js +14 -8
  2. package/dist/animations/N1Loader.js.map +1 -1
  3. package/dist/animations/Processing.js +14 -8
  4. package/dist/animations/Processing.js.map +1 -1
  5. package/dist/components/LoadingFallback.js +6 -2
  6. package/dist/components/LoadingFallback.js.map +1 -1
  7. package/dist/components/Logo.js +25 -22
  8. package/dist/components/Logo.js.map +1 -1
  9. package/dist/components/N1ConnectButton.js +18 -12
  10. package/dist/components/N1ConnectButton.js.map +1 -1
  11. package/dist/components/logos/ArbitrumLogo.js +7 -3
  12. package/dist/components/logos/ArbitrumLogo.js.map +1 -1
  13. package/dist/components/logos/BaseLogo.js +7 -3
  14. package/dist/components/logos/BaseLogo.js.map +1 -1
  15. package/dist/components/logos/BeraLogo.js +7 -3
  16. package/dist/components/logos/BeraLogo.js.map +1 -1
  17. package/dist/components/logos/BitcoinLogo.js +7 -3
  18. package/dist/components/logos/BitcoinLogo.js.map +1 -1
  19. package/dist/components/logos/EthereumLogo.js +7 -3
  20. package/dist/components/logos/EthereumLogo.js.map +1 -1
  21. package/dist/components/logos/HyperliquidLogo.js +7 -3
  22. package/dist/components/logos/HyperliquidLogo.js.map +1 -1
  23. package/dist/components/logos/OptimismLogo.js +7 -3
  24. package/dist/components/logos/OptimismLogo.js.map +1 -1
  25. package/dist/components/logos/SolanaLogo.js +7 -3
  26. package/dist/components/logos/SolanaLogo.js.map +1 -1
  27. package/dist/components/logos/ZeroOneLogo.js +7 -3
  28. package/dist/components/logos/ZeroOneLogo.js.map +1 -1
  29. package/dist/components/logos/index.js +25 -9
  30. package/dist/components/logos/index.js.map +1 -1
  31. package/dist/config/solana.js +7 -3
  32. package/dist/config/solana.js.map +1 -1
  33. package/dist/config.js +5 -2
  34. package/dist/config.js.map +1 -1
  35. package/dist/context/n1-wallet-context.js +8 -4
  36. package/dist/context/n1-wallet-context.js.map +1 -1
  37. package/dist/errors/types.js +6 -3
  38. package/dist/errors/types.js.map +1 -1
  39. package/dist/features/onboarding-flow/N1WalletModal.js +59 -23
  40. package/dist/features/onboarding-flow/N1WalletModal.js.map +1 -1
  41. package/dist/features/onboarding-flow/OnboardingFlow.js +50 -46
  42. package/dist/features/onboarding-flow/OnboardingFlow.js.map +1 -1
  43. package/dist/features/onboarding-flow/components/ChainButton.js +7 -4
  44. package/dist/features/onboarding-flow/components/ChainButton.js.map +1 -1
  45. package/dist/features/onboarding-flow/components/Header.js +15 -11
  46. package/dist/features/onboarding-flow/components/Header.js.map +1 -1
  47. package/dist/features/onboarding-flow/components/ImageWithFallback.js +10 -6
  48. package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +1 -1
  49. package/dist/features/onboarding-flow/components/TransactionTable.js +13 -10
  50. package/dist/features/onboarding-flow/components/TransactionTable.js.map +1 -1
  51. package/dist/features/onboarding-flow/components/WaitingMessage.js +14 -8
  52. package/dist/features/onboarding-flow/components/WaitingMessage.js.map +1 -1
  53. package/dist/features/onboarding-flow/components/index.js +21 -5
  54. package/dist/features/onboarding-flow/components/index.js.map +1 -1
  55. package/dist/features/onboarding-flow/index.js +5 -1
  56. package/dist/features/onboarding-flow/index.js.map +1 -1
  57. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +60 -55
  58. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -1
  59. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +48 -43
  60. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -1
  61. package/dist/features/onboarding-flow/providers/StateProvider.js +11 -7
  62. package/dist/features/onboarding-flow/providers/StateProvider.js.map +1 -1
  63. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +74 -69
  64. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -1
  65. package/dist/features/onboarding-flow/providers/debug.js +21 -18
  66. package/dist/features/onboarding-flow/providers/debug.js.map +1 -1
  67. package/dist/features/onboarding-flow/providers/index.js +16 -5
  68. package/dist/features/onboarding-flow/providers/index.js.map +1 -1
  69. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js +20 -15
  70. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -1
  71. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js +11 -8
  72. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -1
  73. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js +38 -34
  74. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +1 -1
  75. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +51 -47
  76. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +1 -1
  77. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +12 -8
  78. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +1 -1
  79. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js +28 -25
  80. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +1 -1
  81. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js +13 -10
  82. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +1 -1
  83. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +10 -7
  84. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +1 -1
  85. package/dist/features/onboarding-flow/screens/index.js +23 -7
  86. package/dist/features/onboarding-flow/screens/index.js.map +1 -1
  87. package/dist/features/onboarding-flow/types.js +6 -3
  88. package/dist/features/onboarding-flow/types.js.map +1 -1
  89. package/dist/features/onboarding-flow/utils/depositStorage.js +8 -3
  90. package/dist/features/onboarding-flow/utils/depositStorage.js.map +1 -1
  91. package/dist/features/onboarding-flow/utils/imageUtils.js +9 -3
  92. package/dist/features/onboarding-flow/utils/imageUtils.js.map +1 -1
  93. package/dist/features/onboarding-flow/utils/nordUser.js +38 -2
  94. package/dist/features/onboarding-flow/utils/nordUser.js.map +1 -1
  95. package/dist/features/onboarding-flow/utils/nordUtils.js +12 -5
  96. package/dist/features/onboarding-flow/utils/nordUtils.js.map +1 -1
  97. package/dist/features/onboarding-flow/utils/session.js +17 -14
  98. package/dist/features/onboarding-flow/utils/session.js.map +1 -1
  99. package/dist/features/onboarding-flow/utils/transaction.js +4 -1
  100. package/dist/features/onboarding-flow/utils/transaction.js.map +1 -1
  101. package/dist/features/onboarding-flow/utils/utils.js +16 -8
  102. package/dist/features/onboarding-flow/utils/utils.js.map +1 -1
  103. package/dist/features/onboarding-flow/utils/withImageFallback.js +15 -9
  104. package/dist/features/onboarding-flow/utils/withImageFallback.js.map +1 -1
  105. package/dist/hooks/index.js +18 -2
  106. package/dist/hooks/index.js.map +1 -1
  107. package/dist/hooks/useN1Wallet.js +10 -6
  108. package/dist/hooks/useN1Wallet.js.map +1 -1
  109. package/dist/hooks/useNordUserInitialization.js +34 -31
  110. package/dist/hooks/useNordUserInitialization.js.map +1 -1
  111. package/dist/index.js +21 -7
  112. package/dist/index.js.map +1 -1
  113. package/dist/polyfills/windowEthereumGuard.js +2 -1
  114. package/dist/polyfills/windowEthereumGuard.js.map +1 -1
  115. package/dist/providers/LazyWalletProvider.js +74 -38
  116. package/dist/providers/LazyWalletProvider.js.map +1 -1
  117. package/dist/providers/N1WalletProvider.js +109 -70
  118. package/dist/providers/N1WalletProvider.js.map +1 -1
  119. package/dist/providers/ShadowRootWrapper.js +10 -4
  120. package/dist/providers/ShadowRootWrapper.js.map +1 -1
  121. package/dist/providers/WalletErrorBoundary.js +11 -6
  122. package/dist/providers/WalletErrorBoundary.js.map +1 -1
  123. package/dist/styles/embedded-main-css.js +3 -1
  124. package/dist/styles/embedded-main-css.js.map +1 -1
  125. package/dist/types/wallet.js +7 -4
  126. package/dist/types/wallet.js.map +1 -1
  127. package/dist/utils/ed25519.js +20 -14
  128. package/dist/utils/ed25519.js.map +1 -1
  129. package/dist/utils/getPseudoName.js +10 -7
  130. package/dist/utils/getPseudoName.js.map +1 -1
  131. package/dist/utils/logger.js +5 -3
  132. package/dist/utils/logger.js.map +1 -1
  133. package/dist/utils/shortenString.js +6 -2
  134. package/dist/utils/shortenString.js.map +1 -1
  135. package/dist/utils/words.js +4 -1
  136. package/dist/utils/words.js.map +1 -1
  137. package/package.json +1 -1
@@ -1,14 +1,18 @@
1
- import { useContext } from 'react';
2
- import { N1WalletContext, N1InternalWalletContext } from '../context/n1-wallet-context';
3
- export function useN1WalletContext() {
4
- var context = useContext(N1WalletContext);
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
- export function useN1WalletInternalContext() {
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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAExF,MAAM,UAAU,kBAAkB;IAChC,IAAM,OAAO,GAAG,UAAU,CAAC,eAAe,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,MAAM,UAAU,0BAA0B;IACxC,IAAM,OAAO,GAAG,UAAU,CAAC,uBAAuB,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
+ {"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
- import { useEffect } from 'react';
38
- import { PublicKey } from '@solana/web3.js';
39
- import { signEd25519Message } from '../utils/ed25519';
40
- import { WalletError, WalletErrorCode } from '../errors/types';
41
- import { logger } from '../utils/logger';
42
- import { N1SessionMode } from '../types/wallet';
43
- import { useN1WalletContext, useN1WalletInternalContext } from './useN1Wallet';
44
- import { generateSessionKeyPair, getSessionKeysFromLocalStorage, storeSessionKeysInLocalStorage } from '../features/onboarding-flow/utils/utils';
45
- import { dynamicImportNordUser } from '../features/onboarding-flow/utils/nordUser';
46
- export function useNordUserInitialization() {
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
- export { N1WalletProvider } from './providers/N1WalletProvider';
2
- export { N1ModalViewMode, N1SessionMode, } from './types/wallet';
3
- export { N1ConnectButton } from './components/N1ConnectButton';
4
- export { useN1WalletContext } from './hooks/useN1Wallet';
5
- export { default as Logo } from './components/Logo';
6
- export { N1LoaderAnimation } from './animations/N1Loader';
7
- export { ProcessingAnimation } from './animations/Processing';
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,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,eAAe,EACf,aAAa,GAEd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC","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
+ {"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
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
49
- import { useCallback, useEffect, useRef, useState } from 'react';
50
- import { useN1WalletContext, useN1WalletInternalContext } from '../hooks/useN1Wallet';
51
- import { logger } from '../utils/logger';
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
- import('@dynamic-labs/sdk-react-core').then(function (_a) {
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 _jsx(_Fragment, { children: children });
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 _jsx(_Fragment, { children: children });
205
+ return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
170
206
  };
171
- return _jsx(DynamicComponent, {});
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
- import('@dynamic-labs/sdk-react-core'),
201
- import('@dynamic-labs/solana'),
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 (_jsxs(Provider, { settings: dynamicSettings(), theme: "dark", children: [_jsx(DynamicContextConsumer, { children: props.children }), DynamicWidgetComponent ? _jsx(DynamicWidgetComponent, {}) : null] }));
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
- export function LazyWalletProvider(_a) {
262
+ function LazyWalletProvider(_a) {
227
263
  var children = _a.children;
228
- return _jsx(LazyInternal, { children: children });
264
+ return (0, jsx_runtime_1.jsx)(LazyInternal, { children: children });
229
265
  }
230
266
  //# sourceMappingURL=LazyWalletProvider.js.map