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),