import { createPublicClient, http, PublicClient, fallback } from 'viem'; import { arbitrum, arbitrumSepolia, optimism } from 'viem/chains'; export const getEvmChainClient = (chainId: number): PublicClient => { if (chainId === 42161) { const ethClient = createPublicClient({ chain: arbitrum, transport: fallback([ http('https://arb1.arbitrum.io/rpc'), http( 'https://arb-mainnet.g.alchemy.com/v2/1b2ynCIHpMWDV52EjjYkkPQdAeOy8z69' ), ]), }); return ethClient; } else if (chainId === 10) { const ethClient = createPublicClient({ chain: optimism, transport: fallback([ http('https://mainnet.optimism.io'), http( 'https://opt-mainnet.g.alchemy.com/v2/1b2ynCIHpMWDV52EjjYkkPQdAeOy8z69' ), ]), }); return ethClient as PublicClient; } else if (chainId === 421614) { const ethClient = createPublicClient({ chain: arbitrumSepolia, transport: http(), }); return ethClient; } else { throw new Error(`Unsupported chainId: ${chainId}`); } };