diff --git a/.env.example b/.env.example index 1ab2824..985bf81 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,3 @@ POLYGON_URL=https://matic-mainnet.chainstacklabs.com -POLYGON_PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 +PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 POLYGONSCAN_KEY=abc123abc123abc123abc123abc123abc123abc diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 581ab5c..d79624a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,6 +62,6 @@ jobs: POLYGON_URL: ${{ secrets.POLYGON_URL }} - name: Deploy contract - run: yarn hardhat --network hardhat run ./scripts/deployOffsetHelper.ts + run: yarn hardhat --network hardhat deployOffsetHelper env: POLYGON_URL: ${{ secrets.POLYGON_URL }} diff --git a/hardhat.config.ts b/hardhat.config.ts index 85d0798..6b7568a 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,11 +1,14 @@ import * as dotenv from "dotenv"; -import { HardhatUserConfig, task } from "hardhat/config"; +import { HardhatUserConfig, subtask, task } from "hardhat/config"; import "@nomiclabs/hardhat-etherscan"; import "@nomiclabs/hardhat-waffle"; import "@typechain/hardhat"; import "hardhat-gas-reporter"; import "solidity-coverage"; +import { tokens } from "./utils/tokens"; +import addresses, { mumbaiAddresses } from "./utils/addresses"; +import { network } from "hardhat"; dotenv.config(); @@ -17,6 +20,41 @@ task("accounts", "Prints the list of accounts", async (taskArgs, hre) => { } }); +task("deployOffsetHelper", "Deploys and verifies OffsetHelper").setAction( + async (taskArgs, hre) => { + const OffsetHelper = await hre.ethers.getContractFactory("OffsetHelper"); + + const addressesToUse = + hre.network.name == "mumbai" ? mumbaiAddresses : addresses; + + const oh = await OffsetHelper.deploy(tokens, [ + addressesToUse.bct, + addressesToUse.nct, + addressesToUse.usdc, + addressesToUse.weth, + addressesToUse.wmatic, + ]); + await oh.deployed(); + await oh.deployTransaction.wait(5); + console.log(`OffsetHelper deployed on ${hre.network.name} to:`, oh.address); + + await hre.run("verify:verify", { + address: oh.address, + constructorArguments: [ + tokens, + [ + addressesToUse.bct, + addressesToUse.nct, + addressesToUse.usdc, + addressesToUse.weth, + addressesToUse.wmatic, + ], + ], + }); + console.log(`OffsetHelper verified on ${hre.network.name} to:`, oh.address); + } +); + const config: HardhatUserConfig = { defaultNetwork: "hardhat", solidity: { @@ -33,16 +71,12 @@ const config: HardhatUserConfig = { url: process.env.POLYGON_URL || "https://matic-mainnet.chainstacklabs.com", accounts: - process.env.POLYGON_PRIVATE_KEY !== undefined - ? [process.env.POLYGON_PRIVATE_KEY] - : [], + process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], }, mumbai: { url: process.env.MUMBAI_URL || "https://matic-mumbai.chainstacklabs.com", accounts: - process.env.MUMBAI_PRIVATE_KEY !== undefined - ? [process.env.MUMBAI_PRIVATE_KEY] - : [], + process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], }, hardhat: { forking: { diff --git a/scripts/deployOffsetHelper.ts b/scripts/deployOffsetHelper.ts deleted file mode 100644 index 4940f49..0000000 --- a/scripts/deployOffsetHelper.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { ethers, network } from "hardhat"; -import addresses, { mumbaiAddresses } from "../utils/addresses"; -import { tokens } from "../utils/tokens"; - -async function main() { - const OffsetHelper = await ethers.getContractFactory("OffsetHelper"); - if (network.name === "mumbai") { - const oh = await OffsetHelper.deploy(tokens, [ - mumbaiAddresses.bct, - mumbaiAddresses.nct, - mumbaiAddresses.usdc, - mumbaiAddresses.weth, - mumbaiAddresses.wmatic, - ]); - console.log("OffsetHelper deployed on Mumbai to:", oh.address); - await oh.deployed(); - } else { - const oh = await OffsetHelper.deploy(tokens, [ - addresses.bct, - addresses.nct, - addresses.usdc, - addresses.weth, - addresses.wmatic, - ]); - console.log("OffsetHelper deployed on Polygon to:", oh.address); - await oh.deployed(); - } -} - -main().catch((error) => { - console.error(error); - process.exitCode = 1; -}); diff --git a/utils/OHConstructorArgsPolygon.ts b/utils/OHConstructorArgsPolygon.ts deleted file mode 100644 index 3a6f3ba..0000000 --- a/utils/OHConstructorArgsPolygon.ts +++ /dev/null @@ -1,13 +0,0 @@ -import addresses from "./addresses"; -import { tokens } from "./tokens"; - -module.exports = [ - tokens, - [ - addresses.bct, - addresses.nct, - addresses.usdc, - addresses.weth, - addresses.wmatic, - ], -]; diff --git a/utils/deployArguments.ts b/utils/deployArguments.ts deleted file mode 100644 index 3a6f3ba..0000000 --- a/utils/deployArguments.ts +++ /dev/null @@ -1,13 +0,0 @@ -import addresses from "./addresses"; -import { tokens } from "./tokens"; - -module.exports = [ - tokens, - [ - addresses.bct, - addresses.nct, - addresses.usdc, - addresses.weth, - addresses.wmatic, - ], -];