From d1c64a0d15e0187d1732a7358aea4a1bfc545661 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 15 Jan 2025 08:53:13 -0500 Subject: [PATCH] Removing additional dependencies in the base Event class --- .../com/vitorpamplona/quartz/EventFactory.kt | 5 +++-- .../edits/PrivateOutboxRelayListEvent.kt | 3 ++- .../nip01Core/core/BaseAddressableEvent.kt | 2 +- .../quartz/nip01Core/core/Event.kt | 19 ------------------- .../quartz/nip01Core/signers/NostrSigner.kt | 5 ++--- .../nip01Core/signers/NostrSignerSync.kt | 3 ++- .../nip55AndroidSigner/NostrSignerExternal.kt | 5 ++--- .../quartz/nip59Giftwrap/Gossip.kt | 3 ++- 8 files changed, 14 insertions(+), 31 deletions(-) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/EventFactory.kt b/quartz/src/main/java/com/vitorpamplona/quartz/EventFactory.kt index c8630628f..36a8990ed 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/EventFactory.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/EventFactory.kt @@ -36,6 +36,7 @@ import com.vitorpamplona.quartz.experimental.nns.NNSEvent import com.vitorpamplona.quartz.experimental.profileGallery.ProfileGalleryEntryEvent import com.vitorpamplona.quartz.experimental.relationshipStatus.RelationshipStatusEvent import com.vitorpamplona.quartz.experimental.zapPolls.PollNoteEvent +import com.vitorpamplona.quartz.nip01Core.EventHasher import com.vitorpamplona.quartz.nip01Core.HexKey import com.vitorpamplona.quartz.nip01Core.MetadataEvent import com.vitorpamplona.quartz.nip01Core.core.Event @@ -155,7 +156,7 @@ class EventFactory { ChatMessageEncryptedFileHeaderEvent.KIND -> { if (id.isBlank()) { ChatMessageEncryptedFileHeaderEvent( - Event.generateId(pubKey, createdAt, kind, tags, content), + EventHasher.hashId(pubKey, createdAt, kind, tags, content), pubKey, createdAt, tags, @@ -169,7 +170,7 @@ class EventFactory { ChatMessageEvent.KIND -> { if (id.isBlank()) { ChatMessageEvent( - Event.generateId(pubKey, createdAt, kind, tags, content), + EventHasher.hashId(pubKey, createdAt, kind, tags, content), pubKey, createdAt, tags, diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/experimental/edits/PrivateOutboxRelayListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/experimental/edits/PrivateOutboxRelayListEvent.kt index 5d4429f92..e8a2c6c66 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/experimental/edits/PrivateOutboxRelayListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/experimental/edits/PrivateOutboxRelayListEvent.kt @@ -25,6 +25,7 @@ import androidx.compose.runtime.Immutable import com.fasterxml.jackson.module.kotlin.readValue import com.vitorpamplona.quartz.nip01Core.HexKey import com.vitorpamplona.quartz.nip01Core.core.BaseAddressableEvent +import com.vitorpamplona.quartz.nip01Core.core.TagArray import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner import com.vitorpamplona.quartz.nip01Core.tags.addressables.ATag @@ -88,7 +89,7 @@ class PrivateOutboxRelayListEvent( try { signer.nip44Decrypt(content, pubKey) { try { - privateTagsCache = EventMapper.mapper.readValue>>(it) + privateTagsCache = EventMapper.mapper.readValue(it) privateTagsCache?.let { onReady(it) } } catch (e: Throwable) { Log.w("PrivateOutboxRelayListEvent", "Error parsing the JSON: ${e.message}. Json `$it` from event `${toNostrUri()}`") diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/core/BaseAddressableEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/core/BaseAddressableEvent.kt index 8b002acdd..3c653b7fc 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/core/BaseAddressableEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/core/BaseAddressableEvent.kt @@ -31,7 +31,7 @@ open class BaseAddressableEvent( pubKey: HexKey, createdAt: Long, kind: Int, - tags: Array>, + tags: TagArray, content: String, sig: HexKey, ) : Event(id, pubKey, createdAt, kind, tags, content, sig), diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/core/Event.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/core/Event.kt index 6a0ce3c60..60920971d 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/core/Event.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/core/Event.kt @@ -22,7 +22,6 @@ package com.vitorpamplona.quartz.nip01Core.core import androidx.compose.runtime.Immutable import com.fasterxml.jackson.annotation.JsonProperty -import com.vitorpamplona.quartz.nip01Core.EventHasher import com.vitorpamplona.quartz.nip01Core.HexKey import com.vitorpamplona.quartz.nip01Core.jackson.EventManualSerializer import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper @@ -57,24 +56,6 @@ open class Event( companion object { fun fromJson(json: String): Event = EventMapper.fromJson(json) - fun toJson(event: Event): String = EventMapper.toJson(event) - - fun generateId( - pubKey: HexKey, - createdAt: Long, - kind: Int, - tags: Array>, - content: String, - ): HexKey = EventHasher.hashId(pubKey, createdAt, kind, tags, content) - - fun generateIdBytes( - pubKey: HexKey, - createdAt: Long, - kind: Int, - tags: Array>, - content: String, - ): ByteArray = EventHasher.hashIdBytes(pubKey, createdAt, kind, tags, content) - fun create( signer: NostrSigner, kind: Int, diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/signers/NostrSigner.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/signers/NostrSigner.kt index 273459b7d..d359c1f46 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/signers/NostrSigner.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/signers/NostrSigner.kt @@ -21,6 +21,7 @@ package com.vitorpamplona.quartz.nip01Core.signers import com.vitorpamplona.quartz.EventFactory +import com.vitorpamplona.quartz.nip01Core.EventHasher import com.vitorpamplona.quartz.nip01Core.HexKey import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip04Dm.Nip04 @@ -86,11 +87,9 @@ abstract class NostrSigner( content: String, onReady: (T) -> Unit, ) { - val id = Event.generateId(pubKey, createdAt, kind, tags, content) - onReady( EventFactory.create( - id = id, + id = EventHasher.hashId(pubKey, createdAt, kind, tags, content), pubKey = pubKey, createdAt = createdAt, kind = kind, diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/signers/NostrSignerSync.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/signers/NostrSignerSync.kt index d9ec9bae4..0d633cd4e 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/signers/NostrSignerSync.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/signers/NostrSignerSync.kt @@ -23,6 +23,7 @@ package com.vitorpamplona.quartz.nip01Core.signers import android.util.Log import com.vitorpamplona.quartz.CryptoUtils import com.vitorpamplona.quartz.EventFactory +import com.vitorpamplona.quartz.nip01Core.EventHasher import com.vitorpamplona.quartz.nip01Core.HexKey import com.vitorpamplona.quartz.nip01Core.KeyPair import com.vitorpamplona.quartz.nip01Core.core.Event @@ -67,7 +68,7 @@ class NostrSignerSync( ): T? { if (keyPair.privKey == null) return null - val id = Event.generateIdBytes(pubKey, createdAt, kind, tags, content) + val id = EventHasher.hashIdBytes(pubKey, createdAt, kind, tags, content) val sig = CryptoUtils.sign(id, keyPair.privKey).toHexKey() return EventFactory.create( diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip55AndroidSigner/NostrSignerExternal.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip55AndroidSigner/NostrSignerExternal.kt index ef7a82f2e..b06db3df3 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip55AndroidSigner/NostrSignerExternal.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip55AndroidSigner/NostrSignerExternal.kt @@ -23,6 +23,7 @@ package com.vitorpamplona.quartz.nip55AndroidSigner import android.util.Log import com.goterl.lazysodium.BuildConfig import com.vitorpamplona.quartz.EventFactory +import com.vitorpamplona.quartz.nip01Core.EventHasher import com.vitorpamplona.quartz.nip01Core.HexKey import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner @@ -40,11 +41,9 @@ class NostrSignerExternal( content: String, onReady: (T) -> Unit, ) { - val id = Event.generateId(pubKey, createdAt, kind, tags, content) - val event = Event( - id = id, + id = EventHasher.hashId(pubKey, createdAt, kind, tags, content), pubKey = pubKey, createdAt = createdAt, kind = kind, diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip59Giftwrap/Gossip.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip59Giftwrap/Gossip.kt index 1281002db..4a84c904a 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip59Giftwrap/Gossip.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip59Giftwrap/Gossip.kt @@ -22,6 +22,7 @@ package com.vitorpamplona.quartz.nip59Giftwrap import com.fasterxml.jackson.annotation.JsonProperty import com.vitorpamplona.quartz.EventFactory +import com.vitorpamplona.quartz.nip01Core.EventHasher import com.vitorpamplona.quartz.nip01Core.HexKey import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper @@ -40,7 +41,7 @@ class Gossip( val newKind = kind ?: -1 val newTags = (tags ?: emptyArray()).plus(event.tags) val newContent = content ?: "" - val newID = id?.ifBlank { null } ?: Event.generateId(newPubKey, newCreatedAt, newKind, newTags, newContent) + val newID = id?.ifBlank { null } ?: EventHasher.hashId(newPubKey, newCreatedAt, newKind, newTags, newContent) val sig = "" return EventFactory.create(newID, newPubKey, newCreatedAt, newKind, newTags, newContent, sig)