From d3f54a7082d356ed62c9139b0bd53dee15734e5a Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Tue, 26 Mar 2024 16:56:58 -0400 Subject: [PATCH] Removes the Draft dependency for signer implementations --- .../quartz/events/ChannelMessageEvent.kt | 6 +++- .../quartz/events/ChatMessageEvent.kt | 6 +++- .../quartz/events/ClassifiedsEvent.kt | 6 +++- .../quartz/events/GitReplyEvent.kt | 6 +++- .../events/LiveActivitiesChatMessageEvent.kt | 6 +++- .../quartz/events/PollNoteEvent.kt | 6 +++- .../quartz/events/PrivateDmEvent.kt | 6 +++- .../quartz/events/TextNoteEvent.kt | 6 +++- .../quartz/signers/NostrSigner.kt | 25 +++++++++++++++- .../quartz/signers/NostrSignerExternal.kt | 28 ----------------- .../quartz/signers/NostrSignerInternal.kt | 30 ------------------- 11 files changed, 64 insertions(+), 67 deletions(-) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMessageEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMessageEvent.kt index 7000f296c..f9480e731 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMessageEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMessageEvent.kt @@ -88,7 +88,11 @@ class ChannelMessageEvent( arrayOf("alt", ALT), ) - signer.sign(createdAt, KIND, tags.toTypedArray(), message, onReady, isDraft) + if (isDraft) { + signer.assembleRumor(createdAt, KIND, tags.toTypedArray(), message, onReady) + } else { + signer.sign(createdAt, KIND, tags.toTypedArray(), message, onReady) + } } } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChatMessageEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChatMessageEvent.kt index 805f5884f..5b277cdc2 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChatMessageEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChatMessageEvent.kt @@ -107,7 +107,11 @@ class ChatMessageEvent( } // tags.add(arrayOf("alt", alt)) - signer.sign(createdAt, KIND, tags.toTypedArray(), msg, onReady, isDraft) + if (isDraft) { + signer.assembleRumor(createdAt, KIND, tags.toTypedArray(), msg, onReady) + } else { + signer.sign(createdAt, KIND, tags.toTypedArray(), msg, onReady) + } } } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/ClassifiedsEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/ClassifiedsEvent.kt index 0fa5bdf21..929ead011 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ClassifiedsEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ClassifiedsEvent.kt @@ -193,7 +193,11 @@ class ClassifiedsEvent( } tags.add(arrayOf("alt", ALT)) - signer.sign(createdAt, KIND, tags.toTypedArray(), message, onReady, isDraft) + if (isDraft) { + signer.assembleRumor(createdAt, KIND, tags.toTypedArray(), message, onReady) + } else { + signer.sign(createdAt, KIND, tags.toTypedArray(), message, onReady) + } } } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/GitReplyEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/GitReplyEvent.kt index 88d4f5eac..ed1236899 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/GitReplyEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/GitReplyEvent.kt @@ -157,7 +157,11 @@ class GitReplyEvent( } tags.add(arrayOf("alt", "a git issue reply")) - signer.sign(createdAt, KIND, tags.toTypedArray(), msg, onReady, isDraft) + if (isDraft) { + signer.assembleRumor(createdAt, KIND, tags.toTypedArray(), msg, onReady) + } else { + signer.sign(createdAt, KIND, tags.toTypedArray(), msg, onReady) + } } } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesChatMessageEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesChatMessageEvent.kt index c6263aee9..d32ad31af 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesChatMessageEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesChatMessageEvent.kt @@ -99,7 +99,11 @@ class LiveActivitiesChatMessageEvent( } tags.add(arrayOf("alt", ALT)) - signer.sign(createdAt, KIND, tags.toTypedArray(), content, onReady, isDraft) + if (isDraft) { + signer.assembleRumor(createdAt, KIND, tags.toTypedArray(), content, onReady) + } else { + signer.sign(createdAt, KIND, tags.toTypedArray(), content, onReady) + } } } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/PollNoteEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/PollNoteEvent.kt index 5e2c62efd..0e9039fab 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/PollNoteEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/PollNoteEvent.kt @@ -113,7 +113,11 @@ class PollNoteEvent( } tags.add(arrayOf("alt", ALT)) - signer.sign(createdAt, KIND, tags.toTypedArray(), msg, onReady, isDraft) + if (isDraft) { + signer.assembleRumor(createdAt, KIND, tags.toTypedArray(), msg, onReady) + } else { + signer.sign(createdAt, KIND, tags.toTypedArray(), msg, onReady) + } } } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/PrivateDmEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/PrivateDmEvent.kt index 942140171..383e39f65 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/PrivateDmEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/PrivateDmEvent.kt @@ -168,7 +168,11 @@ class PrivateDmEvent( tags.add(arrayOf("alt", ALT)) signer.nip04Encrypt(message, recipientPubKey) { content -> - signer.sign(createdAt, KIND, tags.toTypedArray(), content, onReady, isDraft) + if (isDraft) { + signer.assembleRumor(createdAt, KIND, tags.toTypedArray(), content, onReady) + } else { + signer.sign(createdAt, KIND, tags.toTypedArray(), content, onReady) + } } } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/TextNoteEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/TextNoteEvent.kt index 66521e5b1..160871b07 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/TextNoteEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/TextNoteEvent.kt @@ -125,7 +125,11 @@ class TextNoteEvent( } } - signer.sign(createdAt, KIND, tags.toTypedArray(), msg, onReady, isDraft) + if (isDraft) { + signer.assembleRumor(createdAt, KIND, tags.toTypedArray(), msg, onReady) + } else { + signer.sign(createdAt, KIND, tags.toTypedArray(), msg, onReady) + } } } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/signers/NostrSigner.kt b/quartz/src/main/java/com/vitorpamplona/quartz/signers/NostrSigner.kt index ea1c56aaf..25df198b5 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/signers/NostrSigner.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/signers/NostrSigner.kt @@ -21,7 +21,9 @@ package com.vitorpamplona.quartz.signers import com.vitorpamplona.quartz.encoders.HexKey +import com.vitorpamplona.quartz.encoders.toHexKey import com.vitorpamplona.quartz.events.Event +import com.vitorpamplona.quartz.events.EventFactory import com.vitorpamplona.quartz.events.LnZapPrivateEvent import com.vitorpamplona.quartz.events.LnZapRequestEvent @@ -32,7 +34,6 @@ abstract class NostrSigner(val pubKey: HexKey) { tags: Array>, content: String, onReady: (T) -> Unit, - isDraft: Boolean = false, ) abstract fun nip04Encrypt( @@ -63,4 +64,26 @@ abstract class NostrSigner(val pubKey: HexKey) { event: LnZapRequestEvent, onReady: (LnZapPrivateEvent) -> Unit, ) + + fun assembleRumor( + createdAt: Long, + kind: Int, + tags: Array>, + content: String, + onReady: (T) -> Unit, + ) { + val id = Event.generateId(pubKey, createdAt, kind, tags, content).toHexKey() + + onReady( + EventFactory.create( + id = id, + pubKey = pubKey, + createdAt = createdAt, + kind = kind, + tags = tags, + content = content, + sig = "", + ) as T, + ) + } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/signers/NostrSignerExternal.kt b/quartz/src/main/java/com/vitorpamplona/quartz/signers/NostrSignerExternal.kt index 30cf69b46..4f34af999 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/signers/NostrSignerExternal.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/signers/NostrSignerExternal.kt @@ -40,13 +40,7 @@ class NostrSignerExternal( tags: Array>, content: String, onReady: (T) -> Unit, - isDraft: Boolean, ) { - if (isDraft) { - unsignedEvent(createdAt, kind, tags, content, onReady) - return - } - val id = Event.generateId(pubKey, createdAt, kind, tags, content).toHexKey() val event = @@ -92,28 +86,6 @@ class NostrSignerExternal( } } - fun unsignedEvent( - createdAt: Long, - kind: Int, - tags: Array>, - content: String, - onReady: (T) -> Unit, - ) { - val id = Event.generateId(pubKey, createdAt, kind, tags, content) - - onReady( - EventFactory.create( - id.toHexKey(), - pubKey, - createdAt, - kind, - tags, - content, - "", - ) as T, - ) - } - override fun nip04Encrypt( decryptedContent: String, toPublicKey: HexKey, diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/signers/NostrSignerInternal.kt b/quartz/src/main/java/com/vitorpamplona/quartz/signers/NostrSignerInternal.kt index 0df60b80d..2537287b5 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/signers/NostrSignerInternal.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/signers/NostrSignerInternal.kt @@ -38,15 +38,9 @@ class NostrSignerInternal(val keyPair: KeyPair) : NostrSigner(keyPair.pubKey.toH tags: Array>, content: String, onReady: (T) -> Unit, - isDraft: Boolean, ) { if (keyPair.privKey == null) return - if (isDraft) { - unsignedEvent(createdAt, kind, tags, content, onReady) - return - } - if (isUnsignedPrivateEvent(kind, tags)) { // this is a private zap signPrivateZap(createdAt, kind, tags, content, onReady) @@ -88,30 +82,6 @@ class NostrSignerInternal(val keyPair: KeyPair) : NostrSigner(keyPair.pubKey.toH ) } - fun unsignedEvent( - createdAt: Long, - kind: Int, - tags: Array>, - content: String, - onReady: (T) -> Unit, - ) { - if (keyPair.privKey == null) return - - val id = Event.generateId(pubKey, createdAt, kind, tags, content) - - onReady( - EventFactory.create( - id.toHexKey(), - pubKey, - createdAt, - kind, - tags, - content, - "", - ) as T, - ) - } - override fun nip04Encrypt( decryptedContent: String, toPublicKey: HexKey,