Files
tycho-execution/foundry/scripts/deploy-executors.js
Diana Carvalho 79045e2689 feat: Verify contracts on etherscan
--- don't change below this line ---
ENG-4260 Took 31 minutes
2025-02-27 15:52:32 +00:00

59 lines
2.1 KiB
JavaScript

require('dotenv').config();
const {ethers} = require("hardhat");
const hre = require("hardhat");
// Comment out the executors you don't want to deploy
const executors_to_deploy = [
{exchange: "UniswapV2Executor", args: []},
// {exchange: "UniswapV3Executor", args: ["0x1F98431c8aD98523631AE4a59f267346ea31F984"]},
// {exchange: "UniswapV4Executor", args: ["0x000000000004444c5dc75cB358380D2e3dE08A90"]},
// {exchange: "BalancerV2Executor", args: []},
]
async function main() {
const network = hre.network.name;
console.log(`Deploying executors to ${network}`);
const [deployer] = await ethers.getSigners();
console.log(`Deploying with account: ${deployer.address}`);
console.log(`Account balance: ${ethers.utils.formatEther(await deployer.getBalance())} ETH`);
for (const executor of executors_to_deploy) {
const {exchange, args} = executor;
const Executor = await ethers.getContractFactory(exchange);
const deployedExecutor = await Executor.deploy(...args);
await deployedExecutor.deployed();
console.log(`${exchange} deployed to: ${deployedExecutor.address}`);
// Verify on Tenderly
try {
await hre.tenderly.verify({
name: exchange,
address: address,
});
console.log("Contract verified successfully on Tenderly");
} catch (error) {
console.error("Error during contract verification:", error);
}
console.log("Waiting for 1 minute before verifying the contract...");
await new Promise(resolve => setTimeout(resolve, 60000));
// Verify on Etherscan
try {
await hre.run("verify:verify", {
address: address,
constructorArguments: args,
});
console.log(`${exchange} verified successfully on Etherscan!`);
} catch (error) {
console.error(`Error during Etherscan verification:`, error);
}
}
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error("Deployment failed:", error);
process.exit(1);
});