From 22c9ccd8f17815c960e797a545ab3cb1385ffcf8 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Wed, 21 Jan 2026 16:05:02 +0000 Subject: fix: use hex format for pubkey in NIP-11 document The NIP-11 specification requires the pubkey field to be a 64-character hex string, but we were incorrectly using npub (bech32) format. Changes: - Add Config::relay_owner_pubkey_hex() method to get hex format - Update NIP-11 document to use hex format instead of npub - Update test to verify 64-char hex string instead of npub format Fixes nak relay command error: 'must be a hex string of 64 characters' --- src/http/nip11.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/http') diff --git a/src/http/nip11.rs b/src/http/nip11.rs index 7c58175..f7af3c2 100644 --- a/src/http/nip11.rs +++ b/src/http/nip11.rs @@ -100,7 +100,7 @@ impl RelayInformationDocument { Self { name: config.relay_name(), description: config.relay_description.clone(), - pubkey: config.relay_owner_npub().ok(), + pubkey: config.relay_owner_pubkey_hex().ok(), contact: None, // Could be added to config if needed supported_nips: vec![ 1, // NIP-01: Basic protocol flow @@ -145,10 +145,11 @@ mod tests { assert_eq!(doc.name, "Test Relay"); assert_eq!(doc.description, "A test relay"); - // Verify pubkey is present and is a valid npub + // Verify pubkey is present and is a valid hex string (64 chars) assert!(doc.pubkey.is_some()); let pubkey = doc.pubkey.unwrap(); - assert!(pubkey.starts_with("npub1")); + assert_eq!(pubkey.len(), 64); + assert!(pubkey.chars().all(|c| c.is_ascii_hexdigit())); assert!(doc.supported_nips.contains(&1)); assert!(doc.supported_nips.contains(&11)); -- cgit v1.2.3