From fb958686f2df2d2e74428c6e01a5c8013d77d576 Mon Sep 17 00:00:00 2001 From: Antoine Riard Date: Wed, 23 Aug 2023 18:11:44 +0100 Subject: [PATCH] Add NIP-11 relay info document as early NOTICE --- src/clienthandler.rs | 7 +++---- src/util.rs | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/clienthandler.rs b/src/clienthandler.rs index 79bf8e6..d1477ad 100644 --- a/src/clienthandler.rs +++ b/src/clienthandler.rs @@ -21,7 +21,7 @@ use crate::config::Config; use crate::{events, NostrSub, NostrClient}; use crate::events::{ClientEvents, EventsProvider, ServerCmd}; use crate::nostr_db::DbRequest; -use crate::util::is_ephemeral; +use crate::util::{is_ephemeral, get_relay_info}; use staking_credentials::common::msgs::CredentialPolicy; @@ -333,9 +333,8 @@ impl ClientHandler { } let db_request = DbRequest::WriteClient(client_2); write_db.push(db_request); - //TODO: serialize CredentialPolicy as message notice - let message = String::new(); - let relay_message = RelayMessage::new_notice(message); + let relay_info = get_relay_info(); + let relay_message = RelayMessage::new_notice(relay_info); let serialized_message = relay_message.as_json(); let notice_event = ClientEvents::RelayNotice { client_id: client_id, message: serialized_message }; new_pending_events.push(notice_event); diff --git a/src/util.rs b/src/util.rs index 6f9f791..7e86279 100644 --- a/src/util.rs +++ b/src/util.rs @@ -1,5 +1,9 @@ use nostr::Event; +use serde_json::json; + +use bitcoin::secp256k1::{PublicKey, SecretKey, Secp256k1}; + use log::LevelFilter; use simplelog::{CombinedLogger, ConfigBuilder, TermLogger, WriteLogger, TerminalMode}; use std::error::Error; @@ -73,3 +77,18 @@ pub fn is_replaceable(ev: &Event) -> bool { } return false; } + +pub fn get_relay_info() -> String { + //TODO: give config + let secp_ctx = Secp256k1::new(); + let pubkey = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[42;32]).unwrap()); + let relay_info = json!({ + "name": "CIVKIT TEST", + "description": "", + "pubkey": pubkey.serialize()[..], + "contact": "", + "software": "civkitd", + "version": "v0.0.2" + }); + relay_info.to_string() +}