diff --git a/crates/notedeck/src/accounts.rs b/crates/notedeck/src/accounts.rs index 354be84..21a8cd4 100644 --- a/crates/notedeck/src/accounts.rs +++ b/crates/notedeck/src/accounts.rs @@ -330,6 +330,14 @@ impl Accounts { None } + pub fn contains_full_kp(&self, pubkey: &enostr::Pubkey) -> bool { + if let Some(contains) = self.contains_account(pubkey.bytes()) { + contains.has_nsec + } else { + false + } + } + #[must_use = "UnknownIdAction's must be handled. Use .process_unknown_id_action()"] pub fn add_account(&mut self, account: Keypair) -> AddAccountAction { let pubkey = account.pubkey; @@ -562,6 +570,18 @@ impl Accounts { self.needs_relay_config = false; } } + + pub fn get_full<'a>(&'a self, pubkey: &[u8; 32]) -> Option> { + if let Some(contains) = self.contains_account(pubkey) { + if contains.has_nsec { + if let Some(kp) = self.get_account(contains.index) { + return kp.to_full(); + } + } + } + + None + } } fn get_selected_index(accounts: &[UserAccount], keystore: &KeyStorageType) -> Option {