libzeropool 0.5.6

zk-SNARK circuit and cryptography for ZeroPool
Documentation
#[macro_use]
pub extern crate fawkes_crypto;

use serde_json;

pub mod constants;
pub mod native;
pub mod circuit;
pub mod helpers;


use crate::native::params::PoolBN256;




use fawkes_crypto::engines::bn256::{JubJubBN256, Fr};
use fawkes_crypto::native::poseidon::PoseidonParams;

use lazy_static::lazy_static;


#[cfg(feature="cli_libzeropool_setup")]
pub use clap;


lazy_static! {
    pub static ref POOL_PARAMS: PoolBN256 = {
        let poseidon_params_t_2:PoseidonParams<Fr> = serde_json::from_str(include_str!("../res/poseidon_params_t_2.json")).unwrap();
        let poseidon_params_t_3:PoseidonParams<Fr> = serde_json::from_str(include_str!("../res/poseidon_params_t_3.json")).unwrap();
        let poseidon_params_t_4:PoseidonParams<Fr> = serde_json::from_str(include_str!("../res/poseidon_params_t_4.json")).unwrap();
        let poseidon_params_t_5:PoseidonParams<Fr> = serde_json::from_str(include_str!("../res/poseidon_params_t_5.json")).unwrap();
        let poseidon_params_t_6:PoseidonParams<Fr> = serde_json::from_str(include_str!("../res/poseidon_params_t_6.json")).unwrap();
        
        PoolBN256 {
            jubjub: JubJubBN256::new(),
            hash: poseidon_params_t_2.clone(),
            compress: poseidon_params_t_3,
            note: poseidon_params_t_5,
            account: poseidon_params_t_6.clone(),
            eddsa: poseidon_params_t_4.clone(),
            sponge: poseidon_params_t_6,
            nullifier_intermediate: poseidon_params_t_4
        }
    };
}