mod.rs 955 B

123456789101112131415161718192021222324252627282930313233343536
  1. pub mod coin;
  2. pub mod diffie_hellman;
  3. pub mod fr_serial;
  4. pub mod merkle;
  5. pub mod mint_proof;
  6. pub mod note;
  7. pub mod schnorr;
  8. pub mod spend_proof;
  9. pub mod util;
  10. use bellman::groth16;
  11. use bls12_381::Bls12;
  12. use crate::error::Result;
  13. pub use mint_proof::{create_mint_proof, setup_mint_prover, verify_mint_proof, MintRevealedValues};
  14. pub use spend_proof::{
  15. create_spend_proof, setup_spend_prover, verify_spend_proof, SpendRevealedValues,
  16. };
  17. pub fn save_params(filename: &str, params: &groth16::Parameters<Bls12>) -> Result<()> {
  18. let buffer = std::fs::File::create(filename)?;
  19. params.write(buffer)?;
  20. Ok(())
  21. }
  22. pub fn load_params(
  23. filename: &str,
  24. ) -> Result<(
  25. groth16::Parameters<Bls12>,
  26. groth16::PreparedVerifyingKey<Bls12>,
  27. )> {
  28. let buffer = std::fs::File::open(filename)?;
  29. let params = groth16::Parameters::<Bls12>::read(buffer, false)?;
  30. let pvk = groth16::prepare_verifying_key(&params.vk);
  31. Ok((params, pvk))
  32. }