#![allow(clippy::drop_ref)]
#![allow(incomplete_features)]
#![feature(array_chunks)]
#![feature(stmt_expr_attributes)]
#![feature(generic_const_exprs)]
#![feature(iter_array_chunks)]
#![feature(iter_next_chunk)]
#![feature(associated_type_defaults)]
pub type Field = GoldilocksField;
pub type RoundFunction = Poseidon2Goldilocks;
pub const BASE_LAYER_FRI_LDE_FACTOR: usize = 2;
pub const BASE_LAYER_CAP_SIZE: usize = 16;
pub const SECURITY_BITS_TARGET: usize = 100;
pub const RECURSION_LAYER_FRI_LDE_FACTOR: usize = 2;
pub const RECURSION_LAYER_CAP_SIZE: usize = 16;
pub const L1_SECURITY_BITS: usize = 80;
pub const EIP4844_CYCLE_LIMIT: usize = 4096;
pub use snark_wrapper;
use snark_wrapper::boojum::field::goldilocks::GoldilocksField;
use crate::boojum::cs::implementations::prover::ProofConfig;
pub fn base_layer_proof_config() -> ProofConfig {
ProofConfig {
fri_lde_factor: BASE_LAYER_FRI_LDE_FACTOR,
merkle_tree_cap_size: BASE_LAYER_CAP_SIZE,
fri_folding_schedule: None,
security_level: SECURITY_BITS_TARGET,
pow_bits: 0,
}
}
pub fn recursion_layer_proof_config() -> ProofConfig {
ProofConfig {
fri_lde_factor: RECURSION_LAYER_FRI_LDE_FACTOR,
merkle_tree_cap_size: RECURSION_LAYER_CAP_SIZE,
fri_folding_schedule: None,
security_level: SECURITY_BITS_TARGET,
pow_bits: 0,
}
}
pub mod aux_definitions;
pub mod circuit_definitions;
pub use circuit_encodings as encodings;
use crate::boojum::implementations::poseidon2::Poseidon2Goldilocks;
pub use zk_evm::ethereum_types;
pub type ZkSyncDefaultRoundFunction = Poseidon2Goldilocks;
pub use crate::zkevm_circuits::boojum;
pub use circuit_encodings::zk_evm;
pub use circuit_encodings::zkevm_circuits;