|
15 | 15 | This hardhat plugin is a zero-config, one-stop Circom development environment that streamlines circuits management and lets you focus on the important - code.
|
16 | 16 |
|
17 | 17 | - Developer-oriented abstractions that simplify `r1cs`, `zkey`, `vkey`, and `witness` generation processes.
|
18 |
| -- Supporting of the `groth16` and `plonk` proving systems. |
| 18 | +- Support for `groth16` and `plonk` proving systems. |
19 | 19 | - Recompilation of only the modified circuits.
|
20 | 20 | - Full TypeScript typization of signals and ZK proofs.
|
21 | 21 | - Automatic downloads of phase-1 `ptau` files.
|
@@ -62,7 +62,7 @@ module.exports = {
|
62 | 62 | },
|
63 | 63 | setupSettings: {
|
64 | 64 | contributionSettings: {
|
65 |
| - provingSystem: "groth16", // Or ["groth16", "plonk"] |
| 65 | + provingSystem: "groth16", // or ["groth16", "plonk"] |
66 | 66 | contributions: 2,
|
67 | 67 | },
|
68 | 68 | onlyFiles: [],
|
@@ -202,11 +202,6 @@ describe("Multiplier", () => {
|
202 | 202 | it("should test the circuit", async () => {
|
203 | 203 | const circuit: Multiplier = await zkit.getCircuit("Multiplier");
|
204 | 204 | // or await zkit.getCircuit("circuits/multiplier.circom:Multiplier");
|
205 |
| - |
206 |
| - /* |
207 |
| - * If you set up both proving systems you will need to specify exact proving system in getCircuit function: |
208 |
| - * const circuit: Multiplier = await zkit.getCircuit("Multiplier", "plonk"); |
209 |
| - */ |
210 | 205 |
|
211 | 206 | // witness testing
|
212 | 207 | await expect(circuit)
|
@@ -249,19 +244,18 @@ The method works regardless of how the circuit was compiled, however, if `zkit c
|
249 | 244 |
|
250 | 245 | In case there are conflicts between circuit file names and `main` component names, you should use the `fullCircuitName`, which has the following form: `circuitSourceName:circuitName`.
|
251 | 246 |
|
252 |
| -`provingSystem` parameter should be specified only if several proving systems have been specified in the config. |
| 247 | +The optional `provingSystem` parameter should be specified only if multiple proving systems were set in the config. |
253 | 248 |
|
254 | 249 | Where:
|
255 | 250 |
|
256 | 251 | - `circuitSourceName` - Path to the circuit file from the project root.
|
257 | 252 | - `circuitName` - Circuit `main` component name.
|
258 |
| -- `provingSystem` - Optional parameter that can be `groth16` or `plonk` |
| 253 | +- `provingSystem` - Optional parameter that can either be `groth16` or `plonk`. |
259 | 254 |
|
260 | 255 | > [!IMPORTANT]
|
261 | 256 | > Please note that the method actually returns the [`zktype`](https://github.com/dl-solarity/zktype) typed zkit wrapper objects which enable full TypeScript typization of signals and proofs. Also, check out the [`zkit`](https://github.com/dl-solarity/zkit) documentation to understand zkit object capabilities and how to interact with circuits.
|
262 | 257 |
|
263 | 258 | ## Known limitations
|
264 | 259 |
|
265 |
| -- Sometimes `hardhat` scripts that generate ZK proofs may run indefinitely. This will be fixed in the next major release. |
266 | 260 | - Currently there is minimal support for `var` Circom variables. Some circuits may not work if you are using complex `var`-dependent expressions.
|
267 | 261 | - Due to current `wasm` memory limitations (address space is 32-bit), the plugin may fail to compile especially large circuits on some platforms.
|
0 commit comments