diff --git a/CHANGELOG.md b/CHANGELOG.md index 60ca8badf..39feb96d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,7 @@ * nostr: change `Filter::custom_tag` value arg type ([Yuki Kishimoto]) * nostr: rename `Filter::remove_custom_tag` to `Filter::remove_custom_tags` ([Yuki Kishimoto]) * nostr: take a single filter per REQ and COUNT ([Yuki Kishimoto]) +* nostr: rename `contact` module to `nip02` ([Yuki Kishimoto]) * pool: change `Relay::connect` method signature ([Yuki Kishimoto]) * pool: change `Relay::disconnect` method signature ([Yuki Kishimoto]) * pool: change `RelayPool::disconnect` method signature ([Yuki Kishimoto]) diff --git a/bindings/nostr-sdk-ffi/src/protocol/event/builder.rs b/bindings/nostr-sdk-ffi/src/protocol/event/builder.rs index 36251e8ce..1750c4c49 100644 --- a/bindings/nostr-sdk-ffi/src/protocol/event/builder.rs +++ b/bindings/nostr-sdk-ffi/src/protocol/event/builder.rs @@ -7,7 +7,7 @@ use std::ops::Deref; use std::sync::Arc; use nostr::util::EventIdOrCoordinate; -use nostr::{Contact as ContactSdk, RelayUrl, Url}; +use nostr::{RelayUrl, Url}; use uniffi::Object; use super::{Event, EventId, Kind}; @@ -196,7 +196,7 @@ impl EventBuilder { /// #[uniffi::constructor] pub fn contact_list(contacts: Vec) -> Result { - let mut list: Vec = Vec::with_capacity(contacts.len()); + let mut list = Vec::with_capacity(contacts.len()); for contact in contacts.into_iter() { list.push(contact.try_into()?); } diff --git a/bindings/nostr-sdk-ffi/src/protocol/types/contact.rs b/bindings/nostr-sdk-ffi/src/protocol/types/contact.rs index 119e83ba1..91966b0ee 100644 --- a/bindings/nostr-sdk-ffi/src/protocol/types/contact.rs +++ b/bindings/nostr-sdk-ffi/src/protocol/types/contact.rs @@ -4,6 +4,7 @@ use std::sync::Arc; +use nostr::nips::nip02; use nostr::RelayUrl; use uniffi::Record; @@ -17,7 +18,7 @@ pub struct Contact { pub alias: Option, } -impl TryFrom for nostr::Contact { +impl TryFrom for nip02::Contact { type Error = NostrSdkError; fn try_from(contact: Contact) -> Result { @@ -25,10 +26,10 @@ impl TryFrom for nostr::Contact { Some(url) => Some(RelayUrl::parse(&url)?), None => None, }; - Ok(nostr::Contact::new( - **contact.public_key, + Ok(nip02::Contact { + public_key: **contact.public_key, relay_url, - contact.alias, - )) + alias: contact.alias, + }) } } diff --git a/bindings/nostr-sdk-js/src/protocol/types/contact.rs b/bindings/nostr-sdk-js/src/protocol/types/contact.rs index 80d7462e3..e8bca9fca 100644 --- a/bindings/nostr-sdk-js/src/protocol/types/contact.rs +++ b/bindings/nostr-sdk-js/src/protocol/types/contact.rs @@ -48,7 +48,11 @@ impl JsContact { None => None, }; Ok(Self { - inner: Contact::new(**public_key, relay_url, alias), + inner: Contact { + public_key: **public_key, + relay_url, + alias, + }, }) } diff --git a/crates/nostr-sdk/src/client/mod.rs b/crates/nostr-sdk/src/client/mod.rs index bcec6e6e0..7f38804a5 100644 --- a/crates/nostr-sdk/src/client/mod.rs +++ b/crates/nostr-sdk/src/client/mod.rs @@ -1029,7 +1029,11 @@ impl Client { uppercase: false, }) = tag.to_standardized() { - contact_list.push(Contact::new(public_key, relay_url, alias)) + contact_list.push(Contact { + public_key, + relay_url, + alias, + }) } } } diff --git a/crates/nostr/src/lib.rs b/crates/nostr/src/lib.rs index 64a332ac6..e964ebf9b 100644 --- a/crates/nostr/src/lib.rs +++ b/crates/nostr/src/lib.rs @@ -71,7 +71,7 @@ pub use self::nips::nip19::{FromBech32, ToBech32}; #[doc(hidden)] pub use self::signer::{NostrSigner, SignerError}; #[doc(hidden)] -pub use self::types::{Contact, ImageDimensions, RelayUrl, Timestamp, TryIntoUrl, Url}; +pub use self::types::{ImageDimensions, RelayUrl, Timestamp, TryIntoUrl, Url}; #[doc(hidden)] pub use self::util::JsonUtil; #[doc(hidden)] diff --git a/crates/nostr/src/nips/mod.rs b/crates/nostr/src/nips/mod.rs index a714e9abd..4cca09ed0 100644 --- a/crates/nostr/src/nips/mod.rs +++ b/crates/nostr/src/nips/mod.rs @@ -7,6 +7,7 @@ //! See all at pub mod nip01; +pub mod nip02; #[cfg(feature = "nip04")] pub mod nip04; #[cfg(all(feature = "std", feature = "nip05"))] diff --git a/crates/nostr/src/types/contact.rs b/crates/nostr/src/nips/nip02.rs similarity index 59% rename from crates/nostr/src/types/contact.rs rename to crates/nostr/src/nips/nip02.rs index 14667d797..60c0e0479 100644 --- a/crates/nostr/src/types/contact.rs +++ b/crates/nostr/src/nips/nip02.rs @@ -2,7 +2,9 @@ // Copyright (c) 2023-2024 Rust Nostr Developers // Distributed under the MIT software license -//! Contact +//! NIP02: Follow List +//! +//! use alloc::string::String; @@ -10,7 +12,7 @@ use crate::key::PublicKey; use crate::types::RelayUrl; /// Contact -#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Deserialize, Serialize)] +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] pub struct Contact { /// Public key pub public_key: PublicKey, @@ -21,16 +23,13 @@ pub struct Contact { } impl Contact { - /// Create new [`Contact`] + /// Create new contact #[inline] - pub fn new(public_key: PublicKey, relay_url: Option, alias: Option) -> Self - where - S: Into, - { + pub fn new(public_key: PublicKey) -> Self { Self { public_key, - relay_url, - alias: alias.map(|a| a.into()), + relay_url: None, + alias: None, } } } diff --git a/crates/nostr/src/prelude.rs b/crates/nostr/src/prelude.rs index 7e45d9df7..d54e5e45d 100644 --- a/crates/nostr/src/prelude.rs +++ b/crates/nostr/src/prelude.rs @@ -29,6 +29,7 @@ pub use crate::key::{self, *}; pub use crate::message::{self, *}; // NIPs pub use crate::nips::nip01::{self, *}; +pub use crate::nips::nip02::{self, *}; #[cfg(feature = "nip04")] pub use crate::nips::nip04; #[cfg(all(feature = "std", feature = "nip05"))] diff --git a/crates/nostr/src/types/mod.rs b/crates/nostr/src/types/mod.rs index 5419b1ca0..dc1baf031 100644 --- a/crates/nostr/src/types/mod.rs +++ b/crates/nostr/src/types/mod.rs @@ -7,12 +7,10 @@ #![allow(unknown_lints)] #![allow(ambiguous_glob_reexports)] -pub mod contact; pub mod image; pub mod time; pub mod url; -pub use self::contact::*; pub use self::image::*; pub use self::time::*; pub use self::url::*;