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,
};