export type Address = Lowercase; import { ReyaChainId } from '@reyaxyz/common'; export enum ContractType { COMMUNITY_DEPLOYER = 'community_deployer', RANKS_PROXY = 'ranks_proxy', } const addresses: Record> = { [ReyaChainId.reyaCronos]: { [ContractType.COMMUNITY_DEPLOYER]: '0x0fc85eb14c45acc1534257431f6a079cf3bbdfe9', [ContractType.RANKS_PROXY]: '0xddc9759e9218fc4b1d56e3d75b2936f877dc6dea', }, [ReyaChainId.reyaNetwork]: { [ContractType.COMMUNITY_DEPLOYER]: '0xa45506157b7d1c6cb5d4b4846d03a9892010a4f3', [ContractType.RANKS_PROXY]: '0x4ab90747a2e8dec7c378d591b80b9f2f8f78351f', }, }; export const getAddress = ( chainId: number, contractName: ContractType, ): string => { const keyChainId = chainId.toString(); if (!Object.keys(addresses).includes(keyChainId)) { return `Unspecified addresses for chain id ${keyChainId}`; } const networkAddresses = addresses[chainId as ReyaChainId]; if (!Object.keys(networkAddresses).includes(contractName)) { return `Unspecified address for ${contractName} contract`; } return networkAddresses[contractName]; };