From 98acb5ad5609d89ea34481a8e8359449d0ca1344 Mon Sep 17 00:00:00 2001 From: Tom French <15848336+TomAFrench@users.noreply.github.com> Date: Thu, 16 Feb 2023 17:59:14 +0000 Subject: [PATCH] chore!: Make `abi` field non-optional in `CompiledProgram` (#856) * chore!: make `abi` non-optional on `CompiledProgram` * chore!: remove unnecessary move from `read_inputs_from_file` --- crates/nargo/src/cli/compile_cmd.rs | 2 +- crates/nargo/src/cli/execute_cmd.rs | 6 +++--- crates/nargo/src/cli/mod.rs | 2 +- crates/nargo/src/cli/prove_cmd.rs | 2 +- crates/nargo/src/cli/verify_cmd.rs | 6 +++--- crates/noirc_abi/src/input_parser/mod.rs | 2 +- crates/noirc_abi/src/input_parser/toml.rs | 2 +- crates/noirc_driver/src/lib.rs | 4 ++-- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/crates/nargo/src/cli/compile_cmd.rs b/crates/nargo/src/cli/compile_cmd.rs index 603f26d82a0..5ec0d3b411b 100644 --- a/crates/nargo/src/cli/compile_cmd.rs +++ b/crates/nargo/src/cli/compile_cmd.rs @@ -56,7 +56,7 @@ pub fn generate_circuit_and_witness_to_disk>( program_dir, PROVER_INPUT_FILE, Format::Toml, - compiled_program.abi.as_ref().unwrap().clone(), + &compiled_program.abi, )?; let (_, solved_witness) = diff --git a/crates/nargo/src/cli/execute_cmd.rs b/crates/nargo/src/cli/execute_cmd.rs index a89a0fcaa21..796183585a8 100644 --- a/crates/nargo/src/cli/execute_cmd.rs +++ b/crates/nargo/src/cli/execute_cmd.rs @@ -56,7 +56,7 @@ fn execute_with_path>( &program_dir, PROVER_INPUT_FILE, Format::Toml, - compiled_program.abi.as_ref().unwrap().clone(), + &compiled_program.abi, )?; execute_program(&compiled_program, &inputs_map) @@ -87,7 +87,7 @@ pub(crate) fn extract_public_inputs( .map(|index| solved_witness[index]) .collect(); - let public_abi = compiled_program.abi.as_ref().unwrap().clone().public_abi(); + let public_abi = compiled_program.abi.clone().public_abi(); public_abi.decode(&encoded_public_inputs) } @@ -96,7 +96,7 @@ pub(crate) fn solve_witness( compiled_program: &CompiledProgram, input_map: &InputMap, ) -> Result { - let abi = compiled_program.abi.as_ref().unwrap().clone(); + let abi = compiled_program.abi.clone(); let mut solved_witness = input_map_to_witness_map(abi, input_map).map_err(|error| match error { AbiError::UndefinedInput(_) => { diff --git a/crates/nargo/src/cli/mod.rs b/crates/nargo/src/cli/mod.rs index 30e261564bb..d433dee68ec 100644 --- a/crates/nargo/src/cli/mod.rs +++ b/crates/nargo/src/cli/mod.rs @@ -186,7 +186,7 @@ pub fn read_inputs_from_file>( path: P, file_name: &str, format: Format, - abi: Abi, + abi: &Abi, ) -> Result { let file_path = { let mut dir_path = path.as_ref().to_path_buf(); diff --git a/crates/nargo/src/cli/prove_cmd.rs b/crates/nargo/src/cli/prove_cmd.rs index d67cdceffb9..1357cc7c8b4 100644 --- a/crates/nargo/src/cli/prove_cmd.rs +++ b/crates/nargo/src/cli/prove_cmd.rs @@ -51,7 +51,7 @@ pub fn prove_with_path>( &program_dir, PROVER_INPUT_FILE, Format::Toml, - compiled_program.abi.as_ref().unwrap().clone(), + &compiled_program.abi, )?; let (_, solved_witness) = execute_program(&compiled_program, &inputs_map)?; diff --git a/crates/nargo/src/cli/verify_cmd.rs b/crates/nargo/src/cli/verify_cmd.rs index d26d26bdc96..4311bce55c9 100644 --- a/crates/nargo/src/cli/verify_cmd.rs +++ b/crates/nargo/src/cli/verify_cmd.rs @@ -44,12 +44,12 @@ pub fn verify_with_path>( let mut public_inputs_map: InputMap = BTreeMap::new(); // Load public inputs (if any) from `VERIFIER_INPUT_FILE`. - let public_abi = compiled_program.abi.clone().unwrap().public_abi(); + let public_abi = compiled_program.abi.clone().public_abi(); let num_pub_params = public_abi.num_parameters(); if num_pub_params != 0 { let current_dir = program_dir; public_inputs_map = - read_inputs_from_file(current_dir, VERIFIER_INPUT_FILE, Format::Toml, public_abi)?; + read_inputs_from_file(current_dir, VERIFIER_INPUT_FILE, Format::Toml, &public_abi)?; } let valid_proof = verify_proof(compiled_program, public_inputs_map, &load_proof(proof_path)?)?; @@ -62,7 +62,7 @@ pub(crate) fn verify_proof( public_inputs_map: InputMap, proof: &[u8], ) -> Result { - let public_abi = compiled_program.abi.unwrap().public_abi(); + let public_abi = compiled_program.abi.public_abi(); let public_inputs = public_abi.encode(&public_inputs_map, false).map_err(|error| match error { AbiError::UndefinedInput(_) => { diff --git a/crates/noirc_abi/src/input_parser/mod.rs b/crates/noirc_abi/src/input_parser/mod.rs index 680aef950e8..64fe6ab1b8a 100644 --- a/crates/noirc_abi/src/input_parser/mod.rs +++ b/crates/noirc_abi/src/input_parser/mod.rs @@ -90,7 +90,7 @@ impl Format { pub fn parse( &self, input_string: &str, - abi: Abi, + abi: &Abi, ) -> Result, InputParserError> { match self { Format::Toml => toml::parse_toml(input_string, abi), diff --git a/crates/noirc_abi/src/input_parser/toml.rs b/crates/noirc_abi/src/input_parser/toml.rs index 4ffff7c76e7..876724ebdd5 100644 --- a/crates/noirc_abi/src/input_parser/toml.rs +++ b/crates/noirc_abi/src/input_parser/toml.rs @@ -7,7 +7,7 @@ use std::collections::BTreeMap; pub(crate) fn parse_toml( input_string: &str, - abi: Abi, + abi: &Abi, ) -> Result, InputParserError> { // Parse input.toml into a BTreeMap. let data: BTreeMap = toml::from_str(input_string)?; diff --git a/crates/noirc_driver/src/lib.rs b/crates/noirc_driver/src/lib.rs index 608f310381f..537cf2ddaf2 100644 --- a/crates/noirc_driver/src/lib.rs +++ b/crates/noirc_driver/src/lib.rs @@ -21,7 +21,7 @@ pub struct Driver { #[derive(Debug, Serialize, Deserialize, Clone)] pub struct CompiledProgram { pub circuit: Circuit, - pub abi: Option, + pub abi: noirc_abi::Abi, } impl Driver { @@ -189,7 +189,7 @@ impl Driver { let blackbox_supported = acvm::default_is_black_box_supported(np_language.clone()); match create_circuit(program, np_language, blackbox_supported, show_ssa, show_output) { - Ok(circuit) => Ok(CompiledProgram { circuit, abi: Some(abi) }), + Ok(circuit) => Ok(CompiledProgram { circuit, abi }), Err(err) => { // The FileId here will be the file id of the file with the main file // Errors will be shown at the call site without a stacktrace