arnaucube
arnaucube/sonobe-playgroundPublic Self-hosted repository
sonobe-playground/src/circuit.rs
src/circuit.rsRaw
 1use std::env::current_dir;
 2use ark_bn254::Fr;
 3use sonobe::frontend::circom::CircomFCircuit;
 4use sonobe::frontend::FCircuit;
 5
 6const IVC_STEP_WIDTH: usize = 2;
 7const STEP_INPUT_WIDTH: usize = 256;
 8
 9pub fn create_circuit() -> CircomFCircuit<Fr> {
10    let root = current_dir().expect("Failed to get current directory");
11    let circuit_file = root.join("circuit/grayscale_step.r1cs");
12    let witness_generator_file = root.join("circuit/grayscale_step_js/grayscale_step.wasm");
13
14    let f_circuit_params = (
15        circuit_file.into(),
16        witness_generator_file.into(),
17        IVC_STEP_WIDTH,
18        STEP_INPUT_WIDTH,
19    );
20    CircomFCircuit::<Fr>::new(f_circuit_params).expect("Failed to create circuit")
21}