From e1e5cb7d2a87a24a88a6874834a2db0dcd0f13f6 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Fri, 30 Aug 2024 08:35:24 +0100 Subject: [PATCH] feat: include kind in share nevent as requested in: nostr:nevent1qvzqqqqqqypzpepndn2jthmelfxn4umylktqp493ph8yy9d2fse76al2ppprgjcsqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwdehhxarj9e3xzmny9uqzpu6lzfhs9xfjm8ue47mvvuxfwa3rm5v2fdd43ma6g47t7ssv7x70ed7vr6 --- src/lib/components/events/EventWrapper.svelte | 6 ++-- src/lib/components/repo/utils.ts | 30 +++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/lib/components/events/EventWrapper.svelte b/src/lib/components/events/EventWrapper.svelte index cc79146..c1ac561 100644 --- a/src/lib/components/events/EventWrapper.svelte +++ b/src/lib/components/events/EventWrapper.svelte @@ -7,6 +7,8 @@ import { logged_in_user } from '$lib/stores/users' import type { NDKEvent } from '@nostr-dev-kit/ndk' import CopyField from '../CopyField.svelte' + import { nip19 } from 'nostr-tools' + import { ndkEventToNeventOrNaddr } from '../repo/utils' export let type: 'proposal' | 'issue' = 'proposal' export let author: User = { ...user_defaults } @@ -90,11 +92,11 @@

Share

{ } catch {} return undefined } + +/** this functoin can be removed when ndk.encode includes kind in nevent */ +export const ndkEventToNeventOrNaddr = ( + event: NDKEvent +): string | undefined => { + let relays: string[] = [] + if (event.onRelays.length > 0) { + relays = event.onRelays.map((relay) => relay.url) + } else if (event.relay) { + relays = [event.relay.url] + } + if (event.kind && event.isParamReplaceable()) { + return nip19.naddrEncode({ + kind: event.kind, + pubkey: event.pubkey, + identifier: event.replaceableDTag(), + relays, + }) + } else if (relays.length > 0) { + return nip19.neventEncode({ + kind: event.kind, + id: event.tagId(), + relays, + author: event.pubkey, + }) + } else { + return nip19.noteEncode(event.tagId()) + } +}