Skip to content

Commit 58c116c

Browse files
committed
Small fixes
1 parent ea61b95 commit 58c116c

File tree

5 files changed

+43
-9
lines changed

5 files changed

+43
-9
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ module.exports = {
6262
setupSettings: {
6363
contributionSettings: {
6464
provingSystem: "groth16",
65-
contributions: 1,
65+
contributions: 2,
6666
},
6767
onlyFiles: [],
6868
skipFiles: [],

src/core/zkit/CircuitZKitBuilder.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,16 @@ export class CircuitZKitBuilder implements ICircuitZKitBuilder {
4444
if (this._isTSProject) {
4545
if (circuitArtifact.baseCircuitInfo.protocol.length > 1 && !provingSystem) {
4646
throw new HardhatZKitError(
47-
"Found several proving systems. Please specify the exact proving system in getCircuit function",
47+
"Found several proving systems. Please specify the exact proving system in the getCircuit function.",
4848
);
49-
} else if (circuitArtifact.baseCircuitInfo.protocol.length === 1) {
49+
}
50+
51+
if (circuitArtifact.baseCircuitInfo.protocol.length === 1) {
5052
const existingProvingSystem: ProvingSystemType = circuitArtifact.baseCircuitInfo.protocol[0];
5153

5254
if (provingSystem && provingSystem !== existingProvingSystem) {
5355
throw new HardhatZKitError(
54-
`Passed invalid proving system. Please pass ${existingProvingSystem} proving system or run make task with needed proving systems`,
56+
`Invalid proving system is passed. Please pass ${existingProvingSystem} proving system or recompile the circuits with the needed one.`,
5557
);
5658
}
5759

@@ -64,7 +66,7 @@ export class CircuitZKitBuilder implements ICircuitZKitBuilder {
6466
} else {
6567
if (!provingSystem || !circuitArtifact.baseCircuitInfo.protocol.includes(provingSystem)) {
6668
throw new HardhatZKitError(
67-
"Passed undefined or invalid proving system. Please run make task or change proving system.",
69+
"Undefined or invalid proving system is passed. Please recompile the circuits or change the proving system.",
6870
);
6971
}
7072

src/index.ts

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import path from "path";
33
import fs from "fs";
44

55
import { lazyObject } from "hardhat/plugins";
6-
import { extendConfig, extendEnvironment, scope, task, types } from "hardhat/config";
6+
import { extendConfig, extendEnvironment, scope, subtask, task, types } from "hardhat/config";
77
import { ActionType, HardhatRuntimeEnvironment, RunSuperFunction } from "hardhat/types";
88
import { TASK_CLEAN, TASK_COMPILE_SOLIDITY_READ_FILE as TASK_READ_FILE } from "hardhat/builtin-tasks/task-names";
99

@@ -18,6 +18,7 @@ import {
1818
TASK_CIRCUITS_SETUP,
1919
TASK_GENERATE_VERIFIERS,
2020
TASK_ZKIT_CLEAN,
21+
SUBTASK_ZKIT_GET_CIRCUIT_ZKIT,
2122
} from "./task-names";
2223

2324
import { zkitConfigExtender } from "./config/config";
@@ -44,7 +45,13 @@ import { CircuitArtifacts } from "./artifacts/CircuitArtifacts";
4445
import { CIRCUITS_COMPILE_CACHE_FILENAME, CIRCUITS_SETUP_CACHE_FILENAME } from "./constants";
4546
import { getNormalizedFullPath, getUniqueProvingSystems } from "./utils";
4647

47-
import { MakeTaskConfig, CompileTaskConfig, GenerateVerifiersTaskConfig, SetupTaskConfig } from "./types/tasks";
48+
import {
49+
MakeTaskConfig,
50+
CompileTaskConfig,
51+
GenerateVerifiersTaskConfig,
52+
SetupTaskConfig,
53+
GetCircuitZKitConfig,
54+
} from "./types/tasks";
4855
import { CircuitArtifact } from "./types/artifacts/circuit-artifacts";
4956
import { CompileFlags, CircomResolvedFileInfo, CircuitSetupInfo, SetupContributionSettings } from "./types/core";
5057
import { ProvingSystemData } from "./types/cache";
@@ -67,7 +74,7 @@ extendEnvironment((hre) => {
6774
circuitName: string,
6875
provingSystem?: ProvingSystemType,
6976
): Promise<CircuitZKit<ProvingSystemType>> => {
70-
return circuitZKitBuilder.getCircuitZKit(circuitName, provingSystem);
77+
return hre.run(SUBTASK_ZKIT_GET_CIRCUIT_ZKIT, { circuitName, provingSystem });
7178
},
7279
};
7380
});
@@ -317,6 +324,17 @@ const clean: ActionType<any> = async (_taskArgs: any, env: HardhatRuntimeEnviron
317324
fs.rmSync(circuitTypesFullPath, { recursive: true, force: true });
318325
};
319326

327+
const getCircuitZKit: ActionType<GetCircuitZKitConfig> = async (
328+
taskArgs: GetCircuitZKitConfig,
329+
env: HardhatRuntimeEnvironment,
330+
): Promise<CircuitZKit<ProvingSystemType>> => {
331+
return env.zkit.circuitZKitBuilder.getCircuitZKit(
332+
taskArgs.circuitName,
333+
taskArgs.provingSystem,
334+
taskArgs.verifiersDir,
335+
);
336+
};
337+
320338
task(TASK_CLEAN).setAction(async (_taskArgs: any, env: HardhatRuntimeEnvironment, runSuper: RunSuperFunction<any>) => {
321339
await runSuper();
322340

@@ -370,3 +388,9 @@ zkitScope
370388
.setAction(generateVerifiers);
371389

372390
zkitScope.task(TASK_ZKIT_CLEAN, "Clean all circuit artifacts, keys, types and etc").setAction(clean);
391+
392+
subtask(SUBTASK_ZKIT_GET_CIRCUIT_ZKIT)
393+
.addOptionalParam("verifiersDir", undefined, undefined, types.string)
394+
.addOptionalParam("verifierTemplateType", undefined, undefined, types.any)
395+
.addParam("circuitName", undefined, undefined, types.string)
396+
.setAction(getCircuitZKit);

src/task-names.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ export const TASK_CIRCUITS_COMPILE = "compile";
55
export const TASK_CIRCUITS_SETUP = "setup";
66
export const TASK_GENERATE_VERIFIERS = "verifiers";
77
export const TASK_ZKIT_CLEAN = "clean";
8+
9+
export const SUBTASK_ZKIT_GET_CIRCUIT_ZKIT = "zkit:get-circuit-zkit";

src/types/tasks.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { VerifierLanguageType } from "@solarity/zkit";
1+
import { ProvingSystemType, VerifierLanguageType } from "@solarity/zkit";
22

33
export type MakeTaskConfig = {
44
force: boolean;
@@ -27,3 +27,9 @@ export type GenerateVerifiersTaskConfig = {
2727
quiet: boolean;
2828
force: boolean;
2929
};
30+
31+
export type GetCircuitZKitConfig = {
32+
circuitName: string;
33+
verifiersDir?: string;
34+
provingSystem?: ProvingSystemType;
35+
};

0 commit comments

Comments
 (0)