diff --git a/.changelog/unreleased/bug-fixes/3245-no-reveal-on-force.md b/.changelog/unreleased/bug-fixes/3245-no-reveal-on-force.md new file mode 100644 index 0000000000..28866337da --- /dev/null +++ b/.changelog/unreleased/bug-fixes/3245-no-reveal-on-force.md @@ -0,0 +1,2 @@ +- Do not submit a tx to reveal a PK when `--force` flag is used with a + transaction. ([\#3245](https://github.com/anoma/namada/pull/3245)) \ No newline at end of file diff --git a/crates/apps_lib/src/client/tx.rs b/crates/apps_lib/src/client/tx.rs index df826c6b33..f7a2a182c6 100644 --- a/crates/apps_lib/src/client/tx.rs +++ b/crates/apps_lib/src/client/tx.rs @@ -203,9 +203,7 @@ pub async fn submit_reveal_aux( .find_public_key_by_pkh(pkh) .map_err(|e| error::Error::Other(e.to_string()))?; - if tx::is_reveal_pk_needed(context.client(), address, args.force) - .await? - { + if tx::is_reveal_pk_needed(context.client(), address).await? { display_line!( context.io(), "Submitting a tx to reveal the public key for address \ diff --git a/crates/sdk/src/tx.rs b/crates/sdk/src/tx.rs index dbf65356e8..d2d4f5691b 100644 --- a/crates/sdk/src/tx.rs +++ b/crates/sdk/src/tx.rs @@ -272,13 +272,12 @@ pub async fn process_tx( pub async fn is_reveal_pk_needed( client: &C, address: &Address, - force: bool, ) -> Result where C: crate::queries::Client + Sync, { // Check if PK revealed - Ok(force || !has_revealed_pk(client, address).await?) + Ok(!has_revealed_pk(client, address).await?) } /// Check if the public key for the given address has been revealed diff --git a/crates/tests/src/integration/ledger_tests.rs b/crates/tests/src/integration/ledger_tests.rs index 0c17b5b73b..40816bdf67 100644 --- a/crates/tests/src/integration/ledger_tests.rs +++ b/crates/tests/src/integration/ledger_tests.rs @@ -26,7 +26,9 @@ use crate::integration::helpers::{ find_address, prepare_steward_commission_update_data, }; use crate::integration::setup; -use crate::strings::{TX_APPLIED_SUCCESS, TX_REJECTED}; +use crate::strings::{ + TX_APPLIED_SUCCESS, TX_INSUFFICIENT_BALANCE, TX_REJECTED, +}; use crate::tx::tx_host_env::gov_storage::proposal::{ PGFInternalTarget, PGFTarget, }; @@ -397,7 +399,7 @@ fn invalid_transactions() -> Result<()> { &validator_one_rpc, ]; let captured = CapturedOutput::of(|| run(&node, Bin::Client, tx_args)); - assert!(captured.contains(TX_REJECTED)); + assert!(captured.contains(TX_INSUFFICIENT_BALANCE)); Ok(()) } diff --git a/crates/tests/src/strings.rs b/crates/tests/src/strings.rs index 5eb82e166a..9033aa6ed9 100644 --- a/crates/tests/src/strings.rs +++ b/crates/tests/src/strings.rs @@ -18,6 +18,9 @@ pub const TX_APPLIED_SUCCESS: &str = "was successfully applied"; /// Inner transaction rejected by VP(s). pub const TX_REJECTED: &str = "was rejected by VPs"; +/// Inner transaction failed in execution of transfer with insufficient balance +pub const TX_INSUFFICIENT_BALANCE: &str = "insufficient balance"; + /// Inner transaction failed in execution (no VPs ran). pub const TX_FAILED: &str = "failed with error";