From ee101294aa2ce972d9306905b049a9a7437f720d Mon Sep 17 00:00:00 2001 From: Domen Grabec Date: Tue, 3 Jan 2023 15:01:35 +0100 Subject: [PATCH] add configured governor sanity check before kicking off the mainnet deploy --- contracts/utils/deploy.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/contracts/utils/deploy.js b/contracts/utils/deploy.js index e63055b9a2..af3e290fc6 100644 --- a/contracts/utils/deploy.js +++ b/contracts/utils/deploy.js @@ -251,6 +251,28 @@ const sendProposal = async (proposalArgs, description, opts = {}) => { log("Done"); }; +/** + * Sanity checks to perform before running the deploy + */ +const sanityCheck = async () => { + if (isMainnet) { + const VaultProxy = await ethers.getContract("VaultProxy"); + const VaultAdmin = await ethers.getContractAt( + "VaultAdmin", + VaultProxy.address + ); + + const vaultGovernor = await VaultAdmin.governor(); + const { governorAddr } = await getNamedAccounts(); + + if (vaultGovernor.toLowerCase() !== governorAddr.toLowerCase()) { + throw new Error( + `Hardhat environment has ${governorAddr} governor address configured which is different from Vault's governor: ${vaultGovernor}` + ); + } + } +}; + /** * Shortcut to create a deployment for hardhat to use * @param {Object} options for deployment @@ -290,6 +312,7 @@ function deploymentWithProposal(opts, fn) { } } + await sanityCheck(); const proposal = await fn(tools); const propDescription = proposal.name; const propArgs = await proposeArgs(proposal.actions);