Saves all NIP-51 lists as nip-44

This commit is contained in:
Vitor Pamplona
2025-08-20 17:32:58 -04:00
parent 679f9b66ed
commit b232f484bf
11 changed files with 25 additions and 43 deletions

View File

@@ -128,7 +128,7 @@ class EphemeralChatListEvent(
signer: NostrSigner, signer: NostrSigner,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
) = resign( ) = resign(
content = PrivateTagsInContent.encryptNip04(privateTags, signer), content = PrivateTagsInContent.encryptNip44(privateTags, signer),
tags = tags, tags = tags,
signer = signer, signer = signer,
createdAt = createdAt, createdAt = createdAt,
@@ -168,7 +168,7 @@ class EphemeralChatListEvent(
initializer: TagArrayBuilder<EphemeralChatListEvent>.() -> Unit = {}, initializer: TagArrayBuilder<EphemeralChatListEvent>.() -> Unit = {},
) = eventTemplate<EphemeralChatListEvent>( ) = eventTemplate<EphemeralChatListEvent>(
kind = KIND, kind = KIND,
description = PrivateTagsInContent.encryptNip04(privateRooms.map { it.toTagArray() }.toTypedArray(), signer), description = PrivateTagsInContent.encryptNip44(privateRooms.map { it.toTagArray() }.toTypedArray(), signer),
createdAt = createdAt, createdAt = createdAt,
) { ) {
alt(ALT) alt(ALT)

View File

@@ -155,7 +155,7 @@ class ChannelListEvent(
signer: NostrSigner, signer: NostrSigner,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
) = resign( ) = resign(
content = PrivateTagsInContent.encryptNip04(privateTags, signer), content = PrivateTagsInContent.encryptNip44(privateTags, signer),
tags = tags, tags = tags,
signer = signer, signer = signer,
createdAt = createdAt, createdAt = createdAt,
@@ -206,7 +206,7 @@ class ChannelListEvent(
initializer: TagArrayBuilder<ChannelListEvent>.() -> Unit = {}, initializer: TagArrayBuilder<ChannelListEvent>.() -> Unit = {},
) = eventTemplate<ChannelListEvent>( ) = eventTemplate<ChannelListEvent>(
kind = KIND, kind = KIND,
description = PrivateTagsInContent.encryptNip04(privateChannels.map { it.toTagArray() }.toTypedArray(), signer), description = PrivateTagsInContent.encryptNip44(privateChannels.map { it.toTagArray() }.toTypedArray(), signer),
createdAt = createdAt, createdAt = createdAt,
) { ) {
alt(ALT) alt(ALT)

View File

@@ -33,7 +33,7 @@ class PrivateTagArrayBuilder {
): Pair<String, Array<Array<String>>> = ): Pair<String, Array<Array<String>>> =
if (toPrivate) { if (toPrivate) {
val encryptedTags = val encryptedTags =
PrivateTagsInContent.encryptNip04( PrivateTagsInContent.encryptNip44(
privateTags = tags, privateTags = tags,
signer = signer, signer = signer,
) )
@@ -51,7 +51,7 @@ class PrivateTagArrayBuilder {
if (toPrivate) { if (toPrivate) {
val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException() val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException()
val encryptedTags = val encryptedTags =
PrivateTagsInContent.encryptNip04( PrivateTagsInContent.encryptNip44(
privateTags = privateTags.plus(newTag), privateTags = privateTags.plus(newTag),
signer = signer, signer = signer,
) )
@@ -69,7 +69,7 @@ class PrivateTagArrayBuilder {
if (toPrivate) { if (toPrivate) {
val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException() val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException()
val encryptedTags = val encryptedTags =
PrivateTagsInContent.encryptNip04( PrivateTagsInContent.encryptNip44(
privateTags = privateTags.plus(newTag), privateTags = privateTags.plus(newTag),
signer = signer, signer = signer,
) )
@@ -112,7 +112,7 @@ class PrivateTagArrayBuilder {
): Pair<String, Array<Array<String>>> { ): Pair<String, Array<Array<String>>> {
val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException() val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException()
val encryptedTags = val encryptedTags =
PrivateTagsInContent.encryptNip04( PrivateTagsInContent.encryptNip44(
privateTags = privateTags.replaceAll(oldTagStartsWith, newTag), privateTags = privateTags.replaceAll(oldTagStartsWith, newTag),
signer = signer, signer = signer,
) )
@@ -127,7 +127,7 @@ class PrivateTagArrayBuilder {
): Pair<String, Array<Array<String>>> { ): Pair<String, Array<Array<String>>> {
val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException() val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException()
val encryptedTags = val encryptedTags =
PrivateTagsInContent.encryptNip04( PrivateTagsInContent.encryptNip44(
privateTags = privateTags.remove(oldTagStartsWith), privateTags = privateTags.remove(oldTagStartsWith),
signer = signer, signer = signer,
) )
@@ -141,7 +141,7 @@ class PrivateTagArrayBuilder {
): Pair<String, Array<Array<String>>> { ): Pair<String, Array<Array<String>>> {
val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException() val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException()
val encryptedTags = val encryptedTags =
PrivateTagsInContent.encryptNip04( PrivateTagsInContent.encryptNip44(
privateTags = privateTags.remove(oldTagStartsWith), privateTags = privateTags.remove(oldTagStartsWith),
signer = signer, signer = signer,
) )
@@ -161,7 +161,7 @@ class PrivateTagArrayBuilder {
): Pair<String, Array<Array<String>>> { ): Pair<String, Array<Array<String>>> {
val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException() val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException()
val encryptedTags = val encryptedTags =
PrivateTagsInContent.encryptNip04( PrivateTagsInContent.encryptNip44(
privateTags = privateTags.remove(oldTagStartsWith), privateTags = privateTags.remove(oldTagStartsWith),
signer = signer, signer = signer,
) )
@@ -174,7 +174,7 @@ class PrivateTagArrayBuilder {
signer: NostrSigner, signer: NostrSigner,
): Pair<String, Array<Array<String>>> { ): Pair<String, Array<Array<String>>> {
val encryptedTags = val encryptedTags =
PrivateTagsInContent.encryptNip04( PrivateTagsInContent.encryptNip44(
privateTags = arrayOf(newTag), privateTags = arrayOf(newTag),
signer = signer, signer = signer,
) )

View File

@@ -154,7 +154,7 @@ class BookmarkListEvent(
signer: NostrSigner, signer: NostrSigner,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
) = resign( ) = resign(
content = PrivateTagsInContent.encryptNip04(privateTags, signer), content = PrivateTagsInContent.encryptNip44(privateTags, signer),
tags = tags, tags = tags,
signer = signer, signer = signer,
createdAt = createdAt, createdAt = createdAt,
@@ -198,7 +198,7 @@ class BookmarkListEvent(
initializer: TagArrayBuilder<BookmarkListEvent>.() -> Unit = {}, initializer: TagArrayBuilder<BookmarkListEvent>.() -> Unit = {},
) = eventTemplate( ) = eventTemplate(
kind = KIND, kind = KIND,
description = PrivateTagsInContent.encryptNip04(privateBookmarks.map { it.toTagArray() }.toTypedArray(), signer), description = PrivateTagsInContent.encryptNip44(privateBookmarks.map { it.toTagArray() }.toTypedArray(), signer),
createdAt = createdAt, createdAt = createdAt,
) { ) {
dTag(dTag) dTag(dTag)

View File

@@ -48,15 +48,6 @@ class PrivateTagsInContent {
} }
} }
suspend fun encryptNip04(
privateTags: Array<Array<String>>? = null,
signer: NostrSigner,
): String =
signer.nip04Encrypt(
if (privateTags.isNullOrEmpty()) "" else encode(privateTags),
signer.pubKey,
)
suspend fun encryptNip44( suspend fun encryptNip44(
privateTags: Array<Array<String>>? = null, privateTags: Array<Array<String>>? = null,
signer: NostrSigner, signer: NostrSigner,
@@ -74,15 +65,6 @@ class PrivateTagsInContent {
return decode(json) return decode(json)
} }
fun encryptNip04(
privateTags: Array<Array<String>>? = null,
signer: NostrSignerSync,
): String =
signer.nip04Encrypt(
if (privateTags.isNullOrEmpty()) "" else encode(privateTags),
signer.pubKey,
)
fun encryptNip44( fun encryptNip44(
privateTags: Array<Array<String>>? = null, privateTags: Array<Array<String>>? = null,
signer: NostrSignerSync, signer: NostrSignerSync,

View File

@@ -157,7 +157,7 @@ class GeohashListEvent(
signer: NostrSigner, signer: NostrSigner,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
) = resign( ) = resign(
content = PrivateTagsInContent.encryptNip04(privateTags, signer), content = PrivateTagsInContent.encryptNip44(privateTags, signer),
tags = tags, tags = tags,
signer = signer, signer = signer,
createdAt = createdAt, createdAt = createdAt,
@@ -208,7 +208,7 @@ class GeohashListEvent(
initializer: TagArrayBuilder<GeohashListEvent>.() -> Unit = {}, initializer: TagArrayBuilder<GeohashListEvent>.() -> Unit = {},
) = eventTemplate<GeohashListEvent>( ) = eventTemplate<GeohashListEvent>(
kind = KIND, kind = KIND,
description = PrivateTagsInContent.encryptNip04(privateGeohashes.map { GeoHashTag.assembleSingle(it) }.toTypedArray(), signer), description = PrivateTagsInContent.encryptNip44(privateGeohashes.map { GeoHashTag.assembleSingle(it) }.toTypedArray(), signer),
createdAt = createdAt, createdAt = createdAt,
) { ) {
alt(ALT) alt(ALT)

View File

@@ -154,7 +154,7 @@ class HashtagListEvent(
signer: NostrSigner, signer: NostrSigner,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
) = resign( ) = resign(
content = PrivateTagsInContent.encryptNip04(privateTags, signer), content = PrivateTagsInContent.encryptNip44(privateTags, signer),
tags = tags, tags = tags,
signer = signer, signer = signer,
createdAt = createdAt, createdAt = createdAt,
@@ -205,7 +205,7 @@ class HashtagListEvent(
initializer: TagArrayBuilder<HashtagListEvent>.() -> Unit = {}, initializer: TagArrayBuilder<HashtagListEvent>.() -> Unit = {},
) = eventTemplate<HashtagListEvent>( ) = eventTemplate<HashtagListEvent>(
kind = KIND, kind = KIND,
description = PrivateTagsInContent.encryptNip04(privateHashtags.map { HashtagTag.assemble(it) }.toTypedArray(), signer), description = PrivateTagsInContent.encryptNip44(privateHashtags.map { HashtagTag.assemble(it) }.toTypedArray(), signer),
createdAt = createdAt, createdAt = createdAt,
) { ) {
alt(ALT) alt(ALT)

View File

@@ -139,7 +139,7 @@ class MuteListEvent(
signer: NostrSigner, signer: NostrSigner,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
) = resign( ) = resign(
content = PrivateTagsInContent.encryptNip04(privateTags, signer), content = PrivateTagsInContent.encryptNip44(privateTags, signer),
tags = publicTags, tags = publicTags,
signer = signer, signer = signer,
createdAt = createdAt, createdAt = createdAt,
@@ -179,7 +179,7 @@ class MuteListEvent(
initializer: TagArrayBuilder<MuteListEvent>.() -> Unit = {}, initializer: TagArrayBuilder<MuteListEvent>.() -> Unit = {},
) = eventTemplate<MuteListEvent>( ) = eventTemplate<MuteListEvent>(
kind = KIND, kind = KIND,
description = PrivateTagsInContent.encryptNip04(privateMutes.map { it.toTagArray() }.toTypedArray(), signer), description = PrivateTagsInContent.encryptNip44(privateMutes.map { it.toTagArray() }.toTypedArray(), signer),
createdAt = createdAt, createdAt = createdAt,
) { ) {
alt(ALT) alt(ALT)

View File

@@ -160,7 +160,7 @@ class PeopleListEvent(
signer: NostrSigner, signer: NostrSigner,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
) = resign( ) = resign(
content = PrivateTagsInContent.encryptNip04(privateTags, signer), content = PrivateTagsInContent.encryptNip44(privateTags, signer),
tags = publicTags, tags = publicTags,
signer = signer, signer = signer,
createdAt = createdAt, createdAt = createdAt,
@@ -204,7 +204,7 @@ class PeopleListEvent(
initializer: TagArrayBuilder<PeopleListEvent>.() -> Unit = {}, initializer: TagArrayBuilder<PeopleListEvent>.() -> Unit = {},
) = eventTemplate<PeopleListEvent>( ) = eventTemplate<PeopleListEvent>(
kind = KIND, kind = KIND,
description = PrivateTagsInContent.encryptNip04(privatePeople.map { it.toTagArray() }.toTypedArray(), signer), description = PrivateTagsInContent.encryptNip44(privatePeople.map { it.toTagArray() }.toTypedArray(), signer),
createdAt = createdAt, createdAt = createdAt,
) { ) {
dTag(dTag) dTag(dTag)

View File

@@ -108,7 +108,7 @@ class BlockedRelayListEvent(
initializer: TagArrayBuilder<BlockedRelayListEvent>.() -> Unit = {}, initializer: TagArrayBuilder<BlockedRelayListEvent>.() -> Unit = {},
) = eventTemplate<BlockedRelayListEvent>( ) = eventTemplate<BlockedRelayListEvent>(
kind = KIND, kind = KIND,
description = PrivateTagsInContent.encryptNip04(privateRelays.map { RelayTag.assemble(it) }.toTypedArray(), signer), description = PrivateTagsInContent.encryptNip44(privateRelays.map { RelayTag.assemble(it) }.toTypedArray(), signer),
createdAt = createdAt, createdAt = createdAt,
) { ) {
alt(ALT) alt(ALT)

View File

@@ -178,7 +178,7 @@ class CommunityListEvent(
signer: NostrSigner, signer: NostrSigner,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
) = resign( ) = resign(
content = PrivateTagsInContent.encryptNip04(privateTags, signer), content = PrivateTagsInContent.encryptNip44(privateTags, signer),
tags = tags, tags = tags,
signer = signer, signer = signer,
createdAt = createdAt, createdAt = createdAt,
@@ -218,7 +218,7 @@ class CommunityListEvent(
initializer: TagArrayBuilder<CommunityListEvent>.() -> Unit = {}, initializer: TagArrayBuilder<CommunityListEvent>.() -> Unit = {},
) = eventTemplate<CommunityListEvent>( ) = eventTemplate<CommunityListEvent>(
kind = KIND, kind = KIND,
description = PrivateTagsInContent.encryptNip04(privateCommunities.map { it.toTagArray() }.toTypedArray(), signer), description = PrivateTagsInContent.encryptNip44(privateCommunities.map { it.toTagArray() }.toTypedArray(), signer),
createdAt = createdAt, createdAt = createdAt,
) { ) {
alt(ALT) alt(ALT)