NostrElixir.Event (nostr_elixir v0.1.0)

View Source

Event creation, signing, verification, and helpers for NostrElixir.

Examples

iex> alias NostrElixir.{Keys, Event}
iex> keys = Keys.generate_keypair()
iex> event_json = Event.new(keys.public_key, "Hello, Nostr!", 1, [])
iex> signed_event_json = Event.sign(event_json, keys.secret_key)
iex> Event.verify(signed_event_json)
true

Summary

Types

content()

@type content() :: String.t()

event_json()

@type event_json() :: String.t()

pubkey()

@type pubkey() :: String.t()

secret_key()

@type secret_key() :: String.t()

tags()

@type tags() :: [[String.t()]]

Functions

create_metadata(keys, metadata)

@spec create_metadata(map() | String.t(), map()) :: event_json()

Create and sign a metadata event.

create_text_note(keys, content)

@spec create_text_note(map() | String.t(), content()) :: event_json()

Create and sign a text note event.

event_from_json_nif(json_string)

See NostrElixir.event_from_json_nif/1.

event_new_nif(pubkey, content, kind, tags_json)

See NostrElixir.event_new_nif/4.

event_sign_nif(event_json, secret_key)

See NostrElixir.event_sign_nif/2.

event_to_json_nif(event_json)

See NostrElixir.event_to_json_nif/1.

event_verify_nif(event_json)

See NostrElixir.event_verify_nif/1.

from_json(json_string)

@spec from_json(event_json()) :: event_json()

Parse event from JSON (validates required fields).

new(pubkey, content, kind, tags)

@spec new(pubkey(), content(), integer(), tags()) :: event_json()

Create a new unsigned event (JSON string).

sign(event_json, secret_key)

@spec sign(event_json(), secret_key()) :: event_json()

Sign an event (JSON string) with a secret key.

to_json(event_json)

@spec to_json(event_json()) :: event_json()

Return the event as JSON (identity function).

verify(event_json)

@spec verify(event_json()) :: boolean()

Verify an event's signature.