@matterlabs/hardhat-zksync-verify
Version:
Hardhat plugin to verify smart contracts for the ZKsync network
37 lines • 2.23 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const config_1 = require("hardhat/config");
const chalk_1 = __importDefault(require("chalk"));
const constants_1 = require("../../constants");
const errors_1 = require("../../errors");
const constants_2 = require("../constants");
const service_1 = require("./service");
const chain_config_1 = require("./chain-config");
(0, config_1.subtask)(constants_1.TASK_VERIFY_ZKSYNC_EXPLORER)
.addParam('address')
.addOptionalParam('constructorArguments', undefined, undefined, config_1.types.any)
.addOptionalParam('libraries', undefined, undefined, config_1.types.any)
.addOptionalParam('contract')
.addFlag('force')
.addFlag('noCompile')
.setAction(async (taskArgs, hre) => {
const providedChain = await (0, service_1.getProvidedChainConfig)(hre);
const chainConfig = await service_1.ZkSyncExplorerService.getCurrentChainConfig(hre.network.provider, providedChain ? [providedChain] : [], chain_config_1.builtinChains);
const explorer = await service_1.ZkSyncExplorerService.fromChainConfig(hre, chainConfig);
const { verificationId, contractVerifyDataInfo } = await explorer.verify(taskArgs.address, taskArgs.contract, taskArgs.constructorArguments, taskArgs.libraries, taskArgs.noCompile);
const result = await explorer.getVerificationStatusWithRetry(verificationId, contractVerifyDataInfo);
if (result.isSuccess()) {
return;
}
console.warn(chalk_1.default.red((0, constants_2.TRYING_VERIFICATION_WITH_FULL_COMPILER_INPUT)(contractVerifyDataInfo.contractName)));
const { verificationId: verificationIdFallback } = await explorer.verify(taskArgs.address, taskArgs.contract, taskArgs.constructorArguments, taskArgs.libraries, taskArgs.noCompile, true);
const fallbackResult = await explorer.getVerificationStatusWithRetry(verificationIdFallback, contractVerifyDataInfo);
if (fallbackResult.isSuccess()) {
return;
}
throw new errors_1.ZkSyncVerifyPluginError(fallbackResult.getError());
});
//# sourceMappingURL=task-actions.js.map