From d1ab04d2cc6676deb4691b68b4210b97ccbd347d Mon Sep 17 00:00:00 2001 From: dark64 Date: Mon, 23 Mar 2020 17:13:37 +0100 Subject: [PATCH] fix invalid argument --- zokrates_cli/src/bin.rs | 8 ++++---- zokrates_core/src/proof_system/bn128/g16.rs | 22 ++++++++++----------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/zokrates_cli/src/bin.rs b/zokrates_cli/src/bin.rs index c605a944..4f43d9ea 100644 --- a/zokrates_cli/src/bin.rs +++ b/zokrates_cli/src/bin.rs @@ -117,9 +117,9 @@ fn cli() -> Result<(), String> { ) .subcommand(SubCommand::with_name("export-verifier") .about("Exports a verifier as Solidity smart contract") - .arg(Arg::with_name("verification-key-path") - .short("v") - .long("verification-key-path") + .arg(Arg::with_name("input") + .short("i") + .long("input") .help("Path of the generated verification key file") .value_name("FILE") .takes_value(true) @@ -560,7 +560,7 @@ fn cli() -> Result<(), String> { println!("Exporting verifier..."); // read vk file - let vk_path = Path::new(sub_matches.value_of("verification-key-path").unwrap()); + let vk_path = Path::new(sub_matches.value_of("input").unwrap()); let vk_file = File::open(&vk_path) .map_err(|why| format!("couldn't open {}: {}", vk_path.display(), why))?; diff --git a/zokrates_core/src/proof_system/bn128/g16.rs b/zokrates_core/src/proof_system/bn128/g16.rs index 4f6ed54b..47830048 100644 --- a/zokrates_core/src/proof_system/bn128/g16.rs +++ b/zokrates_core/src/proof_system/bn128/g16.rs @@ -54,6 +54,12 @@ impl G16Proof { fn new(proof: G16ProofPoints, inputs: Vec, raw: String) -> Self { G16Proof { proof, inputs, raw } } + fn from_json(str: &str) -> Self { + serde_json::from_str(str).unwrap() + } + fn to_json_pretty(&self) -> String { + serde_json::to_string_pretty(&self).unwrap() + } } impl ProofSystem for G16 { @@ -88,9 +94,7 @@ impl ProofSystem for G16 { let proof = computation.clone().prove(¶ms); let mut raw: Vec = Vec::new(); - proof - .write(&mut raw) - .expect("Could not write proof to buffer"); + proof.write(&mut raw).unwrap(); let proof_points = G16ProofPoints::new(parse_g1(&proof.a), parse_g2(&proof.b), parse_g1(&proof.c)); @@ -104,8 +108,7 @@ impl ProofSystem for G16 { .collect::>(), base64::encode(&raw), ); - - format!("{}", serde_json::to_string_pretty(&g16_proof).unwrap()) + g16_proof.to_json_pretty() } fn export_solidity_verifier(&self, vk: String, abi_v2: bool) -> String { @@ -184,15 +187,12 @@ impl ProofSystem for G16 { let vk_map = KeyValueParser::parse(vk); let vk_raw = base64::decode(vk_map.get("vk.raw").unwrap()).unwrap(); - let vk: VerifyingKey = - VerifyingKey::read(vk_raw.as_slice()).expect("Could not read verifying key"); - + let vk: VerifyingKey = VerifyingKey::read(vk_raw.as_slice()).unwrap(); let pvk: PreparedVerifyingKey = prepare_verifying_key(&vk); - let g16_proof: G16Proof = serde_json::from_str(proof.as_str()).unwrap(); + let g16_proof = G16Proof::from_json(proof.as_str()); let bellman_proof: Proof = - Proof::read(base64::decode(g16_proof.raw.as_str()).unwrap().as_slice()) - .expect("Could not read proof"); + Proof::read(base64::decode(g16_proof.raw.as_str()).unwrap().as_slice()).unwrap(); let public_inputs: Vec = g16_proof .inputs