Removes the Draft dependency for signer implementations

This commit is contained in:
Vitor Pamplona 2024-03-26 16:56:58 -04:00
parent d3a0ae743a
commit d3f54a7082
11 changed files with 64 additions and 67 deletions

View File

@ -88,7 +88,11 @@ class ChannelMessageEvent(
arrayOf("alt", ALT), 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)
}
} }
} }
} }

View File

@ -107,7 +107,11 @@ class ChatMessageEvent(
} }
// tags.add(arrayOf("alt", alt)) // 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)
}
} }
} }
} }

View File

@ -193,7 +193,11 @@ class ClassifiedsEvent(
} }
tags.add(arrayOf("alt", ALT)) 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)
}
} }
} }
} }

View File

@ -157,7 +157,11 @@ class GitReplyEvent(
} }
tags.add(arrayOf("alt", "a git issue reply")) 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)
}
} }
} }
} }

View File

@ -99,7 +99,11 @@ class LiveActivitiesChatMessageEvent(
} }
tags.add(arrayOf("alt", ALT)) 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)
}
} }
} }
} }

View File

@ -113,7 +113,11 @@ class PollNoteEvent(
} }
tags.add(arrayOf("alt", ALT)) 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)
}
} }
} }
} }

View File

@ -168,7 +168,11 @@ class PrivateDmEvent(
tags.add(arrayOf("alt", ALT)) tags.add(arrayOf("alt", ALT))
signer.nip04Encrypt(message, recipientPubKey) { content -> 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)
}
} }
} }
} }

View File

@ -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)
}
} }
} }
} }

View File

@ -21,7 +21,9 @@
package com.vitorpamplona.quartz.signers package com.vitorpamplona.quartz.signers
import com.vitorpamplona.quartz.encoders.HexKey import com.vitorpamplona.quartz.encoders.HexKey
import com.vitorpamplona.quartz.encoders.toHexKey
import com.vitorpamplona.quartz.events.Event import com.vitorpamplona.quartz.events.Event
import com.vitorpamplona.quartz.events.EventFactory
import com.vitorpamplona.quartz.events.LnZapPrivateEvent import com.vitorpamplona.quartz.events.LnZapPrivateEvent
import com.vitorpamplona.quartz.events.LnZapRequestEvent import com.vitorpamplona.quartz.events.LnZapRequestEvent
@ -32,7 +34,6 @@ abstract class NostrSigner(val pubKey: HexKey) {
tags: Array<Array<String>>, tags: Array<Array<String>>,
content: String, content: String,
onReady: (T) -> Unit, onReady: (T) -> Unit,
isDraft: Boolean = false,
) )
abstract fun nip04Encrypt( abstract fun nip04Encrypt(
@ -63,4 +64,26 @@ abstract class NostrSigner(val pubKey: HexKey) {
event: LnZapRequestEvent, event: LnZapRequestEvent,
onReady: (LnZapPrivateEvent) -> Unit, onReady: (LnZapPrivateEvent) -> Unit,
) )
fun <T : Event> assembleRumor(
createdAt: Long,
kind: Int,
tags: Array<Array<String>>,
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,
)
}
} }

View File

@ -40,13 +40,7 @@ class NostrSignerExternal(
tags: Array<Array<String>>, tags: Array<Array<String>>,
content: String, content: String,
onReady: (T) -> Unit, 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 id = Event.generateId(pubKey, createdAt, kind, tags, content).toHexKey()
val event = val event =
@ -92,28 +86,6 @@ class NostrSignerExternal(
} }
} }
fun <T : Event> unsignedEvent(
createdAt: Long,
kind: Int,
tags: Array<Array<String>>,
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( override fun nip04Encrypt(
decryptedContent: String, decryptedContent: String,
toPublicKey: HexKey, toPublicKey: HexKey,

View File

@ -38,15 +38,9 @@ class NostrSignerInternal(val keyPair: KeyPair) : NostrSigner(keyPair.pubKey.toH
tags: Array<Array<String>>, tags: Array<Array<String>>,
content: String, content: String,
onReady: (T) -> Unit, onReady: (T) -> Unit,
isDraft: Boolean,
) { ) {
if (keyPair.privKey == null) return if (keyPair.privKey == null) return
if (isDraft) {
unsignedEvent(createdAt, kind, tags, content, onReady)
return
}
if (isUnsignedPrivateEvent(kind, tags)) { if (isUnsignedPrivateEvent(kind, tags)) {
// this is a private zap // this is a private zap
signPrivateZap(createdAt, kind, tags, content, onReady) signPrivateZap(createdAt, kind, tags, content, onReady)
@ -88,30 +82,6 @@ class NostrSignerInternal(val keyPair: KeyPair) : NostrSigner(keyPair.pubKey.toH
) )
} }
fun <T : Event> unsignedEvent(
createdAt: Long,
kind: Int,
tags: Array<Array<String>>,
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( override fun nip04Encrypt(
decryptedContent: String, decryptedContent: String,
toPublicKey: HexKey, toPublicKey: HexKey,