From 2c7a357c756ed18d38a32df4f38983fdea5bb3cb Mon Sep 17 00:00:00 2001 From: Chris Date: Thu, 25 Jan 2024 22:42:52 +0700 Subject: [PATCH] fix: deployments sepolia.json & contract verification script --- deployments/sepolia.json | 4 -- scripts/dev-deploy.ts | 85 +++++++++++++++++++++++++++++++--------- 2 files changed, 66 insertions(+), 23 deletions(-) diff --git a/deployments/sepolia.json b/deployments/sepolia.json index 30480e4..5e894b6 100644 --- a/deployments/sepolia.json +++ b/deployments/sepolia.json @@ -3,10 +3,6 @@ "veNationToken": "0x8100e77899C24b0F7B516153F84868f850C034BF", "balancerLPToken": "0x6417755C00d5c17DeC196Df00a6F151E448B1471", "lpRewardsContract": "0x534AB4F195Ac166B78d9edCdbeA04802392711aA", - "nationDropContracts": [ - "0xfa5742931300D9CcFB8FE789dbd72326DFf770fB", - "0x32ebd2b43fdF9Ac035Cb9947E5086F0Ca53be573" - ], "nationPassportNFT": "0x11f30642277A70Dab74C6fAF4170a8b340BE2f98", "nationPassportNFTIssuer": "0xdad32e13E73ce4155a181cA0D350Fee0f2596940", "nationPassportAgreementStatement": "By claiming a Nation3 passport I agree to the terms defined in the following URL", diff --git a/scripts/dev-deploy.ts b/scripts/dev-deploy.ts index 9fa5026..654a14f 100644 --- a/scripts/dev-deploy.ts +++ b/scripts/dev-deploy.ts @@ -24,16 +24,6 @@ const deployContract = async ({ name, deployer, factory, args }: { name: string, return contract; } -const verifyContact = async (address: string, path: string, constructorArgs: Array) => { - exec( - ["forge verify-contract", address, path, "--chain-id", 11155111].join(" "), - (error, stdout, stderr) => { - console.log(error) - console.log(stdout) - console.log(stderr) - } - ); -} const deployNation = async () => { const supply: BigNumber = BigNumber.from(process.env.NATION_SUPPLY ?? dec(42069, 18)); @@ -51,6 +41,17 @@ const deployNation = async () => { return nationToken; } +const verifyNationContract = async (address: string, path: string, constructorArgs: Array) => { + exec( + ["forge verify-contract", address, path, "--chain-id", 11155111].join(" "), + (error, stdout, stderr) => { + console.log(error) + console.log(stdout) + console.log(stderr) + } + ); + +} const deployVeNation = async (nationToken: Contract) => { const Factory = getContractFactory(VotingEscrow); @@ -119,6 +120,30 @@ const deployLiquidityDistributor = async (rewardsToken: Contract, boostToken: Co return { "lpToken": lpToken, "lpRewardsContract": distributor } } +const verifyLpToken = async (address: string, path: string) => { + const tokenFactory = getContractFactory(MockERC20); + const args = tokenFactory.interface.encodeDeploy(["80NATION-20WETH", "80NATION-20WETH", BigNumber.from(dec(314, 18))]) + exec( + ["forge verify-contract", address, path, "--constructor-args", args, "--chain-id", 11155111].join(" "), + (error, stdout, stderr) => { + console.log(error) + console.log(stdout) + console.log(stderr) + } + ); +} + +const verifyLiquidityDistributor = async (address: string, path: string) => { + exec( + ["forge verify-contract", address, path, "--chain-id", 11155111].join(" "), + (error, stdout, stderr) => { + console.log(error) + console.log(stdout) + console.log(stderr) + } + ); +} + const deployPassport = async (governanceToken: Contract) => { const agreementStatement = "By claiming a Nation3 passport I agree to the terms defined in the following URL"; const agreementURI = "https://bafkreiadlf3apu3u7blxw7t2yxi7oyumeuzhoasq7gqmcbaaycq342xq74.ipfs.dweb.link"; @@ -152,6 +177,30 @@ const deployPassport = async (governanceToken: Contract) => { return { "passportToken": passportToken, "passportIssuer": passportIssuer, "agreementStatement": agreementStatement, "agreementURI": agreementURI } } +const verifyPassport = async (address: string, path: string) => { + const passportFactory = getContractFactory(Passport); + const args = passportFactory.interface.encodeDeploy(["Nation3 Passport", "PASS3"]) + exec( + ["forge verify-contract", address, path, "--constructor-args", args, "--chain-id", 11155111].join(" "), + (error, stdout, stderr) => { + console.log(error) + console.log(stdout) + console.log(stderr) + } + ); +} + +const verifyPassportIssuer = async (address: string, path: string) => { + exec( + ["forge verify-contract", address, path, "--chain-id", 11155111].join(" "), + (error, stdout, stderr) => { + console.log(error) + console.log(stdout) + console.log(stderr) + } + ); +} + const main = async () => { console.log(`Using deployer: ${wallet.address}`); @@ -181,15 +230,13 @@ const main = async () => { console.log(`Deployment manifest saved to ${manifestFile}`) console.log("Contract verification...") - // await verifyContact(NATION.address, "src/tokens/NATION.sol:NATION", []) - // // await verifyContact(veNATION.address, "src/tokens/NATION.sol:NATION", []) //TODO: Verify vyper contract later - // TODO: - // await verifyContact(lpContracts.lpToken.address, "src/tokens/NATION.sol:NATION", []) - // await verifyContact(lpContracts.lpRewardsContract.address, "src/tokens/NATION.sol:NATION", []) - // await verifyContact(passportContracts.passportToken.address, "src/tokens/NATION.sol:NATION", []) - // await verifyContact(passportContracts.passportIssuer.address, "src/tokens/NATION.sol:NATION", []) - - await verifyContact("0x23Ca3002706b71a440860E3cf8ff64679A00C9d7", "src/tokens/NATION.sol:NATION", []) + + await verifyNationContract("0x23Ca3002706b71a440860E3cf8ff64679A00C9d7", "src/tokens/NATION.sol:NATION", []) + await verifyLpToken("0x6417755C00d5c17DeC196Df00a6F151E448B1471", "src/test/utils/mocks/MockERC20.sol:MockERC20") + await verifyLiquidityDistributor("0x534AB4F195Ac166B78d9edCdbeA04802392711aA", "src/distributors/BoostedLiquidityDistributor.sol:BoostedLiquidityDistributor") + await verifyLiquidityDistributor("0x534AB4F195Ac166B78d9edCdbeA04802392711aA", "src/distributors/BoostedLiquidityDistributor.sol:BoostedLiquidityDistributor") + await verifyPassport("0x11f30642277A70Dab74C6fAF4170a8b340BE2f98", "src/passport/Passport.sol:Passport") + await verifyPassportIssuer("0xdad32e13E73ce4155a181cA0D350Fee0f2596940", "src/passport/PassportIssuer.sol:PassportIssuer") }