Nostr. Event. PrivateMessage
(Nostr Lib v0.2.1)
(event)
(nip17)
View Source
Private Direct Message (Kind 14)
This is an unsigned event (rumor) for encrypted chat messages per NIP-17. Messages MUST be wrapped in a Seal (kind 13) and GiftWrap (kind 1059) before publishing.
Defined in NIP 17 https://github.com/nostr-protocol/nips/blob/master/17.md
Summary
Functions
Create a new private message (unsigned rumor)
Parse a kind 14 event or rumor into a PrivateMessage struct
Types
Quoted event reference
Receiver with optional relay URL
Functions
@spec create( sender_pubkey :: binary(), receiver_pubkeys :: [binary() | map()], content :: binary(), opts :: Keyword.t() ) :: t()
Create a new private message (unsigned rumor)
Arguments
sender_pubkey- public key of the senderreceiver_pubkeys- list of receiver public keys (or maps with pubkey and optional relay)content- plain text message contentopts- optional arguments::reply_to- event ID this message is replying to:subject- conversation title:quotes- list of quoted event references:created_at- timestamp (defaults to now)
Example
iex> msg = Nostr.Event.PrivateMessage.create(
...> "sender_pubkey",
...> ["receiver_pubkey"],
...> "Hello!"
...> )
iex> msg.content
"Hello!"
iex> msg.rumor.kind
14
@spec parse(Nostr.Event.Rumor.t() | Nostr.Event.t() | map()) :: t()
Parse a kind 14 event or rumor into a PrivateMessage struct
Example
iex> rumor = %Nostr.Event.Rumor{kind: 14, content: "Hello", tags: [], pubkey: "abc", created_at: DateTime.utc_now()}
iex> msg = Nostr.Event.PrivateMessage.parse(rumor)
iex> msg.content
"Hello"