mirror of
https://github.com/arnaucube/circom-compat.git
synced 2026-01-09 07:21:33 +01:00
Update ark-circom for arkworks 0.4.0 (#43)
This commit is contained in:
@@ -3,9 +3,10 @@ use ark_std::rand::thread_rng;
|
||||
use color_eyre::Result;
|
||||
|
||||
use ark_bn254::Bn254;
|
||||
use ark_groth16::{
|
||||
create_random_proof as prove, generate_random_parameters, prepare_verifying_key, verify_proof,
|
||||
};
|
||||
use ark_crypto_primitives::snark::SNARK;
|
||||
use ark_groth16::Groth16;
|
||||
|
||||
type GrothBn = Groth16<Bn254>;
|
||||
|
||||
#[test]
|
||||
fn groth16_proof() -> Result<()> {
|
||||
@@ -21,17 +22,17 @@ fn groth16_proof() -> Result<()> {
|
||||
let circom = builder.setup();
|
||||
|
||||
let mut rng = thread_rng();
|
||||
let params = generate_random_parameters::<Bn254, _, _>(circom, &mut rng)?;
|
||||
let params = GrothBn::generate_random_parameters_with_reduction(circom, &mut rng)?;
|
||||
|
||||
let circom = builder.build()?;
|
||||
|
||||
let inputs = circom.get_public_inputs().unwrap();
|
||||
|
||||
let proof = prove(circom, ¶ms, &mut rng)?;
|
||||
let proof = GrothBn::prove(¶ms, circom, &mut rng)?;
|
||||
|
||||
let pvk = prepare_verifying_key(¶ms.vk);
|
||||
let pvk = GrothBn::process_vk(¶ms.vk).unwrap();
|
||||
|
||||
let verified = verify_proof(&pvk, &proof, &inputs)?;
|
||||
let verified = GrothBn::verify_with_processed_vk(&pvk, &inputs, &proof)?;
|
||||
|
||||
assert!(verified);
|
||||
|
||||
@@ -47,14 +48,14 @@ fn groth16_proof_wrong_input() {
|
||||
.unwrap();
|
||||
let mut builder = CircomBuilder::new(cfg);
|
||||
builder.push_input("a", 3);
|
||||
// This isn't a public input to the circuit, should faild
|
||||
// This isn't a public input to the circuit, should fail
|
||||
builder.push_input("foo", 11);
|
||||
|
||||
// create an empty instance for setting it up
|
||||
let circom = builder.setup();
|
||||
|
||||
let mut rng = thread_rng();
|
||||
let _params = generate_random_parameters::<Bn254, _, _>(circom, &mut rng).unwrap();
|
||||
let _params = GrothBn::generate_random_parameters_with_reduction(circom, &mut rng).unwrap();
|
||||
|
||||
let _ = builder.build().unwrap_err();
|
||||
}
|
||||
@@ -74,17 +75,17 @@ fn groth16_proof_circom2() -> Result<()> {
|
||||
let circom = builder.setup();
|
||||
|
||||
let mut rng = thread_rng();
|
||||
let params = generate_random_parameters::<Bn254, _, _>(circom, &mut rng)?;
|
||||
let params = GrothBn::generate_random_parameters_with_reduction(circom, &mut rng)?;
|
||||
|
||||
let circom = builder.build()?;
|
||||
|
||||
let inputs = circom.get_public_inputs().unwrap();
|
||||
|
||||
let proof = prove(circom, ¶ms, &mut rng)?;
|
||||
let proof = GrothBn::prove(¶ms, circom, &mut rng)?;
|
||||
|
||||
let pvk = prepare_verifying_key(¶ms.vk);
|
||||
let pvk = GrothBn::process_vk(¶ms.vk).unwrap();
|
||||
|
||||
let verified = verify_proof(&pvk, &proof, &inputs)?;
|
||||
let verified = GrothBn::verify_with_processed_vk(&pvk, &inputs, &proof)?;
|
||||
|
||||
assert!(verified);
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@ use ark_std::rand::thread_rng;
|
||||
use color_eyre::Result;
|
||||
|
||||
use ark_bn254::Bn254;
|
||||
use ark_groth16::{create_random_proof as prove, generate_random_parameters};
|
||||
use ark_crypto_primitives::snark::SNARK;
|
||||
use ark_groth16::Groth16;
|
||||
|
||||
use ethers::{
|
||||
contract::ContractError,
|
||||
@@ -27,12 +28,12 @@ async fn solidity_verifier() -> Result<()> {
|
||||
let circom = builder.setup();
|
||||
|
||||
let mut rng = thread_rng();
|
||||
let params = generate_random_parameters::<Bn254, _, _>(circom, &mut rng)?;
|
||||
let params = Groth16::<Bn254>::generate_random_parameters_with_reduction(circom, &mut rng)?;
|
||||
|
||||
let circom = builder.build()?;
|
||||
let inputs = circom.get_public_inputs().unwrap();
|
||||
|
||||
let proof = prove(circom, ¶ms, &mut rng)?;
|
||||
let proof = Groth16::<Bn254>::prove(¶ms, circom, &mut rng)?;
|
||||
|
||||
// launch the network & compile the verifier
|
||||
let anvil = Anvil::new().spawn();
|
||||
|
||||
Reference in New Issue
Block a user