UNPKG

tenderly-wizard-v6

Version:

A tool for managing virtual testnets using Tenderly

88 lines (85 loc) 3.18 kB
import { ChainId } from "zodiac-roles-sdk"; import { ROLES_V2_MASTER_COPY_ADDR, SAFE_MODULE_PROXY_FACTORY_ADDR, MULTISEND_ADDR, DEFAULT_FALLBACK_HANDLER_ADDRESS, DEFAULT_UNWRAPPER_ADDR, MULTISEND_SELECTOR, SAFE_MASTER_COPY_V1_ADDR, SAFE_PROXY_FACTORY_ADDR, BASE_ROLES_V2_MASTER_COPY_ADDR, BASE_SAFE_MODULE_PROXY_FACTORY_ADDR, BASE_MULTISEND_ADDR, BASE_DEFAULT_FALLBACK_HANDLER_ADDRESS, BASE_DEFAULT_UNWRAPPER_ADDR, BASE_MULTISEND_SELECTOR, BASE_SAFE_MASTER_COPY_ADDR, BASE_SAFE_PROXY_FACTORY_ADDR, SAFE_MODULE_PROXY_FACTORY_V1_ADDR, DEFAULT_FALLBACK_HANDLER_V1_ADDR, MULTISEND_V1_ADDR, ROLES_V1_MASTER_COPY_ADDR, SAFE_MASTER_COPY_ADDR, SAFE_PROXY_FACTORY_V1_ADDR, } from "./constants"; import { ChainConfig, RolesVersion } from "./types"; const chainConfigs: Partial<Record<ChainId, ChainConfig>> = { [1]: { v1: { ROLES_MASTER_COPY_ADDR: ROLES_V1_MASTER_COPY_ADDR, SAFE_MODULE_PROXY_FACTORY_ADDR: SAFE_MODULE_PROXY_FACTORY_V1_ADDR, MULTISEND_ADDR: MULTISEND_V1_ADDR, DEFAULT_FALLBACK_HANDLER_ADDRESS: DEFAULT_FALLBACK_HANDLER_V1_ADDR, DEFAULT_UNWRAPPER_ADDR: DEFAULT_UNWRAPPER_ADDR, MULTISEND_SELECTOR: MULTISEND_SELECTOR, SAFE_MASTER_COPY_ADDR: SAFE_MASTER_COPY_V1_ADDR, SAFE_PROXY_FACTORY_ADDR: SAFE_PROXY_FACTORY_V1_ADDR, }, v2: { ROLES_MASTER_COPY_ADDR: ROLES_V2_MASTER_COPY_ADDR, SAFE_MODULE_PROXY_FACTORY_ADDR: SAFE_MODULE_PROXY_FACTORY_ADDR, MULTISEND_ADDR: MULTISEND_ADDR, DEFAULT_FALLBACK_HANDLER_ADDRESS: DEFAULT_FALLBACK_HANDLER_ADDRESS, DEFAULT_UNWRAPPER_ADDR: DEFAULT_UNWRAPPER_ADDR, MULTISEND_SELECTOR: MULTISEND_SELECTOR, SAFE_MASTER_COPY_ADDR: SAFE_MASTER_COPY_ADDR, SAFE_PROXY_FACTORY_ADDR: SAFE_PROXY_FACTORY_ADDR, }, }, [8453]: { v1: { ROLES_MASTER_COPY_ADDR: ROLES_V1_MASTER_COPY_ADDR, SAFE_MODULE_PROXY_FACTORY_ADDR: SAFE_MODULE_PROXY_FACTORY_V1_ADDR, MULTISEND_ADDR: MULTISEND_V1_ADDR, DEFAULT_FALLBACK_HANDLER_ADDRESS: DEFAULT_FALLBACK_HANDLER_V1_ADDR, DEFAULT_UNWRAPPER_ADDR: DEFAULT_UNWRAPPER_ADDR, MULTISEND_SELECTOR: MULTISEND_SELECTOR, SAFE_MASTER_COPY_ADDR: SAFE_MASTER_COPY_V1_ADDR, SAFE_PROXY_FACTORY_ADDR: SAFE_PROXY_FACTORY_V1_ADDR, }, v2: { ROLES_MASTER_COPY_ADDR: BASE_ROLES_V2_MASTER_COPY_ADDR, SAFE_MODULE_PROXY_FACTORY_ADDR: BASE_SAFE_MODULE_PROXY_FACTORY_ADDR, MULTISEND_ADDR: BASE_MULTISEND_ADDR, DEFAULT_FALLBACK_HANDLER_ADDRESS: BASE_DEFAULT_FALLBACK_HANDLER_ADDRESS, DEFAULT_UNWRAPPER_ADDR: BASE_DEFAULT_UNWRAPPER_ADDR, MULTISEND_SELECTOR: BASE_MULTISEND_SELECTOR, SAFE_MASTER_COPY_ADDR: BASE_SAFE_MASTER_COPY_ADDR, SAFE_PROXY_FACTORY_ADDR: BASE_SAFE_PROXY_FACTORY_ADDR, }, }, // @note Add configurations for other chains here }; export function getChainConfig( chainId: ChainId, rolesVersion: RolesVersion ): ChainConfig[RolesVersion] { const config = chainConfigs[chainId]?.[rolesVersion]; if (!config) { throw new Error( `No configuration found for chain ID ${chainId} and roles version ${rolesVersion}` ); } return config; }