use ark_ff::PrimeField; use ark_serialize::CanonicalSerialize; /// Transcript is the application level transcript to derive the challenges /// needed for Fiat Shamir during aggregation. It is given to the /// prover/verifier so that the transcript can be fed with any other data first. /// TODO: Make this trait the only Transcript trait pub trait Transcript { fn domain_sep(&mut self); fn append(&mut self, label: &'static [u8], point: &S); fn challenge_scalar(&mut self, label: &'static [u8]) -> F; fn challenge_scalar_vec(&mut self, label: &'static [u8], n: usize) -> Vec { (0..n).map(|_| self.challenge_scalar(label)).collect() } } pub use crate::poseidon_transcript::TranscriptWriter;