use ark_crypto_primitives::sponge::Absorb; use ark_ec::{CurveGroup, Group}; use super::CommittedInstance; use crate::transcript::{poseidon::PoseidonTranscript, Transcript}; use crate::Error; /// ProtoGalaxyTranscript extends [`Transcript`] with the method to absorb ProtoGalaxy's /// CommittedInstance. pub trait ProtoGalaxyTranscript: Transcript { fn absorb_committed_instance(&mut self, ci: &CommittedInstance) -> Result<(), Error> { self.absorb_point(&ci.phi)?; self.absorb_vec(&ci.betas); self.absorb(&ci.e); Ok(()) } } // Implements ProtoGalaxyTranscript for PoseidonTranscript impl ProtoGalaxyTranscript for PoseidonTranscript where ::ScalarField: Absorb { }