Skip to content

Commit 5790bc7

Browse files
committed
feat: separate Sourcify-specific param from base verification task params
1 parent 945e73d commit 5790bc7

4 files changed

Lines changed: 35 additions & 17 deletions

File tree

v-next/hardhat-verify/src/internal/tasks/verify/index.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ import type { NewTaskDefinition } from "hardhat/types/tasks";
22

33
import { task } from "hardhat/config";
44

5-
import { extendWithVerificationArgs } from "./utils.js";
5+
import { extendWithSourcifyArgs, extendWithVerificationArgs } from "./utils.js";
66

7-
const verifyTask: NewTaskDefinition = extendWithVerificationArgs(
8-
task("verify", "Verify a contract on all supported explorers"),
7+
const verifyTask: NewTaskDefinition = extendWithSourcifyArgs(
8+
extendWithVerificationArgs(
9+
task("verify", "Verify a contract on all supported explorers"),
10+
),
911
)
1012
.setAction(() => import("./task-action.js"))
1113
.build();

v-next/hardhat-verify/src/internal/tasks/verify/sourcify/index.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,16 @@ import type { NewTaskDefinition } from "hardhat/types/tasks";
22

33
import { task } from "hardhat/config";
44

5-
import { extendWithVerificationArgs } from "../utils.js";
5+
import {
6+
extendWithSourcifyArgs,
7+
extendWithVerificationArgs,
8+
} from "../utils.js";
69

7-
const verifySourcifyTask: NewTaskDefinition = extendWithVerificationArgs(
8-
task(["verify", "sourcify"], "Verify a contract on Sourcify"),
10+
const verifySourcifyTask: NewTaskDefinition = extendWithSourcifyArgs(
11+
extendWithVerificationArgs(
12+
task(["verify", "sourcify"], "Verify a contract on Sourcify"),
13+
),
14+
false,
915
)
1016
.setAction(() => import("./task-action.js"))
1117
.build();

v-next/hardhat-verify/src/internal/tasks/verify/types.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
import type { LibraryAddresses } from "../../libraries.js";
22

3-
export interface VerifyActionArgs {
3+
export interface BaseVerifyActionArgs {
44
address: string;
55
constructorArgs: string[];
66
constructorArgsPath?: string;
77
contract?: string;
88
librariesPath?: string;
99
force?: boolean;
10-
creationTxHash?: string;
1110
// TODO: M5
1211
// listNetworks?: boolean;
1312
}
1413

14+
export interface VerifyActionArgs extends BaseVerifyActionArgs {
15+
creationTxHash?: string; // Sourcify specific
16+
}
17+
1518
export interface VerifyActionResolvedArgs {
1619
address: string;
1720
constructorArgs: unknown[];

v-next/hardhat-verify/src/internal/tasks/verify/utils.ts

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import type { VerifyActionArgs } from "./types.js";
1+
import type { BaseVerifyActionArgs, VerifyActionArgs } from "./types.js";
22
import type { NewTaskDefinitionBuilder } from "hardhat/types/tasks";
33

44
import { ArgumentType } from "hardhat/types/arguments";
55

66
export function extendWithVerificationArgs(
77
task: NewTaskDefinitionBuilder,
8-
): NewTaskDefinitionBuilder<VerifyActionArgs> {
8+
): NewTaskDefinitionBuilder<BaseVerifyActionArgs> {
99
return task
1010
.addPositionalArgument({
1111
name: "address",
@@ -41,13 +41,6 @@ export function extendWithVerificationArgs(
4141
name: "force",
4242
description:
4343
"Force the verification even if the contract is already verified",
44-
})
45-
.addOption({
46-
name: "creationTxHash",
47-
type: ArgumentType.STRING_WITHOUT_DEFAULT,
48-
description:
49-
"The hash of the contract creation transaction (optional, used by Sourcify)",
50-
defaultValue: undefined,
5144
});
5245
/* TODO: M5
5346
.addFlag({
@@ -56,3 +49,17 @@ export function extendWithVerificationArgs(
5649
});
5750
*/
5851
}
52+
53+
export function extendWithSourcifyArgs(
54+
task: NewTaskDefinitionBuilder<BaseVerifyActionArgs>,
55+
isMainTask: boolean = true,
56+
): NewTaskDefinitionBuilder<VerifyActionArgs> {
57+
return task.addOption({
58+
name: "creationTxHash",
59+
type: ArgumentType.STRING_WITHOUT_DEFAULT,
60+
description:
61+
"The hash of the contract creation transaction" +
62+
(isMainTask ? " (Sourcify only)" : ""),
63+
defaultValue: undefined,
64+
});
65+
}

0 commit comments

Comments
 (0)