libzeropool_zkbob/
lib.rs

1#[macro_use]
2pub extern crate fawkes_crypto;
3
4use serde_json;
5
6pub mod constants;
7pub mod native;
8pub mod circuit;
9pub mod helpers;
10
11
12use crate::native::params::PoolBN256;
13
14
15
16
17use fawkes_crypto::engines::bn256::{JubJubBN256, Fr};
18use fawkes_crypto::native::poseidon::PoseidonParams;
19
20use lazy_static::lazy_static;
21
22
23#[cfg(feature="cli_libzeropool_setup")]
24pub use clap;
25
26
27lazy_static! {
28    pub static ref POOL_PARAMS: PoolBN256 = {
29        let poseidon_params_t_2:PoseidonParams<Fr> = serde_json::from_str(include_str!("../res/poseidon_params_t_2.json")).unwrap();
30        let poseidon_params_t_3:PoseidonParams<Fr> = serde_json::from_str(include_str!("../res/poseidon_params_t_3.json")).unwrap();
31        let poseidon_params_t_4:PoseidonParams<Fr> = serde_json::from_str(include_str!("../res/poseidon_params_t_4.json")).unwrap();
32        let poseidon_params_t_5:PoseidonParams<Fr> = serde_json::from_str(include_str!("../res/poseidon_params_t_5.json")).unwrap();
33        let poseidon_params_t_6:PoseidonParams<Fr> = serde_json::from_str(include_str!("../res/poseidon_params_t_6.json")).unwrap();
34        
35        PoolBN256 {
36            jubjub: JubJubBN256::new(),
37            hash: poseidon_params_t_2.clone(),
38            compress: poseidon_params_t_3,
39            note: poseidon_params_t_5,
40            account: poseidon_params_t_6.clone(),
41            eddsa: poseidon_params_t_4.clone(),
42            sponge: poseidon_params_t_6,
43            nullifier_intermediate: poseidon_params_t_4
44        }
45    };
46}