diff --git a/Cargo.lock b/Cargo.lock index adb98bafd..5fd239668 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7295,6 +7295,7 @@ name = "scarb-extensions-cli" version = "2.18.0" dependencies = [ "anyhow", + "cairo-air", "cairo-vm", "camino", "clap", @@ -7431,7 +7432,6 @@ version = "2.18.0" dependencies = [ "anyhow", "assert_fs", - "cairo-air", "camino", "clap", "create-output-dir 1.0.0", diff --git a/extensions/scarb-prove/Cargo.toml b/extensions/scarb-prove/Cargo.toml index 863b118f5..cc684d7ba 100644 --- a/extensions/scarb-prove/Cargo.toml +++ b/extensions/scarb-prove/Cargo.toml @@ -16,7 +16,6 @@ heavy-tests = [] [dependencies] anyhow.workspace = true -cairo-air.workspace = true camino.workspace = true clap.workspace = true create-output-dir = { path = "../../utils/create-output-dir" } diff --git a/extensions/scarb-prove/src/main.rs b/extensions/scarb-prove/src/main.rs index e6358cdf8..47b80b4d7 100644 --- a/extensions/scarb-prove/src/main.rs +++ b/extensions/scarb-prove/src/main.rs @@ -2,7 +2,6 @@ #![deny(clippy::disallowed_methods)] use anyhow::{Context, Result, bail, ensure}; -use cairo_air::utils::ProofFormat; use camino::{Utf8Path, Utf8PathBuf}; use clap::Parser; use create_output_dir::create_output_dir; @@ -105,7 +104,7 @@ fn main_inner(args: Args, ui: Ui) -> Result<()> { prover_input, false, proof_path.as_std_path().to_path_buf(), - ProofFormat::Json, + args.proof_format, None, )?; diff --git a/utils/scarb-extensions-cli/Cargo.toml b/utils/scarb-extensions-cli/Cargo.toml index f05167a4b..917cfcd18 100644 --- a/utils/scarb-extensions-cli/Cargo.toml +++ b/utils/scarb-extensions-cli/Cargo.toml @@ -9,6 +9,7 @@ publish = false anyhow = { workspace = true, optional = true } clap.workspace = true camino = { workspace = true, optional = true } +cairo-air = { workspace = true, optional = true } cairo-vm = { workspace = true, optional = true } scarb-ui = { path = "../scarb-ui", optional = true } @@ -24,7 +25,7 @@ execute = [ "cairo-vm/clap" ] mdbook = ["dep:camino", "dep:scarb-ui"] -prove = ["execute", "dep:scarb-ui"] +prove = ["execute", "dep:cairo-air", "dep:scarb-ui"] verify = ["dep:camino", "dep:scarb-ui"] default = [ "cairo-language-server", diff --git a/utils/scarb-extensions-cli/src/prove.rs b/utils/scarb-extensions-cli/src/prove.rs index dd6245883..df453b973 100644 --- a/utils/scarb-extensions-cli/src/prove.rs +++ b/utils/scarb-extensions-cli/src/prove.rs @@ -3,6 +3,7 @@ //! Extension CLI arguments datastructures. use crate::execute::ExecutionArgs; +use cairo_air::utils::ProofFormat; use clap::Parser; use scarb_ui::args::{PackagesFilter, VerbositySpec}; @@ -51,6 +52,10 @@ pub struct Args { #[arg(long, env = "SCARB_OUTPUT_JSON")] pub json: bool, + /// Format used to serialize the generated proof. + #[arg(long, value_enum, default_value_t = ProofFormat::Json)] + pub proof_format: ProofFormat, + /// Logging verbosity. #[command(flatten)] pub verbose: VerbositySpec,