diff --git a/zkevm-contract-bindings/src/bin/deploy.rs b/zkevm-contract-bindings/src/bin/deploy.rs index a443ca4..2712f4b 100644 --- a/zkevm-contract-bindings/src/bin/deploy.rs +++ b/zkevm-contract-bindings/src/bin/deploy.rs @@ -111,11 +111,15 @@ pub struct Options { #[arg( short, long, - env = "ESPRESSO_ZKEVM_DEPLOY_OUTPUT", + env = "ESPRESSO_ZKEVM_DEPLOY_OUTPUT_PATH", default_value = "deployment.env" )] pub output_path: PathBuf, + /// Output file path where deployment info will be stored. + #[arg(long, env = "ESPRESSO_ZKEVM_DEPLOY_OUTPUT_JSON")] + pub json: bool, + /// Polling interval for the RPC provider /// /// By default the ether-rs default of 7 seconds will be used. @@ -430,8 +434,13 @@ async fn deploy(opts: Options) -> Result<()> { zkevm_2_output, }; - std::fs::write(&opts.output_path, output.to_dotenv())?; + let content = if opts.json { + serde_json::to_string_pretty(&output)? + } else { + output.to_dotenv() + }; tracing::info!("Wrote deployment output to {}", opts.output_path.display()); + std::fs::write(&opts.output_path, content)?; Ok(()) }