1use kimchi::mina_curves::pasta::Vesta;
2
3mod merkle_path;
4
5pub use ledger::proofs::{
6 caching::{srs_from_bytes, srs_to_bytes, verifier_index_from_bytes, verifier_index_to_bytes},
7 verifiers::{BlockVerifier, TransactionVerifier},
8};
9
10pub use merkle_path::calc_merkle_root_hash;
11
12pub mod block_verify;
13pub mod block_verify_effectful;
14pub mod user_command_verify;
15pub mod user_command_verify_effectful;
16pub mod work_verify;
17pub mod work_verify_effectful;
18
19mod snark_event;
20pub use snark_event::*;
21
22mod snark_actions;
23pub use snark_actions::*;
24
25mod snark_config;
26pub use snark_config::*;
27
28mod snark_state;
29pub use snark_state::*;
30
31mod snark_reducer;
32
33pub type VerifierIndex = ledger::proofs::VerifierIndex<mina_curves::pasta::Fq>;
34pub type VerifierSRS = poly_commitment::srs::SRS<Vesta>;
35
36use redux::SubStore;
37pub trait SnarkStore<GlobalState>:
38 SubStore<GlobalState, SnarkState, SubAction = SnarkAction>
39{
40}
41impl<S, T: SubStore<S, SnarkState, SubAction = SnarkAction>> SnarkStore<S> for T {}
42
43pub fn get_srs() -> std::sync::Arc<poly_commitment::srs::SRS<Vesta>> {
44 ledger::verifier::get_srs::<mina_curves::pasta::Fp>()
45}