nostr-rs-relay

My dev fork of nostr-rs-relay
git clone git://jb55.com/nostr-rs-relay
Log | Files | Refs | README | LICENSE

commit 26a0ce2b322393175a7bed045a943fc003b464fb
parent fa66a0265e6ad7b757fce2aae89e2f94ce58cbc9
Author: Greg Heartsfield <scsibug@imap.cc>
Date:   Sat, 12 Feb 2022 09:29:35 -0600

docs: function/struct comments

Diffstat:
Msrc/close.rs | 4+++-
Msrc/db.rs | 8++++++--
Msrc/event.rs | 7++++---
Msrc/lib.rs | 1-
Msrc/nip05.rs | 11++++++++---
5 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/src/close.rs b/src/close.rs @@ -1,4 +1,6 @@ //! Subscription close request parsing +//! +//! Representation and parsing of `CLOSE` messages sent from clients. use crate::error::{Error, Result}; use serde::{Deserialize, Serialize}; @@ -11,7 +13,7 @@ pub struct CloseCmd { id: String, } -/// Close command parsed +/// Identifier of the subscription to be closed. #[derive(Serialize, Deserialize, PartialEq, Debug, Clone)] pub struct Close { /// The subscription identifier being closed. diff --git a/src/db.rs b/src/db.rs @@ -126,6 +126,7 @@ FOREIGN KEY(metadata_event) REFERENCES event(id) ON UPDATE CASCADE ON DELETE CAS // TODO: drop the pubkey_ref and event_ref tables +/// Build a database connection pool. pub fn build_pool( name: &str, flags: OpenFlags, @@ -469,13 +470,14 @@ pub async fn db_writer( }) } +/// Determine the current application database schema version. pub fn db_version(conn: &mut Connection) -> Result<usize> { let query = "PRAGMA user_version;"; let curr_version = conn.query_row(query, [], |row| row.get(0))?; Ok(curr_version) } -/// Persist an event to the database. +/// Persist an event to the database, returning rows added. pub fn write_event(conn: &mut PooledConnection, e: &Event) -> Result<usize> { // start transaction let tx = conn.transaction()?; @@ -549,7 +551,7 @@ pub fn write_event(conn: &mut PooledConnection, e: &Event) -> Result<usize> { Ok(ins_count) } -/// Event resulting from a specific subscription request +/// Serialized event associated with a specific subscription request. #[derive(PartialEq, Debug, Clone)] pub struct QueryResult { /// Subscription identifier @@ -568,6 +570,7 @@ fn is_all_fs(s: &str) -> bool { s.chars().all(|x| x == 'f' || x == 'F') } +/// Types of hexadecimal queries. #[derive(PartialEq, Debug, Clone)] enum HexSearch { // when no range is needed, exact 32-byte @@ -637,6 +640,7 @@ fn hex_range(s: &str) -> Option<HexSearch> { Some(HexSearch::Range(base, upper)) } +/// Produce a arbitrary list of '?' parameters. fn repeat_vars(count: usize) -> String { if count == 0 { return "".to_owned(); diff --git a/src/event.rs b/src/event.rs @@ -16,17 +16,18 @@ use std::str::FromStr; use std::time::SystemTime; lazy_static! { + /// Secp256k1 verification instance. pub static ref SECP: Secp256k1<VerifyOnly> = Secp256k1::verification_only(); } -/// Event command in network format +/// Event command in network format. #[derive(Serialize, Deserialize, PartialEq, Debug, Clone)] pub struct EventCmd { cmd: String, // expecting static "EVENT" event: Event, } -/// Event parsed +/// Parsed nostr event. #[derive(Serialize, Deserialize, PartialEq, Debug, Clone)] pub struct Event { pub id: String, @@ -71,7 +72,7 @@ impl From<EventCmd> for Result<Event> { } } -/// Seconds since 1970 +/// Seconds since 1970. pub fn unix_time() -> u64 { SystemTime::now() .duration_since(SystemTime::UNIX_EPOCH) diff --git a/src/lib.rs b/src/lib.rs @@ -8,4 +8,3 @@ pub mod info; pub mod nip05; pub mod protostream; pub mod subscription; -pub mod tags; diff --git a/src/nip05.rs b/src/nip05.rs @@ -1,4 +1,9 @@ //! User verification using NIP-05 names +//! +//! NIP-05 defines a mechanism for authors to associate an internet +//! address with their public key, in metadata events. This module +//! consumes a stream of metadata events, and keeps a database table +//! updated with the current NIP-05 verification status. use crate::config::SETTINGS; use crate::db; use crate::error::{Error, Result}; @@ -15,7 +20,7 @@ use std::time::Instant; use std::time::SystemTime; use tokio::time::Interval; -/// NIP-05 verifier +/// NIP-05 verifier state pub struct Verifier { /// Metadata events for us to inspect metadata_rx: tokio::sync::broadcast::Receiver<Event>, @@ -649,8 +654,7 @@ pub async fn save_verification_record( }).await? } -/// Retrieve the most recent verification record for a given pubkey -// Important, this is the most recent verification /of the most recent metadata event/. +/// Retrieve the most recent verification record for a given pubkey (async). pub async fn get_latest_user_verification( conn: db::PooledConnection, pubkey: &str, @@ -659,6 +663,7 @@ pub async fn get_latest_user_verification( tokio::task::spawn_blocking(move || query_latest_user_verification(conn, p)).await? } +/// Query database for the latest verification record for a given pubkey. pub fn query_latest_user_verification( mut conn: db::PooledConnection, pubkey: String,