diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2026-01-21 16:05:02 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2026-01-21 16:05:02 +0000 |
| commit | 22c9ccd8f17815c960e797a545ab3cb1385ffcf8 (patch) | |
| tree | 7a166bc829223763906848a6108c783f216d0a88 /src/http | |
| parent | 68cca2e28a5edc9b8da72f483980818e4a13fb52 (diff) | |
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'
Diffstat (limited to 'src/http')
| -rw-r--r-- | src/http/nip11.rs | 7 |
1 files changed, 4 insertions, 3 deletions
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 { | |||
| 100 | Self { | 100 | Self { |
| 101 | name: config.relay_name(), | 101 | name: config.relay_name(), |
| 102 | description: config.relay_description.clone(), | 102 | description: config.relay_description.clone(), |
| 103 | pubkey: config.relay_owner_npub().ok(), | 103 | pubkey: config.relay_owner_pubkey_hex().ok(), |
| 104 | contact: None, // Could be added to config if needed | 104 | contact: None, // Could be added to config if needed |
| 105 | supported_nips: vec![ | 105 | supported_nips: vec![ |
| 106 | 1, // NIP-01: Basic protocol flow | 106 | 1, // NIP-01: Basic protocol flow |
| @@ -145,10 +145,11 @@ mod tests { | |||
| 145 | assert_eq!(doc.name, "Test Relay"); | 145 | assert_eq!(doc.name, "Test Relay"); |
| 146 | assert_eq!(doc.description, "A test relay"); | 146 | assert_eq!(doc.description, "A test relay"); |
| 147 | 147 | ||
| 148 | // Verify pubkey is present and is a valid npub | 148 | // Verify pubkey is present and is a valid hex string (64 chars) |
| 149 | assert!(doc.pubkey.is_some()); | 149 | assert!(doc.pubkey.is_some()); |
| 150 | let pubkey = doc.pubkey.unwrap(); | 150 | let pubkey = doc.pubkey.unwrap(); |
| 151 | assert!(pubkey.starts_with("npub1")); | 151 | assert_eq!(pubkey.len(), 64); |
| 152 | assert!(pubkey.chars().all(|c| c.is_ascii_hexdigit())); | ||
| 152 | 153 | ||
| 153 | assert!(doc.supported_nips.contains(&1)); | 154 | assert!(doc.supported_nips.contains(&1)); |
| 154 | assert!(doc.supported_nips.contains(&11)); | 155 | assert!(doc.supported_nips.contains(&11)); |