hot fixes to utc-6
This commit is contained in:
@@ -45,7 +45,10 @@ pub enum HandshakeMessage {
|
||||
/// Result of polling for incoming handshake messages
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct IncomingHandshake {
|
||||
/// Sender's Nostr public key in hex
|
||||
pub from_nostr_pubkey: String,
|
||||
/// Sender's Nostr public key in bech32 npub format (NIP-19)
|
||||
pub from_nostr_npub: String,
|
||||
pub message: HandshakeMessage,
|
||||
pub timestamp: String,
|
||||
}
|
||||
@@ -103,11 +106,13 @@ pub async fn publish_presence(
|
||||
.ok_or_else(|| anyhow::anyhow!("No Nostr keys — generate them first"))?;
|
||||
|
||||
let nostr_pubkey = keys.public_key().to_hex();
|
||||
let nostr_npub = keys.public_key().to_bech32().unwrap_or_default();
|
||||
let client = build_client(keys, tor_proxy)?;
|
||||
|
||||
let content = serde_json::json!({
|
||||
"did": did,
|
||||
"nostr_pubkey": nostr_pubkey,
|
||||
"nostr_npub": nostr_npub,
|
||||
"version": version,
|
||||
// No onion address — exchanged only via encrypted DM
|
||||
})
|
||||
@@ -131,13 +136,16 @@ pub async fn publish_presence(
|
||||
/// Returns Nostr pubkeys and DIDs of discoverable nodes.
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct DiscoverableNode {
|
||||
/// Nostr secp256k1 public key in hex
|
||||
pub nostr_pubkey: String,
|
||||
/// Nostr public key in bech32 npub format (NIP-19)
|
||||
pub nostr_npub: String,
|
||||
pub did: String,
|
||||
pub version: String,
|
||||
}
|
||||
|
||||
pub async fn discover_nodes(
|
||||
identity_dir: &Path,
|
||||
_identity_dir: &Path,
|
||||
relays: &[String],
|
||||
tor_proxy: Option<&str>,
|
||||
) -> Result<Vec<DiscoverableNode>> {
|
||||
@@ -188,8 +196,14 @@ pub async fn discover_nodes(
|
||||
}
|
||||
|
||||
if !nostr_pubkey.is_empty() {
|
||||
// Derive npub (bech32 NIP-19) from hex
|
||||
let nostr_npub = nostr_sdk::PublicKey::from_hex(&nostr_pubkey)
|
||||
.ok()
|
||||
.and_then(|pk| pk.to_bech32().ok())
|
||||
.unwrap_or_default();
|
||||
nodes.push(DiscoverableNode {
|
||||
nostr_pubkey,
|
||||
nostr_npub,
|
||||
did,
|
||||
version,
|
||||
});
|
||||
@@ -374,8 +388,10 @@ pub async fn poll_handshakes(
|
||||
|
||||
// Try to parse as HandshakeMessage
|
||||
if let Ok(msg) = serde_json::from_str::<HandshakeMessage>(&plaintext) {
|
||||
let from_npub = event.pubkey.to_bech32().unwrap_or_default();
|
||||
handshakes.push(IncomingHandshake {
|
||||
from_nostr_pubkey: event.pubkey.to_hex(),
|
||||
from_nostr_npub: from_npub,
|
||||
message: msg,
|
||||
timestamp: event.created_at.to_human_datetime(),
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user