@lit-protocol/vincent-scaffold-sdk
Version:
Shared build configuration and utilities for Vincent abilities and policies
106 lines (102 loc) • 2.33 kB
text/typescript
import {
arbitrum,
arbitrumGoerli,
arbitrumNova,
arbitrumSepolia,
base,
baseGoerli,
baseSepolia,
fraxtal,
fraxtalSepolia,
goerli,
mainnet,
optimism,
optimismGoerli,
optimismSepolia,
polygon,
polygonAmoy,
polygonMumbai,
sepolia,
shape,
shapeSepolia,
worldChain,
worldChainSepolia,
zora,
zoraSepolia,
beraChainBartio,
opbnbMainnet,
opbnbTestnet,
soneiumMinato,
soneiumMainnet,
unichainMainnet,
unichainSepolia,
inkMainnet,
inkSepolia,
mekong,
monadTestnet,
openlootSepolia,
gensynTestnet,
riseTestnet,
storyMainnet,
storyAeneid,
celoAlfajores,
celoMainnet,
teaSepolia,
} from "@account-kit/infra";
/**
* Helper function to get Alchemy chain configuration
* Supports all chains exported from AlchemyInfra by mapping chainId to the corresponding chain object.
*/
export function getAlchemyChainConfig(chainId: number) {
// Map of chainId to chain object
const chainMap: Record<number, any> = {
[]: mainnet,
[]: goerli,
[]: optimism,
[]: optimismGoerli,
[]: optimismSepolia,
[]: sepolia,
[]: polygon,
[]: polygonMumbai,
[]: base,
[]: baseGoerli,
[]: baseSepolia,
[]: arbitrum,
[]: arbitrumNova,
[]: arbitrumGoerli,
[]: arbitrumSepolia,
[]: polygonAmoy,
[]: zora, // If zora is mainnet
[]: zoraSepolia, // If zoraSepolia is testnet
[]: fraxtal, // Fraxtal mainnet
[]: fraxtalSepolia,
[]: worldChain,
[]: worldChainSepolia,
[]: shape,
[]: shapeSepolia,
[]: unichainMainnet,
[]: unichainSepolia,
[]: soneiumMinato,
[]: soneiumMainnet,
[]: opbnbMainnet,
[]: opbnbTestnet,
[]: beraChainBartio,
[]: inkMainnet,
[]: inkSepolia,
[]: mekong,
[]: monadTestnet,
[]: openlootSepolia,
[]: gensynTestnet,
[]: riseTestnet,
[]: storyMainnet,
[]: storyAeneid,
[]: celoAlfajores,
[]: celoMainnet,
[]: teaSepolia,
// Add more mappings as new chains are supported
};
if (chainId in chainMap) {
return chainMap[chainId];
}
throw new Error(`Chain ID ${chainId} not supported`);
}