diff --git a/cmd/soroban-cli/src/commands/contract/deploy/asset.rs b/cmd/soroban-cli/src/commands/contract/deploy/asset.rs index 39b958cacc..9808c30189 100644 --- a/cmd/soroban-cli/src/commands/contract/deploy/asset.rs +++ b/cmd/soroban-cli/src/commands/contract/deploy/asset.rs @@ -93,7 +93,10 @@ pub struct Cmd { impl Cmd { pub async fn run(&self, global_args: &global::Args) -> Result<(), Error> { - let res = self.run_against_rpc_server(None, None).await?.to_envelope(); + let res = self + .run_against_rpc_server(Some(global_args), None) + .await? + .to_envelope(); match res { TxnEnvelopeResult::TxnEnvelope(tx) => println!("{}", tx.to_xdr_base64(Limits::none())?), TxnEnvelopeResult::Res(contract) => { @@ -174,7 +177,7 @@ impl NetworkRunnable for Cmd { let txn = assembled.transaction().clone(); let get_txn_resp = client - .send_transaction_polling(&self.config.sign(txn).await?) + .send_transaction_polling(&self.config.sign(txn, args.is_some_and(|g| g.quiet)).await?) .await?; self.fee.print_cost_info(&get_txn_resp)?; diff --git a/cmd/soroban-cli/src/commands/contract/deploy/wasm.rs b/cmd/soroban-cli/src/commands/contract/deploy/wasm.rs index 57ddbac226..08195def5c 100644 --- a/cmd/soroban-cli/src/commands/contract/deploy/wasm.rs +++ b/cmd/soroban-cli/src/commands/contract/deploy/wasm.rs @@ -197,7 +197,8 @@ impl NetworkRunnable for Cmd { global_args: Option<&global::Args>, config: Option<&config::Args>, ) -> Result, Error> { - let print = Print::new(global_args.is_some_and(|a| a.quiet)); + let quiet = global_args.is_some_and(|a| a.quiet); + let print = Print::new(quiet); let config = config.unwrap_or(&self.config); let wasm_hash = if let Some(wasm) = &self.wasm { let is_build = self.fee.build_only; @@ -316,7 +317,7 @@ impl NetworkRunnable for Cmd { let txn = Box::new(assembled.transaction().clone()); print.log_transaction(&txn, &network, true)?; - let signed_txn = &config.sign(*txn).await?; + let signed_txn = &config.sign(*txn, quiet).await?; print.globeln("Submitting deploy transaction…"); let get_txn_resp = client.send_transaction_polling(signed_txn).await?; diff --git a/cmd/soroban-cli/src/commands/contract/extend.rs b/cmd/soroban-cli/src/commands/contract/extend.rs index a887819554..2eb6a6dd66 100644 --- a/cmd/soroban-cli/src/commands/contract/extend.rs +++ b/cmd/soroban-cli/src/commands/contract/extend.rs @@ -124,8 +124,11 @@ pub enum Error { impl Cmd { #[allow(clippy::too_many_lines)] - pub async fn run(&self) -> Result<(), Error> { - let res = self.run_against_rpc_server(None, None).await?.to_envelope(); + pub async fn run(&self, global_args: &global::Args) -> Result<(), Error> { + let res = self + .run_against_rpc_server(Some(global_args), None) + .await? + .to_envelope(); match res { TxnEnvelopeResult::TxnEnvelope(tx) => println!("{}", tx.to_xdr_base64(Limits::none())?), TxnEnvelopeResult::Res(ttl_ledger) => { @@ -190,7 +193,8 @@ impl NetworkRunnable for Cmd { config: Option<&config::Args>, ) -> Result, Self::Error> { let config = config.unwrap_or(&self.config); - let print = Print::new(args.is_some_and(|a| a.quiet)); + let quiet = args.is_some_and(|a| a.quiet); + let print = Print::new(quiet); let network = config.get_network()?; tracing::trace!(?network); let keys = self.key.parse_keys(&config.locator, &network)?; @@ -240,7 +244,7 @@ impl NetworkRunnable for Cmd { let tx = assembled.transaction().clone(); let res = client - .send_transaction_polling(&config.sign(tx).await?) + .send_transaction_polling(&config.sign(tx, quiet).await?) .await?; self.fee.print_cost_info(&res)?; diff --git a/cmd/soroban-cli/src/commands/contract/invoke.rs b/cmd/soroban-cli/src/commands/contract/invoke.rs index 55c00b05d9..3bef33635a 100644 --- a/cmd/soroban-cli/src/commands/contract/invoke.rs +++ b/cmd/soroban-cli/src/commands/contract/invoke.rs @@ -253,7 +253,8 @@ impl NetworkRunnable for Cmd { config: Option<&config::Args>, ) -> Result, Error> { let config = config.unwrap_or(&self.config); - let print = print::Print::new(global_args.is_some_and(|g| g.quiet)); + let quiet = global_args.is_some_and(|g| g.quiet); + let print = print::Print::new(quiet); let network = config.get_network()?; tracing::trace!(?network); @@ -358,7 +359,7 @@ impl NetworkRunnable for Cmd { } let res = client - .send_transaction_polling(&config.sign(*txn).await?) + .send_transaction_polling(&config.sign(*txn, quiet).await?) .await?; self.fee.print_cost_info(&res)?; diff --git a/cmd/soroban-cli/src/commands/contract/mod.rs b/cmd/soroban-cli/src/commands/contract/mod.rs index fd48b8eb0c..1517158b29 100644 --- a/cmd/soroban-cli/src/commands/contract/mod.rs +++ b/cmd/soroban-cli/src/commands/contract/mod.rs @@ -152,7 +152,7 @@ impl Cmd { Cmd::Asset(asset) => asset.run(global_args).await?, Cmd::Bindings(bindings) => bindings.run().await?, Cmd::Build(build) => build.run(global_args)?, - Cmd::Extend(extend) => extend.run().await?, + Cmd::Extend(extend) => extend.run(global_args).await?, Cmd::Alias(alias) => alias.run(global_args)?, Cmd::Deploy(deploy) => deploy.run(global_args).await?, Cmd::Id(id) => id.run().await?, @@ -186,7 +186,7 @@ impl Cmd { } Cmd::Fetch(fetch) => fetch.run().await?, Cmd::Read(read) => read.run().await?, - Cmd::Restore(restore) => restore.run().await?, + Cmd::Restore(restore) => restore.run(global_args).await?, } Ok(()) } diff --git a/cmd/soroban-cli/src/commands/contract/restore.rs b/cmd/soroban-cli/src/commands/contract/restore.rs index 935bea493a..9c3e9c7a6a 100644 --- a/cmd/soroban-cli/src/commands/contract/restore.rs +++ b/cmd/soroban-cli/src/commands/contract/restore.rs @@ -121,8 +121,11 @@ pub enum Error { impl Cmd { #[allow(clippy::too_many_lines)] - pub async fn run(&self) -> Result<(), Error> { - let res = self.run_against_rpc_server(None, None).await?.to_envelope(); + pub async fn run(&self, global_args: &global::Args) -> Result<(), Error> { + let res = self + .run_against_rpc_server(Some(global_args), None) + .await? + .to_envelope(); let expiration_ledger_seq = match res { TxnEnvelopeResult::TxnEnvelope(tx) => { println!("{}", tx.to_xdr_base64(Limits::none())?); @@ -138,7 +141,7 @@ impl Cmd { fee: self.fee.clone(), ttl_ledger_only: false, } - .run() + .run(global_args) .await?; } else { println!("New ttl ledger: {expiration_ledger_seq}"); @@ -159,7 +162,8 @@ impl NetworkRunnable for Cmd { config: Option<&config::Args>, ) -> Result, Error> { let config = config.unwrap_or(&self.config); - let print = crate::print::Print::new(args.is_some_and(|a| a.quiet)); + let quiet = args.is_some_and(|a| a.quiet); + let print = crate::print::Print::new(quiet); let network = config.get_network()?; tracing::trace!(?network); let entry_keys = self.key.parse_keys(&config.locator, &network)?; @@ -207,7 +211,7 @@ impl NetworkRunnable for Cmd { let tx = assembled.transaction().clone(); let res = client - .send_transaction_polling(&config.sign(tx).await?) + .send_transaction_polling(&config.sign(tx, quiet).await?) .await?; self.fee.print_cost_info(&res)?; if args.is_none_or(|a| !a.no_cache) { diff --git a/cmd/soroban-cli/src/commands/contract/upload.rs b/cmd/soroban-cli/src/commands/contract/upload.rs index 392351e192..fc9fc64045 100644 --- a/cmd/soroban-cli/src/commands/contract/upload.rs +++ b/cmd/soroban-cli/src/commands/contract/upload.rs @@ -129,7 +129,8 @@ impl NetworkRunnable for Cmd { args: Option<&global::Args>, config: Option<&config::Args>, ) -> Result, Error> { - let print = Print::new(args.is_some_and(|a| a.quiet)); + let quiet = args.is_some_and(|a| a.quiet); + let print = Print::new(quiet); let config = config.unwrap_or(&self.config); let contract = self.wasm.read()?; let network = config.get_network()?; @@ -218,7 +219,7 @@ impl NetworkRunnable for Cmd { let assembled = self.fee.apply_to_assembled_txn(assembled); let txn = Box::new(assembled.transaction().clone()); - let signed_txn = &self.config.sign(*txn).await?; + let signed_txn = &self.config.sign(*txn, quiet).await?; print.globeln("Submitting install transaction…"); let txn_resp = client.send_transaction_polling(signed_txn).await?; diff --git a/cmd/soroban-cli/src/commands/tx/args.rs b/cmd/soroban-cli/src/commands/tx/args.rs index f66fcca6da..5cf15c1a8c 100644 --- a/cmd/soroban-cli/src/commands/tx/args.rs +++ b/cmd/soroban-cli/src/commands/tx/args.rs @@ -110,7 +110,7 @@ impl Args { } let txn_resp = client - .send_transaction_polling(&self.config.sign(tx).await?) + .send_transaction_polling(&self.config.sign(tx, args.quiet).await?) .await?; if !args.no_cache { diff --git a/cmd/soroban-cli/src/config/mod.rs b/cmd/soroban-cli/src/config/mod.rs index d6c6810bf5..358c135c91 100644 --- a/cmd/soroban-cli/src/config/mod.rs +++ b/cmd/soroban-cli/src/config/mod.rs @@ -91,7 +91,7 @@ impl Args { Ok(key.key_pair(self.hd_path())?) } - pub async fn sign(&self, tx: Transaction) -> Result { + pub async fn sign(&self, tx: Transaction, quiet: bool) -> Result { let tx_env = TransactionEnvelope::Tx(TransactionV1Envelope { tx, signatures: VecM::default(), @@ -102,7 +102,7 @@ impl Args { &tx_env, &self.locator, &self.network.get(&self.locator)?, - false, + quiet, Some(&self.source_account), ) .await?)