@n1xyz/wallet-widget 0.0.33-alpha.1 → 0.0.33-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/animations/N1Loader.js +14 -8
- package/dist/animations/N1Loader.js.map +1 -1
- package/dist/animations/Processing.js +14 -8
- package/dist/animations/Processing.js.map +1 -1
- package/dist/components/LoadingFallback.js +6 -2
- package/dist/components/LoadingFallback.js.map +1 -1
- package/dist/components/Logo.js +25 -22
- package/dist/components/Logo.js.map +1 -1
- package/dist/components/N1ConnectButton.js +18 -12
- package/dist/components/N1ConnectButton.js.map +1 -1
- package/dist/components/logos/ArbitrumLogo.js +7 -3
- package/dist/components/logos/ArbitrumLogo.js.map +1 -1
- package/dist/components/logos/BaseLogo.js +7 -3
- package/dist/components/logos/BaseLogo.js.map +1 -1
- package/dist/components/logos/BeraLogo.js +7 -3
- package/dist/components/logos/BeraLogo.js.map +1 -1
- package/dist/components/logos/BitcoinLogo.js +7 -3
- package/dist/components/logos/BitcoinLogo.js.map +1 -1
- package/dist/components/logos/EthereumLogo.js +7 -3
- package/dist/components/logos/EthereumLogo.js.map +1 -1
- package/dist/components/logos/HyperliquidLogo.js +7 -3
- package/dist/components/logos/HyperliquidLogo.js.map +1 -1
- package/dist/components/logos/OptimismLogo.js +7 -3
- package/dist/components/logos/OptimismLogo.js.map +1 -1
- package/dist/components/logos/SolanaLogo.js +7 -3
- package/dist/components/logos/SolanaLogo.js.map +1 -1
- package/dist/components/logos/ZeroOneLogo.js +7 -3
- package/dist/components/logos/ZeroOneLogo.js.map +1 -1
- package/dist/components/logos/index.js +25 -9
- package/dist/components/logos/index.js.map +1 -1
- package/dist/config/solana.js +7 -3
- package/dist/config/solana.js.map +1 -1
- package/dist/config.js +5 -2
- package/dist/config.js.map +1 -1
- package/dist/context/n1-wallet-context.js +8 -4
- package/dist/context/n1-wallet-context.js.map +1 -1
- package/dist/errors/types.js +6 -3
- package/dist/errors/types.js.map +1 -1
- package/dist/features/onboarding-flow/N1WalletModal.js +59 -23
- package/dist/features/onboarding-flow/N1WalletModal.js.map +1 -1
- package/dist/features/onboarding-flow/OnboardingFlow.js +50 -46
- package/dist/features/onboarding-flow/OnboardingFlow.js.map +1 -1
- package/dist/features/onboarding-flow/components/ChainButton.js +7 -4
- package/dist/features/onboarding-flow/components/ChainButton.js.map +1 -1
- package/dist/features/onboarding-flow/components/Header.js +15 -11
- package/dist/features/onboarding-flow/components/Header.js.map +1 -1
- package/dist/features/onboarding-flow/components/ImageWithFallback.js +10 -6
- package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +1 -1
- package/dist/features/onboarding-flow/components/TransactionTable.js +13 -10
- package/dist/features/onboarding-flow/components/TransactionTable.js.map +1 -1
- package/dist/features/onboarding-flow/components/WaitingMessage.js +14 -8
- package/dist/features/onboarding-flow/components/WaitingMessage.js.map +1 -1
- package/dist/features/onboarding-flow/components/index.js +21 -5
- package/dist/features/onboarding-flow/components/index.js.map +1 -1
- package/dist/features/onboarding-flow/index.js +5 -1
- package/dist/features/onboarding-flow/index.js.map +1 -1
- package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +60 -55
- package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +48 -43
- package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/StateProvider.js +11 -7
- package/dist/features/onboarding-flow/providers/StateProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +74 -69
- package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/debug.js +21 -18
- package/dist/features/onboarding-flow/providers/debug.js.map +1 -1
- package/dist/features/onboarding-flow/providers/index.js +16 -5
- package/dist/features/onboarding-flow/providers/index.js.map +1 -1
- package/dist/features/onboarding-flow/providers/onboardingStateMachine.js +20 -15
- package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -1
- package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js +11 -8
- package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js +38 -34
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +51 -47
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +12 -8
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js +28 -25
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js +13 -10
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +10 -7
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/index.js +23 -7
- package/dist/features/onboarding-flow/screens/index.js.map +1 -1
- package/dist/features/onboarding-flow/types.js +6 -3
- package/dist/features/onboarding-flow/types.js.map +1 -1
- package/dist/features/onboarding-flow/utils/depositStorage.js +8 -3
- package/dist/features/onboarding-flow/utils/depositStorage.js.map +1 -1
- package/dist/features/onboarding-flow/utils/imageUtils.js +9 -3
- package/dist/features/onboarding-flow/utils/imageUtils.js.map +1 -1
- package/dist/features/onboarding-flow/utils/nordUser.js +38 -2
- package/dist/features/onboarding-flow/utils/nordUser.js.map +1 -1
- package/dist/features/onboarding-flow/utils/nordUtils.js +12 -5
- package/dist/features/onboarding-flow/utils/nordUtils.js.map +1 -1
- package/dist/features/onboarding-flow/utils/session.js +17 -14
- package/dist/features/onboarding-flow/utils/session.js.map +1 -1
- package/dist/features/onboarding-flow/utils/transaction.js +4 -1
- package/dist/features/onboarding-flow/utils/transaction.js.map +1 -1
- package/dist/features/onboarding-flow/utils/utils.js +16 -8
- package/dist/features/onboarding-flow/utils/utils.js.map +1 -1
- package/dist/features/onboarding-flow/utils/withImageFallback.js +15 -9
- package/dist/features/onboarding-flow/utils/withImageFallback.js.map +1 -1
- package/dist/hooks/index.js +18 -2
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useN1Wallet.js +10 -6
- package/dist/hooks/useN1Wallet.js.map +1 -1
- package/dist/hooks/useNordUserInitialization.js +34 -31
- package/dist/hooks/useNordUserInitialization.js.map +1 -1
- package/dist/index.js +21 -7
- package/dist/index.js.map +1 -1
- package/dist/polyfills/windowEthereumGuard.js +2 -1
- package/dist/polyfills/windowEthereumGuard.js.map +1 -1
- package/dist/providers/LazyWalletProvider.js +74 -38
- package/dist/providers/LazyWalletProvider.js.map +1 -1
- package/dist/providers/N1WalletProvider.js +109 -70
- package/dist/providers/N1WalletProvider.js.map +1 -1
- package/dist/providers/ShadowRootWrapper.js +10 -4
- package/dist/providers/ShadowRootWrapper.js.map +1 -1
- package/dist/providers/WalletErrorBoundary.js +11 -6
- package/dist/providers/WalletErrorBoundary.js.map +1 -1
- package/dist/styles/embedded-main-css.js +3 -1
- package/dist/styles/embedded-main-css.js.map +1 -1
- package/dist/types/wallet.js +7 -4
- package/dist/types/wallet.js.map +1 -1
- package/dist/utils/ed25519.js +20 -14
- package/dist/utils/ed25519.js.map +1 -1
- package/dist/utils/getPseudoName.js +10 -7
- package/dist/utils/getPseudoName.js.map +1 -1
- package/dist/utils/logger.js +5 -3
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/shortenString.js +6 -2
- package/dist/utils/shortenString.js.map +1 -1
- package/dist/utils/words.js +4 -1
- package/dist/utils/words.js.map +1 -1
- package/package.json +1 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __assign = (this && this.__assign) || function () {
|
|
2
3
|
__assign = Object.assign || function(t) {
|
|
3
4
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -9,10 +10,12 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
10
|
};
|
|
10
11
|
return __assign.apply(this, arguments);
|
|
11
12
|
};
|
|
12
|
-
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.createInitialOnboardingState = exports.onboardingStateReducer = void 0;
|
|
15
|
+
var types_1 = require("../types");
|
|
13
16
|
var initialMachineState = {
|
|
14
|
-
state: OnboardingStep.CONNECTING_WALLET,
|
|
15
|
-
context: initialOnboardingContext,
|
|
17
|
+
state: types_1.OnboardingStep.CONNECTING_WALLET,
|
|
18
|
+
context: types_1.initialOnboardingContext,
|
|
16
19
|
};
|
|
17
20
|
var resetSelectionContext = function (context, resetSelection) {
|
|
18
21
|
if (!resetSelection) {
|
|
@@ -20,7 +23,7 @@ var resetSelectionContext = function (context, resetSelection) {
|
|
|
20
23
|
}
|
|
21
24
|
return __assign(__assign({}, context), { selectedChain: null, selectedChainId: null, selectedChainNetwork: null, amount: '', depositError: undefined, lastDeposit: null });
|
|
22
25
|
};
|
|
23
|
-
|
|
26
|
+
var onboardingStateReducer = function (machineState, action) {
|
|
24
27
|
var _a, _b, _c, _d, _e;
|
|
25
28
|
if (machineState === void 0) { machineState = initialMachineState; }
|
|
26
29
|
switch (action.type) {
|
|
@@ -28,48 +31,48 @@ export var onboardingStateReducer = function (machineState, action) {
|
|
|
28
31
|
return __assign(__assign({}, machineState), { context: __assign(__assign({}, machineState.context), action.updates) });
|
|
29
32
|
case 'GO_TO_CHAIN_SELECTION':
|
|
30
33
|
return {
|
|
31
|
-
state: OnboardingStep.CHAIN_SELECTION,
|
|
34
|
+
state: types_1.OnboardingStep.CHAIN_SELECTION,
|
|
32
35
|
context: resetSelectionContext(machineState.context, action.resetSelection),
|
|
33
36
|
};
|
|
34
37
|
case 'SELECT_CHAIN':
|
|
35
38
|
return {
|
|
36
|
-
state: OnboardingStep.AMOUNT_INPUT,
|
|
39
|
+
state: types_1.OnboardingStep.AMOUNT_INPUT,
|
|
37
40
|
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 }),
|
|
38
41
|
};
|
|
39
42
|
case 'START_DEPOSIT':
|
|
40
43
|
return {
|
|
41
|
-
state: OnboardingStep.DEPOSIT_PROGRESS,
|
|
44
|
+
state: types_1.OnboardingStep.DEPOSIT_PROGRESS,
|
|
42
45
|
context: __assign(__assign({}, machineState.context), { depositError: undefined, error: null }),
|
|
43
46
|
};
|
|
44
47
|
case 'DEPOSIT_SUCCESS':
|
|
45
48
|
return {
|
|
46
|
-
state: OnboardingStep.DEPOSIT_SUCCESS,
|
|
49
|
+
state: types_1.OnboardingStep.DEPOSIT_SUCCESS,
|
|
47
50
|
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 }),
|
|
48
51
|
};
|
|
49
52
|
case 'DEPOSIT_FAILED':
|
|
50
53
|
return {
|
|
51
|
-
state: OnboardingStep.AMOUNT_INPUT,
|
|
54
|
+
state: types_1.OnboardingStep.AMOUNT_INPUT,
|
|
52
55
|
context: __assign(__assign({}, machineState.context), { depositError: action.message }),
|
|
53
56
|
};
|
|
54
57
|
case 'GO_TO_AUTH':
|
|
55
58
|
return {
|
|
56
|
-
state: OnboardingStep.AUTH_LOADING,
|
|
59
|
+
state: types_1.OnboardingStep.AUTH_LOADING,
|
|
57
60
|
context: __assign(__assign({}, machineState.context), { hasNordAccount: (_b = action.hasNordAccount) !== null && _b !== void 0 ? _b : machineState.context.hasNordAccount }),
|
|
58
61
|
};
|
|
59
62
|
case 'COMPLETE_FLOW':
|
|
60
63
|
return {
|
|
61
|
-
state: OnboardingStep.FINAL_SUCCESS,
|
|
64
|
+
state: types_1.OnboardingStep.FINAL_SUCCESS,
|
|
62
65
|
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 }),
|
|
63
66
|
};
|
|
64
67
|
case 'SET_ERROR':
|
|
65
68
|
return {
|
|
66
|
-
state: OnboardingStep.ERROR,
|
|
69
|
+
state: types_1.OnboardingStep.ERROR,
|
|
67
70
|
context: __assign(__assign({}, machineState.context), { error: action.error }),
|
|
68
71
|
};
|
|
69
72
|
case 'RESET':
|
|
70
73
|
return {
|
|
71
|
-
state: OnboardingStep.CONNECTING_WALLET,
|
|
72
|
-
context: (_e = action.context) !== null && _e !== void 0 ? _e : initialOnboardingContext,
|
|
74
|
+
state: types_1.OnboardingStep.CONNECTING_WALLET,
|
|
75
|
+
context: (_e = action.context) !== null && _e !== void 0 ? _e : types_1.initialOnboardingContext,
|
|
73
76
|
};
|
|
74
77
|
case 'APPLY_SNAPSHOT':
|
|
75
78
|
return action.snapshot;
|
|
@@ -77,7 +80,9 @@ export var onboardingStateReducer = function (machineState, action) {
|
|
|
77
80
|
return machineState;
|
|
78
81
|
}
|
|
79
82
|
};
|
|
80
|
-
|
|
83
|
+
exports.onboardingStateReducer = onboardingStateReducer;
|
|
84
|
+
var createInitialOnboardingState = function () {
|
|
81
85
|
return initialMachineState;
|
|
82
86
|
};
|
|
87
|
+
exports.createInitialOnboardingState = createInitialOnboardingState;
|
|
83
88
|
//# 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":";;;;;;;;;;;;;;AAAA,kCAA4G;AAqC5G,IAAM,mBAAmB,GAA4B;IACnD,KAAK,EAAE,sBAAc,CAAC,iBAAiB;IACvC,OAAO,EAAE,gCAAwB;CAClC,CAAC;AAEF,IAAM,qBAAqB,GAAG,UAC5B,OAA0B,EAC1B,cAAuB;IAEvB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,6BACK,OAAO,KACV,YAAY,EAAE,SAAS,IACvB;IACJ,CAAC;IAED,6BACK,OAAO,KACV,aAAa,EAAE,IAAI,EACnB,eAAe,EAAE,IAAI,EACrB,oBAAoB,EAAE,IAAI,EAC1B,MAAM,EAAE,EAAE,EACV,YAAY,EAAE,SAAS,EACvB,WAAW,EAAE,IAAI,IACjB;AACJ,CAAC,CAAC;AAEK,IAAM,sBAAsB,GAAG,UACpC,YAA2D,EAC3D,MAA6B;;IAD7B,6BAAA,EAAA,kCAA2D;IAG3D,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,aAAa;YAChB,6BACK,YAAY,KACf,OAAO,wBAAO,YAAY,CAAC,OAAO,GAAK,MAAM,CAAC,OAAO,KACrD;QACJ,KAAK,uBAAuB;YAC1B,OAAO;gBACL,KAAK,EAAE,sBAAc,CAAC,eAAe;gBACrC,OAAO,EAAE,qBAAqB,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC;aAC5E,CAAC;QACJ,KAAK,cAAc;YACjB,OAAO;gBACL,KAAK,EAAE,sBAAc,CAAC,YAAY;gBAClC,OAAO,wBACF,YAAY,CAAC,OAAO,KACvB,aAAa,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,EACpC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,EACpC,oBAAoB,EAAE,MAAA,MAAM,CAAC,SAAS,CAAC,OAAO,mCAAI,IAAI,EACtD,YAAY,EAAE,SAAS,EACvB,WAAW,EAAE,IAAI,GAClB;aACF,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO;gBACL,KAAK,EAAE,sBAAc,CAAC,gBAAgB;gBACtC,OAAO,wBACF,YAAY,CAAC,OAAO,KACvB,YAAY,EAAE,SAAS,EACvB,KAAK,EAAE,IAAI,GACZ;aACF,CAAC;QACJ,KAAK,iBAAiB;YACpB,OAAO;gBACL,KAAK,EAAE,sBAAc,CAAC,eAAe;gBACrC,OAAO,wBACF,YAAY,CAAC,OAAO,KACvB,cAAc,EAAE,IAAI,EACpB,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,EAC3C,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EACpC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAC9C,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAC9C,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EACxD,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAClC,YAAY,EAAE,SAAS,EACvB,KAAK,EAAE,IAAI,GACZ;aACF,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO;gBACL,KAAK,EAAE,sBAAc,CAAC,YAAY;gBAClC,OAAO,wBACF,YAAY,CAAC,OAAO,KACvB,YAAY,EAAE,MAAM,CAAC,OAAO,GAC7B;aACF,CAAC;QACJ,KAAK,YAAY;YACf,OAAO;gBACL,KAAK,EAAE,sBAAc,CAAC,YAAY;gBAClC,OAAO,wBACF,YAAY,CAAC,OAAO,KACvB,cAAc,EACZ,MAAA,MAAM,CAAC,cAAc,mCAAI,YAAY,CAAC,OAAO,CAAC,cAAc,GAC/D;aACF,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO;gBACL,KAAK,EAAE,sBAAc,CAAC,aAAa;gBACnC,OAAO,wBACF,YAAY,CAAC,OAAO,KACvB,cAAc,EAAE,MAAA,MAAM,CAAC,cAAc,mCAAI,IAAI,EAC7C,gBAAgB,EACd,MAAA,MAAM,CAAC,gBAAgB,mCAAI,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAClE,iBAAiB,EAAE,KAAK,GACzB;aACF,CAAC;QACJ,KAAK,WAAW;YACd,OAAO;gBACL,KAAK,EAAE,sBAAc,CAAC,KAAK;gBAC3B,OAAO,wBACF,YAAY,CAAC,OAAO,KACvB,KAAK,EAAE,MAAM,CAAC,KAAK,GACpB;aACF,CAAC;QACJ,KAAK,OAAO;YACV,OAAO;gBACL,KAAK,EAAE,sBAAc,CAAC,iBAAiB;gBACvC,OAAO,EAAE,MAAA,MAAM,CAAC,OAAO,mCAAI,gCAAwB;aACpD,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB;YACE,OAAO,YAAY,CAAC;IACxB,CAAC;AACH,CAAC,CAAC;AAlGW,QAAA,sBAAsB,0BAkGjC;AAEK,IAAM,4BAA4B,GAAG;IAC1C,OAAA,mBAAmB;AAAnB,CAAmB,CAAC;AADT,QAAA,4BAA4B,gCACnB","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,15 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConnectWalletScreen = ConnectWalletScreen;
|
|
4
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
var react_1 = require("react");
|
|
6
|
+
var providers_1 = require("../providers");
|
|
7
|
+
var WaitingMessage_1 = require("../components/WaitingMessage");
|
|
8
|
+
function ConnectWalletScreen() {
|
|
9
|
+
var _a = (0, providers_1.useWalletConnection)(), isConnecting = _a.isConnecting, connectWallet = _a.connectWallet;
|
|
10
|
+
(0, react_1.useEffect)(function () {
|
|
8
11
|
if (!isConnecting) {
|
|
9
12
|
connectWallet();
|
|
10
13
|
}
|
|
11
14
|
}, [isConnecting, connectWallet]);
|
|
12
|
-
return (
|
|
15
|
+
return ((0, jsx_runtime_1.jsx)(WaitingMessage_1.WaitingMessage, { loaderSize: 52, message: {
|
|
13
16
|
visible: true,
|
|
14
17
|
title: 'Connecting Wallet',
|
|
15
18
|
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":";;AAIA,kDAoBC;;AAxBD,+BAAkC;AAClC,0CAAmD;AACnD,+DAA8D;AAE9D,SAAgB,mBAAmB;IAC3B,IAAA,KAAkC,IAAA,+BAAmB,GAAE,EAArD,YAAY,kBAAA,EAAE,aAAa,mBAA0B,CAAC;IAE9D,IAAA,iBAAS,EAAC;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,uBAAC,+BAAc,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,25 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CHAINS_WITH_NETWORK_INFO = void 0;
|
|
4
|
+
exports.ChainSelectionScreen = ChainSelectionScreen;
|
|
5
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
var react_1 = require("react");
|
|
7
|
+
var logger_1 = require("../../../utils/logger");
|
|
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");
|
|
8
12
|
var sharedLogoWrapperStyle = { width: 16, height: 16 };
|
|
9
|
-
|
|
13
|
+
exports.CHAINS_WITH_NETWORK_INFO = [
|
|
10
14
|
{
|
|
11
15
|
id: "solana",
|
|
12
16
|
name: "Solana",
|
|
13
17
|
subtitle: "~1 minute deposit time",
|
|
14
|
-
logo: (
|
|
15
|
-
network: SolanaNetwork.MAINNET,
|
|
18
|
+
logo: ((0, jsx_runtime_1.jsx)("div", { className: "flex items-center justify-center", style: sharedLogoWrapperStyle, children: (0, jsx_runtime_1.jsx)(logos_1.SolanaLogo, { width: 16, height: 16 }) })),
|
|
19
|
+
network: solana_1.SolanaNetwork.MAINNET,
|
|
16
20
|
soon: false,
|
|
17
21
|
},
|
|
18
22
|
{
|
|
19
23
|
id: "hyperliquid",
|
|
20
24
|
name: "Hyperliquid",
|
|
21
25
|
subtitle: undefined,
|
|
22
|
-
logo: (
|
|
26
|
+
logo: ((0, jsx_runtime_1.jsx)("div", { className: "flex items-center justify-center", style: sharedLogoWrapperStyle, children: (0, jsx_runtime_1.jsx)(logos_1.HyperliquidLogo, { width: 16, height: 16 }) })),
|
|
23
27
|
network: "",
|
|
24
28
|
soon: true,
|
|
25
29
|
},
|
|
@@ -27,7 +31,7 @@ export var CHAINS_WITH_NETWORK_INFO = [
|
|
|
27
31
|
id: "arbitrum",
|
|
28
32
|
name: "Arbitrum",
|
|
29
33
|
subtitle: undefined,
|
|
30
|
-
logo: (
|
|
34
|
+
logo: ((0, jsx_runtime_1.jsx)("div", { className: "flex items-center justify-center", style: sharedLogoWrapperStyle, children: (0, jsx_runtime_1.jsx)(logos_1.ArbitrumLogo, { width: 16, height: 16 }) })),
|
|
31
35
|
network: "",
|
|
32
36
|
soon: true,
|
|
33
37
|
},
|
|
@@ -35,25 +39,25 @@ export var CHAINS_WITH_NETWORK_INFO = [
|
|
|
35
39
|
id: "ethereum",
|
|
36
40
|
name: "Ethereum",
|
|
37
41
|
subtitle: undefined,
|
|
38
|
-
logo: (
|
|
42
|
+
logo: ((0, jsx_runtime_1.jsx)("div", { className: "flex items-center justify-center", style: sharedLogoWrapperStyle, children: (0, jsx_runtime_1.jsx)(logos_1.EthereumLogo, { width: 16, height: 16 }) })),
|
|
39
43
|
network: "",
|
|
40
44
|
soon: true,
|
|
41
45
|
},
|
|
42
46
|
];
|
|
43
|
-
|
|
44
|
-
var disconnectWallet = useWalletConnection().disconnectWallet;
|
|
45
|
-
var _a = useOnboardingState(), actions = _a.actions, context = _a.context;
|
|
46
|
-
var initialSelectedChainId = useMemo(function () {
|
|
47
|
+
function ChainSelectionScreen() {
|
|
48
|
+
var disconnectWallet = (0, providers_1.useWalletConnection)().disconnectWallet;
|
|
49
|
+
var _a = (0, providers_1.useOnboardingState)(), actions = _a.actions, context = _a.context;
|
|
50
|
+
var initialSelectedChainId = (0, react_1.useMemo)(function () {
|
|
47
51
|
var _a;
|
|
48
52
|
if (context.selectedChainId) {
|
|
49
|
-
var chainFromId = CHAINS_WITH_NETWORK_INFO.find(function (chain) { return chain.id === context.selectedChainId; });
|
|
53
|
+
var chainFromId = exports.CHAINS_WITH_NETWORK_INFO.find(function (chain) { return chain.id === context.selectedChainId; });
|
|
50
54
|
if (chainFromId) {
|
|
51
55
|
return chainFromId.id;
|
|
52
56
|
}
|
|
53
57
|
}
|
|
54
58
|
if (context.selectedChain) {
|
|
55
59
|
var normalizedContextValue_1 = context.selectedChain.toLowerCase();
|
|
56
|
-
var chainFromContext = CHAINS_WITH_NETWORK_INFO.find(function (chain) {
|
|
60
|
+
var chainFromContext = exports.CHAINS_WITH_NETWORK_INFO.find(function (chain) {
|
|
57
61
|
return chain.name.toLowerCase() === normalizedContextValue_1 ||
|
|
58
62
|
chain.id.toLowerCase() === normalizedContextValue_1;
|
|
59
63
|
});
|
|
@@ -61,24 +65,24 @@ export function ChainSelectionScreen() {
|
|
|
61
65
|
return chainFromContext.id;
|
|
62
66
|
}
|
|
63
67
|
}
|
|
64
|
-
return ((_a = CHAINS_WITH_NETWORK_INFO.find(function (c) { return !c.soon; })) === null || _a === void 0 ? void 0 : _a.id) || null;
|
|
68
|
+
return ((_a = exports.CHAINS_WITH_NETWORK_INFO.find(function (c) { return !c.soon; })) === null || _a === void 0 ? void 0 : _a.id) || null;
|
|
65
69
|
}, [context.selectedChain, context.selectedChainId]);
|
|
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; });
|
|
70
|
+
var _b = (0, react_1.useState)(initialSelectedChainId), selectedChainId = _b[0], setSelectedChainId = _b[1];
|
|
71
|
+
var handleChainSelect = (0, react_1.useCallback)(function (chainId) {
|
|
72
|
+
logger_1.logger.debug("Chain selected in ChainSelectionScreen:", chainId);
|
|
73
|
+
var chain = exports.CHAINS_WITH_NETWORK_INFO.find(function (c) { return c.id === chainId; });
|
|
70
74
|
if (chain && !chain.soon) {
|
|
71
75
|
setSelectedChainId(chainId);
|
|
72
76
|
}
|
|
73
77
|
else {
|
|
74
|
-
logger.debug("Chain not selectable:", chainId);
|
|
78
|
+
logger_1.logger.debug("Chain not selectable:", chainId);
|
|
75
79
|
}
|
|
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 () {
|
|
80
|
+
}, [logger_1.logger]);
|
|
81
|
+
var selectedChain = (0, react_1.useMemo)(function () { return exports.CHAINS_WITH_NETWORK_INFO.find(function (chain) { return chain.id === selectedChainId; }); }, [selectedChainId]);
|
|
82
|
+
var handleContinue = (0, react_1.useCallback)(function () {
|
|
79
83
|
var _a;
|
|
80
84
|
if (!selectedChain || selectedChain.soon) {
|
|
81
|
-
logger.debug("Continue button clicked without selectable chain");
|
|
85
|
+
logger_1.logger.debug("Continue button clicked without selectable chain");
|
|
82
86
|
return;
|
|
83
87
|
}
|
|
84
88
|
actions.selectChain({
|
|
@@ -86,15 +90,15 @@ export function ChainSelectionScreen() {
|
|
|
86
90
|
name: selectedChain.name,
|
|
87
91
|
network: (_a = selectedChain.network) !== null && _a !== void 0 ? _a : null,
|
|
88
92
|
});
|
|
89
|
-
logger.debug("Transitioned to amount input from chain selection");
|
|
93
|
+
logger_1.logger.debug("Transitioned to amount input from chain selection");
|
|
90
94
|
}, [selectedChain, actions]);
|
|
91
|
-
var handleDisconnect = useCallback(function () {
|
|
92
|
-
logger.debug("Disconnect button clicked");
|
|
95
|
+
var handleDisconnect = (0, react_1.useCallback)(function () {
|
|
96
|
+
logger_1.logger.debug("Disconnect button clicked");
|
|
93
97
|
disconnectWallet();
|
|
94
98
|
}, [disconnectWallet]);
|
|
95
99
|
var isContinueDisabled = !selectedChain || selectedChain.soon;
|
|
96
|
-
return (
|
|
100
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: "overflow-visible relative", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col space-y-3", children: [exports.CHAINS_WITH_NETWORK_INFO.map(function (chain) { return ((0, jsx_runtime_1.jsx)(ChainButton_1.ChainButton, { chain: chain, onClick: function () { return handleChainSelect(chain.id); }, selected: selectedChainId === chain.id && !chain.soon, soon: chain.soon, subtitle: chain.subtitle }, chain.id)); }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col space-y-2", children: [(0, jsx_runtime_1.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
|
|
97
101
|
? "border-n1-ww-border opacity-50 cursor-not-allowed"
|
|
98
|
-
: "border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer"), children:
|
|
102
|
+
: "border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer"), children: (0, jsx_runtime_1.jsx)("span", { className: "font-medium text-sm opacity-90 ".concat(isContinueDisabled ? "text-n1-ww-gray-500" : "text-n1-ww-main"), children: "Continue" }) }), (0, jsx_runtime_1.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: (0, jsx_runtime_1.jsx)("span", { className: "text-white font-medium text-sm opacity-90", children: "Disconnect" }) })] })] }) }));
|
|
99
103
|
}
|
|
100
104
|
//# 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,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __assign = (this && this.__assign) || function () {
|
|
2
3
|
__assign = Object.assign || function(t) {
|
|
3
4
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -54,52 +55,55 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
54
55
|
}
|
|
55
56
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
56
57
|
};
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
58
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
59
|
+
exports.BALANCE_REFRESH_MS = exports.DEFAULT_MIN_DEPOSIT = void 0;
|
|
60
|
+
exports.AmountInputScreen = AmountInputScreen;
|
|
61
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
62
|
+
var web3_js_1 = require("@solana/web3.js");
|
|
63
|
+
var react_1 = require("react");
|
|
64
|
+
var logos_1 = require("../../../components/logos");
|
|
65
|
+
var hooks_1 = require("../../../hooks");
|
|
66
|
+
var logger_1 = require("../../../utils/logger");
|
|
67
|
+
var providers_1 = require("../providers");
|
|
68
|
+
var nordUtils_1 = require("../utils/nordUtils");
|
|
69
|
+
var solana_1 = require("../../../config/solana");
|
|
70
|
+
exports.DEFAULT_MIN_DEPOSIT = 5;
|
|
71
|
+
exports.BALANCE_REFRESH_MS = 20000;
|
|
72
|
+
function AmountInputScreen(_a) {
|
|
69
73
|
var _this = this;
|
|
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({
|
|
74
|
+
var context = (0, providers_1.useOnboardingState)().context;
|
|
75
|
+
var _b = (0, providers_1.useDepositFlow)(), amount = _b.amount, updateAmount = _b.updateAmount, startDeposit = _b.startDeposit;
|
|
76
|
+
var _c = (0, hooks_1.useN1WalletContext)(), nord = _c.nord, address = _c.address;
|
|
77
|
+
var _d = (0, react_1.useState)(null), tokenSymbol = _d[0], setTokenSymbol = _d[1];
|
|
78
|
+
var _e = (0, react_1.useState)(null), tokenDecimals = _e[0], setTokenDecimals = _e[1];
|
|
79
|
+
var _f = (0, react_1.useState)(null), nordTokens = _f[0], setNordTokens = _f[1];
|
|
80
|
+
var _g = (0, react_1.useState)({
|
|
77
81
|
usdc: null,
|
|
78
82
|
sol: null,
|
|
79
83
|
loading: false,
|
|
80
84
|
error: null,
|
|
81
85
|
}), walletBalances = _g[0], setWalletBalances = _g[1];
|
|
82
|
-
var isMountedRef = useRef(true);
|
|
83
|
-
useEffect(function () {
|
|
86
|
+
var isMountedRef = (0, react_1.useRef)(true);
|
|
87
|
+
(0, react_1.useEffect)(function () {
|
|
84
88
|
return function () {
|
|
85
89
|
isMountedRef.current = false;
|
|
86
90
|
};
|
|
87
91
|
}, []);
|
|
88
|
-
useEffect(function () {
|
|
92
|
+
(0, react_1.useEffect)(function () {
|
|
89
93
|
if (!amount) {
|
|
90
94
|
updateAmount("100");
|
|
91
95
|
}
|
|
92
96
|
}, [amount, updateAmount]);
|
|
93
97
|
var selectedChainName = context.selectedChain || "Solana";
|
|
94
|
-
var _h = useState(null), tokenMintAddress = _h[0], setTokenMintAddress = _h[1];
|
|
95
|
-
useEffect(function () {
|
|
98
|
+
var _h = (0, react_1.useState)(null), tokenMintAddress = _h[0], setTokenMintAddress = _h[1];
|
|
99
|
+
(0, react_1.useEffect)(function () {
|
|
96
100
|
var isCancelled = false;
|
|
97
101
|
var loadNordTokens = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
98
102
|
var error_1;
|
|
99
103
|
return __generator(this, function (_a) {
|
|
100
104
|
switch (_a.label) {
|
|
101
105
|
case 0:
|
|
102
|
-
if (!nord || !isNordConfigured(nord)) {
|
|
106
|
+
if (!nord || !(0, nordUtils_1.isNordConfigured)(nord)) {
|
|
103
107
|
if (!isCancelled) {
|
|
104
108
|
setNordTokens(null);
|
|
105
109
|
}
|
|
@@ -130,7 +134,7 @@ export function AmountInputScreen(_a) {
|
|
|
130
134
|
case 3:
|
|
131
135
|
error_1 = _a.sent();
|
|
132
136
|
if (!isCancelled) {
|
|
133
|
-
logger.warn("Unable to fetch Nord info:", error_1);
|
|
137
|
+
logger_1.logger.warn("Unable to fetch Nord info:", error_1);
|
|
134
138
|
setNordTokens(null);
|
|
135
139
|
}
|
|
136
140
|
return [3 /*break*/, 4];
|
|
@@ -143,8 +147,8 @@ export function AmountInputScreen(_a) {
|
|
|
143
147
|
isCancelled = true;
|
|
144
148
|
};
|
|
145
149
|
}, [nord]);
|
|
146
|
-
useEffect(function () {
|
|
147
|
-
if (nord && isNordConfigured(nord)) {
|
|
150
|
+
(0, react_1.useEffect)(function () {
|
|
151
|
+
if (nord && (0, nordUtils_1.isNordConfigured)(nord)) {
|
|
148
152
|
try {
|
|
149
153
|
if (!nordTokens || nordTokens.length === 0) {
|
|
150
154
|
return;
|
|
@@ -167,17 +171,17 @@ export function AmountInputScreen(_a) {
|
|
|
167
171
|
}
|
|
168
172
|
}
|
|
169
173
|
catch (error) {
|
|
170
|
-
logger.warn("Error getting token information from Nord:", error);
|
|
174
|
+
logger_1.logger.warn("Error getting token information from Nord:", error);
|
|
171
175
|
}
|
|
172
176
|
}
|
|
173
177
|
}, [nord, nordTokens]);
|
|
174
|
-
var minDeposit = useMemo(function () {
|
|
178
|
+
var minDeposit = (0, react_1.useMemo)(function () {
|
|
175
179
|
var _a, _b;
|
|
176
180
|
if (!nord ||
|
|
177
|
-
!isNordConfigured(nord) ||
|
|
181
|
+
!(0, nordUtils_1.isNordConfigured)(nord) ||
|
|
178
182
|
!tokenMintAddress ||
|
|
179
183
|
tokenDecimals == null) {
|
|
180
|
-
return DEFAULT_MIN_DEPOSIT;
|
|
184
|
+
return exports.DEFAULT_MIN_DEPOSIT;
|
|
181
185
|
}
|
|
182
186
|
try {
|
|
183
187
|
// @ts-ignore
|
|
@@ -191,11 +195,11 @@ export function AmountInputScreen(_a) {
|
|
|
191
195
|
}
|
|
192
196
|
}
|
|
193
197
|
catch (error) {
|
|
194
|
-
logger.warn("Unable to derive min deposit from Nord config", error);
|
|
198
|
+
logger_1.logger.warn("Unable to derive min deposit from Nord config", error);
|
|
195
199
|
}
|
|
196
|
-
return DEFAULT_MIN_DEPOSIT;
|
|
200
|
+
return exports.DEFAULT_MIN_DEPOSIT;
|
|
197
201
|
}, [nord, tokenMintAddress, tokenDecimals]);
|
|
198
|
-
var fetchBalances = useCallback(function () {
|
|
202
|
+
var fetchBalances = (0, react_1.useCallback)(function () {
|
|
199
203
|
var args_1 = [];
|
|
200
204
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
201
205
|
args_1[_i] = arguments[_i];
|
|
@@ -223,13 +227,13 @@ export function AmountInputScreen(_a) {
|
|
|
223
227
|
_b.label = 1;
|
|
224
228
|
case 1:
|
|
225
229
|
_b.trys.push([1, 3, , 4]);
|
|
226
|
-
rpcEndpoint = getSolanaRpcUrl();
|
|
227
|
-
connection = new Connection(rpcEndpoint, "confirmed");
|
|
228
|
-
ownerKey = new PublicKey(address);
|
|
230
|
+
rpcEndpoint = (0, solana_1.getSolanaRpcUrl)();
|
|
231
|
+
connection = new web3_js_1.Connection(rpcEndpoint, "confirmed");
|
|
232
|
+
ownerKey = new web3_js_1.PublicKey(address);
|
|
229
233
|
return [4 /*yield*/, Promise.all([
|
|
230
234
|
connection.getBalance(ownerKey),
|
|
231
235
|
connection.getParsedTokenAccountsByOwner(ownerKey, {
|
|
232
|
-
mint: new PublicKey(tokenMintAddress),
|
|
236
|
+
mint: new web3_js_1.PublicKey(tokenMintAddress),
|
|
233
237
|
}),
|
|
234
238
|
])];
|
|
235
239
|
case 2:
|
|
@@ -252,14 +256,14 @@ export function AmountInputScreen(_a) {
|
|
|
252
256
|
}
|
|
253
257
|
setWalletBalances({
|
|
254
258
|
usdc: usdcTotal,
|
|
255
|
-
sol: solLamports / LAMPORTS_PER_SOL,
|
|
259
|
+
sol: solLamports / web3_js_1.LAMPORTS_PER_SOL,
|
|
256
260
|
loading: false,
|
|
257
261
|
error: null,
|
|
258
262
|
});
|
|
259
263
|
return [3 /*break*/, 4];
|
|
260
264
|
case 3:
|
|
261
265
|
error_2 = _b.sent();
|
|
262
|
-
logger.warn("Failed to load wallet balances", error_2);
|
|
266
|
+
logger_1.logger.warn("Failed to load wallet balances", error_2);
|
|
263
267
|
if (!isMountedRef.current) {
|
|
264
268
|
return [2 /*return*/];
|
|
265
269
|
}
|
|
@@ -270,14 +274,14 @@ export function AmountInputScreen(_a) {
|
|
|
270
274
|
});
|
|
271
275
|
});
|
|
272
276
|
}, [address, tokenMintAddress]);
|
|
273
|
-
useEffect(function () {
|
|
277
|
+
(0, react_1.useEffect)(function () {
|
|
274
278
|
if (!tokenMintAddress) {
|
|
275
279
|
return;
|
|
276
280
|
}
|
|
277
281
|
fetchBalances();
|
|
278
282
|
var interval = setInterval(function () {
|
|
279
283
|
fetchBalances(false);
|
|
280
|
-
}, BALANCE_REFRESH_MS);
|
|
284
|
+
}, exports.BALANCE_REFRESH_MS);
|
|
281
285
|
return function () { return clearInterval(interval); };
|
|
282
286
|
}, [fetchBalances, tokenMintAddress]);
|
|
283
287
|
var isSolana = selectedChainName.toLowerCase().includes("solana");
|
|
@@ -289,7 +293,7 @@ export function AmountInputScreen(_a) {
|
|
|
289
293
|
? walletBalances.loading
|
|
290
294
|
? "Loading..."
|
|
291
295
|
: "—"
|
|
292
|
-
: formatAmount(walletBalances.usdc, tokenDecimals);
|
|
296
|
+
: (0, nordUtils_1.formatAmount)(walletBalances.usdc, tokenDecimals);
|
|
293
297
|
var formattedSolBalance = walletBalances.sol == null
|
|
294
298
|
? walletBalances.loading
|
|
295
299
|
? "Loading..."
|
|
@@ -302,7 +306,7 @@ export function AmountInputScreen(_a) {
|
|
|
302
306
|
var hasSufficientSol = walletBalances.sol == null
|
|
303
307
|
? false
|
|
304
308
|
: walletBalances.sol >= requiredSolForFees;
|
|
305
|
-
var validationError = useMemo(function () {
|
|
309
|
+
var validationError = (0, react_1.useMemo)(function () {
|
|
306
310
|
if (!address) {
|
|
307
311
|
return "Connect a wallet to continue.";
|
|
308
312
|
}
|
|
@@ -353,8 +357,8 @@ export function AmountInputScreen(_a) {
|
|
|
353
357
|
}
|
|
354
358
|
updateAmount(walletBalances.usdc.toFixed(tokenDecimals));
|
|
355
359
|
};
|
|
356
|
-
return (
|
|
360
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "overflow-hidden relative", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between mb-4", children: [(0, jsx_runtime_1.jsx)("h2", { className: "text-sm text-white font-medium", children: "Deposit From" }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center space-x-2 rounded-md bg-n1-ww-border h-5 justify-center p-1", children: [isSolana ? ((0, jsx_runtime_1.jsx)("div", { className: "rounded-full flex items-center justify-center bg-black h-3 w-3", children: (0, jsx_runtime_1.jsx)(logos_1.SolanaLogo, { width: 6, height: 6 }) })) : ((0, jsx_runtime_1.jsx)("div", { className: "w-4 h-4 rounded-full bg-n1-ww-gray-600" })), (0, jsx_runtime_1.jsx)("span", { className: "text-white text-xs font-medium", children: selectedChainName })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-3 mb-4 text-white text-xs font-light", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { children: "Available Balance:" }), (0, jsx_runtime_1.jsxs)("span", { children: [formattedBalance, " ", tokenSymbolDisplay] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { children: "SOL Balance:" }), (0, jsx_runtime_1.jsxs)("span", { children: [formattedSolBalance, " SOL"] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { children: "Minimum Deposit:" }), (0, jsx_runtime_1.jsxs)("span", { children: [minDepositDisplay, " ", tokenSymbolDisplay] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { children: "Gas Fee:" }), (0, jsx_runtime_1.jsx)("span", { children: gasFeeDisplay })] })] }), (0, jsx_runtime_1.jsx)("div", { className: "h-px bg-n1-ww-border mb-4" }), (0, jsx_runtime_1.jsxs)("div", { className: "mb-4 flex justify-between w-full", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex items-center gap-3", children: (0, jsx_runtime_1.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: [(0, jsx_runtime_1.jsx)("span", { className: "text-white text-sm font-medium", children: "Amount" }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, jsx_runtime_1.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" }), (0, jsx_runtime_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 })] })] }) }), (0, jsx_runtime_1.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 && ((0, jsx_runtime_1.jsx)("p", { className: "mb-2 text-xs text-red-400", children: validationError })), (0, jsx_runtime_1.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
|
|
357
361
|
? "border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer"
|
|
358
|
-
: "border-n1-ww-border opacity-50 cursor-not-allowed", "\n "), children:
|
|
362
|
+
: "border-n1-ww-border opacity-50 cursor-not-allowed", "\n "), children: (0, jsx_runtime_1.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" }) })] }));
|
|
359
363
|
}
|
|
360
364
|
//# sourceMappingURL=03-AmountInputScreen.js.map
|