1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
//! This submodule provides the legacy flavor/interface of the o1vm, and is not
//! supposed to be used anymore.
//!
//! This o1vm flavor was supposed to use the [folding](folding) library defined
//! in [folding](folding), which consists of reducing all constraints to degree
//! 2, in addition to the `ivc` library defined in this monorepo to support long
//! traces.
//! The goal of this flavor was to support the curve `bn254`. For the time
//! being, the project has been stopped in favor of the pickles version defined
//! in [crate::pickles] and we do not aim to provide any support for now.
//!
//! You can still run the legacy flavor by using:
//!
//! ```bash
//! O1VM_FLAVOR=legacy bash run-code.sh
//! ```
use ark_ec::bn::Bn;
use mina_poseidon::{
constants::PlonkSpongeConstantsKimchi,
sponge::{DefaultFqSponge, DefaultFrSponge},
};
use poly_commitment::kzg::KZGProof;
/// Scalar field of BN254
pub type Fp = ark_bn254::Fr;
/// Elliptic curve group of BN254
pub type Curve = ark_bn254::G1Affine;
pub type Pairing = ark_bn254::Bn254;
pub type BaseSponge = DefaultFqSponge<ark_bn254::g1::Config, SpongeParams>;
pub type ScalarSponge = DefaultFrSponge<Fp, SpongeParams>;
pub type SpongeParams = PlonkSpongeConstantsKimchi;
pub type OpeningProof = KZGProof<Bn<ark_bn254::Config>>;
pub mod folding;
pub mod proof;
pub mod trace;