From cef26e3479f0fd3113633904d8384a92a20f1022 Mon Sep 17 00:00:00 2001 From: Nando Vieira Date: Tue, 21 Jan 2025 13:18:07 -0800 Subject: [PATCH 1/2] Print old contract when overriding existing alias. --- .../src/commands/contract/deploy/asset.rs | 12 ++++++++++++ cmd/soroban-cli/src/commands/contract/deploy/wasm.rs | 11 +++++++++++ 2 files changed, 23 insertions(+) diff --git a/cmd/soroban-cli/src/commands/contract/deploy/asset.rs b/cmd/soroban-cli/src/commands/contract/deploy/asset.rs index 8c4419277..877bb47ce 100644 --- a/cmd/soroban-cli/src/commands/contract/deploy/asset.rs +++ b/cmd/soroban-cli/src/commands/contract/deploy/asset.rs @@ -1,4 +1,5 @@ use crate::config::locator; +use crate::print::Print; use crate::xdr::{ Asset, ContractDataDurability, ContractExecutable, ContractIdPreimage, CreateContractArgs, Error as XdrError, Hash, HostFunction, InvokeHostFunctionOp, LedgerKey::ContractData, @@ -81,6 +82,17 @@ impl Cmd { let network = self.config.get_network()?; if let Some(alias) = self.alias.clone() { + if let Some(existing_contract) = self + .config + .locator + .get_contract_id(&alias, &network.network_passphrase)? + { + let print = Print::new(false); + print.warnln(format!( + "Overwriting existing contract id: {existing_contract}" + )); + }; + self.config.locator.save_contract_id( &network.network_passphrase, &contract, diff --git a/cmd/soroban-cli/src/commands/contract/deploy/wasm.rs b/cmd/soroban-cli/src/commands/contract/deploy/wasm.rs index 9bd8fed68..b747dbd4c 100644 --- a/cmd/soroban-cli/src/commands/contract/deploy/wasm.rs +++ b/cmd/soroban-cli/src/commands/contract/deploy/wasm.rs @@ -138,6 +138,17 @@ impl Cmd { let network = self.config.get_network()?; if let Some(alias) = self.alias.clone() { + if let Some(existing_contract) = self + .config + .locator + .get_contract_id(&alias, &network.network_passphrase)? + { + let print = Print::new(false); + print.warnln(format!( + "Overwriting existing contract id: {existing_contract}" + )); + }; + self.config.locator.save_contract_id( &network.network_passphrase, &contract, From 915618a92e50449f33053113891dd4e07215660f Mon Sep 17 00:00:00 2001 From: Nando Vieira Date: Tue, 21 Jan 2025 14:12:56 -0800 Subject: [PATCH 2/2] Allow logging to be silenced. --- cmd/soroban-cli/src/commands/contract/asset.rs | 6 ++++-- cmd/soroban-cli/src/commands/contract/deploy.rs | 2 +- cmd/soroban-cli/src/commands/contract/deploy/asset.rs | 4 ++-- cmd/soroban-cli/src/commands/contract/deploy/wasm.rs | 2 +- cmd/soroban-cli/src/commands/contract/mod.rs | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/cmd/soroban-cli/src/commands/contract/asset.rs b/cmd/soroban-cli/src/commands/contract/asset.rs index edf077a7c..ce10602c7 100644 --- a/cmd/soroban-cli/src/commands/contract/asset.rs +++ b/cmd/soroban-cli/src/commands/contract/asset.rs @@ -1,3 +1,5 @@ +use crate::commands::global; + use super::{deploy, id}; #[derive(Debug, clap::Subcommand)] @@ -17,10 +19,10 @@ pub enum Error { } impl Cmd { - pub async fn run(&self) -> Result<(), Error> { + pub async fn run(&self, global_args: &global::Args) -> Result<(), Error> { match &self { Cmd::Id(id) => id.run()?, - Cmd::Deploy(asset) => asset.run().await?, + Cmd::Deploy(asset) => asset.run(global_args).await?, } Ok(()) } diff --git a/cmd/soroban-cli/src/commands/contract/deploy.rs b/cmd/soroban-cli/src/commands/contract/deploy.rs index 3e6dcf3ea..2d67a2161 100644 --- a/cmd/soroban-cli/src/commands/contract/deploy.rs +++ b/cmd/soroban-cli/src/commands/contract/deploy.rs @@ -23,7 +23,7 @@ pub enum Error { impl Cmd { pub async fn run(&self, global_args: &global::Args) -> Result<(), Error> { match &self { - Cmd::Asset(asset) => asset.run().await?, + Cmd::Asset(asset) => asset.run(global_args).await?, Cmd::Wasm(wasm) => wasm.run(global_args).await?, } Ok(()) diff --git a/cmd/soroban-cli/src/commands/contract/deploy/asset.rs b/cmd/soroban-cli/src/commands/contract/deploy/asset.rs index 877bb47ce..c8133b5f5 100644 --- a/cmd/soroban-cli/src/commands/contract/deploy/asset.rs +++ b/cmd/soroban-cli/src/commands/contract/deploy/asset.rs @@ -74,7 +74,7 @@ pub struct Cmd { } impl Cmd { - pub async fn run(&self) -> Result<(), Error> { + pub async fn run(&self, global_args: &global::Args) -> Result<(), Error> { let res = self.run_against_rpc_server(None, None).await?.to_envelope(); match res { TxnEnvelopeResult::TxnEnvelope(tx) => println!("{}", tx.to_xdr_base64(Limits::none())?), @@ -87,7 +87,7 @@ impl Cmd { .locator .get_contract_id(&alias, &network.network_passphrase)? { - let print = Print::new(false); + let print = Print::new(global_args.quiet); print.warnln(format!( "Overwriting existing contract id: {existing_contract}" )); diff --git a/cmd/soroban-cli/src/commands/contract/deploy/wasm.rs b/cmd/soroban-cli/src/commands/contract/deploy/wasm.rs index b747dbd4c..14db36e00 100644 --- a/cmd/soroban-cli/src/commands/contract/deploy/wasm.rs +++ b/cmd/soroban-cli/src/commands/contract/deploy/wasm.rs @@ -143,7 +143,7 @@ impl Cmd { .locator .get_contract_id(&alias, &network.network_passphrase)? { - let print = Print::new(false); + let print = Print::new(global_args.quiet); print.warnln(format!( "Overwriting existing contract id: {existing_contract}" )); diff --git a/cmd/soroban-cli/src/commands/contract/mod.rs b/cmd/soroban-cli/src/commands/contract/mod.rs index 42792a70d..40b8dcd4b 100644 --- a/cmd/soroban-cli/src/commands/contract/mod.rs +++ b/cmd/soroban-cli/src/commands/contract/mod.rs @@ -144,7 +144,7 @@ pub enum Error { impl Cmd { pub async fn run(&self, global_args: &global::Args) -> Result<(), Error> { match &self { - Cmd::Asset(asset) => asset.run().await?, + 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?,