From 74e121075e5f5f9fbf82711cc165bb9a55494ee0 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Mon, 10 Mar 2025 16:16:44 -0300 Subject: [PATCH] try to prevent pointer to pointer bug. --- nip19/pointer.go | 14 ++++++++++++++ nip27/references.go | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/nip19/pointer.go b/nip19/pointer.go index 89abcba..b5db4fc 100644 --- a/nip19/pointer.go +++ b/nip19/pointer.go @@ -16,12 +16,26 @@ func EncodePointer(pointer nostr.Pointer) string { res, _ := EncodeProfile(v.PublicKey, v.Relays) return res } + case *nostr.ProfilePointer: + if v.Relays == nil { + res, _ := EncodePublicKey(v.PublicKey) + return res + } else { + res, _ := EncodeProfile(v.PublicKey, v.Relays) + return res + } case nostr.EventPointer: res, _ := EncodeEvent(v.ID, v.Relays, v.Author) return res + case *nostr.EventPointer: + res, _ := EncodeEvent(v.ID, v.Relays, v.Author) + return res case nostr.EntityPointer: res, _ := EncodeEntity(v.PublicKey, v.Kind, v.Identifier, v.Relays) return res + case *nostr.EntityPointer: + res, _ := EncodeEntity(v.PublicKey, v.Kind, v.Identifier, v.Relays) + return res } return "" } diff --git a/nip27/references.go b/nip27/references.go index eeeb898..cffc6f3 100644 --- a/nip27/references.go +++ b/nip27/references.go @@ -31,7 +31,7 @@ func ParseReferences(evt nostr.Event) iter.Seq[Reference] { if prefix, data, err := nip19.Decode(nip19code); err == nil { switch prefix { case "npub": - pointer := &nostr.ProfilePointer{ + pointer := nostr.ProfilePointer{ PublicKey: data.(string), Relays: []string{}, } tag := evt.Tags.FindWithValue("p", pointer.PublicKey) @@ -52,7 +52,7 @@ func ParseReferences(evt nostr.Event) iter.Seq[Reference] { } case "note": // we don't even bother here because people using note1 codes aren't including relay hints anyway - reference.Pointer = &nostr.EventPointer{ID: data.(string), Relays: nil} + reference.Pointer = nostr.EventPointer{ID: data.(string), Relays: nil} case "nevent": pointer := data.(nostr.EventPointer) tag := evt.Tags.FindWithValue("e", pointer.ID)