View Source Nostr.Message (Nostr Lib v0.1.1)

Nostr message is represented as tuple in Elixir. This module provides functions to generate messages, serialize or parse them.

Summary

Functions

Generate auth message

Generate close message

Generate post new event message

Generate eose message

Generate event message

Generate notice message

Generate OK message

Parse binary message to Elixir tuple, if message contains event it will be returned as general Nostr.Event.t() struct

Parse binary message to Elixir tuple, if message contains event it will be returned as specific Nostr.Event.t() struct dependent of type of Event

Generate request message

Serialize Elixir tuple message to on-the-wire binary

Types

@type t() ::
  {:event, Nostr.Event.t()}
  | {:event, binary(), Nostr.Event.t()}
  | {:req, binary(), Nostr.Filter.t()}
  | {:close, binary()}
  | {:eose, binary()}
  | {:notice, String.t()}
  | {:ok, binary(), boolean(), String.t()}
  | {:auth, Nostr.Event.t() | binary()}

Functions

@spec auth(Nostr.Event.t() | %{event: Nostr.Event.t()} | binary()) ::
  {:auth, Nostr.Event.t() | binary()}

Generate auth message

@spec close(binary()) :: {:close, binary()}

Generate close message

@spec count(pos_integer() | Nostr.Filter.t() | [Nostr.Filter.t()], binary()) ::
  {:count, binary(),
   %{count: pos_integer()} | Nostr.Filter.t() | [Nostr.Filter.t()]}
@spec create_event(Nostr.Event.t() | %{event: Nostr.Event.t()}) ::
  {:event, Nostr.Event.t()}

Generate post new event message

@spec eose(binary()) :: {:eose, binary()}

Generate eose message

@spec event(Nostr.Event.t() | %{event: Nostr.Event.t()}, binary()) ::
  {:event, binary(), Nostr.Event.t()}

Generate event message

@spec notice(String.t()) :: {:notice, String.t()}

Generate notice message

Link to this function

ok(event_id, success?, message)

View Source
@spec ok(binary(), boolean(), String.t()) :: {:ok, binary(), boolean(), String.t()}

Generate OK message

@spec parse(msg :: String.t()) :: t()

Parse binary message to Elixir tuple, if message contains event it will be returned as general Nostr.Event.t() struct

Parse binary message to Elixir tuple, if message contains event it will be returned as specific Nostr.Event.t() struct dependent of type of Event

Link to this function

request(filters, sub_id)

View Source
@spec request(Nostr.Filter.t() | [Nostr.Filter.t()], binary()) ::
  {:req, binary(), Nostr.Filter.t() | [Nostr.Filter.t()]}

Generate request message

@spec serialize(tuple()) :: binary()

Serialize Elixir tuple message to on-the-wire binary