diff --git a/crates/cli/src/app_builder.rs b/crates/cli/src/app_builder.rs index 3fd3866ec..8a12bbdcf 100644 --- a/crates/cli/src/app_builder.rs +++ b/crates/cli/src/app_builder.rs @@ -109,7 +109,7 @@ pub trait AppBuilder: CommandBuilder { match top_matches.subcommand() { Some(("setup", _)) => match host_mode { - HostMode::DEFAULT => exec_setup::( + HostMode::DEFAULT => exec_setup::( zkwasm_k, Self::AGGREGATE_K, Self::NAME, @@ -119,7 +119,7 @@ pub trait AppBuilder: CommandBuilder { &output_dir, ¶m_dir, ), - HostMode::STANDARD => exec_setup::( + HostMode::STANDARD => exec_setup::( zkwasm_k, Self::AGGREGATE_K, Self::NAME, @@ -132,14 +132,14 @@ pub trait AppBuilder: CommandBuilder { }, Some(("checksum", _)) => match host_mode { - HostMode::DEFAULT => exec_image_checksum::( + HostMode::DEFAULT => exec_image_checksum::( zkwasm_k, wasm_binary, (), phantom_functions, &output_dir, ), - HostMode::STANDARD => exec_image_checksum::( + HostMode::STANDARD => exec_image_checksum::( zkwasm_k, wasm_binary, HostEnvConfig::default(), @@ -160,7 +160,7 @@ pub trait AppBuilder: CommandBuilder { match host_mode { HostMode::DEFAULT => { - exec_dry_run::( + exec_dry_run::( zkwasm_k, wasm_binary, phantom_functions, @@ -174,7 +174,7 @@ pub trait AppBuilder: CommandBuilder { )?; } HostMode::STANDARD => { - exec_dry_run::( + exec_dry_run::( zkwasm_k, wasm_binary, phantom_functions, @@ -206,7 +206,7 @@ pub trait AppBuilder: CommandBuilder { assert!(public_inputs.len() <= Self::MAX_PUBLIC_INPUT_SIZE); match host_mode { HostMode::DEFAULT => { - exec_create_proof::( + exec_create_proof::( Self::NAME, zkwasm_k, wasm_binary, @@ -223,7 +223,7 @@ pub trait AppBuilder: CommandBuilder { )?; } HostMode::STANDARD => { - exec_create_proof::( + exec_create_proof::( Self::NAME, zkwasm_k, wasm_binary, diff --git a/crates/cli/src/args.rs b/crates/cli/src/args.rs index 334645980..39b7e1985 100644 --- a/crates/cli/src/args.rs +++ b/crates/cli/src/args.rs @@ -51,11 +51,13 @@ pub trait ArgBuilder { } fn host_mode_arg<'a>() -> Arg<'a> { - arg!( - -h --host "Which host env you would like to run your binary." - ) - .max_values(1) - .value_parser(value_parser!(HostMode)) + Arg::new("host") + .long("host") + .value_parser(value_parser!(HostMode)) + .action(ArgAction::Set) + .help("Specify host functions set.") + .min_values(0) + .max_values(1) } fn parse_host_mode(matches: &ArgMatches) -> HostMode { diff --git a/crates/cli/src/exec.rs b/crates/cli/src/exec.rs index 6fcbefdb6..a6721f745 100644 --- a/crates/cli/src/exec.rs +++ b/crates/cli/src/exec.rs @@ -17,7 +17,7 @@ use log::info; use std::io::Write; use std::path::PathBuf; -pub fn exec_setup( +pub fn exec_setup( zkwasm_k: u32, aggregate_k: u32, prefix: &str, @@ -26,10 +26,7 @@ pub fn exec_setup( envconfig: Builder::HostConfig, _output_dir: &PathBuf, param_dir: &PathBuf, -) -> Result<()> -where - Builder: HostEnvBuilder, -{ +) -> Result<()> { info!("Setup Params and VerifyingKey"); macro_rules! prepare_params { @@ -57,8 +54,11 @@ where info!("Found Verifying at {:?}", vk_path); } else { info!("Create Verifying to {:?}", vk_path); - let loader = - ZkWasmLoader::::new(zkwasm_k, wasm_binary, phantom_functions)?; + let loader = ZkWasmLoader::::new( + zkwasm_k, + wasm_binary, + phantom_functions, + )?; let vkey = loader.create_vkey(¶ms, envconfig)?; @@ -70,7 +70,7 @@ where Ok(()) } -pub fn exec_image_checksum( +pub fn exec_image_checksum( zkwasm_k: u32, wasm_binary: Vec, hostenv: Builder::HostConfig, @@ -78,10 +78,13 @@ pub fn exec_image_checksum( output_dir: &PathBuf, ) -> Result<()> where - Builder: HostEnvBuilder, + Builder: HostEnvBuilder, { - let loader = - ZkWasmLoader::::new(zkwasm_k, wasm_binary, phantom_functions)?; + let loader = ZkWasmLoader::::new( + zkwasm_k, + wasm_binary, + phantom_functions, + )?; let params = load_or_build_unsafe_params::( zkwasm_k, @@ -102,33 +105,39 @@ where Ok(()) } -pub fn exec_dry_run>( +pub fn exec_dry_run( zkwasm_k: u32, wasm_binary: Vec, phantom_functions: Vec, - arg: Arg, + arg: Builder::Arg, config: Builder::HostConfig, ) -> Result<()> { - let loader = - ZkWasmLoader::::new(zkwasm_k, wasm_binary, phantom_functions)?; + let loader = ZkWasmLoader::::new( + zkwasm_k, + wasm_binary, + phantom_functions, + )?; let result = loader.run(arg, config, true, false)?; println!("total guest instructions used {:?}", result.guest_statics); println!("total host api used {:?}", result.host_statics); Ok(()) } -pub fn exec_create_proof>( +pub fn exec_create_proof( prefix: &'static str, zkwasm_k: u32, wasm_binary: Vec, phantom_functions: Vec, output_dir: &PathBuf, param_dir: &PathBuf, - arg: Arg, + arg: Builder::Arg, config: Builder::HostConfig, ) -> Result<()> { - let loader = - ZkWasmLoader::::new(zkwasm_k, wasm_binary, phantom_functions)?; + let loader = ZkWasmLoader::::new( + zkwasm_k, + wasm_binary, + phantom_functions, + )?; let execution_result = loader.run(arg, config, false, true)?;