@broxus/locklift-verifier
Version:
Locklift plugin for integration with Everscan contract verification service
36 lines (33 loc) • 1.44 kB
text/typescript
export * from "./type-extensions";
import "./type-extensions";
import "locklift";
import { PLUGIN_NAME } from "./type-extensions";
import { addPlugin, ExtenderActionParams } from "locklift/plugins";
import { getVerificationApp } from "./verification-cli";
addPlugin({
pluginName: PLUGIN_NAME,
commandBuilders: [
{
commandCreator: (command) =>
command
.name("verify")
.allowUnknownOption()
.action(async (option: ExtenderActionParams) => {
const config = option.config();
if (!("version" in config.compiler) || !("version" in (config.linker || {}))) {
throw new Error("The verification plugin supports only explicitly provided linker and compiler version");
}
const verificationApp = await getVerificationApp({
version: option.config().verifier.verifierVersion,
linkerVersion: (config.linker! as { version: string }).version as unknown as string,
compilerVersion: config.compiler.version as unknown as string,
apiKey: option.config().verifier.apiKey,
secret: option.config().verifier.secretKey,
license: option.config().verifier.license || "AGPL-3.0-or-later",
});
await verificationApp.verify({ contractsPath: option.contracts, restParams: command.args });
process.exit(0);
}),
},
],
});