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;