frontend/worldcoin_mpc/
test_helpers.rs

1use shared_types::Fr;
2
3use crate::{
4    layouter::builder::{Circuit, LayerVisibility},
5    worldcoin_mpc::{
6        circuits::build_circuit,
7        data::{fetch_inversed_test_data, generate_trivial_test_data},
8    },
9};
10
11use super::circuits::mpc_attach_data;
12
13/// Return the circuit description, with the specified `layer_visibility` for privacy-sensitive
14/// layers, and inputs for a trivial mpc circuit.
15pub fn small_circuit_description_and_inputs<
16    const NUM_IRIS_4_CHUNKS: usize,
17    const PARTY_IDX: usize,
18>(
19    layer_visibility: LayerVisibility,
20) -> Circuit<Fr> {
21    let mut circuit = build_circuit::<Fr, NUM_IRIS_4_CHUNKS>(layer_visibility);
22
23    let (const_data, input_data) = generate_trivial_test_data::<Fr, NUM_IRIS_4_CHUNKS, PARTY_IDX>();
24
25    mpc_attach_data(&mut circuit, const_data, input_data);
26
27    circuit
28}
29
30/// Return the circuit description, with the specified `layer_visibility` for privacy-sensitive
31/// layers, with the input data from Inversed Tech.
32pub fn inversed_circuit_description_and_inputs<
33    const NUM_IRIS_4_CHUNKS: usize,
34    const PARTY_IDX: usize,
35>(
36    test_idx: usize,
37    layer_visibility: LayerVisibility,
38) -> Circuit<Fr> {
39    let mut circuit = build_circuit::<Fr, NUM_IRIS_4_CHUNKS>(layer_visibility);
40
41    let (const_data, input_data) =
42        fetch_inversed_test_data::<Fr, NUM_IRIS_4_CHUNKS, PARTY_IDX>(test_idx);
43
44    mpc_attach_data(&mut circuit, const_data, input_data);
45
46    circuit
47}