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.