diff --git a/components/forms/ReDelegationForm.tsx b/components/forms/ReDelegationForm.tsx index 7e5ee9d..b5d4909 100644 --- a/components/forms/ReDelegationForm.tsx +++ b/components/forms/ReDelegationForm.tsx @@ -1,14 +1,14 @@ -import axios from "axios"; -import { Account, calculateFee } from "@cosmjs/stargate"; import { Decimal } from "@cosmjs/math"; +import { Account, calculateFee } from "@cosmjs/stargate"; import { assert } from "@cosmjs/utils"; +import axios from "axios"; +import { NextRouter, withRouter } from "next/router"; import React, { useState } from "react"; -import { withRouter, NextRouter } from "next/router"; import { useAppContext } from "../../context/AppContext"; +import { checkAddress, exampleValidatorAddress } from "../../lib/displayHelpers"; import Button from "../inputs/Button"; import Input from "../inputs/Input"; import StackableContainer from "../layout/StackableContainer"; -import { checkValidatorAddress } from "../../lib/displayHelpers"; interface Props { address: string | null; @@ -67,8 +67,8 @@ const ReDelegationForm = (props: Props) => { const handleCreate = async () => { assert(state.chain.addressPrefix, "addressPrefix missing"); - const validatorSrcAddressError = checkValidatorAddress(validatorSrcAddress, "cosmosvaloper"); - const validatorDstAddressError = checkValidatorAddress(validatorDstAddress, "cosmosvaloper"); + const validatorSrcAddressError = checkAddress(validatorSrcAddress, state.chain.addressPrefix); + const validatorDstAddressError = checkAddress(validatorDstAddress, state.chain.addressPrefix); if (validatorSrcAddressError) { setAddressError( `Invalid address for network ${state.chain.chainId}: ${validatorSrcAddressError}`, @@ -109,7 +109,7 @@ const ReDelegationForm = (props: Props) => { setValidatorSrcAddress(e.target.value) } error={addressError} - placeholder={`E.g. cosmosvaloper1sjllsnramtg3ewxqwwrwjxfgc4n4ef9u2lcnj0`} + placeholder={`E.g. ${exampleValidatorAddress(0, state.chain.addressPrefix)}`} />
@@ -121,7 +121,7 @@ const ReDelegationForm = (props: Props) => { setValidatorDstAddress(e.target.value) } error={addressError} - placeholder={`E.g. cosmosvaloper1sjllsnramtg3ewxqwwrwjxfgc4n4ef9u2lcnj0`} + placeholder={`E.g. ${exampleValidatorAddress(1, state.chain.addressPrefix)}`} />
diff --git a/components/forms/RewardsForm.tsx b/components/forms/RewardsForm.tsx index c1a2b30..a3c1cad 100644 --- a/components/forms/RewardsForm.tsx +++ b/components/forms/RewardsForm.tsx @@ -1,14 +1,14 @@ -import axios from "axios"; -import { Account, calculateFee } from "@cosmjs/stargate"; import { Decimal } from "@cosmjs/math"; +import { Account, calculateFee } from "@cosmjs/stargate"; import { assert } from "@cosmjs/utils"; -import React, { useState } from "react"; -import { withRouter, NextRouter } from "next/router"; +import axios from "axios"; +import { NextRouter, withRouter } from "next/router"; +import { useState } from "react"; import { useAppContext } from "../../context/AppContext"; +import { checkAddress, exampleValidatorAddress } from "../../lib/displayHelpers"; import Button from "../inputs/Button"; import Input from "../inputs/Input"; import StackableContainer from "../layout/StackableContainer"; -import { checkValidatorAddress } from "../../lib/displayHelpers"; interface Props { address: string | null; @@ -60,7 +60,7 @@ const RewardsForm = (props: Props) => { const handleCreate = async () => { assert(state.chain.addressPrefix, "addressPrefix missing"); - const validatorAddressError = checkValidatorAddress(validatorAddress, "cosmosvaloper"); + const validatorAddressError = checkAddress(validatorAddress, state.chain.addressPrefix); if (validatorAddressError) { setAddressError( `Invalid address for network ${state.chain.chainId}: ${validatorAddressError}`, @@ -93,7 +93,7 @@ const RewardsForm = (props: Props) => { value={validatorAddress} onChange={(e: React.ChangeEvent) => setValidatorAddress(e.target.value)} error={addressError} - placeholder={`E.g. cosmosvaloper1sjllsnramtg3ewxqwwrwjxfgc4n4ef9u2lcnj0`} + placeholder={`E.g. ${exampleValidatorAddress(0, state.chain.addressPrefix)})}`} />
diff --git a/components/forms/UnDelegationForm.tsx b/components/forms/UnDelegationForm.tsx index fdaa8a8..6696d62 100644 --- a/components/forms/UnDelegationForm.tsx +++ b/components/forms/UnDelegationForm.tsx @@ -1,14 +1,14 @@ -import axios from "axios"; -import { Account, calculateFee } from "@cosmjs/stargate"; import { Decimal } from "@cosmjs/math"; +import { Account, calculateFee } from "@cosmjs/stargate"; import { assert } from "@cosmjs/utils"; -import React, { useState } from "react"; -import { withRouter, NextRouter } from "next/router"; +import axios from "axios"; +import { NextRouter, withRouter } from "next/router"; +import { useState } from "react"; import { useAppContext } from "../../context/AppContext"; +import { checkAddress, exampleValidatorAddress } from "../../lib/displayHelpers"; import Button from "../inputs/Button"; import Input from "../inputs/Input"; import StackableContainer from "../layout/StackableContainer"; -import { checkValidatorAddress } from "../../lib/displayHelpers"; interface Props { address: string | null; @@ -60,7 +60,7 @@ const UnDelegationForm = (props: Props) => { const handleCreate = async () => { assert(state.chain.addressPrefix, "addressPrefix missing"); - const validatorAddressError = checkValidatorAddress(validatorAddress, "cosmosvaloper"); + const validatorAddressError = checkAddress(validatorAddress, state.chain.addressPrefix); if (validatorAddressError) { setAddressError( `Invalid address for network ${state.chain.chainId}: ${validatorAddressError}`, @@ -93,7 +93,7 @@ const UnDelegationForm = (props: Props) => { value={validatorAddress} onChange={(e: React.ChangeEvent) => setValidatorAddress(e.target.value)} error={addressError} - placeholder={`E.g. cosmosvaloper1sjllsnramtg3ewxqwwrwjxfgc4n4ef9u2lcnj0`} + placeholder={`E.g. ${exampleValidatorAddress(0, state.chain.addressPrefix)})}`} />
diff --git a/lib/displayHelpers.ts b/lib/displayHelpers.ts index 41b3a14..97a90ae 100644 --- a/lib/displayHelpers.ts +++ b/lib/displayHelpers.ts @@ -137,31 +137,7 @@ const checkAddress = (input: string, chainAddressPrefix: string) => { return null; }; -/** - * Returns an error message for invalid addresses. - * - * Returns null of there is no error. - */ -const checkValidatorAddress = (input: string, chainAddressPrefix: string): string | null => { - if (!input) return "Empty"; - let prefix; - try { - ({ prefix } = fromBech32(input)); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } catch (error: any) { - return error.toString(); - } - if (prefix !== chainAddressPrefix) { - return `Expected address prefix '${chainAddressPrefix}' but got '${prefix}'`; - } - - if (input.length !== 52) { - return "Invalid address length in validator address. Must be 52 bytes."; - } - - return null; -}; /** * Returns a link to a transaction in an explorer if an explorer is configured * for transactions. Returns null otherwise. @@ -182,5 +158,4 @@ export { examplePubkey, checkAddress, explorerLinkTx, - checkValidatorAddress, };