use ark_ec::{CurveGroup, VariableBaseMSM};
use ark_grumpkin::{Affine, Fr, Projective};
use ark_std::UniformRand;
use blitzar::compute::*;
fn main() {
let data: Vec<u16> = vec![2, 3, 1, 5, 4, 7, 6, 8, 9, 10];
let mut rng = ark_std::test_rng();
let generator_points: Vec<Affine> = (0..data.len()).map(|_| Affine::rand(&mut rng)).collect();
let mut commitments = vec![Affine::default(); 1];
compute_grumpkin_uncompressed_commitments_with_generators(
&mut commitments,
&[(&data).into()],
&generator_points,
);
let mut scalar_data: Vec<Fr> = Vec::new();
for d in &data {
scalar_data.push(Fr::from(*d));
}
let ark_commitment = Projective::msm(&generator_points, &scalar_data).unwrap();
println!("Computed Commitment: {:?}\n", commitments[0]);
println!("Expected Commitment: {:?}\n", ark_commitment.into_affine());
}