use crate::field::field::Field; use crate::target::Target2; pub struct Hash { elements: Vec, } pub struct HashTarget { elements: Vec, } pub struct Proof2 { /// Merkle root of LDEs of wire values. pub wires_root: Hash, /// Merkle root of LDEs of Z, in the context of Plonk's permutation argument. pub plonk_z_root: Hash, /// Merkle root of LDEs of the quotient polynomial components. pub plonk_t_root: Hash, /// Purported values of each polynomial at each challenge point. pub openings: Vec>, // TODO: FRI Merkle proofs. } pub struct ProofTarget2 { /// Merkle root of LDEs of wire values. pub wires_root: HashTarget, /// Merkle root of LDEs of Z, in the context of Plonk's permutation argument. pub plonk_z_root: HashTarget, /// Merkle root of LDEs of the quotient polynomial components. pub plonk_t_root: HashTarget, /// Purported values of each polynomial at each challenge point. pub openings: Vec, // TODO: FRI Merkle proofs. } /// The purported values of each polynomial at a single point. pub struct OpeningSet { pub constants: Vec, pub plonk_sigmas: Vec, pub wires: Vec, // TODO: One or multiple? pub plonk_z: Vec, pub plonk_t: Vec, } /// The purported values of each polynomial at a single point. pub struct OpeningSetTarget { pub constants: Vec, pub plonk_sigmas: Vec, pub wires: Vec, // TODO: One or multiple? pub plonk_z: Vec, pub plonk_t: Vec, }