1
0
Fork 0
mirror of synced 2025-09-23 04:08:33 +00:00
ZoKrates/zokrates_test/tests/wasm.rs
2023-03-31 12:41:44 +02:00

39 lines
1.2 KiB
Rust

wasm_bindgen_test_configure!(run_in_browser);
extern crate wasm_bindgen_test;
extern crate zokrates_core;
extern crate zokrates_field;
use wasm_bindgen_test::*;
use zokrates_ast::flat::{Parameter, Variable};
use zokrates_ast::ir::{Prog, Statement};
use zokrates_field::Bn128Field;
use zokrates_interpreter::Interpreter;
use zokrates_proof_systems::{Backend, NonUniversalBackend};
use rand_0_8::{rngs::StdRng, SeedableRng};
use zokrates_ark::Ark;
use zokrates_proof_systems::groth16::G16;
#[wasm_bindgen_test]
fn generate_proof() {
let program: Prog<Bn128Field> = Prog {
arguments: vec![Parameter::public(Variable::new(0))],
return_count: 1,
statements: vec![Statement::constraint(Variable::new(0), Variable::new(0))],
solvers: vec![],
};
let interpreter = Interpreter::default();
let witness = interpreter
.execute(program.clone(), &[Bn128Field::from(42)])
.unwrap();
let rng = &mut StdRng::from_entropy();
let keypair = <Ark as NonUniversalBackend<Bn128Field, G16>>::setup(program.clone(), rng);
let _proof = <Ark as Backend<Bn128Field, G16>>::generate_proof(
program,
witness,
keypair.pk.as_slice(),
rng,
);
}