interchain-token-sdk
Version:
SDK for deploying and managing interchain tokens across multiple chains using Axelar network
41 lines (40 loc) • 1.56 kB
JavaScript
import { baseSepolia, optimismSepolia, sepolia } from 'viem/chains';
export const SUPPORTED_CHAINS = {
'base-sepolia': {
name: 'Base Sepolia',
chainId: BigInt(84532),
rpcUrl: 'https://sepolia.base.org',
contractAddress: '0x83a93500d23Fbc3e82B410aD07A6a9F7A0670D66',
baseGasEstimate: BigInt(500000),
gasBuffer: BigInt(100000),
},
'optimism-sepolia': {
name: 'Optimism Sepolia',
chainId: BigInt(11155420),
rpcUrl: 'https://sepolia.optimism.io',
contractAddress: '0x83a93500d23Fbc3e82B410aD07A6a9F7A0670D66',
baseGasEstimate: BigInt(500000),
gasBuffer: BigInt(100000),
},
'ethereum-sepolia': {
name: 'Ethereum Sepolia',
chainId: BigInt(11155111),
rpcUrl: 'https://rpc.sepolia.org',
contractAddress: '0x83a93500d23Fbc3e82B410aD07A6a9F7A0670D66',
baseGasEstimate: BigInt(500000),
gasBuffer: BigInt(100000),
},
};
export const supportedChains = [baseSepolia, optimismSepolia, sepolia];
export function getChainConfig(chainName) {
const config = SUPPORTED_CHAINS[chainName.toLowerCase()];
if (!config) {
throw new Error(`Chain ${chainName} is not supported. Supported chains: ${Object.keys(SUPPORTED_CHAINS).join(', ')}`);
}
return config;
}
export function validateChain(chainName) {
if (!SUPPORTED_CHAINS[chainName.toLowerCase()]) {
throw new Error(`Chain ${chainName} is not supported. Supported chains: ${Object.keys(SUPPORTED_CHAINS).join(', ')}`);
}
}