supportedChains.ts•4.27 kB
/**
* Static list of commonly supported deBridge chains.
* This is used as a reference to avoid unnecessary API calls.
* If a chain is not found here, the MCP will query the live API.
*
* Last updated: 2024-10-27
*/
export const COMMON_SUPPORTED_CHAINS = [
{
chainId: "1",
chainName: "Ethereum",
tokens: {
USDC: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
USDT: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
DAI: "0x6B175474E89094C44Da98b954EedeAC495271d0F",
WETH: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
}
},
{
chainId: "56",
chainName: "BSC",
tokens: {
USDC: "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
USDT: "0x55d398326f99059fF775485246999027B3197955",
BUSD: "0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56",
WBNB: "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"
}
},
{
chainId: "137",
chainName: "Polygon",
tokens: {
USDC: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
"USDC.e": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
USDT: "0xc2132D05D31c914a87C6611C10748AEb04B58e8F",
DAI: "0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",
WMATIC: "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270"
}
},
{
chainId: "42161",
chainName: "Arbitrum",
tokens: {
USDC: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"USDC.e": "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8",
USDT: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
DAI: "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",
WETH: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"
}
},
{
chainId: "10",
chainName: "Optimism",
tokens: {
USDC: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
"USDC.e": "0x7F5c764cBc14f9669B88837ca1490cCa17c31607",
USDT: "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58",
DAI: "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",
WETH: "0x4200000000000000000000000000000000000006"
}
},
{
chainId: "43114",
chainName: "Avalanche",
tokens: {
USDC: "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",
"USDC.e": "0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664",
USDT: "0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7",
"USDT.e": "0xc7198437980c041c805A1EDcbA50c1Ce5db95118",
WAVAX: "0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7"
}
},
{
chainId: "8453",
chainName: "Base",
tokens: {
USDC: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
WETH: "0x4200000000000000000000000000000000000006"
}
},
{
chainId: "59144",
chainName: "Linea",
tokens: {
USDC: "0x176211869cA2b568f2A7D4EE941E073a821EE1ff",
USDT: "0xA219439258ca9da29E9Cc4cE5596924745e12B93",
WETH: "0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f"
}
},
{
chainId: "534352",
chainName: "Scroll",
tokens: {
USDC: "0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4",
USDT: "0xf55BEC9cafDbE8730f096Aa55dad6D22d44099Df",
WETH: "0x5300000000000000000000000000000000000004"
}
},
{
chainId: "324",
chainName: "zkSync Era",
tokens: {
USDC: "0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4",
USDT: "0x493257fD37EDB34451f62EDf8D2a0C418852bA4C",
WETH: "0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91"
}
}
];
/**
* Get chain information by chain ID
*/
export function getChainInfo(chainId: string) {
return COMMON_SUPPORTED_CHAINS.find(chain => chain.chainId === chainId);
}
/**
* Get all supported chain IDs
*/
export function getSupportedChainIds(): string[] {
return COMMON_SUPPORTED_CHAINS.map(chain => chain.chainId);
}
/**
* Get chain name by chain ID
*/
export function getChainName(chainId: string): string | undefined {
return COMMON_SUPPORTED_CHAINS.find(chain => chain.chainId === chainId)?.chainName;
}
/**
* Find token address by symbol and chain ID
*/
export function getTokenAddress(chainId: string, symbol: string): string | undefined {
const chain = getChainInfo(chainId);
return chain?.tokens[symbol as keyof typeof chain.tokens];
}
/**
* Format chains list for display
*/
export function formatChainsList(): string {
return COMMON_SUPPORTED_CHAINS
.map(chain => `- ${chain.chainName} (Chain ID: ${chain.chainId})`)
.join('\n');
}