@n1xyz/wallet-widget 0.0.33-alpha.3 → 0.0.34
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/dynamic.d.ts +1 -0
- package/dist/config/dynamic.js +13 -0
- package/dist/config/dynamic.js.map +1 -0
- package/dist/config/solana.js +3 -7
- package/dist/config/solana.js.map +1 -1
- package/dist/config/turnkey.d.ts +2 -0
- package/dist/config/turnkey.js +35 -0
- package/dist/config/turnkey.js.map +1 -0
- 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/02-TurnkeyAuthScreen.d.ts +1 -0
- package/dist/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js +18 -0
- package/dist/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +1 -0
- 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/03-TurnkeyPreparingScreen.d.ts +1 -0
- package/dist/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js +18 -0
- package/dist/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +1 -0
- package/dist/features/onboarding-flow/screens/04-ChainSelectionScreen.d.ts +31 -0
- package/dist/features/onboarding-flow/screens/04-ChainSelectionScreen.js +100 -0
- package/dist/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +1 -0
- 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-AmountInputScreen.d.ts +6 -0
- package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js +360 -0
- package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js.map +1 -0
- 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/06-DepositProgressScreen.d.ts +3 -0
- package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js +31 -0
- package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +1 -0
- package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +1 -0
- package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.js +136 -0
- package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +1 -0
- 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/08-AuthLoadingScreen.d.ts +1 -0
- package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.js +31 -0
- package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +1 -0
- package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.d.ts +1 -0
- package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.js +18 -0
- package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.js.map +1 -0
- package/dist/features/onboarding-flow/screens/09-ErrorScreen.d.ts +1 -0
- package/dist/features/onboarding-flow/screens/09-ErrorScreen.js +14 -0
- package/dist/features/onboarding-flow/screens/09-ErrorScreen.js.map +1 -0
- package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.d.ts +1 -0
- package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.js +18 -0
- package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.js.map +1 -0
- package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.d.ts +1 -0
- package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.js +18 -0
- package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.js.map +1 -0
- package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.d.ts +1 -0
- package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.js +18 -0
- package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.js.map +1 -0
- 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/features/turnkey/createTurnkeyWallet.d.ts +25 -0
- package/dist/features/turnkey/createTurnkeyWallet.js +119 -0
- package/dist/features/turnkey/createTurnkeyWallet.js.map +1 -0
- 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/{styles/main.css → main.css} +2 -2
- 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/TurnkeyProviderBridge.d.ts +7 -0
- package/dist/providers/TurnkeyProviderBridge.js +20 -0
- package/dist/providers/TurnkeyProviderBridge.js.map +1 -0
- package/dist/providers/WalletErrorBoundary.js +6 -11
- package/dist/providers/WalletErrorBoundary.js.map +1 -1
- package/dist/styles/embedded-main-css.d.ts +1 -1
- package/dist/styles/embedded-main-css.js +1 -3
- package/dist/styles/embedded-main-css.js.map +1 -1
- package/dist/turnkey/TurnkeyProvider.d.ts +9 -0
- package/dist/turnkey/TurnkeyProvider.js +378 -0
- package/dist/turnkey/TurnkeyProvider.js.map +1 -0
- package/dist/turnkey/createWalletProvider.d.ts +3 -0
- package/dist/turnkey/createWalletProvider.js +180 -0
- package/dist/turnkey/createWalletProvider.js.map +1 -0
- package/dist/turnkey/index.d.ts +3 -0
- package/dist/turnkey/index.js +3 -0
- package/dist/turnkey/index.js.map +1 -0
- package/dist/turnkey/types.d.ts +48 -0
- package/dist/turnkey/types.js +8 -0
- package/dist/turnkey/types.js.map +1 -0
- 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/turnkeySessionStorage.d.ts +3 -0
- package/dist/utils/turnkeySessionStorage.js +33 -0
- package/dist/utils/turnkeySessionStorage.js.map +1 -0
- package/dist/utils/words.js +1 -4
- package/dist/utils/words.js.map +1 -1
- package/package.json +3 -3
- package/dist/assets/fonts/apk-galeria/APK-Galeria-Bold-Italic-Trial.otf +0 -0
- package/dist/assets/fonts/apk-galeria/APK-Galeria-Bold-Trial.otf +0 -0
- package/dist/assets/fonts/apk-galeria/APK-Galeria-Extra-Bold-Italic-Trial.otf +0 -0
- package/dist/assets/fonts/apk-galeria/APK-Galeria-Extra-Bold-Trial.otf +0 -0
- package/dist/assets/fonts/apk-galeria/APK-Galeria-Light-Italic-Trial.otf +0 -0
- package/dist/assets/fonts/apk-galeria/APK-Galeria-Light-Trial.otf +0 -0
- package/dist/assets/fonts/apk-galeria/APK-Galeria-Medium-Italic-Trial.otf +0 -0
- package/dist/assets/fonts/apk-galeria/APK-Galeria-Medium-Trial.otf +0 -0
- package/dist/assets/fonts/apk-galeria/APK-Galeria-Regular-Italic-Trial.otf +0 -0
- package/dist/assets/fonts/apk-galeria/APK-Galeria-Regular-Trial.otf +0 -0
- package/dist/assets/fonts/apk-galeria/APK-Galeria-Semi-Bold-Italic-Trial.otf +0 -0
- package/dist/assets/fonts/apk-galeria/APK-Galeria-Semi-Bold-Trial.otf +0 -0
- package/dist/assets/fonts/apk-galeria/APK-Galeria-Thin-Italic-Trial.otf +0 -0
- package/dist/assets/fonts/apk-galeria/APK-Galeria-Thin-Trial.otf +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function TurnkeyAuthScreen(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { WaitingMessage } from '../components/WaitingMessage';
|
|
4
|
+
import { useWalletConnection } from '../providers';
|
|
5
|
+
var TURNKEY_ERROR_FALLBACK = 'Turnkey could not complete authentication. Retry or disconnect to start over.';
|
|
6
|
+
export function TurnkeyAuthScreen() {
|
|
7
|
+
var _a = useWalletConnection(), turnkeyStatus = _a.turnkeyStatus, turnkeyError = _a.turnkeyError, retryTurnkeyBootstrap = _a.retryTurnkeyBootstrap, disconnectWallet = _a.disconnectWallet;
|
|
8
|
+
if (turnkeyStatus === 'error') {
|
|
9
|
+
return (_jsxs("div", { className: "flex flex-col gap-4 text-center", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-base font-semibold text-white", children: "We couldn't complete Turnkey login" }), _jsx("p", { className: "text-sm text-neutral-400 mt-1", children: turnkeyError || TURNKEY_ERROR_FALLBACK })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", className: "flex-1 h-9 rounded border border-n1-ww-main text-n1-ww-main text-sm font-medium", onClick: retryTurnkeyBootstrap, children: "Retry" }), _jsx("button", { type: "button", className: "flex-1 h-9 rounded border border-n1-ww-border text-white text-sm font-medium", onClick: disconnectWallet, children: "Disconnect" })] })] }));
|
|
10
|
+
}
|
|
11
|
+
return (_jsx(WaitingMessage, { loaderSize: 52, message: {
|
|
12
|
+
visible: true,
|
|
13
|
+
title: 'Secure Turnkey login',
|
|
14
|
+
subtitle: 'Complete the Turnkey prompt to continue',
|
|
15
|
+
isTyping: false,
|
|
16
|
+
} }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=TurnkeyAuthScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TurnkeyAuthScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/TurnkeyAuthScreen.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,IAAM,sBAAsB,GAC1B,+EAA+E,CAAC;AAElF,MAAM,UAAU,iBAAiB;IACzB,IAAA,KAKF,mBAAmB,EAAE,EAJvB,aAAa,mBAAA,EACb,YAAY,kBAAA,EACZ,qBAAqB,2BAAA,EACrB,gBAAgB,sBACO,CAAC;IAE1B,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,CACL,eAAK,SAAS,EAAC,iCAAiC,aAC9C,0BACE,aAAI,SAAS,EAAC,oCAAoC,mDAE7C,EACL,YAAG,SAAS,EAAC,+BAA+B,YACzC,YAAY,IAAI,sBAAsB,GACrC,IACA,EACN,eAAK,SAAS,EAAC,YAAY,aACzB,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,iFAAiF,EAC3F,OAAO,EAAE,qBAAqB,sBAGvB,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,8EAA8E,EACxF,OAAO,EAAE,gBAAgB,2BAGlB,IACL,IACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,cAAc,IACb,UAAU,EAAE,EAAE,EACd,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,sBAAsB;YAC7B,QAAQ,EAAE,yCAAyC;YACnD,QAAQ,EAAE,KAAK;SAChB,GACD,CACH,CAAC;AACJ,CAAC","sourcesContent":["\"use client\";\n\nimport { WaitingMessage } from '../components/WaitingMessage';\nimport { useWalletConnection } from '../providers';\n\nconst TURNKEY_ERROR_FALLBACK =\n 'Turnkey could not complete authentication. Retry or disconnect to start over.';\n\nexport function TurnkeyAuthScreen() {\n const {\n turnkeyStatus,\n turnkeyError,\n retryTurnkeyBootstrap,\n disconnectWallet,\n } = useWalletConnection();\n\n if (turnkeyStatus === 'error') {\n return (\n <div className=\"flex flex-col gap-4 text-center\">\n <div>\n <h3 className=\"text-base font-semibold text-white\">\n We couldn't complete Turnkey login\n </h3>\n <p className=\"text-sm text-neutral-400 mt-1\">\n {turnkeyError || TURNKEY_ERROR_FALLBACK}\n </p>\n </div>\n <div className=\"flex gap-2\">\n <button\n type=\"button\"\n className=\"flex-1 h-9 rounded border border-n1-ww-main text-n1-ww-main text-sm font-medium\"\n onClick={retryTurnkeyBootstrap}\n >\n Retry\n </button>\n <button\n type=\"button\"\n className=\"flex-1 h-9 rounded border border-n1-ww-border text-white text-sm font-medium\"\n onClick={disconnectWallet}\n >\n Disconnect\n </button>\n </div>\n </div>\n );\n }\n\n return (\n <WaitingMessage\n loaderSize={52}\n message={{\n visible: true,\n title: 'Secure Turnkey login',\n subtitle: 'Complete the Turnkey prompt to continue',\n isTyping: false,\n }}\n />\n );\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function TurnkeyPreparingScreen(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { WaitingMessage } from '../components/WaitingMessage';
|
|
4
|
+
import { useWalletConnection } from '../providers';
|
|
5
|
+
var TURNKEY_ERROR_FALLBACK = 'Turnkey could not prepare your Solana wallet. Retry or disconnect to start over.';
|
|
6
|
+
export function TurnkeyPreparingScreen() {
|
|
7
|
+
var _a = useWalletConnection(), turnkeyStatus = _a.turnkeyStatus, turnkeyError = _a.turnkeyError, retryTurnkeyBootstrap = _a.retryTurnkeyBootstrap, disconnectWallet = _a.disconnectWallet;
|
|
8
|
+
if (turnkeyStatus === 'error') {
|
|
9
|
+
return (_jsxs("div", { className: "flex flex-col gap-4 text-center", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-base font-semibold text-white", children: "We couldn't prepare your Solana wallet" }), _jsx("p", { className: "text-sm text-neutral-400 mt-1", children: turnkeyError || TURNKEY_ERROR_FALLBACK })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", className: "flex-1 h-9 rounded border border-n1-ww-main text-n1-ww-main text-sm font-medium", onClick: retryTurnkeyBootstrap, children: "Retry" }), _jsx("button", { type: "button", className: "flex-1 h-9 rounded border border-n1-ww-border text-white text-sm font-medium", onClick: disconnectWallet, children: "Disconnect" })] })] }));
|
|
10
|
+
}
|
|
11
|
+
return (_jsx(WaitingMessage, { loaderSize: 52, message: {
|
|
12
|
+
visible: true,
|
|
13
|
+
title: 'Preparing Solana wallet…',
|
|
14
|
+
subtitle: 'Provisioning a Nord-ready signer via Turnkey',
|
|
15
|
+
isTyping: false,
|
|
16
|
+
} }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=TurnkeyPreparingScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TurnkeyPreparingScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/TurnkeyPreparingScreen.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,IAAM,sBAAsB,GAC1B,kFAAkF,CAAC;AAErF,MAAM,UAAU,sBAAsB;IAC9B,IAAA,KAKF,mBAAmB,EAAE,EAJvB,aAAa,mBAAA,EACb,YAAY,kBAAA,EACZ,qBAAqB,2BAAA,EACrB,gBAAgB,sBACO,CAAC;IAE1B,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,CACL,eAAK,SAAS,EAAC,iCAAiC,aAC9C,0BACE,aAAI,SAAS,EAAC,oCAAoC,uDAE7C,EACL,YAAG,SAAS,EAAC,+BAA+B,YACzC,YAAY,IAAI,sBAAsB,GACrC,IACA,EACN,eAAK,SAAS,EAAC,YAAY,aACzB,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,iFAAiF,EAC3F,OAAO,EAAE,qBAAqB,sBAGvB,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,8EAA8E,EACxF,OAAO,EAAE,gBAAgB,2BAGlB,IACL,IACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,cAAc,IACb,UAAU,EAAE,EAAE,EACd,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,0BAA0B;YACjC,QAAQ,EAAE,8CAA8C;YACxD,QAAQ,EAAE,KAAK;SAChB,GACD,CACH,CAAC;AACJ,CAAC","sourcesContent":["\"use client\";\n\nimport { WaitingMessage } from '../components/WaitingMessage';\nimport { useWalletConnection } from '../providers';\n\nconst TURNKEY_ERROR_FALLBACK =\n 'Turnkey could not prepare your Solana wallet. Retry or disconnect to start over.';\n\nexport function TurnkeyPreparingScreen() {\n const {\n turnkeyStatus,\n turnkeyError,\n retryTurnkeyBootstrap,\n disconnectWallet,\n } = useWalletConnection();\n\n if (turnkeyStatus === 'error') {\n return (\n <div className=\"flex flex-col gap-4 text-center\">\n <div>\n <h3 className=\"text-base font-semibold text-white\">\n We couldn't prepare your Solana wallet\n </h3>\n <p className=\"text-sm text-neutral-400 mt-1\">\n {turnkeyError || TURNKEY_ERROR_FALLBACK}\n </p>\n </div>\n <div className=\"flex gap-2\">\n <button\n type=\"button\"\n className=\"flex-1 h-9 rounded border border-n1-ww-main text-n1-ww-main text-sm font-medium\"\n onClick={retryTurnkeyBootstrap}\n >\n Retry\n </button>\n <button\n type=\"button\"\n className=\"flex-1 h-9 rounded border border-n1-ww-border text-white text-sm font-medium\"\n onClick={disconnectWallet}\n >\n Disconnect\n </button>\n </div>\n </div>\n );\n }\n\n return (\n <WaitingMessage\n loaderSize={52}\n message={{\n visible: true,\n title: 'Preparing Solana wallet…',\n subtitle: 'Provisioning a Nord-ready signer via Turnkey',\n isTyping: false,\n }}\n />\n );\n}\n"]}
|
|
@@ -1,24 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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("./01-ConnectWalletScreen"), exports);
|
|
18
|
-
__exportStar(require("./02-ChainSelectionScreen"), exports);
|
|
19
|
-
__exportStar(require("./03-AmountInputScreen"), exports);
|
|
20
|
-
__exportStar(require("./04-DepositProgressScreen"), exports);
|
|
21
|
-
__exportStar(require("./05-DepositSuccessScreen"), exports);
|
|
22
|
-
__exportStar(require("./06-AuthLoadingScreen"), exports);
|
|
23
|
-
__exportStar(require("./07-ErrorScreen"), exports);
|
|
1
|
+
export * from './01-ConnectWalletScreen';
|
|
2
|
+
export * from './02-ChainSelectionScreen';
|
|
3
|
+
export * from './03-AmountInputScreen';
|
|
4
|
+
export * from './04-DepositProgressScreen';
|
|
5
|
+
export * from './05-DepositSuccessScreen';
|
|
6
|
+
export * from './06-AuthLoadingScreen';
|
|
7
|
+
export * from './07-ErrorScreen';
|
|
24
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './01-ConnectWalletScreen';\nexport * from './02-ChainSelectionScreen';\nexport * from './03-AmountInputScreen';\nexport * from './04-DepositProgressScreen';\nexport * from './05-DepositSuccessScreen';\nexport * from './06-AuthLoadingScreen';\nexport * from './07-ErrorScreen';\n"]}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.initialOnboardingContext = exports.OnboardingStep = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Shared types for the onboarding flow state machine
|
|
6
3
|
*/
|
|
7
4
|
/**
|
|
8
5
|
* Enum representing all possible states in the onboarding flow
|
|
9
6
|
*/
|
|
10
|
-
var OnboardingStep;
|
|
7
|
+
export var OnboardingStep;
|
|
11
8
|
(function (OnboardingStep) {
|
|
12
9
|
OnboardingStep["CONNECTING_WALLET"] = "CONNECTING_WALLET";
|
|
13
10
|
OnboardingStep["CHAIN_SELECTION"] = "CHAIN_SELECTION";
|
|
@@ -17,11 +14,11 @@ var OnboardingStep;
|
|
|
17
14
|
OnboardingStep["AUTH_LOADING"] = "AUTH_LOADING";
|
|
18
15
|
OnboardingStep["FINAL_SUCCESS"] = "FINAL_SUCCESS";
|
|
19
16
|
OnboardingStep["ERROR"] = "ERROR";
|
|
20
|
-
})(OnboardingStep || (
|
|
17
|
+
})(OnboardingStep || (OnboardingStep = {}));
|
|
21
18
|
/**
|
|
22
19
|
* Initial onboarding context with default values
|
|
23
20
|
*/
|
|
24
|
-
|
|
21
|
+
export var initialOnboardingContext = {
|
|
25
22
|
hasNordAccount: false,
|
|
26
23
|
hasActiveSession: false,
|
|
27
24
|
selectedChain: null,
|
|
@@ -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
|
}
|