2020-11-05 11:18:20 +00:00
|
|
|
import {task} from 'hardhat/config';
|
2020-08-20 15:35:05 +00:00
|
|
|
import {verifyContract, checkVerification} from '../../helpers/etherscan-verification';
|
|
|
|
|
|
|
|
interface VerifyParams {
|
|
|
|
contractName: string;
|
|
|
|
address: string;
|
|
|
|
constructorArguments: string[];
|
|
|
|
libraries: string;
|
|
|
|
}
|
|
|
|
|
2020-11-05 12:44:20 +00:00
|
|
|
task('verify-sc', 'Inits the DRE, to have access to all the plugins')
|
2020-08-20 15:35:05 +00:00
|
|
|
.addParam('contractName', 'Name of the Solidity smart contract')
|
|
|
|
.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 (
|
|
|
|
{contractName, address, constructorArguments = [], libraries}: VerifyParams,
|
|
|
|
localBRE
|
|
|
|
) => {
|
2020-11-05 12:44:20 +00:00
|
|
|
await localBRE.run('set-DRE');
|
2020-08-20 15:35:05 +00:00
|
|
|
|
|
|
|
checkVerification();
|
|
|
|
|
|
|
|
const result = await verifyContract(contractName, address, constructorArguments, libraries);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
);
|