UNPKG

tenderly-wizard-v6

Version:

A tool for managing virtual testnets using Tenderly

86 lines (74 loc) 2.42 kB
// @ts-ignore import { ethers, network } from "hardhat"; import VirtualTestNet from "./virtual-test-net"; import { ChainId } from "zodiac-roles-sdk"; import { deployAccessControlSystemV1 } from "./deploy-roles-v1"; import { deployAccessControlSystemV2 } from "./deploy-roles-v2"; import { RolesVersion } from "../utils/types"; import { setGas } from "../utils/util"; import config from "../env-config"; export async function deploySafesOnVnet( chainId: ChainId, rolesVersion: RolesVersion ) { await setGas(); let contractsAddr; let deployedSnapshot; let base: any; const [ caller, manager, dummyOwnerOne, dummyOwnerTwo, dummyOwnerThree, security, ] = await ethers.getSigners(); if (rolesVersion === "v1") { base = await deployAccessControlSystemV1(chainId, { proxied: true, managerEOAs: [manager.address], securityEOAs: [security.address], invSafeThreshold: 1, acSafeThreshold: 1, sysAdminAddresses: [ dummyOwnerOne.address, dummyOwnerTwo.address, dummyOwnerThree.address, ], }); } else { base = await deployAccessControlSystemV2(chainId, { proxied: true, managerEOAs: [manager.address], securityEOAs: [security.address], invSafeThreshold: 1, acSafeThreshold: 1, sysAdminAddresses: [ dummyOwnerOne.address, dummyOwnerTwo.address, dummyOwnerThree.address, ], }); } deployedSnapshot = await network.provider.send("evm_snapshot", []); console.log("deployedSnapshot: ", deployedSnapshot); // add to .env VirtualTestNet.addToEnvFile("TENDERLY_SNAPSHOT", deployedSnapshot); VirtualTestNet.addToEnvFile("ACCESS_CONTROL_SAFE_ADDRESS", base?.acSafe); VirtualTestNet.addToEnvFile("INVESTMENT_SAFE_ADDRESS", base?.invSafe); VirtualTestNet.addToEnvFile("INVESTMENT_ROLES_ADDRESS", base?.invRoles); VirtualTestNet.addToEnvFile("ACCESS_CONTROL_ROLES_ADDRESS", base?.acRoles); contractsAddr = base; return base; } async function main() { const { ROLES_VERSION: rolesVersion } = config; console.log(`Deploying with roles version: ${rolesVersion}`); // @note tenderly fork ID defaults to 1 if not set in .env const chainId = config.TENDERLY_FORK_ID; await deploySafesOnVnet(chainId as ChainId, rolesVersion as RolesVersion); } main().catch(error => { console.error(error); process.exitCode = 1; });