diff --git a/Cargo.lock b/Cargo.lock index f947b71..0fa5c2f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1490,7 +1490,7 @@ dependencies = [ [[package]] name = "nsigner" -version = "0.0.6" +version = "0.0.7" dependencies = [ "base64", "chacha20poly1305", diff --git a/Cargo.toml b/Cargo.toml index 79b34eb..e379721 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nsigner" -version = "0.0.7" +version = "0.0.8" edition = "2021" license = "MIT" description = "Attended Nostr signing daemon — Rust port of n_signer" diff --git a/src/lib.rs b/src/lib.rs index aeb66e0..9b3f366 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -31,4 +31,4 @@ pub mod error; pub use error::NsignerError; /// Version string (matches C NSIGNER_VERSION). -pub const VERSION: &str = "v0.0.7"; +pub const VERSION: &str = "v0.0.8"; diff --git a/src/tui.rs b/src/tui.rs index f0a3571..4b25d85 100644 --- a/src/tui.rs +++ b/src/tui.rs @@ -587,31 +587,25 @@ impl App { // ── Seed entry ────────────────────────────────────────────────────── fn handle_seed_key(&mut self, key: KeyEvent) { - // 'g' generates a new mnemonic only when the input buffer is empty. - // If the user has already started typing, 'g' is just a letter in a - // mnemonic word. - if (key.code == KeyCode::Char('g') || key.code == KeyCode::Char('G')) - && self.unlock_input.buffer.is_empty() - { - match self.mnemonic.generate(12) { - Ok(phrase) => { - self.generated_phrase = phrase; - self.seed_generate_mode = true; - self.screen = Screen::SeedDisplay; - } - Err(_) => { - self.seed_attempts += 1; - } - } - return; - } if edit_key(&mut self.unlock_input, key) { return; } if key.code == KeyCode::Enter { let input = self.unlock_input.buffer.trim().to_string(); self.unlock_input = InputField::new(""); - if !input.is_empty() { + if input.is_empty() { + // Enter on an empty buffer generates a fresh mnemonic. + match self.mnemonic.generate(12) { + Ok(phrase) => { + self.generated_phrase = phrase; + self.seed_generate_mode = true; + self.screen = Screen::SeedDisplay; + } + Err(_) => { + self.seed_attempts += 1; + } + } + } else { match self.mnemonic.load(&input) { Ok(()) => self.enter_main(), Err(_) => { @@ -1292,7 +1286,7 @@ impl App { let area = f.area(); let mut lines = vec![ Line::from(""), - Line::from("Enter seed phrase or G to generate new:"), + Line::from("Enter seed phrase (Enter to load, or Enter on empty to generate):"), Line::from(""), Line::from(Span::styled( format!("> {}", self.unlock_input.buffer),