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}