diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/NIP24Factory.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/NIP24Factory.kt index 6a5f12bc2..d3534a5e6 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/NIP24Factory.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/NIP24Factory.kt @@ -2,6 +2,7 @@ package com.vitorpamplona.quartz.events import com.vitorpamplona.quartz.encoders.toHexKey import com.vitorpamplona.quartz.crypto.CryptoUtils +import com.vitorpamplona.quartz.encoders.ATag import com.vitorpamplona.quartz.encoders.HexKey class NIP24Factory { @@ -85,4 +86,50 @@ class NIP24Factory { ) } } + + fun createTextNoteNIP24( + msg: String, + to: List, + from: ByteArray, + replyTos: List? = null, + mentions: List? = null, + addresses: List?, + extraTags: List?, + zapReceiver: List? = null, + markAsSensitive: Boolean = false, + replyingTo: String?, + root: String?, + directMentions: Set, + zapRaiserAmount: Long? = null, + geohash: String? = null + ): List { + val senderPublicKey = CryptoUtils.pubkeyCreate(from).toHexKey() + + val senderMessage = TextNoteEvent.create( + msg = msg, + privateKey = from, + replyTos = replyTos, + mentions = mentions, + zapReceiver = zapReceiver, + root = root, + extraTags = extraTags, + addresses = addresses, + directMentions = directMentions, + replyingTo = replyingTo, + markAsSensitive = markAsSensitive, + zapRaiserAmount = zapRaiserAmount, + geohash = geohash + ) + + return to.plus(senderPublicKey).map { + GiftWrapEvent.create( + event = SealedGossipEvent.create( + event = senderMessage, + encryptTo = it, + privateKey = from + ), + recipientPubKey = it + ) + } + } }