From b232f484bf89645aabbdf346c99ed89aa40dabaf Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 20 Aug 2025 17:32:58 -0400 Subject: [PATCH] Saves all NIP-51 lists as nip-44 --- .../ephemChat/list/EphemeralChatListEvent.kt | 4 ++-- .../nip28PublicChat/list/ChannelListEvent.kt | 4 ++-- .../nip51Lists/PrivateTagArrayBuilder.kt | 16 ++++++++-------- .../bookmarkList/BookmarkListEvent.kt | 4 ++-- .../encryption/PrivateTagsInContent.kt | 18 ------------------ .../nip51Lists/geohashList/GeohashListEvent.kt | 4 ++-- .../nip51Lists/hashtagList/HashtagListEvent.kt | 4 ++-- .../nip51Lists/muteList/MuteListEvent.kt | 4 ++-- .../nip51Lists/peopleList/PeopleListEvent.kt | 4 ++-- .../relayLists/BlockedRelayListEvent.kt | 2 +- .../follow/CommunityListEvent.kt | 4 ++-- 11 files changed, 25 insertions(+), 43 deletions(-) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/experimental/ephemChat/list/EphemeralChatListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/experimental/ephemChat/list/EphemeralChatListEvent.kt index 9a9de6d9d..d8861a28f 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/experimental/ephemChat/list/EphemeralChatListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/experimental/ephemChat/list/EphemeralChatListEvent.kt @@ -128,7 +128,7 @@ class EphemeralChatListEvent( signer: NostrSigner, createdAt: Long = TimeUtils.now(), ) = resign( - content = PrivateTagsInContent.encryptNip04(privateTags, signer), + content = PrivateTagsInContent.encryptNip44(privateTags, signer), tags = tags, signer = signer, createdAt = createdAt, @@ -168,7 +168,7 @@ class EphemeralChatListEvent( initializer: TagArrayBuilder.() -> Unit = {}, ) = eventTemplate( kind = KIND, - description = PrivateTagsInContent.encryptNip04(privateRooms.map { it.toTagArray() }.toTypedArray(), signer), + description = PrivateTagsInContent.encryptNip44(privateRooms.map { it.toTagArray() }.toTypedArray(), signer), createdAt = createdAt, ) { alt(ALT) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip28PublicChat/list/ChannelListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip28PublicChat/list/ChannelListEvent.kt index 49e72ed80..78773ba54 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip28PublicChat/list/ChannelListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip28PublicChat/list/ChannelListEvent.kt @@ -155,7 +155,7 @@ class ChannelListEvent( signer: NostrSigner, createdAt: Long = TimeUtils.now(), ) = resign( - content = PrivateTagsInContent.encryptNip04(privateTags, signer), + content = PrivateTagsInContent.encryptNip44(privateTags, signer), tags = tags, signer = signer, createdAt = createdAt, @@ -206,7 +206,7 @@ class ChannelListEvent( initializer: TagArrayBuilder.() -> Unit = {}, ) = eventTemplate( kind = KIND, - description = PrivateTagsInContent.encryptNip04(privateChannels.map { it.toTagArray() }.toTypedArray(), signer), + description = PrivateTagsInContent.encryptNip44(privateChannels.map { it.toTagArray() }.toTypedArray(), signer), createdAt = createdAt, ) { alt(ALT) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/PrivateTagArrayBuilder.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/PrivateTagArrayBuilder.kt index 453a7b44a..9abbee2b8 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/PrivateTagArrayBuilder.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/PrivateTagArrayBuilder.kt @@ -33,7 +33,7 @@ class PrivateTagArrayBuilder { ): Pair>> = if (toPrivate) { val encryptedTags = - PrivateTagsInContent.encryptNip04( + PrivateTagsInContent.encryptNip44( privateTags = tags, signer = signer, ) @@ -51,7 +51,7 @@ class PrivateTagArrayBuilder { if (toPrivate) { val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException() val encryptedTags = - PrivateTagsInContent.encryptNip04( + PrivateTagsInContent.encryptNip44( privateTags = privateTags.plus(newTag), signer = signer, ) @@ -69,7 +69,7 @@ class PrivateTagArrayBuilder { if (toPrivate) { val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException() val encryptedTags = - PrivateTagsInContent.encryptNip04( + PrivateTagsInContent.encryptNip44( privateTags = privateTags.plus(newTag), signer = signer, ) @@ -112,7 +112,7 @@ class PrivateTagArrayBuilder { ): Pair>> { val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException() val encryptedTags = - PrivateTagsInContent.encryptNip04( + PrivateTagsInContent.encryptNip44( privateTags = privateTags.replaceAll(oldTagStartsWith, newTag), signer = signer, ) @@ -127,7 +127,7 @@ class PrivateTagArrayBuilder { ): Pair>> { val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException() val encryptedTags = - PrivateTagsInContent.encryptNip04( + PrivateTagsInContent.encryptNip44( privateTags = privateTags.remove(oldTagStartsWith), signer = signer, ) @@ -141,7 +141,7 @@ class PrivateTagArrayBuilder { ): Pair>> { val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException() val encryptedTags = - PrivateTagsInContent.encryptNip04( + PrivateTagsInContent.encryptNip44( privateTags = privateTags.remove(oldTagStartsWith), signer = signer, ) @@ -161,7 +161,7 @@ class PrivateTagArrayBuilder { ): Pair>> { val privateTags = current.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException() val encryptedTags = - PrivateTagsInContent.encryptNip04( + PrivateTagsInContent.encryptNip44( privateTags = privateTags.remove(oldTagStartsWith), signer = signer, ) @@ -174,7 +174,7 @@ class PrivateTagArrayBuilder { signer: NostrSigner, ): Pair>> { val encryptedTags = - PrivateTagsInContent.encryptNip04( + PrivateTagsInContent.encryptNip44( privateTags = arrayOf(newTag), signer = signer, ) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/bookmarkList/BookmarkListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/bookmarkList/BookmarkListEvent.kt index 2aa6f41dc..eca37af6d 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/bookmarkList/BookmarkListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/bookmarkList/BookmarkListEvent.kt @@ -154,7 +154,7 @@ class BookmarkListEvent( signer: NostrSigner, createdAt: Long = TimeUtils.now(), ) = resign( - content = PrivateTagsInContent.encryptNip04(privateTags, signer), + content = PrivateTagsInContent.encryptNip44(privateTags, signer), tags = tags, signer = signer, createdAt = createdAt, @@ -198,7 +198,7 @@ class BookmarkListEvent( initializer: TagArrayBuilder.() -> Unit = {}, ) = eventTemplate( kind = KIND, - description = PrivateTagsInContent.encryptNip04(privateBookmarks.map { it.toTagArray() }.toTypedArray(), signer), + description = PrivateTagsInContent.encryptNip44(privateBookmarks.map { it.toTagArray() }.toTypedArray(), signer), createdAt = createdAt, ) { dTag(dTag) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/encryption/PrivateTagsInContent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/encryption/PrivateTagsInContent.kt index fec602548..daaab9d29 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/encryption/PrivateTagsInContent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/encryption/PrivateTagsInContent.kt @@ -48,15 +48,6 @@ class PrivateTagsInContent { } } - suspend fun encryptNip04( - privateTags: Array>? = null, - signer: NostrSigner, - ): String = - signer.nip04Encrypt( - if (privateTags.isNullOrEmpty()) "" else encode(privateTags), - signer.pubKey, - ) - suspend fun encryptNip44( privateTags: Array>? = null, signer: NostrSigner, @@ -74,15 +65,6 @@ class PrivateTagsInContent { return decode(json) } - fun encryptNip04( - privateTags: Array>? = null, - signer: NostrSignerSync, - ): String = - signer.nip04Encrypt( - if (privateTags.isNullOrEmpty()) "" else encode(privateTags), - signer.pubKey, - ) - fun encryptNip44( privateTags: Array>? = null, signer: NostrSignerSync, diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/geohashList/GeohashListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/geohashList/GeohashListEvent.kt index 622e2767e..ad98fd778 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/geohashList/GeohashListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/geohashList/GeohashListEvent.kt @@ -157,7 +157,7 @@ class GeohashListEvent( signer: NostrSigner, createdAt: Long = TimeUtils.now(), ) = resign( - content = PrivateTagsInContent.encryptNip04(privateTags, signer), + content = PrivateTagsInContent.encryptNip44(privateTags, signer), tags = tags, signer = signer, createdAt = createdAt, @@ -208,7 +208,7 @@ class GeohashListEvent( initializer: TagArrayBuilder.() -> Unit = {}, ) = eventTemplate( kind = KIND, - description = PrivateTagsInContent.encryptNip04(privateGeohashes.map { GeoHashTag.assembleSingle(it) }.toTypedArray(), signer), + description = PrivateTagsInContent.encryptNip44(privateGeohashes.map { GeoHashTag.assembleSingle(it) }.toTypedArray(), signer), createdAt = createdAt, ) { alt(ALT) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/hashtagList/HashtagListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/hashtagList/HashtagListEvent.kt index 1fc707120..cfc0c74e1 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/hashtagList/HashtagListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/hashtagList/HashtagListEvent.kt @@ -154,7 +154,7 @@ class HashtagListEvent( signer: NostrSigner, createdAt: Long = TimeUtils.now(), ) = resign( - content = PrivateTagsInContent.encryptNip04(privateTags, signer), + content = PrivateTagsInContent.encryptNip44(privateTags, signer), tags = tags, signer = signer, createdAt = createdAt, @@ -205,7 +205,7 @@ class HashtagListEvent( initializer: TagArrayBuilder.() -> Unit = {}, ) = eventTemplate( kind = KIND, - description = PrivateTagsInContent.encryptNip04(privateHashtags.map { HashtagTag.assemble(it) }.toTypedArray(), signer), + description = PrivateTagsInContent.encryptNip44(privateHashtags.map { HashtagTag.assemble(it) }.toTypedArray(), signer), createdAt = createdAt, ) { alt(ALT) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/muteList/MuteListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/muteList/MuteListEvent.kt index 70055d4d9..5b860b273 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/muteList/MuteListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/muteList/MuteListEvent.kt @@ -139,7 +139,7 @@ class MuteListEvent( signer: NostrSigner, createdAt: Long = TimeUtils.now(), ) = resign( - content = PrivateTagsInContent.encryptNip04(privateTags, signer), + content = PrivateTagsInContent.encryptNip44(privateTags, signer), tags = publicTags, signer = signer, createdAt = createdAt, @@ -179,7 +179,7 @@ class MuteListEvent( initializer: TagArrayBuilder.() -> Unit = {}, ) = eventTemplate( kind = KIND, - description = PrivateTagsInContent.encryptNip04(privateMutes.map { it.toTagArray() }.toTypedArray(), signer), + description = PrivateTagsInContent.encryptNip44(privateMutes.map { it.toTagArray() }.toTypedArray(), signer), createdAt = createdAt, ) { alt(ALT) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/peopleList/PeopleListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/peopleList/PeopleListEvent.kt index a0c69898a..2f2e01c51 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/peopleList/PeopleListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/peopleList/PeopleListEvent.kt @@ -160,7 +160,7 @@ class PeopleListEvent( signer: NostrSigner, createdAt: Long = TimeUtils.now(), ) = resign( - content = PrivateTagsInContent.encryptNip04(privateTags, signer), + content = PrivateTagsInContent.encryptNip44(privateTags, signer), tags = publicTags, signer = signer, createdAt = createdAt, @@ -204,7 +204,7 @@ class PeopleListEvent( initializer: TagArrayBuilder.() -> Unit = {}, ) = eventTemplate( kind = KIND, - description = PrivateTagsInContent.encryptNip04(privatePeople.map { it.toTagArray() }.toTypedArray(), signer), + description = PrivateTagsInContent.encryptNip44(privatePeople.map { it.toTagArray() }.toTypedArray(), signer), createdAt = createdAt, ) { dTag(dTag) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/relayLists/BlockedRelayListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/relayLists/BlockedRelayListEvent.kt index 3798037bd..10f12efd5 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/relayLists/BlockedRelayListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip51Lists/relayLists/BlockedRelayListEvent.kt @@ -108,7 +108,7 @@ class BlockedRelayListEvent( initializer: TagArrayBuilder.() -> Unit = {}, ) = eventTemplate( kind = KIND, - description = PrivateTagsInContent.encryptNip04(privateRelays.map { RelayTag.assemble(it) }.toTypedArray(), signer), + description = PrivateTagsInContent.encryptNip44(privateRelays.map { RelayTag.assemble(it) }.toTypedArray(), signer), createdAt = createdAt, ) { alt(ALT) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip72ModCommunities/follow/CommunityListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip72ModCommunities/follow/CommunityListEvent.kt index aaaaab456..0bd9bbc59 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip72ModCommunities/follow/CommunityListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip72ModCommunities/follow/CommunityListEvent.kt @@ -178,7 +178,7 @@ class CommunityListEvent( signer: NostrSigner, createdAt: Long = TimeUtils.now(), ) = resign( - content = PrivateTagsInContent.encryptNip04(privateTags, signer), + content = PrivateTagsInContent.encryptNip44(privateTags, signer), tags = tags, signer = signer, createdAt = createdAt, @@ -218,7 +218,7 @@ class CommunityListEvent( initializer: TagArrayBuilder.() -> Unit = {}, ) = eventTemplate( kind = KIND, - description = PrivateTagsInContent.encryptNip04(privateCommunities.map { it.toTagArray() }.toTypedArray(), signer), + description = PrivateTagsInContent.encryptNip44(privateCommunities.map { it.toTagArray() }.toTypedArray(), signer), createdAt = createdAt, ) { alt(ALT)