import { task } from 'hardhat/config'; import { verifyContract, checkVerification } from '../../helpers/etherscan-verification'; interface VerifyParams { contractName: string; address: string; constructorArguments: string[]; libraries: string; } task('verify-sc', 'Inits the DRE, to have access to all the plugins') .addParam('address', 'Ethereum address of the smart contract') .addOptionalParam( 'libraries', 'Stringified JSON object in format of {library1: "0x2956356cd2a2bf3202f771f50d3d14a367b48071"}' ) .addOptionalVariadicPositionalParam( 'constructorArguments', 'arguments for contract constructor', [] ) .setAction(async ({ address, constructorArguments = [], libraries }: VerifyParams, localBRE) => { await localBRE.run('set-DRE'); checkVerification(); const result = await verifyContract(address, constructorArguments, libraries); return result; });