Adds search of events and addresses in the Deletion Event

This commit is contained in:
Vitor Pamplona
2025-10-31 18:43:45 -04:00
parent 7ea61824c8
commit 1411de32a0
4 changed files with 16 additions and 1 deletions

View File

@@ -66,6 +66,11 @@ data class ETag(
eventId: HexKey,
) = tag.has(1) && tag[0] == TAG_NAME && tag[1] == eventId
fun isTagged(
tag: Array<String>,
eventIds: Set<HexKey>,
) = tag.has(1) && tag[0] == TAG_NAME && tag[1] in eventIds
fun parse(tag: Array<String>): ETag? {
ensure(tag.has(1)) { return null }
ensure(tag[0] == TAG_NAME) { return null }

View File

@@ -34,3 +34,5 @@ fun Event.taggedEventIds() = tags.taggedEventIds()
fun Event.firstTaggedEvent() = tags.firstTaggedEvent()
fun Event.isTaggedEvent(idHex: String) = tags.isTaggedEvent(idHex)
fun Event.isTaggedEvents(idHexes: Set<HexKey>) = tags.isTaggedEvents(idHexes)

View File

@@ -36,4 +36,6 @@ fun TagArray.taggedEventIds() = this.mapNotNull(ETag::parseId)
fun TagArray.firstTaggedEvent() = this.firstNotNullOfOrNull(ETag::parse)
fun TagArray.isTaggedEvent(idHex: String) = this.any(ETag::isTagged, idHex)
fun TagArray.isTaggedEvent(idHex: HexKey) = this.any(ETag::isTagged, idHex)
fun TagArray.isTaggedEvents(idHexes: Set<HexKey>) = this.any(ETag::isTagged, idHexes)

View File

@@ -30,9 +30,11 @@ import com.vitorpamplona.quartz.nip01Core.hints.EventHintProvider
import com.vitorpamplona.quartz.nip01Core.signers.eventTemplate
import com.vitorpamplona.quartz.nip01Core.tags.aTag.ATag
import com.vitorpamplona.quartz.nip01Core.tags.aTag.aTag
import com.vitorpamplona.quartz.nip01Core.tags.aTag.isTaggedAddressableKind
import com.vitorpamplona.quartz.nip01Core.tags.aTag.taggedAddresses
import com.vitorpamplona.quartz.nip01Core.tags.events.ETag
import com.vitorpamplona.quartz.nip01Core.tags.events.eTag
import com.vitorpamplona.quartz.nip01Core.tags.events.isTaggedEvents
import com.vitorpamplona.quartz.nip01Core.tags.events.taggedEventIds
import com.vitorpamplona.quartz.nip01Core.tags.events.taggedEvents
import com.vitorpamplona.quartz.nip01Core.tags.kinds.kinds
@@ -65,6 +67,10 @@ class DeletionEvent(
fun deleteEventIds() = taggedEventIds()
fun deletesAnyEventIn(eventIds: Set<HexKey>) = isTaggedEvents(eventIds)
fun deleteAddressesWithKind(kind: Int) = isTaggedAddressableKind(kind)
fun deleteAddresses() = taggedAddresses()
fun deleteAddressIds() = tags.mapNotNull(ATag::parseAddressId)