# README
go-nostr
A set of useful things for Nostr Protocol implementations.
Subscribing to a set of relays
pool := nostr.NewRelayPool()
pool.Add("wss://relay.nostr.com/", &nostr.RelayPoolPolicy{
SimplePolicy: nostr.SimplePolicy{Read: true, Write: true},
})
pool.Add("wss://nostrrelay.example.com/", &nostr.RelayPoolPolicy{
SimplePolicy: nostr.SimplePolicy{Read: true, Write: true},
})
for notice := range pool.Notices {
log.Printf("%s has sent a notice: '%s'\n", notice.Relay, notice.Message)
}
Listening for events
sub := pool.Sub(nostr.EventFilters{
{
Authors: []string{"0ded86bf80c76847320b16f22b7451c08169434837a51ad5fe3b178af6c35f5d"},
Kinds: []string{nostr.KindTextNote}, // or {1}
},
})
go func() {
for event := range sub.UniqueEvents {
log.Print(event)
}
}()
time.Sleep(5 * time.Second)
sub.Unsub()
Publishing an event
secretKey := "3f06a81e0a0c2ad34ee9df2a30d87a810da9e3c3881f780755ace5e5e64d30a7"
pool.SecretKey = &secretKey
event, statuses, _ := pool.PublishEvent(&nostr.Event{
CreatedAt: uint32(time.Now().Unix()),
Kind: nostr.KindTextNote,
Tags: make(nostr.Tags, 0),
Content: "hello",
})
log.Print(event.PubKey)
log.Print(event.ID)
log.Print(event.Sig)
for status := range statuses {
switch status.Status {
case nostr.PublishStatusSent:
fmt.Printf("Sent event %s to '%s'.\n", event.ID, status.Relay)
case nostr.PublishStatusFailed:
fmt.Printf("Failed to send event %s to '%s'.\n", event.ID, status.Relay)
case nostr.PublishStatusSucceeded:
fmt.Printf("Event seen %s on '%s'.\n", event.ID, status.Relay)
}
}
Generating a key
sk, _ := nostr.GenerateKey()
fmt.Println("sk:", sk)
fmt.Println("pk:", nostr.GetPublicKey(sk))
# Functions
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
New creates a new RelayPool with no relays in it.
No description provided by the author
# Constants
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Structs
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Interfaces
No description provided by the author
# Type aliases
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author