diff --git a/apps/maestro/src/features/CanonicalTokenDeployment/steps/deploy-and-register/DeployAndRegister.tsx b/apps/maestro/src/features/CanonicalTokenDeployment/steps/deploy-and-register/DeployAndRegister.tsx index dde38bbf..7cd3e937 100644 --- a/apps/maestro/src/features/CanonicalTokenDeployment/steps/deploy-and-register/DeployAndRegister.tsx +++ b/apps/maestro/src/features/CanonicalTokenDeployment/steps/deploy-and-register/DeployAndRegister.tsx @@ -21,7 +21,6 @@ import { getNativeToken } from "~/lib/utils/getNativeToken"; import ChainPicker from "~/ui/compounds/ChainPicker"; import { NextButton, TokenNameAlert } from "~/ui/compounds/MultiStepForm"; import { useStep3ChainSelectionState } from "./DeployAndRegister.state"; -import { NEXT_PUBLIC_WHITELISTED_DEST_CHAINS_FOR_VM } from "~/config/env"; import { filterEligibleChains } from "~/lib/utils/chains"; export const Step3: FC = () => { @@ -139,8 +138,7 @@ export const Step3: FC = () => { ] ); - const whitelistedChains = NEXT_PUBLIC_WHITELISTED_DEST_CHAINS_FOR_VM.split(',').map(chain => chain.trim()); - const eligibleChains = filterEligibleChains(state.chains, chainId, whitelistedChains); + const eligibleChains = filterEligibleChains(state.chains, chainId); const formSubmitRef = useRef>(null); diff --git a/apps/maestro/src/features/InterchainTokenDeployment/steps/deploy-and-register/DeployAndRegister.tsx b/apps/maestro/src/features/InterchainTokenDeployment/steps/deploy-and-register/DeployAndRegister.tsx index b28eaa08..6cf76359 100644 --- a/apps/maestro/src/features/InterchainTokenDeployment/steps/deploy-and-register/DeployAndRegister.tsx +++ b/apps/maestro/src/features/InterchainTokenDeployment/steps/deploy-and-register/DeployAndRegister.tsx @@ -21,7 +21,6 @@ import { NextButton } from "~/ui/compounds/MultiStepForm"; import { useDeployAndRegisterRemoteInterchainTokenMutation } from "../../hooks"; import { useInterchainTokenDeploymentStateContainer } from "../../InterchainTokenDeployment.state"; import { useStep2ChainSelectionState } from "./DeployAndRegister.state"; -import { NEXT_PUBLIC_WHITELISTED_DEST_CHAINS_FOR_VM } from "~/config/env" import { filterEligibleChains } from "~/lib/utils/chains"; export const Step2: FC = () => { @@ -142,8 +141,7 @@ export const Step2: FC = () => { ] ); - const whitelistedChains = NEXT_PUBLIC_WHITELISTED_DEST_CHAINS_FOR_VM.split(',').map(chain => chain.trim()); - const eligibleChains = filterEligibleChains(state.chains, chainId, whitelistedChains); + const eligibleChains = filterEligibleChains(state.chains, chainId); const formSubmitRef = useRef>(null); diff --git a/apps/maestro/src/lib/utils/chains.ts b/apps/maestro/src/lib/utils/chains.ts index 28b7c890..8c81ee85 100644 --- a/apps/maestro/src/lib/utils/chains.ts +++ b/apps/maestro/src/lib/utils/chains.ts @@ -1,13 +1,18 @@ import { ITSChainConfig } from "@axelarjs/api"; +import { NEXT_PUBLIC_WHITELISTED_DEST_CHAINS_FOR_VM } from "~/config/env"; export const filterEligibleChains = ( chains: ITSChainConfig[], currentChainId: number, - whitelistedChains: string[] ): ITSChainConfig[] => { // Early return if no chains to filter if (!chains.length) return []; + const currentChain = chains.find((chain) => chain.chain_id === currentChainId); + const isCurrentChainVM = currentChain?.chain_type === 'vm'; + + const whitelistedChains = NEXT_PUBLIC_WHITELISTED_DEST_CHAINS_FOR_VM.split(',').map(chain => chain.trim()); + // Normalize whitelist check const isAllChainsWhitelisted = whitelistedChains[0] === 'all'; @@ -16,7 +21,7 @@ export const filterEligibleChains = ( if (chain.chain_id === currentChainId) return false; // For EVM chains, check whitelist - if (chain.chain_type === 'evm') { + if (isCurrentChainVM && chain.chain_type === 'evm') { return isAllChainsWhitelisted || whitelistedChains.includes(chain.id); }