Skip to content
7 changes: 5 additions & 2 deletions cmd/soroban-cli/src/commands/contract/deploy/asset.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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) => {
Expand Down Expand Up @@ -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)?;
Expand Down
5 changes: 3 additions & 2 deletions cmd/soroban-cli/src/commands/contract/deploy/wasm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,8 @@ impl NetworkRunnable for Cmd {
global_args: Option<&global::Args>,
config: Option<&config::Args>,
) -> Result<TxnResult<stellar_strkey::Contract>, 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;
Expand Down Expand Up @@ -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?;
Expand Down
12 changes: 8 additions & 4 deletions cmd/soroban-cli/src/commands/contract/extend.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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) => {
Expand Down Expand Up @@ -190,7 +193,8 @@ impl NetworkRunnable for Cmd {
config: Option<&config::Args>,
) -> Result<TxnResult<u32>, 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)?;
Expand Down Expand Up @@ -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)?;

Expand Down
5 changes: 3 additions & 2 deletions cmd/soroban-cli/src/commands/contract/invoke.rs
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,8 @@ impl NetworkRunnable for Cmd {
config: Option<&config::Args>,
) -> Result<TxnResult<String>, 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);
Expand Down Expand Up @@ -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)?;
Expand Down
4 changes: 2 additions & 2 deletions cmd/soroban-cli/src/commands/contract/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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?,
Expand Down Expand Up @@ -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(())
}
Expand Down
14 changes: 9 additions & 5 deletions cmd/soroban-cli/src/commands/contract/restore.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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())?);
Expand All @@ -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}");
Expand All @@ -159,7 +162,8 @@ impl NetworkRunnable for Cmd {
config: Option<&config::Args>,
) -> Result<TxnResult<u32>, 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)?;
Expand Down Expand Up @@ -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) {
Expand Down
5 changes: 3 additions & 2 deletions cmd/soroban-cli/src/commands/contract/upload.rs
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,8 @@ impl NetworkRunnable for Cmd {
args: Option<&global::Args>,
config: Option<&config::Args>,
) -> Result<TxnResult<Hash>, 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()?;
Expand Down Expand Up @@ -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?;
Expand Down
2 changes: 1 addition & 1 deletion cmd/soroban-cli/src/commands/tx/args.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
4 changes: 2 additions & 2 deletions cmd/soroban-cli/src/config/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ impl Args {
Ok(key.key_pair(self.hd_path())?)
}

pub async fn sign(&self, tx: Transaction) -> Result<TransactionEnvelope, Error> {
pub async fn sign(&self, tx: Transaction, quiet: bool) -> Result<TransactionEnvelope, Error> {
let tx_env = TransactionEnvelope::Tx(TransactionV1Envelope {
tx,
signatures: VecM::default(),
Expand All @@ -102,7 +102,7 @@ impl Args {
&tx_env,
&self.locator,
&self.network.get(&self.locator)?,
false,
quiet,
Some(&self.source_account),
)
.await?)
Expand Down
Loading