mirror of
https://github.com/nbd-wtf/nostr-tools.git
synced 2025-12-08 16:28:49 +00:00
add author on nevent TLV.
This commit is contained in:
10
nip19.ts
10
nip19.ts
@@ -13,6 +13,7 @@ export type ProfilePointer = {
|
|||||||
export type EventPointer = {
|
export type EventPointer = {
|
||||||
id: string // hex
|
id: string // hex
|
||||||
relays?: string[]
|
relays?: string[]
|
||||||
|
author?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export type AddressPointer = {
|
export type AddressPointer = {
|
||||||
@@ -47,12 +48,16 @@ export function decode(nip19: string): {
|
|||||||
let tlv = parseTLV(data)
|
let tlv = parseTLV(data)
|
||||||
if (!tlv[0]?.[0]) throw new Error('missing TLV 0 for nevent')
|
if (!tlv[0]?.[0]) throw new Error('missing TLV 0 for nevent')
|
||||||
if (tlv[0][0].length !== 32) throw new Error('TLV 0 should be 32 bytes')
|
if (tlv[0][0].length !== 32) throw new Error('TLV 0 should be 32 bytes')
|
||||||
|
if (tlv[2]?.[0].length !== 32) throw new Error('TLV 2 should be 32 bytes')
|
||||||
|
|
||||||
return {
|
return {
|
||||||
type: 'nevent',
|
type: 'nevent',
|
||||||
data: {
|
data: {
|
||||||
id: secp256k1.utils.bytesToHex(tlv[0][0]),
|
id: secp256k1.utils.bytesToHex(tlv[0][0]),
|
||||||
relays: tlv[1] ? tlv[1].map(d => utf8Decoder.decode(d)) : []
|
relays: tlv[1] ? tlv[1].map(d => utf8Decoder.decode(d)) : [],
|
||||||
|
author: tlv[2]?.[0]
|
||||||
|
? secp256k1.utils.bytesToHex(tlv[2][0])
|
||||||
|
: undefined
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -133,7 +138,8 @@ export function nprofileEncode(profile: ProfilePointer): string {
|
|||||||
export function neventEncode(event: EventPointer): string {
|
export function neventEncode(event: EventPointer): string {
|
||||||
let data = encodeTLV({
|
let data = encodeTLV({
|
||||||
0: [secp256k1.utils.hexToBytes(event.id)],
|
0: [secp256k1.utils.hexToBytes(event.id)],
|
||||||
1: (event.relays || []).map(url => utf8Encoder.encode(url))
|
1: (event.relays || []).map(url => utf8Encoder.encode(url)),
|
||||||
|
2: event.author ? [secp256k1.utils.hexToBytes(event.author)] : []
|
||||||
})
|
})
|
||||||
let words = bech32.toWords(data)
|
let words = bech32.toWords(data)
|
||||||
return bech32.encode('nevent', words, Bech32MaxSize)
|
return bech32.encode('nevent', words, Bech32MaxSize)
|
||||||
|
|||||||
Reference in New Issue
Block a user