harsta
Version:
Harsta is a contract development tool based on Hardhat, designed to streamline the development, testing, and referencing of contracts, addresses, ABIs, and contract instances.
42 lines (37 loc) • 1.24 kB
text/typescript
import type { Argv } from 'yargs'
import { deployer, environment, verifier } from '../features'
import { getRuntimeRequiredNetwork } from './utils'
export function registerVerifyCommand(cli: Argv) {
cli.command(
'verify [target]',
'verify the source of code of deployed contracts',
args => args
.positional('target', {
type: 'string',
describe: 'contract name or address',
demandOption: true,
})
.option('network', {
alias: 'n',
type: 'string',
describe: 'The harsta network used',
})
.option('force', {
type: 'boolean',
default: false,
})
.help(),
async (args) => {
const network = getRuntimeRequiredNetwork(args.network)
await environment.initial(network)
const deployed = await deployer.getDeployed(args.target)
const address = await deployer.getAddress(args.target)
if (!address)
throw new Error(`The contract(${args.target}) has not been deployed and manual verification is not currently supported`)
await verifier.verify(address, {
arguments: (args.force && !deployed.kind && deployed.args) || undefined,
force: args.force,
})
},
)
}