@n1xyz/wallet-widget 0.0.33-alpha.3 → 0.0.33
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 +8 -14
- package/dist/animations/N1Loader.js.map +1 -1
- package/dist/animations/Processing.js +8 -14
- package/dist/animations/Processing.js.map +1 -1
- package/dist/components/LoadingFallback.js +2 -6
- package/dist/components/LoadingFallback.js.map +1 -1
- package/dist/components/Logo.js +22 -25
- package/dist/components/Logo.js.map +1 -1
- package/dist/components/N1ConnectButton.js +12 -18
- package/dist/components/N1ConnectButton.js.map +1 -1
- package/dist/components/logos/ArbitrumLogo.js +3 -7
- package/dist/components/logos/ArbitrumLogo.js.map +1 -1
- package/dist/components/logos/BaseLogo.js +3 -7
- package/dist/components/logos/BaseLogo.js.map +1 -1
- package/dist/components/logos/BeraLogo.js +3 -7
- package/dist/components/logos/BeraLogo.js.map +1 -1
- package/dist/components/logos/BitcoinLogo.js +3 -7
- package/dist/components/logos/BitcoinLogo.js.map +1 -1
- package/dist/components/logos/EthereumLogo.js +3 -7
- package/dist/components/logos/EthereumLogo.js.map +1 -1
- package/dist/components/logos/HyperliquidLogo.js +3 -7
- package/dist/components/logos/HyperliquidLogo.js.map +1 -1
- package/dist/components/logos/OptimismLogo.js +3 -7
- package/dist/components/logos/OptimismLogo.js.map +1 -1
- package/dist/components/logos/SolanaLogo.js +3 -7
- package/dist/components/logos/SolanaLogo.js.map +1 -1
- package/dist/components/logos/ZeroOneLogo.js +3 -7
- package/dist/components/logos/ZeroOneLogo.js.map +1 -1
- package/dist/components/logos/index.js +9 -25
- package/dist/components/logos/index.js.map +1 -1
- package/dist/config/solana.js +3 -7
- package/dist/config/solana.js.map +1 -1
- package/dist/config.js +2 -5
- package/dist/config.js.map +1 -1
- package/dist/context/n1-wallet-context.js +4 -8
- package/dist/context/n1-wallet-context.js.map +1 -1
- package/dist/errors/types.js +3 -6
- package/dist/errors/types.js.map +1 -1
- package/dist/features/onboarding-flow/N1WalletModal.js +23 -59
- package/dist/features/onboarding-flow/N1WalletModal.js.map +1 -1
- package/dist/features/onboarding-flow/OnboardingFlow.js +46 -50
- package/dist/features/onboarding-flow/OnboardingFlow.js.map +1 -1
- package/dist/features/onboarding-flow/components/ChainButton.js +4 -7
- package/dist/features/onboarding-flow/components/ChainButton.js.map +1 -1
- package/dist/features/onboarding-flow/components/Header.js +11 -15
- package/dist/features/onboarding-flow/components/Header.js.map +1 -1
- package/dist/features/onboarding-flow/components/ImageWithFallback.js +6 -10
- package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +1 -1
- package/dist/features/onboarding-flow/components/TransactionTable.js +10 -13
- package/dist/features/onboarding-flow/components/TransactionTable.js.map +1 -1
- package/dist/features/onboarding-flow/components/WaitingMessage.js +8 -14
- package/dist/features/onboarding-flow/components/WaitingMessage.js.map +1 -1
- package/dist/features/onboarding-flow/components/index.js +5 -21
- package/dist/features/onboarding-flow/components/index.js.map +1 -1
- package/dist/features/onboarding-flow/index.js +1 -5
- package/dist/features/onboarding-flow/index.js.map +1 -1
- package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +55 -60
- package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +43 -48
- package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/StateProvider.js +7 -11
- package/dist/features/onboarding-flow/providers/StateProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +69 -74
- package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/debug.js +18 -21
- package/dist/features/onboarding-flow/providers/debug.js.map +1 -1
- package/dist/features/onboarding-flow/providers/index.js +5 -16
- package/dist/features/onboarding-flow/providers/index.js.map +1 -1
- package/dist/features/onboarding-flow/providers/onboardingStateMachine.js +15 -20
- package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -1
- package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js +8 -11
- package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js +34 -38
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +47 -51
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +8 -12
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js +25 -28
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js +10 -13
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +7 -10
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/index.js +7 -23
- package/dist/features/onboarding-flow/screens/index.js.map +1 -1
- package/dist/features/onboarding-flow/types.js +3 -6
- package/dist/features/onboarding-flow/types.js.map +1 -1
- package/dist/features/onboarding-flow/utils/depositStorage.js +3 -8
- package/dist/features/onboarding-flow/utils/depositStorage.js.map +1 -1
- package/dist/features/onboarding-flow/utils/imageUtils.js +3 -9
- package/dist/features/onboarding-flow/utils/imageUtils.js.map +1 -1
- package/dist/features/onboarding-flow/utils/nordUser.js +2 -38
- package/dist/features/onboarding-flow/utils/nordUser.js.map +1 -1
- package/dist/features/onboarding-flow/utils/nordUtils.js +5 -12
- package/dist/features/onboarding-flow/utils/nordUtils.js.map +1 -1
- package/dist/features/onboarding-flow/utils/session.js +14 -17
- package/dist/features/onboarding-flow/utils/session.js.map +1 -1
- package/dist/features/onboarding-flow/utils/transaction.js +1 -4
- package/dist/features/onboarding-flow/utils/transaction.js.map +1 -1
- package/dist/features/onboarding-flow/utils/utils.js +8 -16
- package/dist/features/onboarding-flow/utils/utils.js.map +1 -1
- package/dist/features/onboarding-flow/utils/withImageFallback.js +9 -15
- package/dist/features/onboarding-flow/utils/withImageFallback.js.map +1 -1
- package/dist/hooks/index.js +2 -18
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useN1Wallet.js +6 -10
- package/dist/hooks/useN1Wallet.js.map +1 -1
- package/dist/hooks/useNordUserInitialization.js +31 -34
- package/dist/hooks/useNordUserInitialization.js.map +1 -1
- package/dist/index.js +7 -21
- package/dist/index.js.map +1 -1
- package/dist/main.css +2 -0
- package/dist/polyfills/windowEthereumGuard.js +1 -2
- package/dist/polyfills/windowEthereumGuard.js.map +1 -1
- package/dist/providers/LazyWalletProvider.js +38 -74
- package/dist/providers/LazyWalletProvider.js.map +1 -1
- package/dist/providers/N1WalletProvider.js +70 -109
- package/dist/providers/N1WalletProvider.js.map +1 -1
- package/dist/providers/ShadowRootWrapper.js +4 -10
- package/dist/providers/ShadowRootWrapper.js.map +1 -1
- package/dist/providers/WalletErrorBoundary.js +6 -11
- package/dist/providers/WalletErrorBoundary.js.map +1 -1
- package/dist/styles/embedded-main-css.js +1 -3
- package/dist/styles/embedded-main-css.js.map +1 -1
- package/dist/styles/main.css +1 -1
- package/dist/types/wallet.js +4 -7
- package/dist/types/wallet.js.map +1 -1
- package/dist/utils/ed25519.js +14 -20
- package/dist/utils/ed25519.js.map +1 -1
- package/dist/utils/getPseudoName.js +7 -10
- package/dist/utils/getPseudoName.js.map +1 -1
- package/dist/utils/logger.js +3 -5
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/shortenString.js +2 -6
- package/dist/utils/shortenString.js.map +1 -1
- package/dist/utils/words.js +1 -4
- package/dist/utils/words.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/features/onboarding-flow/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/features/onboarding-flow/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,cASX;AATD,WAAY,cAAc;IACxB,yDAAuC,CAAA;IACvC,qDAAmC,CAAA;IACnC,+CAA6B,CAAA;IAC7B,uDAAqC,CAAA;IACrC,qDAAmC,CAAA;IACnC,+CAA6B,CAAA;IAC7B,iDAA+B,CAAA;IAC/B,iCAAe,CAAA;AACjB,CAAC,EATW,cAAc,KAAd,cAAc,QASzB;AAuCD;;GAEG;AACH,MAAM,CAAC,IAAM,wBAAwB,GAAsB;IACzD,cAAc,EAAE,KAAK;IACrB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,oBAAoB,EAAE,IAAI;IAC1B,MAAM,EAAE,EAAE;IACV,aAAa,EAAE,IAAI;IACnB,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,SAAS;IACvB,iBAAiB,EAAE,KAAK;IACxB,WAAW,EAAE,IAAI;CAClB,CAAC","sourcesContent":["import React from 'react';\n\n/**\n * Shared types for the onboarding flow state machine\n */\n\n/**\n * Enum representing all possible states in the onboarding flow\n */\nexport enum OnboardingStep {\n CONNECTING_WALLET = 'CONNECTING_WALLET',\n CHAIN_SELECTION = 'CHAIN_SELECTION',\n AMOUNT_INPUT = 'AMOUNT_INPUT',\n DEPOSIT_PROGRESS = 'DEPOSIT_PROGRESS',\n DEPOSIT_SUCCESS = 'DEPOSIT_SUCCESS',\n AUTH_LOADING = 'AUTH_LOADING',\n FINAL_SUCCESS = 'FINAL_SUCCESS',\n ERROR = 'ERROR',\n}\n\n\n\n/**\n * Interface representing the onboarding context, containing all data necessary\n * for the onboarding flow\n */\nexport interface StoredDepositRecord {\n transactionId: string;\n amount: string;\n tokenSymbol: string;\n chainId: string;\n chainName: string;\n chainNetwork: string | null;\n timestamp: number;\n}\n\nexport interface OnboardingContext {\n hasNordAccount: boolean;\n hasActiveSession: boolean;\n selectedChain: string | null;\n selectedChainId: string | null;\n selectedChainNetwork: string | null;\n amount: string;\n transactionId: string | null;\n error: Error | null;\n depositError?: string;\n isDepositOnlyFlow: boolean;\n lastDeposit: StoredDepositRecord | null;\n}\n\nexport interface WalletBalanceState {\n usdc: number | null;\n sol: number | null;\n loading: boolean;\n error: string | null;\n}\n\n/**\n * Initial onboarding context with default values\n */\nexport const initialOnboardingContext: OnboardingContext = {\n hasNordAccount: false,\n hasActiveSession: false,\n selectedChain: null,\n selectedChainId: null,\n selectedChainNetwork: null,\n amount: '',\n transactionId: null,\n error: null,\n depositError: undefined,\n isDepositOnlyFlow: false,\n lastDeposit: null,\n};\n\nexport interface TableValues {\n amount?: { text: string; visible: boolean; typing: boolean };\n tx: { text: string; visible: boolean; typing: boolean };\n from: { text: string; visible: boolean; typing: boolean };\n to: { text: string; visible: boolean; typing: boolean };\n network: { text: string; visible: boolean; typing: boolean };\n status: { text: string; visible: boolean; typing: boolean };\n}\n\nexport interface WaitingMessageState {\n title: string;\n subtitle: string;\n visible: boolean;\n isTyping: boolean;\n}\n\n/**\n * Interface for a blockchain network\n */\nexport interface Chain {\n id: string;\n name: string;\n logo: string | React.ReactNode;\n network?: string;\n description?: string;\n}\n\nexport interface App {\n name: string;\n color: string;\n progress: number;\n}\n\nexport type ButtonKey = 'deposit' | 'continue' | 'openApp';\n\nexport interface ButtonState {\n text: string;\n isTyping: boolean;\n showCursor: boolean;\n}\n\nexport type ButtonStates = Record<ButtonKey, ButtonState>;\n"]}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.saveLastDepositRecord = saveLastDepositRecord;
|
|
4
|
-
exports.readLastDepositRecord = readLastDepositRecord;
|
|
5
|
-
exports.clearLastDepositRecord = clearLastDepositRecord;
|
|
6
1
|
var LAST_DEPOSIT_KEY_PREFIX = 'n1_last_deposit_';
|
|
7
2
|
var getStorage = function () {
|
|
8
3
|
return typeof window === 'undefined' ? null : window.localStorage;
|
|
@@ -10,7 +5,7 @@ var getStorage = function () {
|
|
|
10
5
|
var getKey = function (address) {
|
|
11
6
|
return "".concat(LAST_DEPOSIT_KEY_PREFIX).concat(address.toLowerCase());
|
|
12
7
|
};
|
|
13
|
-
function saveLastDepositRecord(address, record) {
|
|
8
|
+
export function saveLastDepositRecord(address, record) {
|
|
14
9
|
if (!address || !record || !record.transactionId) {
|
|
15
10
|
return;
|
|
16
11
|
}
|
|
@@ -20,7 +15,7 @@ function saveLastDepositRecord(address, record) {
|
|
|
20
15
|
}
|
|
21
16
|
storage.setItem(getKey(address), JSON.stringify(record));
|
|
22
17
|
}
|
|
23
|
-
function readLastDepositRecord(address) {
|
|
18
|
+
export function readLastDepositRecord(address) {
|
|
24
19
|
if (!address) {
|
|
25
20
|
return null;
|
|
26
21
|
}
|
|
@@ -40,7 +35,7 @@ function readLastDepositRecord(address) {
|
|
|
40
35
|
return null;
|
|
41
36
|
}
|
|
42
37
|
}
|
|
43
|
-
function clearLastDepositRecord(address) {
|
|
38
|
+
export function clearLastDepositRecord(address) {
|
|
44
39
|
if (!address) {
|
|
45
40
|
return;
|
|
46
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"depositStorage.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/depositStorage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"depositStorage.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/depositStorage.ts"],"names":[],"mappings":"AAEA,IAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAEnD,IAAM,UAAU,GAAG;IACjB,OAAA,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY;AAA1D,CAA0D,CAAC;AAE7D,IAAM,MAAM,GAAG,UAAC,OAAe;IAC7B,OAAA,UAAG,uBAAuB,SAAG,OAAO,CAAC,WAAW,EAAE,CAAE;AAApD,CAAoD,CAAC;AAEvD,MAAM,UAAU,qBAAqB,CACnC,OAAkC,EAClC,MAA2B;IAE3B,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QACjD,OAAO;IACT,CAAC;IAED,IAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAkC;IAElC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,IAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAC;IAChD,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAkC;IACvE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,IAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACtC,CAAC","sourcesContent":["import { StoredDepositRecord } from '../types';\n\nconst LAST_DEPOSIT_KEY_PREFIX = 'n1_last_deposit_';\n\nconst getStorage = () =>\n typeof window === 'undefined' ? null : window.localStorage;\n\nconst getKey = (address: string) =>\n `${LAST_DEPOSIT_KEY_PREFIX}${address.toLowerCase()}`;\n\nexport function saveLastDepositRecord(\n address: string | null | undefined,\n record: StoredDepositRecord\n) {\n if (!address || !record || !record.transactionId) {\n return;\n }\n\n const storage = getStorage();\n if (!storage) {\n return;\n }\n\n storage.setItem(getKey(address), JSON.stringify(record));\n}\n\nexport function readLastDepositRecord(\n address: string | null | undefined\n): StoredDepositRecord | null {\n if (!address) {\n return null;\n }\n\n const storage = getStorage();\n if (!storage) {\n return null;\n }\n\n try {\n const raw = storage.getItem(getKey(address));\n if (!raw) {\n return null;\n }\n return JSON.parse(raw) as StoredDepositRecord;\n } catch {\n storage.removeItem(getKey(address));\n return null;\n }\n}\n\nexport function clearLastDepositRecord(address: string | null | undefined) {\n if (!address) {\n return;\n }\n\n const storage = getStorage();\n if (!storage) {\n return;\n }\n\n storage.removeItem(getKey(address));\n}\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -35,14 +34,12 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
34
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
35
|
}
|
|
37
36
|
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.getTokenIconUrl = exports.getChainIconUrl = exports.isImageValid = void 0;
|
|
40
37
|
/**
|
|
41
38
|
* Checks if an image URL is valid and accessible
|
|
42
39
|
* @param url The image URL to check
|
|
43
40
|
* @returns A promise that resolves to true if the image is valid, false otherwise
|
|
44
41
|
*/
|
|
45
|
-
var isImageValid = function (url) { return __awaiter(void 0, void 0, void 0, function () {
|
|
42
|
+
export var isImageValid = function (url) { return __awaiter(void 0, void 0, void 0, function () {
|
|
46
43
|
return __generator(this, function (_a) {
|
|
47
44
|
if (!url)
|
|
48
45
|
return [2 /*return*/, false];
|
|
@@ -54,14 +51,13 @@ var isImageValid = function (url) { return __awaiter(void 0, void 0, void 0, fun
|
|
|
54
51
|
})];
|
|
55
52
|
});
|
|
56
53
|
}); };
|
|
57
|
-
exports.isImageValid = isImageValid;
|
|
58
54
|
/**
|
|
59
55
|
* Gets chain icon URL with fallback
|
|
60
56
|
* @param chainId The chain ID
|
|
61
57
|
* @param fallbackUrl Optional fallback URL
|
|
62
58
|
* @returns The chain icon URL or fallback
|
|
63
59
|
*/
|
|
64
|
-
var getChainIconUrl = function (chainId, fallbackUrl) {
|
|
60
|
+
export var getChainIconUrl = function (chainId, fallbackUrl) {
|
|
65
61
|
try {
|
|
66
62
|
// Example implementation - replace with actual logic
|
|
67
63
|
var baseUrl = 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains';
|
|
@@ -83,7 +79,6 @@ var getChainIconUrl = function (chainId, fallbackUrl) {
|
|
|
83
79
|
return fallbackUrl || '';
|
|
84
80
|
}
|
|
85
81
|
};
|
|
86
|
-
exports.getChainIconUrl = getChainIconUrl;
|
|
87
82
|
/**
|
|
88
83
|
* Gets token icon URL with fallback
|
|
89
84
|
* @param tokenSymbol The token symbol (e.g., 'ETH', 'USDC')
|
|
@@ -91,7 +86,7 @@ exports.getChainIconUrl = getChainIconUrl;
|
|
|
91
86
|
* @param fallbackUrl Optional fallback URL
|
|
92
87
|
* @returns The token icon URL or fallback
|
|
93
88
|
*/
|
|
94
|
-
var getTokenIconUrl = function (tokenSymbol, fallbackUrl) {
|
|
89
|
+
export var getTokenIconUrl = function (tokenSymbol, fallbackUrl) {
|
|
95
90
|
try {
|
|
96
91
|
// Example implementation - replace with actual logic
|
|
97
92
|
var baseUrl = 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets';
|
|
@@ -112,5 +107,4 @@ var getTokenIconUrl = function (tokenSymbol, fallbackUrl) {
|
|
|
112
107
|
return fallbackUrl || '';
|
|
113
108
|
}
|
|
114
109
|
};
|
|
115
|
-
exports.getTokenIconUrl = getTokenIconUrl;
|
|
116
110
|
//# sourceMappingURL=imageUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageUtils.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/imageUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"imageUtils.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/imageUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,MAAM,CAAC,IAAM,YAAY,GAAG,UAAO,GAAW;;QAC5C,IAAI,CAAC,GAAG;YAAE,sBAAO,KAAK,EAAC;QAEvB,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO;gBACzB,IAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,GAAG,CAAC,MAAM,GAAG,cAAM,OAAA,OAAO,CAAC,IAAI,CAAC,EAAb,CAAa,CAAC;gBACjC,GAAG,CAAC,OAAO,GAAG,cAAM,OAAA,OAAO,CAAC,KAAK,CAAC,EAAd,CAAc,CAAC;gBACnC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;YAChB,CAAC,CAAC,EAAC;;KACJ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,UAC7B,OAAwB,EACxB,WAAoB;IAEpB,IAAI,CAAC;QACH,qDAAqD;QACrD,IAAM,OAAO,GACX,yEAAyE,CAAC;QAE5E,6CAA6C;QAC7C,IAAM,UAAU,GAA2B;YACzC,GAAG,EAAE,wBAAwB;YAC7B,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,uBAAuB;YAC9B,4BAA4B;SAC7B,CAAC;QAEF,IAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,UAAG,OAAO,cAAI,UAAU,CAAC,UAAU,CAAC,CAAE,CAAC;QAChD,CAAC;QAED,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,UAC7B,WAAmB,EACnB,WAAoB;IAEpB,IAAI,CAAC;QACH,qDAAqD;QACrD,IAAM,OAAO,GACX,yFAAyF,CAAC;QAE5F,8DAA8D;QAC9D,IAAM,cAAc,GAA2B;YAC7C,IAAI,EAAE,4CAA4C;YAClD,IAAI,EAAE,4CAA4C;YAClD,GAAG,EAAE,4CAA4C;YACjD,4BAA4B;SAC7B,CAAC;QAEF,IAAI,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC9C,OAAO,UAAG,OAAO,cAAI,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,cAAW,CAAC;QAC5E,CAAC;QAED,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC","sourcesContent":["/**\n * Checks if an image URL is valid and accessible\n * @param url The image URL to check\n * @returns A promise that resolves to true if the image is valid, false otherwise\n */\nexport const isImageValid = async (url: string): Promise<boolean> => {\n if (!url) return false;\n\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => resolve(true);\n img.onerror = () => resolve(false);\n img.src = url;\n });\n};\n\n/**\n * Gets chain icon URL with fallback\n * @param chainId The chain ID\n * @param fallbackUrl Optional fallback URL\n * @returns The chain icon URL or fallback\n */\nexport const getChainIconUrl = (\n chainId: string | number,\n fallbackUrl?: string\n): string => {\n try {\n // Example implementation - replace with actual logic\n const baseUrl =\n 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains';\n\n // Map of chain IDs to their respective paths\n const chainPaths: Record<string, string> = {\n '1': 'ethereum/info/logo.png',\n '56': 'smartchain/info/logo.png',\n '137': 'polygon/info/logo.png',\n // Add more chains as needed\n };\n\n const chainIdStr = chainId.toString();\n if (chainPaths[chainIdStr]) {\n return `${baseUrl}/${chainPaths[chainIdStr]}`;\n }\n\n return fallbackUrl || '';\n } catch (error) {\n console.error('Error getting chain icon URL:', error);\n return fallbackUrl || '';\n }\n};\n\n/**\n * Gets token icon URL with fallback\n * @param tokenSymbol The token symbol (e.g., 'ETH', 'USDC')\n * @param chainId Optional chain ID for chain-specific tokens\n * @param fallbackUrl Optional fallback URL\n * @returns The token icon URL or fallback\n */\nexport const getTokenIconUrl = (\n tokenSymbol: string,\n fallbackUrl?: string\n): string => {\n try {\n // Example implementation - replace with actual logic\n const baseUrl =\n 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets';\n\n // Map of token symbols to their respective contract addresses\n const tokenAddresses: Record<string, string> = {\n USDC: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n USDT: '0xdAC17F958D2ee523a2206206994597C13D831ec7',\n DAI: '0x6B175474E89094C44Da98b954EedeAC495271d0F',\n // Add more tokens as needed\n };\n\n if (tokenAddresses[tokenSymbol.toUpperCase()]) {\n return `${baseUrl}/${tokenAddresses[tokenSymbol.toUpperCase()]}/logo.png`;\n }\n\n return fallbackUrl || '';\n } catch (error) {\n console.error('Error getting token icon URL:', error);\n return fallbackUrl || '';\n }\n};\n"]}
|
|
@@ -1,37 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -68,14 +34,12 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
68
34
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
69
35
|
}
|
|
70
36
|
};
|
|
71
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
72
|
-
exports.dynamicImportNordUser = dynamicImportNordUser;
|
|
73
37
|
var nordUserCtorPromise;
|
|
74
|
-
function dynamicImportNordUser() {
|
|
38
|
+
export function dynamicImportNordUser() {
|
|
75
39
|
return __awaiter(this, void 0, void 0, function () {
|
|
76
40
|
return __generator(this, function (_a) {
|
|
77
41
|
if (!nordUserCtorPromise) {
|
|
78
|
-
nordUserCtorPromise =
|
|
42
|
+
nordUserCtorPromise = import('@n1xyz/nord-ts').then(function (module) { return module.NordUser; });
|
|
79
43
|
}
|
|
80
44
|
return [2 /*return*/, nordUserCtorPromise];
|
|
81
45
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nordUser.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/nordUser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nordUser.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/nordUser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAI,mBAA6C,CAAC;AAElD,MAAM,UAAgB,qBAAqB;;;YACvC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvB,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,QAAQ,EAAf,CAAe,CAAC,CAAC;YACrF,CAAC;YACD,sBAAO,mBAAmB,EAAC;;;CAC9B","sourcesContent":["\n\nlet nordUserCtorPromise: Promise<any> | undefined;\n\nexport async function dynamicImportNordUser() {\n if (!nordUserCtorPromise) {\n nordUserCtorPromise = import('@n1xyz/nord-ts').then((module) => module.NordUser);\n }\n return nordUserCtorPromise;\n}\n\n "]}
|
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatNordTransaction = formatNordTransaction;
|
|
4
|
-
exports.getTokenBalance = getTokenBalance;
|
|
5
|
-
exports.isNordConfigured = isNordConfigured;
|
|
6
|
-
exports.formatAmount = formatAmount;
|
|
7
|
-
exports.shortenAddress = shortenAddress;
|
|
8
1
|
/**
|
|
9
2
|
* Format a Nord transaction for display
|
|
10
3
|
*
|
|
11
4
|
* @param tx Transaction object
|
|
12
5
|
* @returns Formatted transaction ID
|
|
13
6
|
*/
|
|
14
|
-
function formatNordTransaction(tx) {
|
|
7
|
+
export function formatNordTransaction(tx) {
|
|
15
8
|
return tx.id
|
|
16
9
|
? tx.id.substring(0, 8) + '...' + tx.id.substring(tx.id.length - 8)
|
|
17
10
|
: 'Unknown';
|
|
@@ -23,7 +16,7 @@ function formatNordTransaction(tx) {
|
|
|
23
16
|
* @param tokenSymbol Token symbol
|
|
24
17
|
* @returns Token balance
|
|
25
18
|
*/
|
|
26
|
-
function getTokenBalance(nordUser, tokenSymbol) {
|
|
19
|
+
export function getTokenBalance(nordUser, tokenSymbol) {
|
|
27
20
|
if (!nordUser || !nordUser.balances || !nordUser.balances[tokenSymbol]) {
|
|
28
21
|
return 0;
|
|
29
22
|
}
|
|
@@ -36,7 +29,7 @@ function getTokenBalance(nordUser, tokenSymbol) {
|
|
|
36
29
|
* @param nord Nord instance
|
|
37
30
|
* @returns Whether Nord is properly configured
|
|
38
31
|
*/
|
|
39
|
-
function isNordConfigured(nord) {
|
|
32
|
+
export function isNordConfigured(nord) {
|
|
40
33
|
return !!nord && !!nord.webServerUrl && (!!nord.solanaConnection || !!nord.protonClient);
|
|
41
34
|
}
|
|
42
35
|
/**
|
|
@@ -46,7 +39,7 @@ function isNordConfigured(nord) {
|
|
|
46
39
|
* @param decimals Number of decimal places
|
|
47
40
|
* @returns Formatted amount
|
|
48
41
|
*/
|
|
49
|
-
function formatAmount(amount, decimals) {
|
|
42
|
+
export function formatAmount(amount, decimals) {
|
|
50
43
|
if (decimals === void 0) { decimals = 2; }
|
|
51
44
|
var numAmount = typeof amount === 'string' ? parseFloat(amount) : amount;
|
|
52
45
|
return numAmount.toFixed(decimals);
|
|
@@ -59,7 +52,7 @@ function formatAmount(amount, decimals) {
|
|
|
59
52
|
* @param endChars Number of characters to show at the end
|
|
60
53
|
* @returns Shortened address
|
|
61
54
|
*/
|
|
62
|
-
function shortenAddress(address, startChars, endChars) {
|
|
55
|
+
export function shortenAddress(address, startChars, endChars) {
|
|
63
56
|
if (startChars === void 0) { startChars = 6; }
|
|
64
57
|
if (endChars === void 0) { endChars = 4; }
|
|
65
58
|
if (!address)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nordUtils.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/nordUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nordUtils.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/nordUtils.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAO;IAC3C,OAAO,EAAE,CAAC,EAAE;QACV,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACnE,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAyB,EACzB,WAAmB;IAEnB,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrD,OAAO,aAAa,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,OAAO,IAAK,OAAA,KAAK,GAAG,OAAO,CAAC,OAAO,EAAvB,CAAuB,EAAE,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAS;IACxC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC3F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAuB,EACvB,QAAoB;IAApB,yBAAA,EAAA,YAAoB;IAEpB,IAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3E,OAAO,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,UAAsB,EACtB,QAAoB;IADpB,2BAAA,EAAA,cAAsB;IACtB,yBAAA,EAAA,YAAoB;IAEpB,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,GAAG,QAAQ;QAAE,OAAO,OAAO,CAAC;IAE5D,OAAO,UAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAE,CAAC;AACjG,CAAC","sourcesContent":["import type { NordUser } from '@n1xyz/nord-ts';\n\n/**\n * Format a Nord transaction for display\n *\n * @param tx Transaction object\n * @returns Formatted transaction ID\n */\nexport function formatNordTransaction(tx: any): string {\n return tx.id\n ? tx.id.substring(0, 8) + '...' + tx.id.substring(tx.id.length - 8)\n : 'Unknown';\n}\n\n/**\n * Get token balance for a specific token\n *\n * @param nordUser NordUser instance\n * @param tokenSymbol Token symbol\n * @returns Token balance\n */\nexport function getTokenBalance(\n nordUser: NordUser | null,\n tokenSymbol: string\n): number {\n if (!nordUser || !nordUser.balances || !nordUser.balances[tokenSymbol]) {\n return 0;\n }\n\n const tokenBalances = nordUser.balances[tokenSymbol];\n return tokenBalances.reduce((total, balance) => total + balance.balance, 0);\n}\n\n/**\n * Check if Nord is properly configured\n *\n * @param nord Nord instance\n * @returns Whether Nord is properly configured\n */\nexport function isNordConfigured(nord: any): boolean {\n return !!nord && !!nord.webServerUrl && (!!nord.solanaConnection || !!nord.protonClient);\n}\n\n/**\n * Format an amount with the appropriate number of decimal places\n *\n * @param amount Amount to format\n * @param decimals Number of decimal places\n * @returns Formatted amount\n */\nexport function formatAmount(\n amount: number | string,\n decimals: number = 2\n): string {\n const numAmount = typeof amount === 'string' ? parseFloat(amount) : amount;\n return numAmount.toFixed(decimals);\n}\n\n/**\n * Shorten an address for display\n *\n * @param address Address to shorten\n * @param startChars Number of characters to show at the start\n * @param endChars Number of characters to show at the end\n * @returns Shortened address\n */\nexport function shortenAddress(\n address: string,\n startChars: number = 6,\n endChars: number = 4\n): string {\n if (!address) return '';\n if (address.length <= startChars + endChars) return address;\n\n return `${address.substring(0, startChars)}...${address.substring(address.length - endChars)}`;\n}\n"]}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var wallet_1 = require("../../../types/wallet");
|
|
5
|
-
var logger_1 = require("../../../utils/logger");
|
|
6
|
-
var utils_1 = require("./utils");
|
|
1
|
+
import { N1SessionMode } from '../../../types/wallet';
|
|
2
|
+
import { logger } from '../../../utils/logger';
|
|
3
|
+
import { base64ToUint8Array } from './utils';
|
|
7
4
|
/**
|
|
8
5
|
* Default secure storage adapter (currently wraps localStorage but warns about security)
|
|
9
6
|
* TODO: Implement a more secure storage mechanism (e.g. encrypted storage or in-memory only with regular re-auth)
|
|
@@ -14,7 +11,7 @@ var defaultStorage = {
|
|
|
14
11
|
return localStorage.getItem(key);
|
|
15
12
|
}
|
|
16
13
|
catch (e) {
|
|
17
|
-
|
|
14
|
+
logger.error('Failed to access storage', e);
|
|
18
15
|
return null;
|
|
19
16
|
}
|
|
20
17
|
},
|
|
@@ -23,7 +20,7 @@ var defaultStorage = {
|
|
|
23
20
|
localStorage.setItem(key, value);
|
|
24
21
|
}
|
|
25
22
|
catch (e) {
|
|
26
|
-
|
|
23
|
+
logger.error('Failed to write to storage', e);
|
|
27
24
|
}
|
|
28
25
|
},
|
|
29
26
|
removeItem: function (key) {
|
|
@@ -31,7 +28,7 @@ var defaultStorage = {
|
|
|
31
28
|
localStorage.removeItem(key);
|
|
32
29
|
}
|
|
33
30
|
catch (e) {
|
|
34
|
-
|
|
31
|
+
logger.error('Failed to remove from storage', e);
|
|
35
32
|
}
|
|
36
33
|
}
|
|
37
34
|
};
|
|
@@ -40,7 +37,7 @@ var defaultStorage = {
|
|
|
40
37
|
* @param walletPublicKey The wallet public key to retrieve session keys for
|
|
41
38
|
* @returns The session key data or null if not found
|
|
42
39
|
*/
|
|
43
|
-
function getSessionKeys(walletPublicKey) {
|
|
40
|
+
export function getSessionKeys(walletPublicKey) {
|
|
44
41
|
var storageKey = "n1_sessionKey_".concat(walletPublicKey);
|
|
45
42
|
var data = defaultStorage.getItem(storageKey);
|
|
46
43
|
if (!data) {
|
|
@@ -49,23 +46,23 @@ function getSessionKeys(walletPublicKey) {
|
|
|
49
46
|
try {
|
|
50
47
|
var parsedData = JSON.parse(data);
|
|
51
48
|
if (parsedData.ed25519PrivateKey) {
|
|
52
|
-
parsedData.ed25519PrivateKey =
|
|
49
|
+
parsedData.ed25519PrivateKey = base64ToUint8Array(parsedData.ed25519PrivateKey);
|
|
53
50
|
}
|
|
54
51
|
// Convert sessionMode string to enum value
|
|
55
52
|
var storedSessionMode = parsedData.sessionMode;
|
|
56
|
-
if (storedSessionMode ===
|
|
57
|
-
storedSessionMode ===
|
|
53
|
+
if (storedSessionMode === N1SessionMode.Nord ||
|
|
54
|
+
storedSessionMode === N1SessionMode.Nord.toString() ||
|
|
58
55
|
storedSessionMode === 'Nord') {
|
|
59
|
-
parsedData.sessionMode =
|
|
56
|
+
parsedData.sessionMode = N1SessionMode.Nord;
|
|
60
57
|
}
|
|
61
58
|
else {
|
|
62
|
-
|
|
63
|
-
parsedData.sessionMode =
|
|
59
|
+
logger.warn('Encountered legacy session mode. Defaulting to Nord session mode.');
|
|
60
|
+
parsedData.sessionMode = N1SessionMode.Nord;
|
|
64
61
|
}
|
|
65
62
|
return parsedData;
|
|
66
63
|
}
|
|
67
64
|
catch (error) {
|
|
68
|
-
|
|
65
|
+
logger.error('Failed to parse session key data', error);
|
|
69
66
|
return null;
|
|
70
67
|
}
|
|
71
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAsB7C;;;GAGG;AACH,IAAM,cAAc,GAAmB;IACrC,OAAO,EAAE,UAAC,GAAG;QACX,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAC,GAAG,EAAE,KAAK;QAClB,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,UAAU,EAAE,UAAC,GAAG;QACd,IAAI,CAAC;YACH,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,eAAuB;IACpD,IAAM,UAAU,GAAG,wBAAiB,eAAe,CAAE,CAAC;IAEtD,IAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACjC,UAAU,CAAC,iBAAiB,GAAG,kBAAkB,CAC/C,UAAU,CAAC,iBAAiB,CAC7B,CAAC;QACJ,CAAC;QAED,2CAA2C;QAC3C,IAAM,iBAAiB,GAAG,UAAU,CAAC,WAAW,CAAC;QACjD,IACE,iBAAiB,KAAK,aAAa,CAAC,IAAI;YACxC,iBAAiB,KAAK,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnD,iBAAiB,KAAK,MAAM,EAC5B,CAAC;YACD,UAAU,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CACT,mEAAmE,CACpE,CAAC;YACF,UAAU,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC;QAC9C,CAAC;QAED,OAAO,UAA4B,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["import { N1SessionMode } from '../../../types/wallet';\nimport { logger } from '../../../utils/logger';\nimport { base64ToUint8Array } from './utils';\n\n/**\n * Interface for session key data stored in local storage\n */\nexport interface SessionKeyData {\n ed25519PrivateKey: Uint8Array;\n walletPublicKey: string;\n chainName: string;\n createdAt: string;\n sessionMode: N1SessionMode;\n}\n\n/**\n * Abstract storage adapter to allow switching implementations\n */\ninterface StorageAdapter {\n getItem(key: string): string | null;\n setItem(key: string, value: string): void;\n removeItem(key: string): void;\n}\n\n/**\n * Default secure storage adapter (currently wraps localStorage but warns about security)\n * TODO: Implement a more secure storage mechanism (e.g. encrypted storage or in-memory only with regular re-auth)\n */\nconst defaultStorage: StorageAdapter = {\n getItem: (key) => {\n try {\n return localStorage.getItem(key);\n } catch (e) {\n logger.error('Failed to access storage', e);\n return null;\n }\n },\n setItem: (key, value) => {\n try {\n localStorage.setItem(key, value);\n } catch (e) {\n logger.error('Failed to write to storage', e);\n }\n },\n removeItem: (key) => {\n try {\n localStorage.removeItem(key);\n } catch (e) {\n logger.error('Failed to remove from storage', e);\n }\n }\n};\n\n/**\n * Retrieve session keys from storage\n * @param walletPublicKey The wallet public key to retrieve session keys for\n * @returns The session key data or null if not found\n */\nexport function getSessionKeys(walletPublicKey: string): SessionKeyData | null {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n\n const data = defaultStorage.getItem(storageKey);\n if (!data) {\n return null;\n }\n\n try {\n const parsedData = JSON.parse(data);\n if (parsedData.ed25519PrivateKey) {\n parsedData.ed25519PrivateKey = base64ToUint8Array(\n parsedData.ed25519PrivateKey\n );\n }\n\n // Convert sessionMode string to enum value\n const storedSessionMode = parsedData.sessionMode;\n if (\n storedSessionMode === N1SessionMode.Nord ||\n storedSessionMode === N1SessionMode.Nord.toString() ||\n storedSessionMode === 'Nord'\n ) {\n parsedData.sessionMode = N1SessionMode.Nord;\n } else {\n logger.warn(\n 'Encountered legacy session mode. Defaulting to Nord session mode.'\n );\n parsedData.sessionMode = N1SessionMode.Nord;\n }\n\n return parsedData as SessionKeyData;\n } catch (error) {\n logger.error('Failed to parse session key data', error);\n return null;\n }\n}\n"]}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getExplorerUrl = getExplorerUrl;
|
|
4
1
|
/**
|
|
5
2
|
* Get explorer URL for a transaction
|
|
6
3
|
*/
|
|
7
|
-
function getExplorerUrl(transactionId) {
|
|
4
|
+
export function getExplorerUrl(transactionId) {
|
|
8
5
|
var baseUrl = 'https://explorer.solana.com/tx/';
|
|
9
6
|
return "".concat(baseUrl).concat(transactionId, "?cluster=devnet");
|
|
10
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/transaction.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/transaction.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,aAAqB;IAClD,IAAM,OAAO,GAAG,iCAAiC,CAAC;IAClD,OAAO,UAAG,OAAO,SAAG,aAAa,oBAAiB,CAAC;AACrD,CAAC","sourcesContent":["/**\n * Interface for transaction result\n */\nexport interface TransactionResult {\n success: boolean;\n transactionId: string;\n amount: string;\n tokenSymbol: string;\n fromAddress: string;\n toAddress: string;\n networkName: string;\n status: 'Completed' | 'Failed' | 'Pending';\n explorerUrl?: string;\n error?: Error;\n}\n\n/**\n * Get explorer URL for a transaction\n */\nexport function getExplorerUrl(transactionId: string) {\n const baseUrl = 'https://explorer.solana.com/tx/';\n return `${baseUrl}${transactionId}?cluster=devnet`;\n}\n"]}
|
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
exports.base64ToUint8Array = base64ToUint8Array;
|
|
6
|
-
exports.storeSessionKeysInLocalStorage = storeSessionKeysInLocalStorage;
|
|
7
|
-
exports.getSessionKeysFromLocalStorage = getSessionKeysFromLocalStorage;
|
|
8
|
-
exports.removeKeysFromLocalStorage = removeKeysFromLocalStorage;
|
|
9
|
-
var ed25519_1 = require("../../../utils/ed25519");
|
|
10
|
-
exports.generateSessionKeyPair = ed25519_1.generateEd25519KeyPair;
|
|
11
|
-
exports.generateRandomUint8Array = ed25519_1.generateRandomUint8Array;
|
|
12
|
-
function arrayBufferToBase64(buffer) {
|
|
1
|
+
import { generateEd25519KeyPair, generateRandomUint8Array as createRandomUint8Array, } from '../../../utils/ed25519';
|
|
2
|
+
export var generateSessionKeyPair = generateEd25519KeyPair;
|
|
3
|
+
export var generateRandomUint8Array = createRandomUint8Array;
|
|
4
|
+
export function arrayBufferToBase64(buffer) {
|
|
13
5
|
var binary = '';
|
|
14
6
|
var bytes = new Uint8Array(buffer);
|
|
15
7
|
for (var i = 0; i < bytes.length; i++) {
|
|
@@ -18,7 +10,7 @@ function arrayBufferToBase64(buffer) {
|
|
|
18
10
|
return btoa(binary);
|
|
19
11
|
}
|
|
20
12
|
// Convert Base64 string back to Uint8Array
|
|
21
|
-
function base64ToUint8Array(base64String) {
|
|
13
|
+
export function base64ToUint8Array(base64String) {
|
|
22
14
|
var binaryString = atob(base64String);
|
|
23
15
|
var length = binaryString.length;
|
|
24
16
|
var bytes = new Uint8Array(length);
|
|
@@ -28,7 +20,7 @@ function base64ToUint8Array(base64String) {
|
|
|
28
20
|
return bytes;
|
|
29
21
|
}
|
|
30
22
|
// Function to store keys with a custom ID format in local storage, including private key
|
|
31
|
-
function storeSessionKeysInLocalStorage(_a) {
|
|
23
|
+
export function storeSessionKeysInLocalStorage(_a) {
|
|
32
24
|
var privKey = _a.privKey, publicKey = _a.publicKey, walletPublicKey = _a.walletPublicKey, chainName = _a.chainName;
|
|
33
25
|
var storageKey = "n1_sessionKey_".concat(walletPublicKey);
|
|
34
26
|
var data = {
|
|
@@ -41,7 +33,7 @@ function storeSessionKeysInLocalStorage(_a) {
|
|
|
41
33
|
localStorage.setItem(storageKey, JSON.stringify(data));
|
|
42
34
|
}
|
|
43
35
|
// Retrieve data from local storage by wallet key and convert the private and public key back to Uint8Array
|
|
44
|
-
function getSessionKeysFromLocalStorage(walletPublicKey) {
|
|
36
|
+
export function getSessionKeysFromLocalStorage(walletPublicKey) {
|
|
45
37
|
var storageKey = "n1_sessionKey_".concat(walletPublicKey);
|
|
46
38
|
var data = localStorage.getItem(storageKey);
|
|
47
39
|
if (data) {
|
|
@@ -67,7 +59,7 @@ function getSessionKeysFromLocalStorage(walletPublicKey) {
|
|
|
67
59
|
return null;
|
|
68
60
|
}
|
|
69
61
|
// Function to remove data from local storage by wallet key
|
|
70
|
-
function removeKeysFromLocalStorage(walletPublicKey) {
|
|
62
|
+
export function removeKeysFromLocalStorage(walletPublicKey) {
|
|
71
63
|
var storageKey = "n1_sessionKey_".concat(walletPublicKey);
|
|
72
64
|
localStorage.removeItem(storageKey);
|
|
73
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,IAAI,sBAAsB,GACnD,MAAM,wBAAwB,CAAC;AAEhC,MAAM,CAAC,IAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAC7D,MAAM,CAAC,IAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D,MAAM,UAAU,mBAAmB,CAAC,MAAkB;IACpD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IACrD,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IACxC,IAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IACnC,IAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,8BAA8B,CAAC,EAU9C;QATC,OAAO,aAAA,EACP,SAAS,eAAA,EACT,eAAe,qBAAA,EACf,SAAS,eAAA;IAOT,IAAM,UAAU,GAAG,wBAAiB,eAAe,CAAE,CAAC;IAEtD,IAAM,IAAI,GAAG;QACX,iBAAiB,EAAE,mBAAmB,CAAC,OAAO,CAAC;QAC/C,gBAAgB,EAAE,mBAAmB,CAAC,SAAS,CAAC;QAChD,eAAe,iBAAA;QACf,SAAS,WAAA;QACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IAEF,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,8BAA8B,CAAC,eAAuB;IAOpE,IAAM,UAAU,GAAG,wBAAiB,eAAe,CAAE,CAAC;IAEtD,IAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,IAAI,EAAE,CAAC;QACT,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACjC,UAAU,CAAC,iBAAiB,GAAG,kBAAkB,CAC/C,UAAU,CAAC,iBAAiB,CAC7B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAChC,UAAU,CAAC,gBAAgB,GAAG,kBAAkB,CAC9C,UAAU,CAAC,gBAAgB,CAC5B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,iFAAiF;QACjF,IAAI,CAAC,UAAU,CAAC,gBAAgB,IAAI,CAAC,CAAC,UAAU,CAAC,gBAAgB,YAAY,UAAU,CAAC,IAAI,UAAU,CAAC,gBAAgB,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACtI,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,0BAA0B,CAAC,eAAuB;IAChE,IAAM,UAAU,GAAG,wBAAiB,eAAe,CAAE,CAAC;IAEtD,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC","sourcesContent":["import {\n generateEd25519KeyPair,\n generateRandomUint8Array as createRandomUint8Array,\n} from '../../../utils/ed25519';\n\nexport const generateSessionKeyPair = generateEd25519KeyPair;\nexport const generateRandomUint8Array = createRandomUint8Array;\n\nexport function arrayBufferToBase64(buffer: Uint8Array) {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n for (let i = 0; i < bytes.length; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary);\n}\n\n// Convert Base64 string back to Uint8Array\nexport function base64ToUint8Array(base64String: string) {\n const binaryString = atob(base64String);\n const length = binaryString.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n}\n\n// Function to store keys with a custom ID format in local storage, including private key\nexport function storeSessionKeysInLocalStorage({\n privKey,\n publicKey,\n walletPublicKey,\n chainName,\n}: {\n privKey: Uint8Array;\n publicKey: Uint8Array;\n walletPublicKey: string;\n chainName: string;\n}) {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n\n const data = {\n ed25519PrivateKey: arrayBufferToBase64(privKey),\n ed25519PublicKey: arrayBufferToBase64(publicKey),\n walletPublicKey,\n chainName,\n createdAt: new Date().toISOString(),\n };\n\n localStorage.setItem(storageKey, JSON.stringify(data));\n}\n\n// Retrieve data from local storage by wallet key and convert the private and public key back to Uint8Array\nexport function getSessionKeysFromLocalStorage(walletPublicKey: string): {\n ed25519PrivateKey: Uint8Array;\n ed25519PublicKey: Uint8Array | null;\n walletPublicKey: string;\n chainName: string;\n createdAt: string;\n} | null {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n\n const data = localStorage.getItem(storageKey);\n if (data) {\n const parsedData = JSON.parse(data);\n if (parsedData.ed25519PrivateKey) {\n parsedData.ed25519PrivateKey = base64ToUint8Array(\n parsedData.ed25519PrivateKey\n );\n } else {\n throw new Error('Missing ed25519PrivateKey in session storage');\n }\n if (parsedData.ed25519PublicKey) {\n parsedData.ed25519PublicKey = base64ToUint8Array(\n parsedData.ed25519PublicKey\n );\n } else {\n throw new Error('Missing ed25519PublicKey in session storage');\n }\n // Validate keys: check that public key is present and is Uint8Array of length 32\n if (!parsedData.ed25519PublicKey || !(parsedData.ed25519PublicKey instanceof Uint8Array) || parsedData.ed25519PublicKey.length !== 32) {\n throw new Error('Invalid public key in session storage');\n }\n return parsedData;\n }\n return null;\n}\n\n// Function to remove data from local storage by wallet key\nexport function removeKeysFromLocalStorage(walletPublicKey: string) {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n\n localStorage.removeItem(storageKey);\n}\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __assign = (this && this.__assign) || function () {
|
|
3
2
|
__assign = Object.assign || function(t) {
|
|
4
3
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -21,42 +20,37 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
21
20
|
}
|
|
22
21
|
return t;
|
|
23
22
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
};
|
|
27
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.withImageFallback = withImageFallback;
|
|
29
|
-
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
30
|
-
var react_1 = __importDefault(require("react"));
|
|
31
|
-
var components_1 = require("../components");
|
|
23
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
|
+
import React from 'react';
|
|
25
|
+
import { ImageWithFallback } from '../components';
|
|
32
26
|
/**
|
|
33
27
|
* A Higher-Order Component (HOC) that adds image fallback functionality to a component
|
|
34
28
|
* @param WrappedComponent The component to wrap
|
|
35
29
|
* @returns A new component with image fallback functionality
|
|
36
30
|
*/
|
|
37
|
-
function withImageFallback(WrappedComponent) {
|
|
31
|
+
export function withImageFallback(WrappedComponent) {
|
|
38
32
|
// Create a new component that wraps the original component
|
|
39
33
|
var WithImageFallback = function (props) {
|
|
40
34
|
// Function to recursively process React elements
|
|
41
35
|
var processNode = function (node) {
|
|
42
|
-
if (!
|
|
36
|
+
if (!React.isValidElement(node)) {
|
|
43
37
|
return node;
|
|
44
38
|
}
|
|
45
39
|
var element = node;
|
|
46
40
|
// If it's an img element, replace it with ImageWithFallback
|
|
47
41
|
if (element.type === 'img') {
|
|
48
42
|
var _a = element.props, src = _a.src, alt = _a.alt, width = _a.width, height = _a.height, className = _a.className, rest = __rest(_a, ["src", "alt", "width", "height", "className"]);
|
|
49
|
-
return ((
|
|
43
|
+
return (_jsx(ImageWithFallback, __assign({ src: src, alt: alt || 'Image', width: width, height: height, className: className }, rest)));
|
|
50
44
|
}
|
|
51
45
|
// If it has children, process them recursively
|
|
52
46
|
if (element.props && element.props.children) {
|
|
53
|
-
var children =
|
|
54
|
-
return
|
|
47
|
+
var children = React.Children.map(element.props.children, processNode);
|
|
48
|
+
return React.cloneElement(element, __assign({}, element.props), children);
|
|
55
49
|
}
|
|
56
50
|
return element;
|
|
57
51
|
};
|
|
58
52
|
// Render the wrapped component and process its output
|
|
59
|
-
var renderedComponent = (
|
|
53
|
+
var renderedComponent = _jsx(WrappedComponent, __assign({}, props));
|
|
60
54
|
return processNode(renderedComponent);
|
|
61
55
|
};
|
|
62
56
|
// Set display name for debugging
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withImageFallback.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/withImageFallback.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"withImageFallback.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/withImageFallback.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,gBAAkC;IAElC,2DAA2D;IAC3D,IAAM,iBAAiB,GAAgB,UAAC,KAAK;QAC3C,iDAAiD;QACjD,IAAM,WAAW,GAAG,UAAC,IAAqB;YACxC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAM,OAAO,GAAG,IAA0B,CAAC;YAE3C,4DAA4D;YAC5D,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC3B,IAAM,KAAkD,OAAO,CAAC,KAAK,EAA7D,GAAG,SAAA,EAAE,GAAG,SAAA,EAAE,KAAK,WAAA,EAAE,MAAM,YAAA,EAAE,SAAS,eAAA,EAAK,IAAI,cAA7C,8CAA+C,CAAgB,CAAC;gBAEtE,OAAO,CACL,KAAC,iBAAiB,aAChB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,IAAI,OAAO,EACnB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,IAChB,IAAI,EACR,CACH,CAAC;YACJ,CAAC;YAED,+CAA+C;YAC/C,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC5C,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CACjC,OAAO,CAAC,KAAK,CAAC,QAAQ,EACtB,WAAW,CACZ,CAAC;gBAEF,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,eAAO,OAAO,CAAC,KAAK,GAAI,QAAQ,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,sDAAsD;QACtD,IAAM,iBAAiB,GAAG,KAAC,gBAAgB,eAAK,KAAK,EAAI,CAAC;QAC1D,OAAO,WAAW,CAAC,iBAAiB,CAAuB,CAAC;IAC9D,CAAC,CAAC;IAEF,iCAAiC;IACjC,IAAM,oBAAoB,GACxB,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,IAAI,WAAW,CAAC;IACvE,iBAAiB,CAAC,WAAW,GAAG,4BAAqB,oBAAoB,MAAG,CAAC;IAE7E,OAAO,iBAAiB,CAAC;AAC3B,CAAC","sourcesContent":["import React, { ComponentType } from 'react';\nimport { ImageWithFallback } from '../components';\n\n/**\n * A Higher-Order Component (HOC) that adds image fallback functionality to a component\n * @param WrappedComponent The component to wrap\n * @returns A new component with image fallback functionality\n */\nexport function withImageFallback<P extends object>(\n WrappedComponent: ComponentType<P>\n): React.FC<P> {\n // Create a new component that wraps the original component\n const WithImageFallback: React.FC<P> = (props) => {\n // Function to recursively process React elements\n const processNode = (node: React.ReactNode): React.ReactNode => {\n if (!React.isValidElement(node)) {\n return node;\n }\n\n const element = node as React.ReactElement;\n\n // If it's an img element, replace it with ImageWithFallback\n if (element.type === 'img') {\n const { src, alt, width, height, className, ...rest } = element.props;\n\n return (\n <ImageWithFallback\n src={src}\n alt={alt || 'Image'}\n width={width}\n height={height}\n className={className}\n {...rest}\n />\n );\n }\n\n // If it has children, process them recursively\n if (element.props && element.props.children) {\n const children = React.Children.map(\n element.props.children,\n processNode\n );\n\n return React.cloneElement(element, { ...element.props }, children);\n }\n\n return element;\n };\n\n // Render the wrapped component and process its output\n const renderedComponent = <WrappedComponent {...props} />;\n return processNode(renderedComponent) as React.ReactElement;\n };\n\n // Set display name for debugging\n const wrappedComponentName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component';\n WithImageFallback.displayName = `withImageFallback(${wrappedComponentName})`;\n\n return WithImageFallback;\n}\n"]}
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./useN1Wallet"), exports);
|
|
18
|
-
__exportStar(require("./useNordUserInitialization"), exports);
|
|
1
|
+
export * from './useN1Wallet';
|
|
2
|
+
export * from './useNordUserInitialization';
|
|
19
3
|
//# sourceMappingURL=index.js.map
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC","sourcesContent":["export * from './useN1Wallet';\nexport * from './useNordUserInitialization';\n\n"]}
|