-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.ts
22 lines (19 loc) · 1.17 KB
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import { Circomkit } from "circomkit";
import type { CircuitExecution, CircuitParameters, ProgramExecution } from "../types";
export function prepareProgramForCircuit(program: ProgramExecution, circuit: CircuitParameters): CircuitExecution {
if (program.ticks > circuit.ticks) throw new Error("Program ticks exceed circuit ticks.");
if (program.memsize > circuit.memsize) throw new Error("Program memory exceed circuit memory.");
if (program.insize > circuit.insize) throw new Error("Program inputs exceed circuit inputs.");
if (program.outsize > circuit.outsize) throw new Error("Program outputs exceed circuit outputs.");
if (program.opsize > circuit.opsize) throw new Error("Program operations exceed circuit operations.");
return {
ops: program.ops.concat(Array.from({ length: circuit.opsize - program.opsize }, () => 0)),
inputs: program.inputs.concat(Array.from({ length: circuit.insize - program.insize }, () => 0)),
outputs: program.outputs.concat(Array.from({ length: circuit.outsize - program.outsize }, () => 0)),
};
}
export const circomkit = new Circomkit({
verbose: false,
optimization: 1, // using 2 makes compiling much longer
inspect: true,
});