31 lines
855 B
TypeScript
31 lines
855 B
TypeScript
|
|
import type { ChainConfig } from './types.js';
|
||
|
|
import { mainnet } from './chains/mainnet.js';
|
||
|
|
import { base } from './chains/base.js';
|
||
|
|
import { arbitrum } from './chains/arbitrum.js';
|
||
|
|
import { optimism } from './chains/optimism.js';
|
||
|
|
import { polygon } from './chains/polygon.js';
|
||
|
|
|
||
|
|
export const chainConfigs: Record<number, ChainConfig> = {
|
||
|
|
1: mainnet,
|
||
|
|
8453: base,
|
||
|
|
42161: arbitrum,
|
||
|
|
10: optimism,
|
||
|
|
137: polygon,
|
||
|
|
};
|
||
|
|
|
||
|
|
export function getChainConfig(chainId: number): ChainConfig {
|
||
|
|
const config = chainConfigs[chainId];
|
||
|
|
if (!config) {
|
||
|
|
throw new Error(`Unsupported chain ID: ${chainId}`);
|
||
|
|
}
|
||
|
|
return config;
|
||
|
|
}
|
||
|
|
|
||
|
|
export function getSupportedChainIds(): number[] {
|
||
|
|
return Object.keys(chainConfigs).map(Number);
|
||
|
|
}
|
||
|
|
|
||
|
|
// Re-export chain configs for convenience
|
||
|
|
export { mainnet, base, arbitrum, optimism, polygon };
|
||
|
|
|