Skip to main content

mina_tree/proofs/
mod.rs

1use field::FieldWitness;
2use poly_commitment::ipa::{OpeningProof, SRS};
3
4use mina_poseidon::pasta::FULL_ROUNDS;
5
6pub mod accumulator_check;
7pub mod block;
8pub mod caching;
9pub mod circuit_blobs;
10pub mod constants;
11mod conv;
12pub mod field;
13pub mod group_map;
14pub mod merge;
15pub mod numbers;
16pub mod opt_sponge;
17mod prover;
18pub mod provers;
19pub mod public_input;
20pub mod step;
21pub mod to_field_elements;
22pub mod transaction;
23pub mod transition_chain;
24pub mod unfinalized;
25mod urs_utils;
26pub mod util;
27pub mod verification;
28pub mod verifiers;
29pub mod witness;
30pub mod wrap;
31pub mod zkapp;
32
33pub const BACKEND_TICK_ROUNDS_N: usize = 16;
34pub const BACKEND_TOCK_ROUNDS_N: usize = 15;
35
36pub type VerifierIndex<F> = kimchi::verifier_index::VerifierIndex<
37    FULL_ROUNDS,
38    <F as FieldWitness>::OtherCurve,
39    SRS<<F as FieldWitness>::OtherCurve>,
40>;
41pub type ProverIndex<F> = kimchi::prover_index::ProverIndex<
42    FULL_ROUNDS,
43    <F as FieldWitness>::OtherCurve,
44    SRS<<F as FieldWitness>::OtherCurve>,
45>;
46pub type ProverProof<F> = kimchi::proof::ProverProof<
47    <F as FieldWitness>::OtherCurve,
48    OpeningProof<<F as FieldWitness>::OtherCurve, FULL_ROUNDS>,
49    FULL_ROUNDS,
50>;
51
52pub fn generate_tx_proof(
53    params: transaction::TransactionParams,
54) -> anyhow::Result<wrap::WrapProof> {
55    use mina_curves::pasta::Fp;
56    use witness::Witness;
57    let mut w: Witness<Fp> = Witness::new::<constants::StepTransactionProof>();
58    transaction::generate_tx_proof(params, &mut w)
59}
60
61pub fn generate_merge_proof(params: merge::MergeParams) -> anyhow::Result<wrap::WrapProof> {
62    use mina_curves::pasta::Fp;
63    use witness::Witness;
64    let mut w: Witness<Fp> = Witness::new::<constants::StepMergeProof>();
65    merge::generate_merge_proof(params, &mut w)
66}
67
68pub fn generate_block_proof(params: block::BlockParams) -> anyhow::Result<wrap::WrapProof> {
69    use mina_curves::pasta::Fp;
70    use witness::Witness;
71    let mut w: Witness<Fp> = Witness::new::<constants::StepBlockProof>();
72    block::generate_block_proof(params, &mut w)
73}
74pub use zkapp::generate_zkapp_proof;