diff --git a/src/screens/AddNetwork.tsx b/src/screens/AddNetwork.tsx index 23cf623..daafb7a 100644 --- a/src/screens/AddNetwork.tsx +++ b/src/screens/AddNetwork.tsx @@ -24,23 +24,32 @@ import { COSMOS, EIP155, CHAINID_DEBOUNCE_DELAY } from '../utils/constants'; import { getCosmosAccounts } from '../utils/accounts'; import ETH_CHAINS from '../assets/ethereum-chains.json'; +const EMPTY_FIELD_ERROR = 'Field cannot be empty'; +const INVALID_URL_ERROR = 'Invalid URL'; + const ethNetworkDataSchema = z.object({ - chainId: z.string().min(1), - networkName: z.string().min(1), - rpcUrl: z.string().url(), - blockExplorerUrl: z.string().url().or(z.literal('')), - coinType: z.string().regex(/^\d+$/).min(1), - currencySymbol: z.string().min(1), + chainId: z.string().nonempty({ message: EMPTY_FIELD_ERROR }), + networkName: z.string().nonempty({ message: EMPTY_FIELD_ERROR }), + rpcUrl: z.string().url({ message: INVALID_URL_ERROR }), + blockExplorerUrl: z + .string() + .url({ message: INVALID_URL_ERROR }) + .or(z.literal('')), + coinType: z.string().nonempty({ message: EMPTY_FIELD_ERROR }).regex(/^\d+$/), + currencySymbol: z.string().nonempty({ message: EMPTY_FIELD_ERROR }), }); const cosmosNetworkDataSchema = z.object({ - chainId: z.string().min(1), - networkName: z.string().min(1), - rpcUrl: z.string().url(), - blockExplorerUrl: z.string().url().or(z.literal('')), - coinType: z.string().regex(/^\d+$/).min(1), - nativeDenom: z.string().min(1), - addressPrefix: z.string().min(1), + chainId: z.string().nonempty({ message: EMPTY_FIELD_ERROR }), + networkName: z.string().nonempty({ message: EMPTY_FIELD_ERROR }), + rpcUrl: z.string().url({ message: INVALID_URL_ERROR }), + blockExplorerUrl: z + .string() + .url({ message: INVALID_URL_ERROR }) + .or(z.literal('')), + coinType: z.string().nonempty({ message: EMPTY_FIELD_ERROR }).regex(/^\d+$/), + nativeDenom: z.string().nonempty({ message: EMPTY_FIELD_ERROR }), + addressPrefix: z.string().nonempty({ message: EMPTY_FIELD_ERROR }), }); const AddNetwork = () => {