From 2e85d1356eaa32d3d39facc246ba7c7480c63ea8 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Sat, 7 Feb 2026 17:48:37 -0500 Subject: [PATCH] Fixes Addressable vs Replaceable bases --- .../kotlin/com/vitorpamplona/quartz/nip01Core/core/Kind.kt | 2 +- .../quartz/nip01Core/metadata/MetadataEvent.kt | 6 ++++-- .../quartz/nip02FollowList/ContactListEvent.kt | 5 +++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/core/Kind.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/core/Kind.kt index 7bf8cefb3..de7251e33 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/core/Kind.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/core/Kind.kt @@ -25,7 +25,7 @@ import com.vitorpamplona.quartz.nip02FollowList.ContactListEvent typealias Kind = Int -fun Kind.isRegular() = this > 0 && this != ContactListEvent.KIND && this < 10_000 +fun Kind.isRegular() = this > 0 && this < 10_000 && this != ContactListEvent.KIND fun Kind.isEphemeral() = this >= 20_000 && this < 30_000 diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/metadata/MetadataEvent.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/metadata/MetadataEvent.kt index c8c102a6b..312185c36 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/metadata/MetadataEvent.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/metadata/MetadataEvent.kt @@ -21,11 +21,12 @@ package com.vitorpamplona.quartz.nip01Core.metadata import com.vitorpamplona.quartz.nip01Core.core.Address -import com.vitorpamplona.quartz.nip01Core.core.BaseAddressableEvent +import com.vitorpamplona.quartz.nip01Core.core.BaseReplaceableEvent import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.JsonMapper import com.vitorpamplona.quartz.nip01Core.core.TagArrayBuilder import com.vitorpamplona.quartz.nip01Core.core.builder +import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent.Companion.updateOrDeleteTagNames import com.vitorpamplona.quartz.nip01Core.metadata.tags.AboutTag import com.vitorpamplona.quartz.nip01Core.metadata.tags.BannerTag import com.vitorpamplona.quartz.nip01Core.metadata.tags.DisplayNameTag @@ -53,6 +54,7 @@ import com.vitorpamplona.quartz.utils.text import kotlinx.coroutines.CancellationException import kotlinx.serialization.json.Json import kotlinx.serialization.json.JsonElement +import kotlinx.serialization.json.JsonNull.content import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonPrimitive @@ -63,7 +65,7 @@ class MetadataEvent( tags: Array>, content: String, sig: HexKey, -) : BaseAddressableEvent(id, pubKey, createdAt, KIND, tags, content, sig) { +) : BaseReplaceableEvent(id, pubKey, createdAt, KIND, tags, content, sig) { override fun isContentEncoded() = true fun contactMetadataJson() = diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip02FollowList/ContactListEvent.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip02FollowList/ContactListEvent.kt index 6008900db..87c592f1e 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip02FollowList/ContactListEvent.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip02FollowList/ContactListEvent.kt @@ -22,7 +22,7 @@ package com.vitorpamplona.quartz.nip02FollowList import androidx.compose.runtime.Stable import com.vitorpamplona.quartz.nip01Core.core.Address -import com.vitorpamplona.quartz.nip01Core.core.BaseAddressableEvent +import com.vitorpamplona.quartz.nip01Core.core.BaseReplaceableEvent import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.any import com.vitorpamplona.quartz.nip01Core.hints.PubKeyHintProvider @@ -35,6 +35,7 @@ import com.vitorpamplona.quartz.nip01Core.tags.people.isTaggedUser import com.vitorpamplona.quartz.nip02FollowList.tags.ContactTag import com.vitorpamplona.quartz.nip31Alts.AltTag import com.vitorpamplona.quartz.utils.TimeUtils +import kotlinx.serialization.json.JsonNull.content @Stable class ContactListEvent( @@ -44,7 +45,7 @@ class ContactListEvent( tags: Array>, content: String, sig: HexKey, -) : BaseAddressableEvent(id, pubKey, createdAt, KIND, tags, content, sig), +) : BaseReplaceableEvent(id, pubKey, createdAt, KIND, tags, content, sig), PubKeyHintProvider { override fun pubKeyHints() = tags.mapNotNull(ContactTag::parseAsHint)