Function zkevm_circuits::root_circuit::aggregate
source · pub fn aggregate<'a, M, As>(
params: &ParamsKZG<M>,
snarks: impl IntoIterator<Item = Snark<'a, M::G1Affine>>
) -> Result<[M::Fr; 16], Error>where
M: MultiMillerLoop,
M::Fr: PrimeField + FromUniformBytes<64>,
M::G1: CurveExt<AffineExt = M::G1Affine, ScalarExt = M::Fr>,
M::G1Affine: SerdeObject + CurveAffine<ScalarExt = M::Fr, CurveExt = M::G1>,
M::G2Affine: SerdeObject + CurveAffine,
for<'b> As: PolynomialCommitmentScheme<M::G1Affine, NativeLoader, VerifyingKey = KzgSvk<M>, Output = KzgAccumulator<M::G1Affine, NativeLoader>> + AccumulationSchemeProver<M::G1Affine, Accumulator = KzgAccumulator<M::G1Affine, NativeLoader>, ProvingKey = KzgAsProvingKey<M::G1Affine>> + AccumulationDecider<M::G1Affine, NativeLoader, DecidingKey = KzgDecidingKey<M>>,
Expand description
Aggregate snarks into a single accumulator and decompose it into
4 * LIMBS
limbs.
Returns None
if any given snarks is invalid.