Fix sign and store to take events by reference

This commit is contained in:
Jon Staab
2025-10-23 05:55:05 -07:00
parent b68701ae59
commit b04c8e99cb
5 changed files with 22 additions and 18 deletions
+2 -2
View File
@@ -76,12 +76,12 @@ The below config file might be saved as `./config/my-relay.example.com` in order
```toml ```toml
host = "my-relay.example.com" host = "my-relay.example.com"
schema = "my_relay" schema = "my_relay"
secret = "ce30b1831a4551f4cb7a984033c34ab96d8cf56ff50df9d0c27d9fa5422f2278" secret = "<hex private key>"
[info] [info]
name = "My relay" name = "My relay"
icon = "https://example.com/icon.png" icon = "https://example.com/icon.png"
pubkey = "d9254d9898fd4728f7e2b32b87520221a50f6b8b97d935d7da2de8923988aa6d" pubkey = "<hex public key>"
description = "A community relay for my friends" description = "A community relay for my friends"
[policy] [policy]
+4 -4
View File
@@ -350,17 +350,17 @@ func (events *EventStore) StoreEvent(event nostr.Event) error {
return events.ReplaceEvent(event) return events.ReplaceEvent(event)
} }
func (events *EventStore) SignAndStoreEvent(event nostr.Event, broadcast bool) error { func (events *EventStore) SignAndStoreEvent(event *nostr.Event, broadcast bool) error {
if err := events.Config.Sign(&event); err != nil { if err := events.Config.Sign(event); err != nil {
return err return err
} }
if err := events.StoreEvent(event); err != nil { if err := events.StoreEvent(*event); err != nil {
return err return err
} }
if broadcast { if broadcast {
events.Relay.BroadcastEvent(event) events.Relay.BroadcastEvent(*event)
} }
return nil return nil
+3 -3
View File
@@ -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 { 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 { func (g *GroupStore) SetMetadataFromEvent(event nostr.Event) error {
@@ -77,7 +77,7 @@ func (g *GroupStore) SetMetadataFromEvent(event nostr.Event) error {
Tags: tags, Tags: tags,
} }
return g.Events.SignAndStoreEvent(metadataEvent, true) return g.Events.SignAndStoreEvent(&metadataEvent, true)
} }
func (g *GroupStore) DeleteGroup(h string) { func (g *GroupStore) DeleteGroup(h string) {
+5 -1
View File
@@ -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) 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) { for event := range instance.Events.QueryEvents(filter, 1000) {
if event.Kind == RELAY_INVITE {
continue
}
if instance.IsInternalEvent(event) { if instance.IsInternalEvent(event) {
continue continue
} }
+8 -8
View File
@@ -48,7 +48,7 @@ func (m *ManagementStore) BanEvent(id nostr.ID, reason string) error {
event := m.Events.GetOrCreateApplicationSpecificData(BANNED_EVENTS) event := m.Events.GetOrCreateApplicationSpecificData(BANNED_EVENTS)
event.Tags = append(event.Tags, nostr.Tag{"event", id.Hex(), reason}) 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 { 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 t[1] == id.Hex()
}) })
return m.Events.SignAndStoreEvent(event, false) return m.Events.SignAndStoreEvent(&event, false)
} }
func (m *ManagementStore) EventIsBanned(id nostr.ID) bool { 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 { if event.Tags.FindWithValue("banned", pubkey.Hex()) == nil {
event.Tags = append(event.Tags, nostr.Tag{"banned", pubkey.Hex(), reason}) 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 return err
} }
} }
@@ -105,7 +105,7 @@ func (m *ManagementStore) RemoveBannedPubkey(pubkey nostr.PubKey) error {
return len(t) >= 2 && t[1] != pubkey.Hex() 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 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 return err
} }
membersEvent.Tags = append(membersEvent.Tags, nostr.Tag{"member", pubkey.Hex()}) 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 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 return err
} }
@@ -187,7 +187,7 @@ func (m *ManagementStore) RemoveMember(pubkey nostr.PubKey) error {
return len(t) >= 2 && t[1] != pubkey.Hex() 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 return err
} }