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