diff --git a/nym-wallet/package.json b/nym-wallet/package.json
index 5bd320ff80..166e3ca89a 100644
--- a/nym-wallet/package.json
+++ b/nym-wallet/package.json
@@ -8,6 +8,7 @@
"webpack:prod": "yarn webpack --progress --config webpack.prod.js",
"tauri:dev": "yarn tauri dev",
"tauri:build": "yarn tauri build",
+ "tsc": "tsc --noEmit true",
"dev": "yarn run webpack:dev & yarn run tauri:dev",
"build": "run-s webpack:prod tauri:build",
"lint": "eslint src",
diff --git a/nym-wallet/src/pages/settings/system-variables.tsx b/nym-wallet/src/pages/settings/system-variables.tsx
index 1ec2e6454f..6fc43cc702 100644
--- a/nym-wallet/src/pages/settings/system-variables.tsx
+++ b/nym-wallet/src/pages/settings/system-variables.tsx
@@ -3,17 +3,51 @@ import { Box, Button, CircularProgress, Grid, LinearProgress, Stack, TextField,
import { PercentOutlined } from '@mui/icons-material';
import { yupResolver } from '@hookform/resolvers/yup';
import { useForm } from 'react-hook-form';
-import { InfoTooltip } from '../../components/InfoToolTip';
+import { Fee, InfoTooltip } from '../../components';
import { InclusionProbabilityResponse, TMixnodeBondDetails } from '../../types';
import { validationSchema } from './validationSchema';
import { updateMixnode } from '../../requests';
import { ClientContext } from '../../context/main';
-import { Fee } from '../../components';
type TFormData = {
profitMarginPercent: number;
};
+const DataField = ({ title, info, Indicator }: { title: string; info: string; Indicator: React.ReactElement }) => (
+
+
+
+
+ {title}
+
+
+
+
+
+ {Indicator}
+
+
+
+);
+
+const PercentIndicator = ({ value, warning }: { value: number; warning?: boolean }) => (
+
+
+
+ {value}%
+
+
+
+
+
+
+);
+
export const SystemVariables = ({
mixnodeDetails,
saturation,
@@ -127,38 +161,3 @@ export const SystemVariables = ({
>
);
};
-
-const DataField = ({ title, info, Indicator }: { title: string; info: string; Indicator: React.ReactElement }) => (
-
-
-
-
- {title}
-
-
-
-
-
- {Indicator}
-
-
-
-);
-
-const PercentIndicator = ({ value, warning }: { value: number; warning?: boolean }) => (
-
-
-
- {value}%
-
-
-
-
-
-
-);
diff --git a/nym-wallet/src/pages/settings/tabs.tsx b/nym-wallet/src/pages/settings/tabs.tsx
index ce9dfd46fa..4a845add9b 100644
--- a/nym-wallet/src/pages/settings/tabs.tsx
+++ b/nym-wallet/src/pages/settings/tabs.tsx
@@ -1,6 +1,5 @@
import React from 'react';
-import { Box } from '@mui/system';
-import { Tab, Tabs as MuiTabs } from '@mui/material';
+import { Tab, Tabs as MuiTabs, Box } from '@mui/material';
export const Tabs: React.FC<{
tabs: string[];
diff --git a/nym-wallet/src/pages/settings/useSettingsState.ts b/nym-wallet/src/pages/settings/useSettingsState.ts
index 8c23f01dcc..1b2492e8dd 100644
--- a/nym-wallet/src/pages/settings/useSettingsState.ts
+++ b/nym-wallet/src/pages/settings/useSettingsState.ts
@@ -21,30 +21,32 @@ export const useSettingsState = (shouldUpdate: boolean) => {
const { mixnodeDetails } = useContext(ClientContext);
const getStatus = async (mixnodeKey: string) => {
- const status = await getMixnodeStatus(mixnodeKey);
- setStatus(status.status);
+ const newStatus = await getMixnodeStatus(mixnodeKey);
+ setStatus(newStatus.status);
};
const getStakeSaturation = async (mixnodeKey: string) => {
- const saturation = await getMixnodeStakeSaturation(mixnodeKey);
+ const newSaturation = await getMixnodeStakeSaturation(mixnodeKey);
- if (saturation) {
- setSaturation(Math.round(saturation.saturation * 100));
+ if (newSaturation) {
+ setSaturation(Math.round(newSaturation.saturation * 100));
}
};
const getRewardEstimation = async (mixnodeKey: string) => {
- const rewardEstimation = await getMixnodeRewardEstimation(mixnodeKey);
- if (rewardEstimation) {
- const toMajor = await minorToMajor(rewardEstimation.estimated_total_node_reward.toString());
- setRewardEstimation(parseInt(toMajor.amount));
+ const newRewardEstimation = await getMixnodeRewardEstimation(mixnodeKey);
+ if (newRewardEstimation) {
+ const toMajor = await minorToMajor(newRewardEstimation.estimated_total_node_reward.toString());
+ setRewardEstimation(parseInt(toMajor.amount, Number(10)));
}
};
const getMixnodeInclusionProbability = async (mixnodeKey: string) => {
const probability = await getInclusionProbability(mixnodeKey);
if (probability) {
+ // eslint-disable-next-line @typescript-eslint/naming-convention
const in_active = Math.round(probability.in_active * 100);
+ // eslint-disable-next-line @typescript-eslint/naming-convention
const in_reserve = Math.round(probability.in_reserve * 100);
setInclusionProbability({ in_active, in_reserve });
}
diff --git a/nym-wallet/src/pages/unbond/index.tsx b/nym-wallet/src/pages/unbond/index.tsx
index 96bee0d5a5..ac727d1531 100644
--- a/nym-wallet/src/pages/unbond/index.tsx
+++ b/nym-wallet/src/pages/unbond/index.tsx
@@ -54,7 +54,7 @@ export const Unbond = () => {
>
) : (
- You don't currently have a bonded node
+ You do not currently have a bonded node
)}
{isLoading && (
diff --git a/nym-wallet/src/pages/undelegate/UndelegateForm.tsx b/nym-wallet/src/pages/undelegate/UndelegateForm.tsx
index 80f3716bcc..9fe2f6eeb1 100644
--- a/nym-wallet/src/pages/undelegate/UndelegateForm.tsx
+++ b/nym-wallet/src/pages/undelegate/UndelegateForm.tsx
@@ -1,6 +1,6 @@
import React, { useContext, useEffect } from 'react';
-import { useForm, Controller } from 'react-hook-form';
-import { Box, Autocomplete, Button, CircularProgress, FormControl, Grid, TextField, Typography } from '@mui/material';
+import { Controller, useForm } from 'react-hook-form';
+import { Autocomplete, Box, Button, CircularProgress, FormControl, Grid, TextField } from '@mui/material';
import { yupResolver } from '@hookform/resolvers/yup';
import { validationSchema } from './validationSchema';
import { EnumNodeType, TDelegation, TFee } from '../../types';
@@ -19,7 +19,6 @@ const defaultValues = {
};
export const UndelegateForm = ({
- fees,
delegations,
onError,
onSuccess,
diff --git a/nym-wallet/src/pages/undelegate/index.tsx b/nym-wallet/src/pages/undelegate/index.tsx
index 52bdbee14e..7dd1a73853 100644
--- a/nym-wallet/src/pages/undelegate/index.tsx
+++ b/nym-wallet/src/pages/undelegate/index.tsx
@@ -1,8 +1,7 @@
import React, { useContext, useEffect, useState } from 'react';
import { Alert, AlertTitle, Box, Button, CircularProgress } from '@mui/material';
-import { NymCard } from '../../components';
+import { EnumRequestStatus, NymCard, RequestStatus } from '../../components';
import { UndelegateForm } from './UndelegateForm';
-import { EnumRequestStatus, RequestStatus } from '../../components/RequestStatus';
import { getGasFee, getReverseMixDelegations } from '../../requests';
import { TFee, TPagedDelegations } from '../../types';
import { ClientContext } from '../../context/main';
@@ -17,10 +16,6 @@ export const Undelegate = () => {
const { clientDetails } = useContext(ClientContext);
- useEffect(() => {
- initialize();
- }, [clientDetails]);
-
const initialize = async () => {
setStatus(EnumRequestStatus.initial);
setIsLoading(true);
@@ -44,6 +39,10 @@ export const Undelegate = () => {
setIsLoading(false);
};
+ useEffect(() => {
+ initialize();
+ }, [clientDetails]);
+
return (
@@ -63,12 +62,12 @@ export const Undelegate = () => {
{
- setMessage(message);
+ onError={(m) => {
+ setMessage(m);
setStatus(EnumRequestStatus.error);
}}
- onSuccess={(message) => {
- setMessage(message);
+ onSuccess={(m) => {
+ setMessage(m);
setStatus(EnumRequestStatus.success);
}}
/>
diff --git a/nym-wallet/src/pages/welcome/_legacy_create-account.tsx b/nym-wallet/src/pages/welcome/_legacy_create-account.tsx
index 551a81beba..7c1997a584 100644
--- a/nym-wallet/src/pages/welcome/_legacy_create-account.tsx
+++ b/nym-wallet/src/pages/welcome/_legacy_create-account.tsx
@@ -4,9 +4,7 @@ import { createAccount } from '../../requests';
import { TCreateAccount } from '../../types';
import { CopyToClipboard } from '../../components';
-export const CreateAccountContent: React.FC<{ page: 'legacy create account'; showSignIn: () => void }> = ({
- showSignIn,
-}) => {
+export const CreateAccountContent: React.FC<{ showSignIn: () => void }> = ({ showSignIn }) => {
const [accountDetails, setAccountDetails] = useState();
const [error, setError] = useState();
@@ -33,7 +31,7 @@ export const CreateAccountContent: React.FC<{ page: 'legacy create account'; sho
Account setup complete!
- Please store your mnemonic in a safe place. You'll need it to access your account!
+ Please store your mnemonic in a safe place. You will need it to access your account!
diff --git a/nym-wallet/src/pages/welcome/_legacy_sign-in.tsx b/nym-wallet/src/pages/welcome/_legacy_sign-in.tsx
index 31e738be5e..9d245682de 100644
--- a/nym-wallet/src/pages/welcome/_legacy_sign-in.tsx
+++ b/nym-wallet/src/pages/welcome/_legacy_sign-in.tsx
@@ -1,12 +1,10 @@
import React, { useContext, useState } from 'react';
-import { Button, CircularProgress, Grid, Stack, TextField, Typography, Alert } from '@mui/material';
-import { styled } from '@mui/material/styles';
-import { signInWithMnemonic } from '../../requests';
+import { Alert, Button, CircularProgress, Grid, Stack, Typography } from '@mui/material';
import { ClientContext } from '../../context/main';
import { NymLogo } from '../../components';
-export const SignInContent: React.FC<{ showCreateAccount: () => void }> = ({ showCreateAccount }) => {
- const [mnemonic, setMnemonic] = useState('');
+export const SignInContent: React.FC = () => {
+ const [mnemonic] = useState('');
const [inputError, setInputError] = useState();
const [isLoading, setIsLoading] = useState(false);
@@ -19,12 +17,11 @@ export const SignInContent: React.FC<{ showCreateAccount: () => void }> = ({ sho
setInputError(undefined);
try {
- await signInWithMnemonic(mnemonic || '');
+ await logIn(mnemonic || '');
setIsLoading(false);
- logIn();
- } catch (e: any) {
+ } catch (error: any) {
setIsLoading(false);
- setInputError(e);
+ setInputError(error);
}
};
@@ -67,23 +64,3 @@ export const SignInContent: React.FC<{ showCreateAccount: () => void }> = ({ sho
);
};
-
-const StyledInput = styled((props) => )(({ theme }) => ({
- '& input': {
- color: theme.palette.nym.text.light,
- },
- '& label': {
- color: theme.palette.nym.text.light,
- },
- '& label.Mui-focused': {
- color: theme.palette.primary.main,
- },
- '& .MuiOutlinedInput-root': {
- '& fieldset': {
- borderColor: theme.palette.common.white,
- },
- '&:hover fieldset': {
- borderColor: theme.palette.primary.main,
- },
- },
-}));
diff --git a/nym-wallet/src/pages/welcome/components/password-strength.tsx b/nym-wallet/src/pages/welcome/components/password-strength.tsx
index c91372f98e..9eff1aabf4 100644
--- a/nym-wallet/src/pages/welcome/components/password-strength.tsx
+++ b/nym-wallet/src/pages/welcome/components/password-strength.tsx
@@ -1,11 +1,10 @@
import React, { useEffect, useState } from 'react';
import { LockOutlined } from '@mui/icons-material';
-import { LinearProgress, Stack, Typography } from '@mui/material';
-import { Box } from '@mui/system';
+import { LinearProgress, Stack, Typography, Box } from '@mui/material';
type TStrength = 'weak' | 'medium' | 'strong' | 'init';
-const strong = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})/;
+const strong = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*])(?=.{8,})/;
const medium = /^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})/;
const colorMap = {
@@ -46,15 +45,18 @@ export const PasswordStrength = ({ password }: { password: string }) => {
useEffect(() => {
if (password.length === 0) {
- return setStrength('init');
+ setStrength('init');
+ return;
}
if (password.match(strong)) {
- return setStrength('strong');
+ setStrength('strong');
+ return;
}
if (password.match(medium)) {
- return setStrength('medium');
+ setStrength('medium');
+ return;
}
setStrength('weak');
}, [password]);
diff --git a/nym-wallet/src/pages/welcome/components/word-tiles.tsx b/nym-wallet/src/pages/welcome/components/word-tiles.tsx
index fcaf70ff47..4f0f70d807 100644
--- a/nym-wallet/src/pages/welcome/components/word-tiles.tsx
+++ b/nym-wallet/src/pages/welcome/components/word-tiles.tsx
@@ -2,35 +2,6 @@ import React from 'react';
import { Box, Card, CardHeader, Grid, Typography, Stack, Fade } from '@mui/material';
import { THiddenMnemonicWord, THiddenMnemonicWords, TMnemonicWords } from '../types';
-export const WordTiles = ({
- mnemonicWords,
- showIndex,
- onClick,
-}: {
- mnemonicWords?: TMnemonicWords;
- showIndex?: boolean;
- onClick?: ({ name, index }: { name: string; index: number }) => void;
-}) => {
- if (mnemonicWords) {
- return (
-
- {mnemonicWords.map(({ name, index, disabled }) => (
- onClick?.({ name, index })}>
-
-
- ))}
-
- );
- }
-
- return null;
-};
-
export const WordTile = ({
mnemonicWord,
index,
@@ -65,18 +36,32 @@ export const WordTile = ({
);
-export const HiddenWords = ({ mnemonicWords }: { mnemonicWords?: THiddenMnemonicWords }) => {
+export const WordTiles = ({
+ mnemonicWords,
+ showIndex,
+ onClick,
+}: {
+ mnemonicWords?: TMnemonicWords;
+ showIndex?: boolean;
+ onClick?: ({ name, index }: { name: string; index: number }) => void;
+}) => {
if (mnemonicWords) {
return (
- {mnemonicWords.map((mnemonicWord) => (
-
-
+ {mnemonicWords.map(({ name, index, disabled }) => (
+ onClick?.({ name, index })}>
+
))}
);
}
+
return null;
};
@@ -92,3 +77,18 @@ const HiddenWord = ({ mnemonicWord }: { mnemonicWord: THiddenMnemonicWord }) =>
{mnemonicWord.index}.
);
+
+export const HiddenWords = ({ mnemonicWords }: { mnemonicWords?: THiddenMnemonicWords }) => {
+ if (mnemonicWords) {
+ return (
+
+ {mnemonicWords.map((mnemonicWord) => (
+
+
+
+ ))}
+
+ );
+ }
+ return null;
+};
diff --git a/nym-wallet/src/pages/welcome/index.tsx b/nym-wallet/src/pages/welcome/index.tsx
index d2d0e0b76b..d4df7fa877 100644
--- a/nym-wallet/src/pages/welcome/index.tsx
+++ b/nym-wallet/src/pages/welcome/index.tsx
@@ -1,24 +1,23 @@
import React, { useContext, useState } from 'react';
-import { Box } from '@mui/system';
-import { CircularProgress, Stack } from '@mui/material';
-import { WelcomeContent, VerifyMnemonic, MnemonicWords, CreatePassword, ExistingAccount } from './pages';
+import { CircularProgress, Stack, Box } from '@mui/material';
+import { ExistingAccount, WelcomeContent } from './pages';
import { NymLogo } from '../../components';
-import { TMnemonicWords, TPages } from './types';
+import { TPages } from './types';
import { RenderPage } from './components';
import { CreateAccountContent } from './_legacy_create-account';
import { ClientContext } from '../../context/main';
-const testMnemonic =
- 'futuristic big receptive caption saw hug odd spoon internal dime bike rake helpless left distribution gusty eyes beg enormous word influence trashy pets curl';
-
-const mnemonicToArray = (mnemonic: string): TMnemonicWords =>
- mnemonic
- .split(' ')
- .reduce((a, c: string, index) => [...a, { name: c, index: index + 1, disabled: false }], [] as TMnemonicWords);
+// const testMnemonic =
+// 'futuristic big receptive caption saw hug odd spoon internal dime bike rake helpless left distribution gusty eyes beg enormous word influence trashy pets curl';
+//
+// const mnemonicToArray = (mnemonic: string): TMnemonicWords =>
+// mnemonic
+// .split(' ')
+// .reduce((a, c: string, index) => [...a, { name: c, index: index + 1, disabled: false }], [] as TMnemonicWords);
export const Welcome = () => {
const [page, setPage] = useState('welcome');
- const [mnemonicWords, setMnemonicWords] = useState();
+ // const [mnemonicWords, setMnemonicWords] = useState();
const { isLoading } = useContext(ClientContext);
@@ -56,7 +55,6 @@ export const Welcome = () => {
setPage('existing account')}
onCreateAccountComplete={() => setPage('legacy create account')}
- page="welcome"
/>
setPage('existing account')} />
@@ -72,7 +70,7 @@ export const Welcome = () => {
page="verify mnemonic"
/>
*/}
- setPage('welcome')} />
+ setPage('welcome')} />
)}
diff --git a/nym-wallet/src/pages/welcome/pages/create-password.tsx b/nym-wallet/src/pages/welcome/pages/create-password.tsx
index a499866104..9d1ee759e5 100644
--- a/nym-wallet/src/pages/welcome/pages/create-password.tsx
+++ b/nym-wallet/src/pages/welcome/pages/create-password.tsx
@@ -3,7 +3,7 @@ import { Button, FormControl, Grid, IconButton, Stack, TextField } from '@mui/ma
import { VisibilityOff, Visibility } from '@mui/icons-material';
import { Subtitle, Title, PasswordStrength } from '../components';
-export const CreatePassword = ({}: { page: 'create password' }) => {
+export const CreatePassword = () => {
const [password, setPassword] = useState('');
const [confirmedPassword, setConfirmedPassword] = useState();
const [showPassword, setShowPassword] = useState(false);
diff --git a/nym-wallet/src/pages/welcome/pages/existing-account.tsx b/nym-wallet/src/pages/welcome/pages/existing-account.tsx
index 0e5aaafd96..82343e1533 100644
--- a/nym-wallet/src/pages/welcome/pages/existing-account.tsx
+++ b/nym-wallet/src/pages/welcome/pages/existing-account.tsx
@@ -3,7 +3,7 @@ import { Alert, Button, Stack, TextField } from '@mui/material';
import { Subtitle } from '../components';
import { ClientContext } from '../../../context/main';
-export const ExistingAccount: React.FC<{ page: 'existing account'; onPrev: () => void }> = ({ onPrev }) => {
+export const ExistingAccount: React.FC<{ onPrev: () => void }> = ({ onPrev }) => {
const [mnemonic, setMnemonic] = useState('');
const { logIn, error } = useContext(ClientContext);
diff --git a/nym-wallet/src/pages/welcome/pages/mnemonic-words.tsx b/nym-wallet/src/pages/welcome/pages/mnemonic-words.tsx
index ec3649f79b..efad61b414 100644
--- a/nym-wallet/src/pages/welcome/pages/mnemonic-words.tsx
+++ b/nym-wallet/src/pages/welcome/pages/mnemonic-words.tsx
@@ -1,6 +1,6 @@
import React from 'react';
import { Alert, Button, Typography } from '@mui/material';
-import { WordTiles } from '../components/word-tiles';
+import { WordTiles } from '../components';
import { TMnemonicWords } from '../types';
export const MnemonicWords = ({
@@ -9,7 +9,6 @@ export const MnemonicWords = ({
onPrev,
}: {
mnemonicWords?: TMnemonicWords;
- page: 'create account';
onNext: () => void;
onPrev: () => void;
}) => (
diff --git a/nym-wallet/src/pages/welcome/pages/verify-mnemonic.tsx b/nym-wallet/src/pages/welcome/pages/verify-mnemonic.tsx
index b80692e485..594a593269 100644
--- a/nym-wallet/src/pages/welcome/pages/verify-mnemonic.tsx
+++ b/nym-wallet/src/pages/welcome/pages/verify-mnemonic.tsx
@@ -1,9 +1,8 @@
import React, { useEffect, useState } from 'react';
import { Button } from '@mui/material';
-import { WordTiles, HiddenWords } from '../components/word-tiles';
-import { THiddenMnemonicWords, THiddenMnemonicWord, TMnemonicWord, TMnemonicWords } from '../types';
+import { HiddenWords, Subtitle, Title, WordTiles } from '../components';
+import { THiddenMnemonicWord, THiddenMnemonicWords, TMnemonicWord, TMnemonicWords } from '../types';
import { randomNumberBetween } from '../../../utils';
-import { Title, Subtitle } from '../components';
const numberOfRandomWords = 4;
@@ -11,7 +10,6 @@ export const VerifyMnemonic = ({
mnemonicWords,
onComplete,
}: {
- page: 'verify mnemonic';
mnemonicWords?: TMnemonicWords;
onComplete: () => void;
}) => {
@@ -21,10 +19,10 @@ export const VerifyMnemonic = ({
useEffect(() => {
if (mnemonicWords) {
- const randomWords = getRandomEntriesFromArray(mnemonicWords, numberOfRandomWords);
- const withHiddenProperty = randomWords.map((word) => ({ ...word, hidden: true }));
+ const newRandomWords = getRandomEntriesFromArray(mnemonicWords, numberOfRandomWords);
+ const withHiddenProperty = newRandomWords.map((word) => ({ ...word, hidden: true }));
const shuffled = getRandomEntriesFromArray(withHiddenProperty, numberOfRandomWords);
- setRandomWords(randomWords);
+ setRandomWords(newRandomWords);
setHiddenRandomWords(shuffled);
}
}, [mnemonicWords]);
@@ -34,8 +32,8 @@ export const VerifyMnemonic = ({
setHiddenRandomWords((hiddenWords) =>
hiddenWords?.map((word) => (word.name === name ? { ...word, hidden: false } : word)),
);
- setRandomWords((randomWords) =>
- randomWords?.map((word) => (word.name === name ? { ...word, disabled: true } : word)),
+ setRandomWords((argRandomWords) =>
+ argRandomWords?.map((word) => (word.name === name ? { ...word, disabled: true } : word)),
);
setCurrentSelection((current) => current + 1);
}
diff --git a/nym-wallet/src/pages/welcome/pages/welcome-content.tsx b/nym-wallet/src/pages/welcome/pages/welcome-content.tsx
index 81182d5ddd..b7778e5a17 100644
--- a/nym-wallet/src/pages/welcome/pages/welcome-content.tsx
+++ b/nym-wallet/src/pages/welcome/pages/welcome-content.tsx
@@ -3,7 +3,6 @@ import { Button, Stack } from '@mui/material';
import { SubtitleSlick, Title } from '../components';
export const WelcomeContent: React.FC<{
- page: 'welcome';
onUseExisting: () => void;
onCreateAccountComplete: () => void;
}> = ({ onUseExisting, onCreateAccountComplete }) => (
diff --git a/nym-wallet/src/requests/vesting.ts b/nym-wallet/src/requests/vesting.ts
index fb45004335..9259e7be26 100644
--- a/nym-wallet/src/requests/vesting.ts
+++ b/nym-wallet/src/requests/vesting.ts
@@ -1,6 +1,6 @@
import { invoke } from '@tauri-apps/api';
import { VestingAccountInfo } from 'src/types/rust/vestingaccountinfo';
-import { majorToMinor, minorToMajor } from '.';
+import { majorToMinor, minorToMajor } from './coin';
import { Coin, DelegationResult, OriginalVestingResponse, Period } from '../types';
export const getLockedCoins = async (address: string): Promise => {
diff --git a/nym-wallet/src/svg-icons/node.tsx b/nym-wallet/src/svg-icons/node.tsx
index 5939385222..e0ae33eb34 100644
--- a/nym-wallet/src/svg-icons/node.tsx
+++ b/nym-wallet/src/svg-icons/node.tsx
@@ -1,13 +1,13 @@
import React from 'react';
import { SvgIcon, SvgIconProps } from '@mui/material';
-export const Node = (props: SvgIconProps) => (
+export const Node: React.FC = ({ color, ...props }) => (
);
diff --git a/nym-wallet/src/theme/theme.tsx b/nym-wallet/src/theme/theme.tsx
index e002f7a4c9..add15b3491 100644
--- a/nym-wallet/src/theme/theme.tsx
+++ b/nym-wallet/src/theme/theme.tsx
@@ -65,7 +65,7 @@ const lightMode: NymPaletteVariant = {
* IMPORTANT: do not export this constant, always use the MUI `useTheme` hook to get the correct
* colours for dark/light mode.
*/
-const nymWalletPalette = (variant: NymPaletteVariant): NymWalletPalette => ({
+const nymWalletPalette = (_variant: NymPaletteVariant): NymWalletPalette => ({
nymWallet: {},
});
diff --git a/nym-wallet/src/types/global.ts b/nym-wallet/src/types/global.ts
index f9c600d5ea..f05a9f6bc5 100644
--- a/nym-wallet/src/types/global.ts
+++ b/nym-wallet/src/types/global.ts
@@ -1,4 +1,4 @@
-import { Coin, Denom, MixNode } from '.';
+import { Coin, Denom, MixNode } from './rust';
export enum EnumNodeType {
mixnode = 'mixnode',
diff --git a/nym-wallet/src/utils/index.ts b/nym-wallet/src/utils/index.ts
index 3adad9e09a..ddceff874a 100644
--- a/nym-wallet/src/utils/index.ts
+++ b/nym-wallet/src/utils/index.ts
@@ -2,8 +2,8 @@ import { invoke } from '@tauri-apps/api';
import { appWindow } from '@tauri-apps/api/window';
import bs58 from 'bs58';
import { minor, valid } from 'semver';
-import { userBalance, majorToMinor, getGasFee } from '../requests';
-import { Coin, Network, Period, TCurrency } from '../types';
+import { majorToMinor, userBalance } from '../requests';
+import { Coin, Network, TCurrency } from '../types';
export const validateKey = (key: string, bytesLength: number): boolean => {
// it must be a valid base58 key
@@ -17,6 +17,23 @@ export const validateKey = (key: string, bytesLength: number): boolean => {
}
};
+export const basicRawCoinValueValidation = (rawAmount: string): boolean => {
+ const amountFloat = parseFloat(rawAmount);
+
+ // it cannot have more than 6 decimal places
+ if (amountFloat !== parseInt(amountFloat.toFixed(6), Number(10))) {
+ return false;
+ }
+
+ // it cannot be larger than the total supply
+ if (amountFloat > 1_000_000_000_000_000) {
+ return false;
+ }
+
+ // it can't be lower than one micro coin
+ return amountFloat >= 0.000001;
+};
+
export const validateAmount = async (amount: string, minimum: string): Promise => {
// tests basic coin value requirements, like no more than 6 decimal places, value lower than total supply, etc
if (!Number(amount)) {
@@ -32,34 +49,17 @@ export const validateAmount = async (amount: string, minimum: string): Promise= parseInt(minimum);
+ return minorValue >= parseInt(minimum, Number(10));
} catch (e) {
- console.log(e);
+ console.error(e);
return false;
}
// this conversion seems really iffy but I'm not sure how to better approach it
};
-export const basicRawCoinValueValidation = (rawAmount: string): boolean => {
- const amountFloat = parseFloat(rawAmount);
-
- // it cannot have more than 6 decimal places
- if (amountFloat !== parseInt(amountFloat.toFixed(6))) {
- return false;
- }
-
- // it cannot be larger than the total supply
- if (amountFloat > 1_000_000_000_000_000) {
- return false;
- }
-
- // it can't be lower than one micro coin
- return amountFloat >= 0.000001;
-};
-
export const isValidHostname = (value: string) => {
// regex for ipv4 and ipv6 and hhostname- source http://jsfiddle.net/DanielD/8S4nq/
const hostnameRegex =
@@ -82,55 +82,52 @@ export const validateLocation = (location: string): boolean =>
// right now only perform the stupid check of whether the user copy-pasted the tooltip... (with or without brackets)
!location.trim().includes('physical location of your node');
-export const validateRawPort = (rawPort: number): boolean => !isNaN(rawPort) && rawPort >= 1 && rawPort <= 65535;
+export const validateRawPort = (rawPort: number): boolean => !Number.isNaN(rawPort) && rawPort >= 1 && rawPort <= 65535;
export const truncate = (text: string, trim: number) => `${text.substring(0, trim)}...`;
export const isGreaterThan = (a: number, b: number) => a > b;
-export const checkHasEnoughFunds = async (allocationValue: string) => {
+export const checkHasEnoughFunds = async (allocationValue: string): Promise => {
try {
const walletValue = await userBalance();
const minorValue = await majorToMinor(allocationValue);
const remainingBalance = +walletValue.coin.amount - +minorValue.amount;
return isGreaterThan(remainingBalance, 0);
} catch (e) {
- console.log(e);
+ console.error(e);
}
+ return false;
};
export const randomNumberBetween = (min: number, max: number) => {
- min = Math.ceil(min);
- max = Math.floor(max);
- return Math.floor(Math.random() * (max - min + 1) + min);
+ const minCeil = Math.ceil(min);
+ const maxFloor = Math.floor(max);
+ return Math.floor(Math.random() * (maxFloor - minCeil + 1) + minCeil);
};
-export const currencyMap = (network?: Network) => {
- const currency = {
- minor: 'UNYM',
- major: 'NYM',
- } as TCurrency;
-
+export const currencyMap = (network?: Network): TCurrency => {
switch (network) {
case 'MAINNET':
- currency.minor = 'UNYM';
- currency.major = 'NYM';
- break;
- case 'SANDBOX':
- currency.minor = 'UNYMT';
- currency.major = 'NYMT';
- break;
+ return {
+ minor: 'UNYM',
+ major: 'NYM',
+ };
+ default:
+ return {
+ minor: 'UNYMT',
+ major: 'NYMT',
+ };
}
-
- return currency;
};
-export const splice = (start: number, deleteCount: number, address?: string) => {
+export const splice = (start: number, deleteCount: number, address?: string): string => {
if (address) {
const array = address.split('');
array.splice(start, deleteCount, '...');
return array.join('');
}
+ return '';
};
export const maximizeWindow = async () => {