From 59ac008e50a4f4ac6ab4f3bffd465be43560e196 Mon Sep 17 00:00:00 2001 From: thesimplekid Date: Mon, 15 Jul 2024 15:43:47 +0100 Subject: [PATCH] feat(cdk-cli): support nostr nsec secret keys --- CHANGELOG.md | 1 + crates/cdk-cli/src/sub_commands/receive.rs | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8291bcb1..38554d36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,7 @@ - cdk(NUT-11): Add `Copy` on `SigFlag` ([thesimplekid]). - cdk(wallet): Add `fn send_proofs` that marks proofs as `reserved` and creates token ([thesimplekid]). - cdk(wallet): Add `fn melt_proofs` that uses specific proofs for `melt` instead of selecting ([thesimplekid]). +- cdk-cli(receive): Add support for signing keys to be nostr nsec encoded ([thesimplekid]). ### Fixed - cdk(mint): `SIG_ALL` is not allowed in `melt` ([thesimplekid]). diff --git a/crates/cdk-cli/src/sub_commands/receive.rs b/crates/cdk-cli/src/sub_commands/receive.rs index d7f2e2b3..7cae2aea 100644 --- a/crates/cdk-cli/src/sub_commands/receive.rs +++ b/crates/cdk-cli/src/sub_commands/receive.rs @@ -46,7 +46,15 @@ pub async fn receive( let mut s_keys: Vec = sub_command_args .signing_key .iter() - .map(|s| SecretKey::from_str(s).unwrap()) + .flat_map(|s| { + if s.starts_with("nsec") { + let nostr_key = nostr_sdk::SecretKey::from_str(s).expect("Invalid secret key"); + + SecretKey::from_str(&nostr_key.to_secret_hex()) + } else { + SecretKey::from_str(s) + } + }) .collect(); signing_keys.append(&mut s_keys); } @@ -67,7 +75,8 @@ pub async fn receive( //wallet.add_p2pk_signing_key(nostr_signing_key).await; let nostr_key = match sub_command_args.nostr_key.as_ref() { Some(nostr_key) => { - let secret_key = SecretKey::from_str(nostr_key)?; + let secret_key = nostr_sdk::SecretKey::from_str(nostr_key)?; + let secret_key = SecretKey::from_str(&secret_key.to_secret_hex())?; Some(secret_key) } None => None,