diff --git a/src/screens/staking/components/staking_section/staking_modal.tsx b/src/screens/staking/components/staking_section/staking_modal.tsx
index 2a45c8bc..60cba56f 100644
--- a/src/screens/staking/components/staking_section/staking_modal.tsx
+++ b/src/screens/staking/components/staking_section/staking_modal.tsx
@@ -23,6 +23,7 @@ import {
} from "@src/screens/staking/lib/staking_sdk/context/actions";
import { getSelectedAccount } from "@src/screens/staking/lib/staking_sdk/context/selectors";
import type { StakingNetworkInfo } from "@src/screens/staking/lib/staking_sdk/core";
+import { networksWithMemo } from "@src/screens/staking/lib/staking_sdk/core";
import { mainNetworkDenom } from "@src/screens/staking/lib/staking_sdk/core/base";
import { solanaNetworks } from "@src/screens/staking/lib/staking_sdk/core/solana";
import { formatCoin } from "@src/screens/staking/lib/staking_sdk/formatters";
@@ -99,6 +100,8 @@ const StakingModal = () => {
if (!account) return null;
+ const hasMemo = networksWithMemo.has(account.networkId);
+
const amountNum = new BigNumber(amount);
const isValidAmount =
@@ -153,9 +156,7 @@ const StakingModal = () => {
isLoading ||
!isValidAmount ||
amountError ||
- memoError ||
- newAmountError ||
- newMemoError
+ (hasMemo && (memoError || newAmountError || newMemoError))
)
return;
@@ -381,31 +382,33 @@ const StakingModal = () => {
)}
-
-
-
{
- if (newMemoError !== memoError) {
- setMemoError(newMemoError);
- }
- }}
- onChange={(e) => {
- if (memoError) {
- setMemoError("");
- }
+ {networksWithMemo.has(account.networkId) && (
+
+
+ {
+ if (newMemoError !== memoError) {
+ setMemoError(newMemoError);
+ }
+ }}
+ onChange={(e) => {
+ if (memoError) {
+ setMemoError("");
+ }
- setMemo(e.target.value);
- }}
- placeholder={t("optionalInput")}
- value={memo}
- />
- {!!memoError && {memoError}}
-
+ setMemo(e.target.value);
+ }}
+ placeholder={t("optionalInput")}
+ value={memo}
+ />
+ {!!memoError && {memoError}}
+
+ )}
{
).filter((acc) => ["activating", "active"].includes(acc.status));
const onClose = () => setSelectedAccount(stakingRef.current, null, null);
+ const hasMemo = account ? networksWithMemo.has(account?.networkId) : false;
const onSubmit = (e: any) => {
e?.preventDefault();
@@ -160,7 +162,7 @@ const UnstakingModal = () => {
}
const hasInputError =
- amountError || memoError || newAmountError || newMemoError;
+ amountError || newAmountError || (hasMemo && (newMemoError || memoError));
if (
!selectedAccount ||
diff --git a/src/screens/staking/lib/staking_sdk/core/index.ts b/src/screens/staking/lib/staking_sdk/core/index.ts
index 047d825e..76ab2ff8 100644
--- a/src/screens/staking/lib/staking_sdk/core/index.ts
+++ b/src/screens/staking/lib/staking_sdk/core/index.ts
@@ -22,6 +22,8 @@ export const networksWithStakeAccounts = new Set([
...Array.from(solanaNetworks),
]);
+export const networksWithMemo = new Set([...Array.from(cosmosStakingNetworks)]);
+
export const walletsSupported = new Set([
...Array.from(cosmosWallets),
...Array.from(solanaWallets),