diff --git a/clients/js/src/consts/networks.ts b/clients/js/src/consts/networks.ts index b8579983733..541cfc4a213 100644 --- a/clients/js/src/consts/networks.ts +++ b/clients/js/src/consts/networks.ts @@ -430,7 +430,7 @@ const Testnet = { chain_id: 713715, }, Sepolia: { - rpc: "https://rpc.ankr.com/eth_sepolia", + rpc: "https://ethereum-sepolia-rpc.publicnode.com", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 11155111, }, @@ -523,7 +523,7 @@ const Testnet = { chain_id: 84532, }, OptimismSepolia: { - rpc: "https://rpc.ankr.com/optimism_sepolia", + rpc: "https://optimism-sepolia-rpc.publicnode.com", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 11155420, }, diff --git a/clients/js/src/utils.ts b/clients/js/src/utils.ts index e7a3bec233d..1652d2cf102 100644 --- a/clients/js/src/utils.ts +++ b/clients/js/src/utils.ts @@ -4,6 +4,7 @@ import { Network, PlatformToChains, chainToPlatform, + chains, toChain, } from "@wormhole-foundation/sdk-base"; import { spawnSync } from "child_process"; @@ -56,6 +57,12 @@ export function chainToChain(input: string): Chain { if (input.length < 2) { throw new Error(`Invalid chain: ${input}`); } - const chainStr = input[0].toUpperCase() + input.slice(1).toLowerCase(); - return toChain(chainStr); + // Match case-insensitively and ignore underscores so multi-word chains + // work in any spelling (BaseSepolia, basesepolia, base_sepolia). + const normalized = input.replace(/_/g, "").toLowerCase(); + const chain = chains.find((c) => c.toLowerCase() === normalized); + if (!chain) { + throw new Error(`Invalid chain: ${input}`); + } + return chain; }