arnaucube
arnaucube/sonobe-playgroundPublic Self-hosted repository
sonobe-playground/src/scenario_config.rs
src/scenario_config.rsRaw
 1use ark_bn254::Fr;
 2use num_traits::Zero;
 3use sonobe::frontend::circom::CircomFCircuit;
 4use tracing::info_span;
 5
 6use crate::{circuit::create_circuit, input::prepare_input};
 7
 8#[derive(Clone)]
 9pub struct ScenarioConfig {
10    pub num_inputs: usize,
11    pub start_ivc_state: Vec<Fr>,
12    pub circuit: CircomFCircuit<Fr>,
13    input: Vec<Vec<Fr>>,
14}
15
16impl ScenarioConfig {
17    pub fn new() -> Self {
18        Self {
19            num_inputs: 6,
20            start_ivc_state: vec![Fr::zero(); 2],
21            circuit: info_span!("Prepare circuit").in_scope(create_circuit),
22            input: info_span!("Prepare input").in_scope(prepare_input),
23        }
24    }
25
26    pub fn input(&self) -> &[Vec<Fr>] {
27        &self.input[..self.num_inputs]
28    }
29}