@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,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++) {
|
|
@@ -10,12 +9,10 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
9
|
};
|
|
11
10
|
return __assign.apply(this, arguments);
|
|
12
11
|
};
|
|
13
|
-
|
|
14
|
-
exports.createInitialOnboardingState = exports.onboardingStateReducer = void 0;
|
|
15
|
-
var types_1 = require("../types");
|
|
12
|
+
import { OnboardingStep, initialOnboardingContext } from '../types';
|
|
16
13
|
var initialMachineState = {
|
|
17
|
-
state:
|
|
18
|
-
context:
|
|
14
|
+
state: OnboardingStep.CONNECTING_WALLET,
|
|
15
|
+
context: initialOnboardingContext,
|
|
19
16
|
};
|
|
20
17
|
var resetSelectionContext = function (context, resetSelection) {
|
|
21
18
|
if (!resetSelection) {
|
|
@@ -23,7 +20,7 @@ var resetSelectionContext = function (context, resetSelection) {
|
|
|
23
20
|
}
|
|
24
21
|
return __assign(__assign({}, context), { selectedChain: null, selectedChainId: null, selectedChainNetwork: null, amount: '', depositError: undefined, lastDeposit: null });
|
|
25
22
|
};
|
|
26
|
-
var onboardingStateReducer = function (machineState, action) {
|
|
23
|
+
export var onboardingStateReducer = function (machineState, action) {
|
|
27
24
|
var _a, _b, _c, _d, _e;
|
|
28
25
|
if (machineState === void 0) { machineState = initialMachineState; }
|
|
29
26
|
switch (action.type) {
|
|
@@ -31,48 +28,48 @@ var onboardingStateReducer = function (machineState, action) {
|
|
|
31
28
|
return __assign(__assign({}, machineState), { context: __assign(__assign({}, machineState.context), action.updates) });
|
|
32
29
|
case 'GO_TO_CHAIN_SELECTION':
|
|
33
30
|
return {
|
|
34
|
-
state:
|
|
31
|
+
state: OnboardingStep.CHAIN_SELECTION,
|
|
35
32
|
context: resetSelectionContext(machineState.context, action.resetSelection),
|
|
36
33
|
};
|
|
37
34
|
case 'SELECT_CHAIN':
|
|
38
35
|
return {
|
|
39
|
-
state:
|
|
36
|
+
state: OnboardingStep.AMOUNT_INPUT,
|
|
40
37
|
context: __assign(__assign({}, machineState.context), { selectedChain: action.selection.name, selectedChainId: action.selection.id, selectedChainNetwork: (_a = action.selection.network) !== null && _a !== void 0 ? _a : null, depositError: undefined, lastDeposit: null }),
|
|
41
38
|
};
|
|
42
39
|
case 'START_DEPOSIT':
|
|
43
40
|
return {
|
|
44
|
-
state:
|
|
41
|
+
state: OnboardingStep.DEPOSIT_PROGRESS,
|
|
45
42
|
context: __assign(__assign({}, machineState.context), { depositError: undefined, error: null }),
|
|
46
43
|
};
|
|
47
44
|
case 'DEPOSIT_SUCCESS':
|
|
48
45
|
return {
|
|
49
|
-
state:
|
|
46
|
+
state: OnboardingStep.DEPOSIT_SUCCESS,
|
|
50
47
|
context: __assign(__assign({}, machineState.context), { hasNordAccount: true, transactionId: action.payload.transactionId, amount: action.payload.record.amount, selectedChain: action.payload.record.chainName, selectedChainId: action.payload.record.chainId, selectedChainNetwork: action.payload.record.chainNetwork, lastDeposit: action.payload.record, depositError: undefined, error: null }),
|
|
51
48
|
};
|
|
52
49
|
case 'DEPOSIT_FAILED':
|
|
53
50
|
return {
|
|
54
|
-
state:
|
|
51
|
+
state: OnboardingStep.AMOUNT_INPUT,
|
|
55
52
|
context: __assign(__assign({}, machineState.context), { depositError: action.message }),
|
|
56
53
|
};
|
|
57
54
|
case 'GO_TO_AUTH':
|
|
58
55
|
return {
|
|
59
|
-
state:
|
|
56
|
+
state: OnboardingStep.AUTH_LOADING,
|
|
60
57
|
context: __assign(__assign({}, machineState.context), { hasNordAccount: (_b = action.hasNordAccount) !== null && _b !== void 0 ? _b : machineState.context.hasNordAccount }),
|
|
61
58
|
};
|
|
62
59
|
case 'COMPLETE_FLOW':
|
|
63
60
|
return {
|
|
64
|
-
state:
|
|
61
|
+
state: OnboardingStep.FINAL_SUCCESS,
|
|
65
62
|
context: __assign(__assign({}, machineState.context), { hasNordAccount: (_c = action.hasNordAccount) !== null && _c !== void 0 ? _c : true, hasActiveSession: (_d = action.hasActiveSession) !== null && _d !== void 0 ? _d : machineState.context.hasActiveSession, isDepositOnlyFlow: false }),
|
|
66
63
|
};
|
|
67
64
|
case 'SET_ERROR':
|
|
68
65
|
return {
|
|
69
|
-
state:
|
|
66
|
+
state: OnboardingStep.ERROR,
|
|
70
67
|
context: __assign(__assign({}, machineState.context), { error: action.error }),
|
|
71
68
|
};
|
|
72
69
|
case 'RESET':
|
|
73
70
|
return {
|
|
74
|
-
state:
|
|
75
|
-
context: (_e = action.context) !== null && _e !== void 0 ? _e :
|
|
71
|
+
state: OnboardingStep.CONNECTING_WALLET,
|
|
72
|
+
context: (_e = action.context) !== null && _e !== void 0 ? _e : initialOnboardingContext,
|
|
76
73
|
};
|
|
77
74
|
case 'APPLY_SNAPSHOT':
|
|
78
75
|
return action.snapshot;
|
|
@@ -80,9 +77,7 @@ var onboardingStateReducer = function (machineState, action) {
|
|
|
80
77
|
return machineState;
|
|
81
78
|
}
|
|
82
79
|
};
|
|
83
|
-
|
|
84
|
-
var createInitialOnboardingState = function () {
|
|
80
|
+
export var createInitialOnboardingState = function () {
|
|
85
81
|
return initialMachineState;
|
|
86
82
|
};
|
|
87
|
-
exports.createInitialOnboardingState = createInitialOnboardingState;
|
|
88
83
|
//# sourceMappingURL=onboardingStateMachine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboardingStateMachine.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/providers/onboardingStateMachine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"onboardingStateMachine.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/providers/onboardingStateMachine.ts"],"names":[],"mappings":"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","sourcesContent":["import { OnboardingContext, OnboardingStep, StoredDepositRecord, initialOnboardingContext } from '../types';\n\nexport interface OnboardingStateSnapshot {\n state: OnboardingStep;\n context: OnboardingContext;\n}\n\nexport type OnboardingStateAction =\n | { type: 'SET_CONTEXT'; updates: Partial<OnboardingContext> }\n | { type: 'GO_TO_CHAIN_SELECTION'; resetSelection: boolean }\n | {\n type: 'SELECT_CHAIN';\n selection: {\n id: string;\n name: string;\n network?: string | null;\n };\n }\n | { type: 'START_DEPOSIT' }\n | {\n type: 'DEPOSIT_SUCCESS';\n payload: {\n transactionId: string;\n record: StoredDepositRecord;\n };\n }\n | { type: 'DEPOSIT_FAILED'; message: string }\n | { type: 'GO_TO_AUTH'; hasNordAccount?: boolean }\n | {\n type: 'COMPLETE_FLOW';\n hasActiveSession?: boolean;\n hasNordAccount?: boolean;\n }\n | { type: 'SET_ERROR'; error: Error }\n | { type: 'RESET'; context?: OnboardingContext }\n | { type: 'APPLY_SNAPSHOT'; snapshot: OnboardingStateSnapshot };\n\nconst initialMachineState: OnboardingStateSnapshot = {\n state: OnboardingStep.CONNECTING_WALLET,\n context: initialOnboardingContext,\n};\n\nconst resetSelectionContext = (\n context: OnboardingContext,\n resetSelection: boolean\n): OnboardingContext => {\n if (!resetSelection) {\n return {\n ...context,\n depositError: undefined,\n };\n }\n\n return {\n ...context,\n selectedChain: null,\n selectedChainId: null,\n selectedChainNetwork: null,\n amount: '',\n depositError: undefined,\n lastDeposit: null,\n };\n};\n\nexport const onboardingStateReducer = (\n machineState: OnboardingStateSnapshot = initialMachineState,\n action: OnboardingStateAction\n): OnboardingStateSnapshot => {\n switch (action.type) {\n case 'SET_CONTEXT':\n return {\n ...machineState,\n context: { ...machineState.context, ...action.updates },\n };\n case 'GO_TO_CHAIN_SELECTION':\n return {\n state: OnboardingStep.CHAIN_SELECTION,\n context: resetSelectionContext(machineState.context, action.resetSelection),\n };\n case 'SELECT_CHAIN':\n return {\n state: OnboardingStep.AMOUNT_INPUT,\n context: {\n ...machineState.context,\n selectedChain: action.selection.name,\n selectedChainId: action.selection.id,\n selectedChainNetwork: action.selection.network ?? null,\n depositError: undefined,\n lastDeposit: null,\n },\n };\n case 'START_DEPOSIT':\n return {\n state: OnboardingStep.DEPOSIT_PROGRESS,\n context: {\n ...machineState.context,\n depositError: undefined,\n error: null,\n },\n };\n case 'DEPOSIT_SUCCESS':\n return {\n state: OnboardingStep.DEPOSIT_SUCCESS,\n context: {\n ...machineState.context,\n hasNordAccount: true,\n transactionId: action.payload.transactionId,\n amount: action.payload.record.amount,\n selectedChain: action.payload.record.chainName,\n selectedChainId: action.payload.record.chainId,\n selectedChainNetwork: action.payload.record.chainNetwork,\n lastDeposit: action.payload.record,\n depositError: undefined,\n error: null,\n },\n };\n case 'DEPOSIT_FAILED':\n return {\n state: OnboardingStep.AMOUNT_INPUT,\n context: {\n ...machineState.context,\n depositError: action.message,\n },\n };\n case 'GO_TO_AUTH':\n return {\n state: OnboardingStep.AUTH_LOADING,\n context: {\n ...machineState.context,\n hasNordAccount:\n action.hasNordAccount ?? machineState.context.hasNordAccount,\n },\n };\n case 'COMPLETE_FLOW':\n return {\n state: OnboardingStep.FINAL_SUCCESS,\n context: {\n ...machineState.context,\n hasNordAccount: action.hasNordAccount ?? true,\n hasActiveSession:\n action.hasActiveSession ?? machineState.context.hasActiveSession,\n isDepositOnlyFlow: false,\n },\n };\n case 'SET_ERROR':\n return {\n state: OnboardingStep.ERROR,\n context: {\n ...machineState.context,\n error: action.error,\n },\n };\n case 'RESET':\n return {\n state: OnboardingStep.CONNECTING_WALLET,\n context: action.context ?? initialOnboardingContext,\n };\n case 'APPLY_SNAPSHOT':\n return action.snapshot;\n default:\n return machineState;\n }\n};\n\nexport const createInitialOnboardingState = (): OnboardingStateSnapshot =>\n initialMachineState;\n"]}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
function ConnectWalletScreen() {
|
|
9
|
-
var _a = (0, providers_1.useWalletConnection)(), isConnecting = _a.isConnecting, connectWallet = _a.connectWallet;
|
|
10
|
-
(0, react_1.useEffect)(function () {
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
import { useWalletConnection } from '../providers';
|
|
4
|
+
import { WaitingMessage } from '../components/WaitingMessage';
|
|
5
|
+
export function ConnectWalletScreen() {
|
|
6
|
+
var _a = useWalletConnection(), isConnecting = _a.isConnecting, connectWallet = _a.connectWallet;
|
|
7
|
+
useEffect(function () {
|
|
11
8
|
if (!isConnecting) {
|
|
12
9
|
connectWallet();
|
|
13
10
|
}
|
|
14
11
|
}, [isConnecting, connectWallet]);
|
|
15
|
-
return ((
|
|
12
|
+
return (_jsx(WaitingMessage, { loaderSize: 52, message: {
|
|
16
13
|
visible: true,
|
|
17
14
|
title: 'Connecting Wallet',
|
|
18
15
|
subtitle: 'Please approve the connection request in your wallet',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"01-ConnectWalletScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/01-ConnectWalletScreen.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"01-ConnectWalletScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/01-ConnectWalletScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,UAAU,mBAAmB;IAC3B,IAAA,KAAkC,mBAAmB,EAAE,EAArD,YAAY,kBAAA,EAAE,aAAa,mBAA0B,CAAC;IAE9D,SAAS,CAAC;QACR,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;IAElC,OAAO,CACL,KAAC,cAAc,IACb,UAAU,EAAE,EAAE,EACd,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,mBAAmB;YAC1B,QAAQ,EAAE,sDAAsD;YAChE,QAAQ,EAAE,KAAK;SAChB,GACD,CACH,CAAC;AACJ,CAAC","sourcesContent":["import { useEffect } from 'react';\nimport { useWalletConnection } from '../providers';\nimport { WaitingMessage } from '../components/WaitingMessage';\n\nexport function ConnectWalletScreen() {\n const { isConnecting, connectWallet } = useWalletConnection();\n\n useEffect(() => {\n if (!isConnecting) {\n connectWallet();\n }\n }, [isConnecting, connectWallet]);\n\n return (\n <WaitingMessage\n loaderSize={52}\n message={{\n visible: true,\n title: 'Connecting Wallet',\n subtitle: 'Please approve the connection request in your wallet',\n isTyping: false,\n }}\n />\n );\n}\n"]}
|
|
@@ -1,29 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var ChainButton_1 = require("../components/ChainButton");
|
|
9
|
-
var providers_1 = require("../providers");
|
|
10
|
-
var logos_1 = require("../../../components/logos");
|
|
11
|
-
var solana_1 = require("../../../config/solana");
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useMemo, useState } from "react";
|
|
3
|
+
import { logger } from "../../../utils/logger";
|
|
4
|
+
import { ChainButton } from "../components/ChainButton";
|
|
5
|
+
import { useWalletConnection, useOnboardingState } from "../providers";
|
|
6
|
+
import { SolanaLogo, HyperliquidLogo, ArbitrumLogo, EthereumLogo, } from "../../../components/logos";
|
|
7
|
+
import { SolanaNetwork } from "../../../config/solana";
|
|
12
8
|
var sharedLogoWrapperStyle = { width: 16, height: 16 };
|
|
13
|
-
|
|
9
|
+
export var CHAINS_WITH_NETWORK_INFO = [
|
|
14
10
|
{
|
|
15
11
|
id: "solana",
|
|
16
12
|
name: "Solana",
|
|
17
13
|
subtitle: "~1 minute deposit time",
|
|
18
|
-
logo: ((
|
|
19
|
-
network:
|
|
14
|
+
logo: (_jsx("div", { className: "flex items-center justify-center", style: sharedLogoWrapperStyle, children: _jsx(SolanaLogo, { width: 16, height: 16 }) })),
|
|
15
|
+
network: SolanaNetwork.MAINNET,
|
|
20
16
|
soon: false,
|
|
21
17
|
},
|
|
22
18
|
{
|
|
23
19
|
id: "hyperliquid",
|
|
24
20
|
name: "Hyperliquid",
|
|
25
21
|
subtitle: undefined,
|
|
26
|
-
logo: ((
|
|
22
|
+
logo: (_jsx("div", { className: "flex items-center justify-center", style: sharedLogoWrapperStyle, children: _jsx(HyperliquidLogo, { width: 16, height: 16 }) })),
|
|
27
23
|
network: "",
|
|
28
24
|
soon: true,
|
|
29
25
|
},
|
|
@@ -31,7 +27,7 @@ exports.CHAINS_WITH_NETWORK_INFO = [
|
|
|
31
27
|
id: "arbitrum",
|
|
32
28
|
name: "Arbitrum",
|
|
33
29
|
subtitle: undefined,
|
|
34
|
-
logo: ((
|
|
30
|
+
logo: (_jsx("div", { className: "flex items-center justify-center", style: sharedLogoWrapperStyle, children: _jsx(ArbitrumLogo, { width: 16, height: 16 }) })),
|
|
35
31
|
network: "",
|
|
36
32
|
soon: true,
|
|
37
33
|
},
|
|
@@ -39,25 +35,25 @@ exports.CHAINS_WITH_NETWORK_INFO = [
|
|
|
39
35
|
id: "ethereum",
|
|
40
36
|
name: "Ethereum",
|
|
41
37
|
subtitle: undefined,
|
|
42
|
-
logo: ((
|
|
38
|
+
logo: (_jsx("div", { className: "flex items-center justify-center", style: sharedLogoWrapperStyle, children: _jsx(EthereumLogo, { width: 16, height: 16 }) })),
|
|
43
39
|
network: "",
|
|
44
40
|
soon: true,
|
|
45
41
|
},
|
|
46
42
|
];
|
|
47
|
-
function ChainSelectionScreen() {
|
|
48
|
-
var disconnectWallet =
|
|
49
|
-
var _a =
|
|
50
|
-
var initialSelectedChainId =
|
|
43
|
+
export function ChainSelectionScreen() {
|
|
44
|
+
var disconnectWallet = useWalletConnection().disconnectWallet;
|
|
45
|
+
var _a = useOnboardingState(), actions = _a.actions, context = _a.context;
|
|
46
|
+
var initialSelectedChainId = useMemo(function () {
|
|
51
47
|
var _a;
|
|
52
48
|
if (context.selectedChainId) {
|
|
53
|
-
var chainFromId =
|
|
49
|
+
var chainFromId = CHAINS_WITH_NETWORK_INFO.find(function (chain) { return chain.id === context.selectedChainId; });
|
|
54
50
|
if (chainFromId) {
|
|
55
51
|
return chainFromId.id;
|
|
56
52
|
}
|
|
57
53
|
}
|
|
58
54
|
if (context.selectedChain) {
|
|
59
55
|
var normalizedContextValue_1 = context.selectedChain.toLowerCase();
|
|
60
|
-
var chainFromContext =
|
|
56
|
+
var chainFromContext = CHAINS_WITH_NETWORK_INFO.find(function (chain) {
|
|
61
57
|
return chain.name.toLowerCase() === normalizedContextValue_1 ||
|
|
62
58
|
chain.id.toLowerCase() === normalizedContextValue_1;
|
|
63
59
|
});
|
|
@@ -65,24 +61,24 @@ function ChainSelectionScreen() {
|
|
|
65
61
|
return chainFromContext.id;
|
|
66
62
|
}
|
|
67
63
|
}
|
|
68
|
-
return ((_a =
|
|
64
|
+
return ((_a = CHAINS_WITH_NETWORK_INFO.find(function (c) { return !c.soon; })) === null || _a === void 0 ? void 0 : _a.id) || null;
|
|
69
65
|
}, [context.selectedChain, context.selectedChainId]);
|
|
70
|
-
var _b =
|
|
71
|
-
var handleChainSelect =
|
|
72
|
-
|
|
73
|
-
var chain =
|
|
66
|
+
var _b = useState(initialSelectedChainId), selectedChainId = _b[0], setSelectedChainId = _b[1];
|
|
67
|
+
var handleChainSelect = useCallback(function (chainId) {
|
|
68
|
+
logger.debug("Chain selected in ChainSelectionScreen:", chainId);
|
|
69
|
+
var chain = CHAINS_WITH_NETWORK_INFO.find(function (c) { return c.id === chainId; });
|
|
74
70
|
if (chain && !chain.soon) {
|
|
75
71
|
setSelectedChainId(chainId);
|
|
76
72
|
}
|
|
77
73
|
else {
|
|
78
|
-
|
|
74
|
+
logger.debug("Chain not selectable:", chainId);
|
|
79
75
|
}
|
|
80
|
-
}, [
|
|
81
|
-
var selectedChain =
|
|
82
|
-
var handleContinue =
|
|
76
|
+
}, [logger]);
|
|
77
|
+
var selectedChain = useMemo(function () { return CHAINS_WITH_NETWORK_INFO.find(function (chain) { return chain.id === selectedChainId; }); }, [selectedChainId]);
|
|
78
|
+
var handleContinue = useCallback(function () {
|
|
83
79
|
var _a;
|
|
84
80
|
if (!selectedChain || selectedChain.soon) {
|
|
85
|
-
|
|
81
|
+
logger.debug("Continue button clicked without selectable chain");
|
|
86
82
|
return;
|
|
87
83
|
}
|
|
88
84
|
actions.selectChain({
|
|
@@ -90,15 +86,15 @@ function ChainSelectionScreen() {
|
|
|
90
86
|
name: selectedChain.name,
|
|
91
87
|
network: (_a = selectedChain.network) !== null && _a !== void 0 ? _a : null,
|
|
92
88
|
});
|
|
93
|
-
|
|
89
|
+
logger.debug("Transitioned to amount input from chain selection");
|
|
94
90
|
}, [selectedChain, actions]);
|
|
95
|
-
var handleDisconnect =
|
|
96
|
-
|
|
91
|
+
var handleDisconnect = useCallback(function () {
|
|
92
|
+
logger.debug("Disconnect button clicked");
|
|
97
93
|
disconnectWallet();
|
|
98
94
|
}, [disconnectWallet]);
|
|
99
95
|
var isContinueDisabled = !selectedChain || selectedChain.soon;
|
|
100
|
-
return ((
|
|
96
|
+
return (_jsx("div", { className: "overflow-visible relative", children: _jsxs("div", { className: "flex flex-col space-y-3", children: [CHAINS_WITH_NETWORK_INFO.map(function (chain) { return (_jsx(ChainButton, { chain: chain, onClick: function () { return handleChainSelect(chain.id); }, selected: selectedChainId === chain.id && !chain.soon, soon: chain.soon, subtitle: chain.subtitle }, chain.id)); }), _jsxs("div", { className: "flex flex-col space-y-2", children: [_jsx("button", { type: "button", onClick: handleContinue, disabled: isContinueDisabled, className: "w-full h-8 rounded border bg-transparent flex font-medium items-center justify-center transition-all duration-200 transform ".concat(isContinueDisabled
|
|
101
97
|
? "border-n1-ww-border opacity-50 cursor-not-allowed"
|
|
102
|
-
: "border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer"), children: (
|
|
98
|
+
: "border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer"), children: _jsx("span", { className: "font-medium text-sm opacity-90 ".concat(isContinueDisabled ? "text-n1-ww-gray-500" : "text-n1-ww-main"), children: "Continue" }) }), _jsx("button", { type: "button", onClick: handleDisconnect, className: "w-full h-8 rounded border border-n1-ww-border bg-transparent flex font-medium items-center justify-center transition-all duration-200 transform hover:bg-n1-ww-gray-900 cursor-pointer", children: _jsx("span", { className: "text-white font-medium text-sm opacity-90", children: "Disconnect" }) })] })] }) }));
|
|
103
99
|
}
|
|
104
100
|
//# sourceMappingURL=02-ChainSelectionScreen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"02-ChainSelectionScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/02-ChainSelectionScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\nimport { logger } from \"../../../utils/logger\";\nimport { ChainButton } from \"../components/ChainButton\";\nimport { useWalletConnection, useOnboardingState } from \"../providers\";\nimport { \n SolanaLogo,\n HyperliquidLogo,\n ArbitrumLogo,\n EthereumLogo,\n} from \"../../../components/logos\";\nimport { SolanaNetwork } from \"../../../config/solana\";\n\n\n\nconst sharedLogoWrapperStyle = { width: 16, height: 16 };\n\nexport const CHAINS_WITH_NETWORK_INFO = [\n {\n id: \"solana\",\n name: \"Solana\",\n subtitle: \"~1 minute deposit time\",\n logo: (\n <div className=\"flex items-center justify-center\" style={sharedLogoWrapperStyle}>\n <SolanaLogo width={16} height={16} />\n </div>\n ),\n network: SolanaNetwork.MAINNET,\n soon: false,\n },\n {\n id: \"hyperliquid\",\n name: \"Hyperliquid\",\n subtitle: undefined,\n logo: (\n <div className=\"flex items-center justify-center\" style={sharedLogoWrapperStyle}>\n <HyperliquidLogo width={16} height={16} />\n </div>\n ),\n network: \"\",\n soon: true,\n },\n {\n id: \"arbitrum\",\n name: \"Arbitrum\",\n subtitle: undefined,\n logo: (\n <div className=\"flex items-center justify-center\" style={sharedLogoWrapperStyle}>\n <ArbitrumLogo width={16} height={16} />\n </div>\n ),\n network: \"\",\n soon: true,\n },\n {\n id: \"ethereum\",\n name: \"Ethereum\",\n subtitle: undefined,\n logo: (\n <div className=\"flex items-center justify-center\" style={sharedLogoWrapperStyle}>\n <EthereumLogo width={16} height={16} />\n </div>\n ),\n network: \"\",\n soon: true,\n },\n] as const;\n\n\n\nexport function ChainSelectionScreen() {\n const { disconnectWallet } = useWalletConnection();\n const { actions, context } = useOnboardingState();\n\n const initialSelectedChainId = useMemo(() => {\n if (context.selectedChainId) {\n const chainFromId = CHAINS_WITH_NETWORK_INFO.find(\n (chain) => chain.id === context.selectedChainId\n );\n if (chainFromId) {\n return chainFromId.id;\n }\n }\n\n if (context.selectedChain) {\n const normalizedContextValue = context.selectedChain.toLowerCase();\n const chainFromContext = CHAINS_WITH_NETWORK_INFO.find(\n (chain) =>\n chain.name.toLowerCase() === normalizedContextValue ||\n chain.id.toLowerCase() === normalizedContextValue\n );\n if (chainFromContext) {\n return chainFromContext.id;\n }\n }\n\n return CHAINS_WITH_NETWORK_INFO.find((c) => !c.soon)?.id || null;\n }, [context.selectedChain, context.selectedChainId]);\n\n const [selectedChainId, setSelectedChainId] = useState<string | null>(\n initialSelectedChainId\n );\n\n const handleChainSelect = useCallback((chainId: string) => {\n logger.debug(\"Chain selected in ChainSelectionScreen:\", chainId);\n \n const chain = CHAINS_WITH_NETWORK_INFO.find((c) => c.id === chainId);\n \n if (chain && !chain.soon) {\n setSelectedChainId(chainId);\n } else {\n logger.debug(\"Chain not selectable:\", chainId);\n }\n }, [logger]);\n\n const selectedChain = useMemo(\n () => CHAINS_WITH_NETWORK_INFO.find((chain) => chain.id === selectedChainId),\n [selectedChainId]\n );\n\n const handleContinue = useCallback(() => {\n if (!selectedChain || selectedChain.soon) {\n logger.debug(\"Continue button clicked without selectable chain\");\n return;\n }\n\n actions.selectChain({\n id: selectedChain.id,\n name: selectedChain.name,\n network: selectedChain.network ?? null,\n });\n logger.debug(\"Transitioned to amount input from chain selection\");\n }, [selectedChain, actions]);\n\n const handleDisconnect = useCallback(() => {\n logger.debug(\"Disconnect button clicked\");\n disconnectWallet();\n }, [disconnectWallet]);\n\n const isContinueDisabled = !selectedChain || selectedChain.soon;\n\n return (\n <div className=\"overflow-visible relative\">\n <div className=\"flex flex-col space-y-3\">\n {CHAINS_WITH_NETWORK_INFO.map((chain) => (\n <ChainButton\n key={chain.id}\n chain={chain}\n onClick={() => handleChainSelect(chain.id)}\n selected={selectedChainId === chain.id && !chain.soon}\n soon={chain.soon}\n subtitle={chain.subtitle}\n />\n ))}\n <div className=\"flex flex-col space-y-2\">\n <button\n type=\"button\"\n onClick={handleContinue}\n disabled={isContinueDisabled}\n className={`w-full h-8 rounded border bg-transparent flex font-medium items-center justify-center transition-all duration-200 transform ${\n isContinueDisabled\n ? \"border-n1-ww-border opacity-50 cursor-not-allowed\"\n : \"border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer\"\n }`}\n >\n <span\n className={`font-medium text-sm opacity-90 ${\n isContinueDisabled ? \"text-n1-ww-gray-500\" : \"text-n1-ww-main\"\n }`}\n >\n Continue\n </span>\n </button>\n <button\n type=\"button\"\n onClick={handleDisconnect}\n className=\"w-full h-8 rounded border border-n1-ww-border bg-transparent flex font-medium items-center justify-center transition-all duration-200 transform hover:bg-n1-ww-gray-900 cursor-pointer\"\n >\n <span className=\"text-white font-medium text-sm opacity-90\">\n Disconnect\n </span>\n </button>\n </div>\n </div>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"02-ChainSelectionScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/02-ChainSelectionScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\nimport { logger } from \"../../../utils/logger\";\nimport { ChainButton } from \"../components/ChainButton\";\nimport { useWalletConnection, useOnboardingState } from \"../providers\";\nimport { \n SolanaLogo,\n HyperliquidLogo,\n ArbitrumLogo,\n EthereumLogo,\n} from \"../../../components/logos\";\nimport { SolanaNetwork } from \"../../../config/solana\";\n\n\n\nconst sharedLogoWrapperStyle = { width: 16, height: 16 };\n\nexport const CHAINS_WITH_NETWORK_INFO = [\n {\n id: \"solana\",\n name: \"Solana\",\n subtitle: \"~1 minute deposit time\",\n logo: (\n <div className=\"flex items-center justify-center\" style={sharedLogoWrapperStyle}>\n <SolanaLogo width={16} height={16} />\n </div>\n ),\n network: SolanaNetwork.MAINNET,\n soon: false,\n },\n {\n id: \"hyperliquid\",\n name: \"Hyperliquid\",\n subtitle: undefined,\n logo: (\n <div className=\"flex items-center justify-center\" style={sharedLogoWrapperStyle}>\n <HyperliquidLogo width={16} height={16} />\n </div>\n ),\n network: \"\",\n soon: true,\n },\n {\n id: \"arbitrum\",\n name: \"Arbitrum\",\n subtitle: undefined,\n logo: (\n <div className=\"flex items-center justify-center\" style={sharedLogoWrapperStyle}>\n <ArbitrumLogo width={16} height={16} />\n </div>\n ),\n network: \"\",\n soon: true,\n },\n {\n id: \"ethereum\",\n name: \"Ethereum\",\n subtitle: undefined,\n logo: (\n <div className=\"flex items-center justify-center\" style={sharedLogoWrapperStyle}>\n <EthereumLogo width={16} height={16} />\n </div>\n ),\n network: \"\",\n soon: true,\n },\n] as const;\n\n\n\nexport function ChainSelectionScreen() {\n const { disconnectWallet } = useWalletConnection();\n const { actions, context } = useOnboardingState();\n\n const initialSelectedChainId = useMemo(() => {\n if (context.selectedChainId) {\n const chainFromId = CHAINS_WITH_NETWORK_INFO.find(\n (chain) => chain.id === context.selectedChainId\n );\n if (chainFromId) {\n return chainFromId.id;\n }\n }\n\n if (context.selectedChain) {\n const normalizedContextValue = context.selectedChain.toLowerCase();\n const chainFromContext = CHAINS_WITH_NETWORK_INFO.find(\n (chain) =>\n chain.name.toLowerCase() === normalizedContextValue ||\n chain.id.toLowerCase() === normalizedContextValue\n );\n if (chainFromContext) {\n return chainFromContext.id;\n }\n }\n\n return CHAINS_WITH_NETWORK_INFO.find((c) => !c.soon)?.id || null;\n }, [context.selectedChain, context.selectedChainId]);\n\n const [selectedChainId, setSelectedChainId] = useState<string | null>(\n initialSelectedChainId\n );\n\n const handleChainSelect = useCallback((chainId: string) => {\n logger.debug(\"Chain selected in ChainSelectionScreen:\", chainId);\n \n const chain = CHAINS_WITH_NETWORK_INFO.find((c) => c.id === chainId);\n \n if (chain && !chain.soon) {\n setSelectedChainId(chainId);\n } else {\n logger.debug(\"Chain not selectable:\", chainId);\n }\n }, [logger]);\n\n const selectedChain = useMemo(\n () => CHAINS_WITH_NETWORK_INFO.find((chain) => chain.id === selectedChainId),\n [selectedChainId]\n );\n\n const handleContinue = useCallback(() => {\n if (!selectedChain || selectedChain.soon) {\n logger.debug(\"Continue button clicked without selectable chain\");\n return;\n }\n\n actions.selectChain({\n id: selectedChain.id,\n name: selectedChain.name,\n network: selectedChain.network ?? null,\n });\n logger.debug(\"Transitioned to amount input from chain selection\");\n }, [selectedChain, actions]);\n\n const handleDisconnect = useCallback(() => {\n logger.debug(\"Disconnect button clicked\");\n disconnectWallet();\n }, [disconnectWallet]);\n\n const isContinueDisabled = !selectedChain || selectedChain.soon;\n\n return (\n <div className=\"overflow-visible relative\">\n <div className=\"flex flex-col space-y-3\">\n {CHAINS_WITH_NETWORK_INFO.map((chain) => (\n <ChainButton\n key={chain.id}\n chain={chain}\n onClick={() => handleChainSelect(chain.id)}\n selected={selectedChainId === chain.id && !chain.soon}\n soon={chain.soon}\n subtitle={chain.subtitle}\n />\n ))}\n <div className=\"flex flex-col space-y-2\">\n <button\n type=\"button\"\n onClick={handleContinue}\n disabled={isContinueDisabled}\n className={`w-full h-8 rounded border bg-transparent flex font-medium items-center justify-center transition-all duration-200 transform ${\n isContinueDisabled\n ? \"border-n1-ww-border opacity-50 cursor-not-allowed\"\n : \"border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer\"\n }`}\n >\n <span\n className={`font-medium text-sm opacity-90 ${\n isContinueDisabled ? \"text-n1-ww-gray-500\" : \"text-n1-ww-main\"\n }`}\n >\n Continue\n </span>\n </button>\n <button\n type=\"button\"\n onClick={handleDisconnect}\n className=\"w-full h-8 rounded border border-n1-ww-border bg-transparent flex font-medium items-center justify-center transition-all duration-200 transform hover:bg-n1-ww-gray-900 cursor-pointer\"\n >\n <span className=\"text-white font-medium text-sm opacity-90\">\n Disconnect\n </span>\n </button>\n </div>\n </div>\n </div>\n );\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++) {
|
|
@@ -55,55 +54,52 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
55
54
|
}
|
|
56
55
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
57
56
|
};
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
var
|
|
68
|
-
var
|
|
69
|
-
|
|
70
|
-
exports.DEFAULT_MIN_DEPOSIT = 5;
|
|
71
|
-
exports.BALANCE_REFRESH_MS = 20000;
|
|
72
|
-
function AmountInputScreen(_a) {
|
|
57
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
58
|
+
import { Connection, LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js";
|
|
59
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
60
|
+
import { SolanaLogo } from "../../../components/logos";
|
|
61
|
+
import { useN1WalletContext } from "../../../hooks";
|
|
62
|
+
import { logger } from "../../../utils/logger";
|
|
63
|
+
import { useDepositFlow, useOnboardingState } from "../providers";
|
|
64
|
+
import { formatAmount, isNordConfigured } from "../utils/nordUtils";
|
|
65
|
+
import { getSolanaRpcUrl } from "../../../config/solana";
|
|
66
|
+
export var DEFAULT_MIN_DEPOSIT = 5;
|
|
67
|
+
export var BALANCE_REFRESH_MS = 20000;
|
|
68
|
+
export function AmountInputScreen(_a) {
|
|
73
69
|
var _this = this;
|
|
74
|
-
var context =
|
|
75
|
-
var _b =
|
|
76
|
-
var _c =
|
|
77
|
-
var _d =
|
|
78
|
-
var _e =
|
|
79
|
-
var _f =
|
|
80
|
-
var _g =
|
|
70
|
+
var context = useOnboardingState().context;
|
|
71
|
+
var _b = useDepositFlow(), amount = _b.amount, updateAmount = _b.updateAmount, startDeposit = _b.startDeposit;
|
|
72
|
+
var _c = useN1WalletContext(), nord = _c.nord, address = _c.address;
|
|
73
|
+
var _d = useState(null), tokenSymbol = _d[0], setTokenSymbol = _d[1];
|
|
74
|
+
var _e = useState(null), tokenDecimals = _e[0], setTokenDecimals = _e[1];
|
|
75
|
+
var _f = useState(null), nordTokens = _f[0], setNordTokens = _f[1];
|
|
76
|
+
var _g = useState({
|
|
81
77
|
usdc: null,
|
|
82
78
|
sol: null,
|
|
83
79
|
loading: false,
|
|
84
80
|
error: null,
|
|
85
81
|
}), walletBalances = _g[0], setWalletBalances = _g[1];
|
|
86
|
-
var isMountedRef =
|
|
87
|
-
|
|
82
|
+
var isMountedRef = useRef(true);
|
|
83
|
+
useEffect(function () {
|
|
88
84
|
return function () {
|
|
89
85
|
isMountedRef.current = false;
|
|
90
86
|
};
|
|
91
87
|
}, []);
|
|
92
|
-
|
|
88
|
+
useEffect(function () {
|
|
93
89
|
if (!amount) {
|
|
94
90
|
updateAmount("100");
|
|
95
91
|
}
|
|
96
92
|
}, [amount, updateAmount]);
|
|
97
93
|
var selectedChainName = context.selectedChain || "Solana";
|
|
98
|
-
var _h =
|
|
99
|
-
|
|
94
|
+
var _h = useState(null), tokenMintAddress = _h[0], setTokenMintAddress = _h[1];
|
|
95
|
+
useEffect(function () {
|
|
100
96
|
var isCancelled = false;
|
|
101
97
|
var loadNordTokens = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
102
98
|
var error_1;
|
|
103
99
|
return __generator(this, function (_a) {
|
|
104
100
|
switch (_a.label) {
|
|
105
101
|
case 0:
|
|
106
|
-
if (!nord || !
|
|
102
|
+
if (!nord || !isNordConfigured(nord)) {
|
|
107
103
|
if (!isCancelled) {
|
|
108
104
|
setNordTokens(null);
|
|
109
105
|
}
|
|
@@ -134,7 +130,7 @@ function AmountInputScreen(_a) {
|
|
|
134
130
|
case 3:
|
|
135
131
|
error_1 = _a.sent();
|
|
136
132
|
if (!isCancelled) {
|
|
137
|
-
|
|
133
|
+
logger.warn("Unable to fetch Nord info:", error_1);
|
|
138
134
|
setNordTokens(null);
|
|
139
135
|
}
|
|
140
136
|
return [3 /*break*/, 4];
|
|
@@ -147,8 +143,8 @@ function AmountInputScreen(_a) {
|
|
|
147
143
|
isCancelled = true;
|
|
148
144
|
};
|
|
149
145
|
}, [nord]);
|
|
150
|
-
|
|
151
|
-
if (nord &&
|
|
146
|
+
useEffect(function () {
|
|
147
|
+
if (nord && isNordConfigured(nord)) {
|
|
152
148
|
try {
|
|
153
149
|
if (!nordTokens || nordTokens.length === 0) {
|
|
154
150
|
return;
|
|
@@ -171,17 +167,17 @@ function AmountInputScreen(_a) {
|
|
|
171
167
|
}
|
|
172
168
|
}
|
|
173
169
|
catch (error) {
|
|
174
|
-
|
|
170
|
+
logger.warn("Error getting token information from Nord:", error);
|
|
175
171
|
}
|
|
176
172
|
}
|
|
177
173
|
}, [nord, nordTokens]);
|
|
178
|
-
var minDeposit =
|
|
174
|
+
var minDeposit = useMemo(function () {
|
|
179
175
|
var _a, _b;
|
|
180
176
|
if (!nord ||
|
|
181
|
-
!
|
|
177
|
+
!isNordConfigured(nord) ||
|
|
182
178
|
!tokenMintAddress ||
|
|
183
179
|
tokenDecimals == null) {
|
|
184
|
-
return
|
|
180
|
+
return DEFAULT_MIN_DEPOSIT;
|
|
185
181
|
}
|
|
186
182
|
try {
|
|
187
183
|
// @ts-ignore
|
|
@@ -195,11 +191,11 @@ function AmountInputScreen(_a) {
|
|
|
195
191
|
}
|
|
196
192
|
}
|
|
197
193
|
catch (error) {
|
|
198
|
-
|
|
194
|
+
logger.warn("Unable to derive min deposit from Nord config", error);
|
|
199
195
|
}
|
|
200
|
-
return
|
|
196
|
+
return DEFAULT_MIN_DEPOSIT;
|
|
201
197
|
}, [nord, tokenMintAddress, tokenDecimals]);
|
|
202
|
-
var fetchBalances =
|
|
198
|
+
var fetchBalances = useCallback(function () {
|
|
203
199
|
var args_1 = [];
|
|
204
200
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
205
201
|
args_1[_i] = arguments[_i];
|
|
@@ -227,13 +223,13 @@ function AmountInputScreen(_a) {
|
|
|
227
223
|
_b.label = 1;
|
|
228
224
|
case 1:
|
|
229
225
|
_b.trys.push([1, 3, , 4]);
|
|
230
|
-
rpcEndpoint =
|
|
231
|
-
connection = new
|
|
232
|
-
ownerKey = new
|
|
226
|
+
rpcEndpoint = getSolanaRpcUrl();
|
|
227
|
+
connection = new Connection(rpcEndpoint, "confirmed");
|
|
228
|
+
ownerKey = new PublicKey(address);
|
|
233
229
|
return [4 /*yield*/, Promise.all([
|
|
234
230
|
connection.getBalance(ownerKey),
|
|
235
231
|
connection.getParsedTokenAccountsByOwner(ownerKey, {
|
|
236
|
-
mint: new
|
|
232
|
+
mint: new PublicKey(tokenMintAddress),
|
|
237
233
|
}),
|
|
238
234
|
])];
|
|
239
235
|
case 2:
|
|
@@ -256,14 +252,14 @@ function AmountInputScreen(_a) {
|
|
|
256
252
|
}
|
|
257
253
|
setWalletBalances({
|
|
258
254
|
usdc: usdcTotal,
|
|
259
|
-
sol: solLamports /
|
|
255
|
+
sol: solLamports / LAMPORTS_PER_SOL,
|
|
260
256
|
loading: false,
|
|
261
257
|
error: null,
|
|
262
258
|
});
|
|
263
259
|
return [3 /*break*/, 4];
|
|
264
260
|
case 3:
|
|
265
261
|
error_2 = _b.sent();
|
|
266
|
-
|
|
262
|
+
logger.warn("Failed to load wallet balances", error_2);
|
|
267
263
|
if (!isMountedRef.current) {
|
|
268
264
|
return [2 /*return*/];
|
|
269
265
|
}
|
|
@@ -274,14 +270,14 @@ function AmountInputScreen(_a) {
|
|
|
274
270
|
});
|
|
275
271
|
});
|
|
276
272
|
}, [address, tokenMintAddress]);
|
|
277
|
-
|
|
273
|
+
useEffect(function () {
|
|
278
274
|
if (!tokenMintAddress) {
|
|
279
275
|
return;
|
|
280
276
|
}
|
|
281
277
|
fetchBalances();
|
|
282
278
|
var interval = setInterval(function () {
|
|
283
279
|
fetchBalances(false);
|
|
284
|
-
},
|
|
280
|
+
}, BALANCE_REFRESH_MS);
|
|
285
281
|
return function () { return clearInterval(interval); };
|
|
286
282
|
}, [fetchBalances, tokenMintAddress]);
|
|
287
283
|
var isSolana = selectedChainName.toLowerCase().includes("solana");
|
|
@@ -293,7 +289,7 @@ function AmountInputScreen(_a) {
|
|
|
293
289
|
? walletBalances.loading
|
|
294
290
|
? "Loading..."
|
|
295
291
|
: "—"
|
|
296
|
-
:
|
|
292
|
+
: formatAmount(walletBalances.usdc, tokenDecimals);
|
|
297
293
|
var formattedSolBalance = walletBalances.sol == null
|
|
298
294
|
? walletBalances.loading
|
|
299
295
|
? "Loading..."
|
|
@@ -306,7 +302,7 @@ function AmountInputScreen(_a) {
|
|
|
306
302
|
var hasSufficientSol = walletBalances.sol == null
|
|
307
303
|
? false
|
|
308
304
|
: walletBalances.sol >= requiredSolForFees;
|
|
309
|
-
var validationError =
|
|
305
|
+
var validationError = useMemo(function () {
|
|
310
306
|
if (!address) {
|
|
311
307
|
return "Connect a wallet to continue.";
|
|
312
308
|
}
|
|
@@ -357,8 +353,8 @@ function AmountInputScreen(_a) {
|
|
|
357
353
|
}
|
|
358
354
|
updateAmount(walletBalances.usdc.toFixed(tokenDecimals));
|
|
359
355
|
};
|
|
360
|
-
return ((
|
|
356
|
+
return (_jsxs("div", { className: "overflow-hidden relative", children: [_jsxs("div", { className: "flex items-center justify-between mb-4", children: [_jsx("h2", { className: "text-sm text-white font-medium", children: "Deposit From" }), _jsxs("div", { className: "flex items-center space-x-2 rounded-md bg-n1-ww-border h-5 justify-center p-1", children: [isSolana ? (_jsx("div", { className: "rounded-full flex items-center justify-center bg-black h-3 w-3", children: _jsx(SolanaLogo, { width: 6, height: 6 }) })) : (_jsx("div", { className: "w-4 h-4 rounded-full bg-n1-ww-gray-600" })), _jsx("span", { className: "text-white text-xs font-medium", children: selectedChainName })] })] }), _jsxs("div", { className: "space-y-3 mb-4 text-white text-xs font-light", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { children: "Available Balance:" }), _jsxs("span", { children: [formattedBalance, " ", tokenSymbolDisplay] })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { children: "SOL Balance:" }), _jsxs("span", { children: [formattedSolBalance, " SOL"] })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { children: "Minimum Deposit:" }), _jsxs("span", { children: [minDepositDisplay, " ", tokenSymbolDisplay] })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { children: "Gas Fee:" }), _jsx("span", { children: gasFeeDisplay })] })] }), _jsx("div", { className: "h-px bg-n1-ww-border mb-4" }), _jsxs("div", { className: "mb-4 flex justify-between w-full", children: [_jsx("div", { className: "flex items-center gap-3", children: _jsxs("div", { className: "flex items-center justify-between border border-n1-ww-gray-400 bg-n1-ww-gray-600 flex-1 w-[292px] rounded h-8 px-2", children: [_jsx("span", { className: "text-white text-sm font-medium", children: "Amount" }), _jsxs("div", { className: "flex items-center space-x-2", children: [_jsx("input", { type: "number", step: "0.000001", value: amount, onChange: function (e) { return updateAmount(e.target.value); }, className: "text-white font-light text-xs text-right bg-transparent border-none outline-none focus:ring-2 focus:ring-n1-ww-main focus:ring-offset-0 rounded px-1" }), _jsx("button", { className: "border border-n1-ww-gray-400 h-5 text-white text-xs font-light flex items-center justify-center px-1 rounded transition-colors", children: tokenSymbolDisplay })] })] }) }), _jsx("button", { className: "border border-n1-ww-gray-400 bg-n1-ww-gray-600 rounded text-white text-sm font-medium px-2 h-8 hover:bg-n1-ww-gray-800 transition-colors w-[68px]", onClick: handleUseMax, type: "button", children: "Max" })] }), validationError && (_jsx("p", { className: "mb-2 text-xs text-red-400", children: validationError })), _jsx("button", { onClick: startDeposit, disabled: !isValidAmount, className: "\n w-full h-8 rounded border bg-transparent flex font-medium items-center justify-center\n transition-all duration-200 transform\n ".concat(isValidAmount
|
|
361
357
|
? "border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer"
|
|
362
|
-
: "border-n1-ww-border opacity-50 cursor-not-allowed", "\n "), children: (
|
|
358
|
+
: "border-n1-ww-border opacity-50 cursor-not-allowed", "\n "), children: _jsx("span", { className: "\n font-medium text-sm opacity-90\n ".concat(isValidAmount ? "text-n1-ww-main" : "text-n1-ww-gray-600", "\n "), children: "Deposit" }) })] }));
|
|
363
359
|
}
|
|
364
360
|
//# sourceMappingURL=03-AmountInputScreen.js.map
|