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