Fixes check for Deleted Addressable events.

This commit is contained in:
Vitor Pamplona
2024-04-05 11:34:50 -04:00
parent 89dbe82191
commit d48714456c
@@ -35,25 +35,20 @@ class DeletionIndex {
fun add(event: DeletionEvent) { fun add(event: DeletionEvent) {
event.tags.forEach { event.tags.forEach {
if (it.size > 1 && (it[0] == "a" || it[0] == "e")) { if (it.size > 1 && (it[0] == "a" || it[0] == "e")) {
add(it[1], event.createdAt, event.pubKey) add(it[1], event.pubKey, event.createdAt)
} }
} }
} }
private fun add( private fun add(
ref: String, ref: String,
createdAt: Long,
byPubKey: HexKey, byPubKey: HexKey,
createdAt: Long,
) { ) {
val key = DeletionRequest(ref, byPubKey) val key = DeletionRequest(ref, byPubKey)
val deletionTime = deletedReferencesBefore.get(key) val previousDeletionTime = deletedReferencesBefore.get(key)
if (deletionTime == null) { if (previousDeletionTime == null || createdAt > previousDeletionTime) {
deletedReferencesBefore.put(key, createdAt) deletedReferencesBefore.put(key, createdAt)
} else {
// updates with newer deletion.
if (createdAt > deletionTime) {
deletedReferencesBefore.put(key, createdAt)
}
} }
} }
@@ -62,7 +57,7 @@ class DeletionIndex {
if (hasBeenDeleted(key)) return true if (hasBeenDeleted(key)) return true
if (event is AddressableEvent) { if (event is AddressableEvent) {
if (hasBeenDeleted(key, event.createdAt)) return true if (hasBeenDeleted(DeletionRequest(event.addressTag(), event.pubKey), event.createdAt)) return true
} }
return false return false
@@ -75,6 +70,6 @@ class DeletionIndex {
createdAt: Long, createdAt: Long,
): Boolean { ): Boolean {
val deletionTime = deletedReferencesBefore.get(key) val deletionTime = deletedReferencesBefore.get(key)
return deletionTime != null && createdAt < deletionTime return deletionTime != null && createdAt <= deletionTime
} }
} }