// imports const { ethers, run, network } = require("hardhat"); // async main async function main() { const verifyOnly = false; if (verifyOnly == true) { const address = "0xF90F7edF515001CD4293255bfaF7D17ffa415e91"; const ETHERSCAN_API_KEY_VERIFY = process.env.ETHERSCAN_API_KEY; console.log("Network config:", network.config); console.log("ChainId: " + network.config.chainId); if (network.config.chainId === 11155111) { console.log("Currently on Sepolia Testnet"); if (ETHERSCAN_API_KEY_VERIFY !== undefined) { console.log("Verifying contract..."); await verify(address, []); console.log("Verification complete"); } else { console.log("ETHERSCAN_API_KEY is undefined"); } } if (true) return; } const simpleStorageFactory = await ethers.getContractFactory("SimpleStorage"); console.log("Deploying contract..."); const simpleStorage = await simpleStorageFactory.deploy(); await simpleStorage.deployed(); console.log("Deployed contract to: " + simpleStorage.address); const ETHERSCAN_API_KEY = process.env.ETHERSCAN_API_KEY; // No need verify for local hardhat network // 31337 - Local Hardhat Network // 5777 - Local Ganache Network // 11155111 - Sepolia Testnet console.log("Network config:", network.config); console.log("ETHERSCAN_API_KEY:", ETHERSCAN_API_KEY); // Need to delete artifacts & cache folder first if (network.config.chainId === 31337) { console.log("Currently on Local Hardhat"); } if (network.config.chainId === 11155111) { console.log("Currently on Sepolia Testnet"); if (ETHERSCAN_API_KEY !== undefined) { console.log("Waiting for 6 block confirmations..."); await simpleStorage.deployTransaction.wait(6); console.log("Verifying contract..."); await verify(simpleStorage.address, []); console.log("Verification complete"); } else { console.log("ETHERSCAN_API_KEY is undefined"); } } else { console.log("Not on Sepolia Testnet"); } const currentValue = await simpleStorage.viewMyNumber(); console.log("Current Value is: " + currentValue); // Update the current value const transactionResponse = await simpleStorage.storeMyNumber(7296); await transactionResponse.wait(1); const updatedValue = await simpleStorage.viewMyNumber(); console.log("Updated Value is: " + updatedValue); } // Auto verify contract in etherscan async function verify(contractAddress, args) { console.log("Verifying contract..."); try { await run("verify:verify", { address: contractAddress, constructorArguments: args, }); } catch (e) { if (e.message.toLowerCase().includes("already verified")) { console.log("Already Verified!"); } else { console.log(e); } } } // main main() .then(() => process.getMaxListeners(0)) .catch((error) => { console.error(error); process.exit(1); });