From b04c8e99cb4866cd8d595c42f90fd9bb96e55b18 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Thu, 23 Oct 2025 05:55:05 -0700 Subject: [PATCH] Fix sign and store to take events by reference --- README.md | 4 ++-- zooid/events.go | 8 ++++---- zooid/groups.go | 6 +++--- zooid/instance.go | 6 +++++- zooid/management.go | 16 ++++++++-------- 5 files changed, 22 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 58118a0..68d6ce8 100644 --- a/README.md +++ b/README.md @@ -76,12 +76,12 @@ The below config file might be saved as `./config/my-relay.example.com` in order ```toml host = "my-relay.example.com" schema = "my_relay" -secret = "ce30b1831a4551f4cb7a984033c34ab96d8cf56ff50df9d0c27d9fa5422f2278" +secret = "" [info] name = "My relay" icon = "https://example.com/icon.png" -pubkey = "d9254d9898fd4728f7e2b32b87520221a50f6b8b97d935d7da2de8923988aa6d" +pubkey = "" description = "A community relay for my friends" [policy] diff --git a/zooid/events.go b/zooid/events.go index 023c0a5..f15e2fe 100644 --- a/zooid/events.go +++ b/zooid/events.go @@ -350,17 +350,17 @@ func (events *EventStore) StoreEvent(event nostr.Event) error { return events.ReplaceEvent(event) } -func (events *EventStore) SignAndStoreEvent(event nostr.Event, broadcast bool) error { - if err := events.Config.Sign(&event); err != nil { +func (events *EventStore) SignAndStoreEvent(event *nostr.Event, broadcast bool) error { + if err := events.Config.Sign(event); err != nil { return err } - if err := events.StoreEvent(event); err != nil { + if err := events.StoreEvent(*event); err != nil { return err } if broadcast { - events.Relay.BroadcastEvent(event) + events.Relay.BroadcastEvent(*event) } return nil diff --git a/zooid/groups.go b/zooid/groups.go index 345340f..575c60b 100644 --- a/zooid/groups.go +++ b/zooid/groups.go @@ -44,7 +44,7 @@ func (g *GroupStore) AddMember(h string, pubkey nostr.PubKey) error { }, } - return g.Events.SignAndStoreEvent(event, true) + return g.Events.SignAndStoreEvent(&event, true) } func (g *GroupStore) RemoveMember(h string, pubkey nostr.PubKey) error { @@ -57,7 +57,7 @@ func (g *GroupStore) RemoveMember(h string, pubkey nostr.PubKey) error { }, } - return g.Events.SignAndStoreEvent(event, true) + return g.Events.SignAndStoreEvent(&event, true) } func (g *GroupStore) SetMetadataFromEvent(event nostr.Event) error { @@ -77,7 +77,7 @@ func (g *GroupStore) SetMetadataFromEvent(event nostr.Event) error { Tags: tags, } - return g.Events.SignAndStoreEvent(metadataEvent, true) + return g.Events.SignAndStoreEvent(&metadataEvent, true) } func (g *GroupStore) DeleteGroup(h string) { diff --git a/zooid/instance.go b/zooid/instance.go index 690d3e5..774bda6 100644 --- a/zooid/instance.go +++ b/zooid/instance.go @@ -219,7 +219,7 @@ func (instance *Instance) GenerateInviteEvent(pubkey nostr.PubKey) nostr.Event { }, } - if err := instance.Events.SignAndStoreEvent(event, false); err != nil { + if err := instance.Events.SignAndStoreEvent(&event, false); err != nil { log.Printf("Failed to sign invite event: %v", err) } @@ -282,6 +282,10 @@ func (instance *Instance) QueryStored(ctx context.Context, filter nostr.Filter) } for event := range instance.Events.QueryEvents(filter, 1000) { + if event.Kind == RELAY_INVITE { + continue + } + if instance.IsInternalEvent(event) { continue } diff --git a/zooid/management.go b/zooid/management.go index 6c097f7..879e7ab 100644 --- a/zooid/management.go +++ b/zooid/management.go @@ -48,7 +48,7 @@ func (m *ManagementStore) BanEvent(id nostr.ID, reason string) error { event := m.Events.GetOrCreateApplicationSpecificData(BANNED_EVENTS) event.Tags = append(event.Tags, nostr.Tag{"event", id.Hex(), reason}) - return m.Events.SignAndStoreEvent(event, false) + return m.Events.SignAndStoreEvent(&event, false) } func (m *ManagementStore) AllowEvent(id nostr.ID, reason string) error { @@ -57,7 +57,7 @@ func (m *ManagementStore) AllowEvent(id nostr.ID, reason string) error { return t[1] == id.Hex() }) - return m.Events.SignAndStoreEvent(event, false) + return m.Events.SignAndStoreEvent(&event, false) } func (m *ManagementStore) EventIsBanned(id nostr.ID) bool { @@ -89,7 +89,7 @@ func (m *ManagementStore) AddBannedPubkey(pubkey nostr.PubKey, reason string) er if event.Tags.FindWithValue("banned", pubkey.Hex()) == nil { event.Tags = append(event.Tags, nostr.Tag{"banned", pubkey.Hex(), reason}) - if err := m.Events.SignAndStoreEvent(event, false); err != nil { + if err := m.Events.SignAndStoreEvent(&event, false); err != nil { return err } } @@ -105,7 +105,7 @@ func (m *ManagementStore) RemoveBannedPubkey(pubkey nostr.PubKey) error { return len(t) >= 2 && t[1] != pubkey.Hex() }) - if err := m.Events.SignAndStoreEvent(event, false); err != nil { + if err := m.Events.SignAndStoreEvent(&event, false); err != nil { return err } } @@ -152,13 +152,13 @@ func (m *ManagementStore) AddMember(pubkey nostr.PubKey) error { }, } - if err := m.Events.SignAndStoreEvent(addMemberEvent, true); err != nil { + if err := m.Events.SignAndStoreEvent(&addMemberEvent, true); err != nil { return err } membersEvent.Tags = append(membersEvent.Tags, nostr.Tag{"member", pubkey.Hex()}) - if err := m.Events.SignAndStoreEvent(membersEvent, true); err != nil { + if err := m.Events.SignAndStoreEvent(&membersEvent, true); err != nil { return err } } @@ -179,7 +179,7 @@ func (m *ManagementStore) RemoveMember(pubkey nostr.PubKey) error { }, } - if err := m.Events.SignAndStoreEvent(removeMemberEvent, true); err != nil { + if err := m.Events.SignAndStoreEvent(&removeMemberEvent, true); err != nil { return err } @@ -187,7 +187,7 @@ func (m *ManagementStore) RemoveMember(pubkey nostr.PubKey) error { return len(t) >= 2 && t[1] != pubkey.Hex() }) - if err := m.Events.SignAndStoreEvent(membersEvent, true); err != nil { + if err := m.Events.SignAndStoreEvent(&membersEvent, true); err != nil { return err }