From 13579f947396e5f38262fc2239ea72673a0c826a Mon Sep 17 00:00:00 2001 From: toadlyBroodle Date: Sun, 9 Apr 2023 11:26:02 +0900 Subject: [PATCH 1/4] add #zappoll to new poll messages --- .../amethyst/ui/actions/NewPostView.kt | 2 ++ .../amethyst/ui/actions/NewPostViewModel.kt | 13 +++++++++++++ app/src/main/res/values/strings.xml | 1 + 3 files changed, 16 insertions(+) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt index 82175a9130..213573b225 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt @@ -271,8 +271,10 @@ fun NewPostView(onClose: () -> Unit, baseReplyTo: Note? = null, quote: Note? = n } if (postViewModel.canUsePoll) { + val hashtag = stringResource(R.string.poll_hashtag) AddPollButton(postViewModel.wantsPoll) { postViewModel.wantsPoll = !postViewModel.wantsPoll + postViewModel.includePollHashtagInMessage(postViewModel.wantsPoll, hashtag) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt index 5765faf053..1a98c4e970 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt @@ -195,4 +195,17 @@ open class NewPostViewModel : ViewModel() { return message.text.isNotBlank() && !isUploadingImage && !wantsInvoice && (!wantsPoll || pollOptions.values.all { it.isNotEmpty() }) } + + fun includePollHashtagInMessage(include: Boolean, hashtag: String) { + if (include) { + updateMessage(TextFieldValue(message.text + " $hashtag")) + } else { + updateMessage( + TextFieldValue( + message.text.replace(" $hashtag", "") + .replace(hashtag, "") + ) + ) + } + } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 60375a15a8..f1878907d7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -291,4 +291,5 @@ Create and Add Poll authors can\'t vote in their own polls. + #zappoll From 5abbd07722106c4c34039677ba1306895fff727b Mon Sep 17 00:00:00 2001 From: Believethehype Date: Sun, 9 Apr 2023 23:37:23 +0200 Subject: [PATCH 2/4] introduce zap types, implemented non-zaps in custom zap dialog Non-Zaps allow to tip the author of a note without using the zap mechanism (no record on the note) --- .../amethyst/service/model/LnZapEvent.kt | 7 ++++ .../amethyst/ui/note/PollNote.kt | 16 +++++--- .../amethyst/ui/note/ReactionsRow.kt | 10 +++-- .../amethyst/ui/note/ZapCustomDialog.kt | 38 ++++++++++++++----- .../ui/screen/loggedIn/AccountViewModel.kt | 12 ++++-- 5 files changed, 62 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt index ad83690e91..ca8eedee6d 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt @@ -69,4 +69,11 @@ class LnZapEvent( companion object { const val kind = 9735 } + + enum class ZapType() { + PUBLIC, + PRIVATE, // not implemented + ANONYMOUS, // not implemented + NONZAP + } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/PollNote.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/PollNote.kt index e46645a34e..6a56c847fe 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/PollNote.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/PollNote.kt @@ -31,6 +31,7 @@ import androidx.compose.ui.window.Popup import androidx.navigation.NavController import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.service.model.LnZapEvent import com.vitorpamplona.amethyst.ui.components.TranslatableRichTextViewer import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange @@ -251,7 +252,8 @@ fun ZapVote( scope.launch(Dispatchers.Main) { zappingProgress = it } - } + }, + type = LnZapEvent.ZapType.PUBLIC ) } } else { @@ -378,7 +380,8 @@ fun FilteredZapAmountChoicePopup( zapMessage, context, onError, - onProgress + onProgress, + LnZapEvent.ZapType.PUBLIC ) onDismiss() } @@ -403,7 +406,8 @@ fun FilteredZapAmountChoicePopup( zapMessage, context, onError, - onProgress + onProgress, + LnZapEvent.ZapType.PUBLIC ) onDismiss() } @@ -495,7 +499,8 @@ fun ZapVoteAmountChoicePopup( "", context, onError, - onProgress + onProgress, + LnZapEvent.ZapType.PUBLIC ) onDismiss() } @@ -520,7 +525,8 @@ fun ZapVoteAmountChoicePopup( "", context, onError, - onProgress + onProgress, + LnZapEvent.ZapType.PUBLIC ) onDismiss() } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt index e90641a386..77e7ddfeee 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt @@ -55,6 +55,7 @@ import coil.request.CachePolicy import coil.request.ImageRequest import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.service.model.LnZapEvent import com.vitorpamplona.amethyst.ui.actions.NewPostView import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange @@ -363,7 +364,8 @@ fun ZapReaction( scope.launch(Dispatchers.Main) { zappingProgress = it } - } + }, + type = LnZapEvent.ZapType.PUBLIC ) } } else if (account.zapAmountChoices.size > 1) { @@ -559,7 +561,8 @@ fun ZapAmountChoicePopup( zapMessage, context, onError, - onProgress + onProgress, + LnZapEvent.ZapType.PUBLIC ) onDismiss() } @@ -584,7 +587,8 @@ fun ZapAmountChoicePopup( zapMessage, context, onError, - onProgress + onProgress, + LnZapEvent.ZapType.PUBLIC ) onDismiss() } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapCustomDialog.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapCustomDialog.kt index b0ea32a753..2fcde04b35 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapCustomDialog.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapCustomDialog.kt @@ -5,12 +5,7 @@ import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material.* -import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.runtime.setValue +import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -27,15 +22,16 @@ import androidx.lifecycle.viewmodel.compose.viewModel import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.service.model.LnZapEvent import com.vitorpamplona.amethyst.ui.actions.CloseButton import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import com.vitorpamplona.amethyst.ui.screen.loggedIn.TextSpinner import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch class ZapOptionstViewModel : ViewModel() { private var account: Account? = null - - var customAmount by mutableStateOf(TextFieldValue("1000")) + var customAmount by mutableStateOf(TextFieldValue("21")) var customMessage by mutableStateOf(TextFieldValue("")) fun load(account: Account) { @@ -63,11 +59,21 @@ fun ZapCustomDialog(onClose: () -> Unit, account: Account, accountViewModel: Acc val context = LocalContext.current val scope = rememberCoroutineScope() val postViewModel: ZapOptionstViewModel = viewModel() - + postViewModel.load(account) LaunchedEffect(account) { postViewModel.load(account) } + var zappingProgress by remember { mutableStateOf(0f) } + + val zapTypes = listOf( + Pair(LnZapEvent.ZapType.PUBLIC, "Public"), + Pair(LnZapEvent.ZapType.NONZAP, "Non-Zap") + ) + + val zapOptions = zapTypes.map { it.second } + var selectedZapType by remember { mutableStateOf(zapTypes[0]) } + Dialog( onDismissRequest = { onClose() }, properties = DialogProperties( @@ -98,6 +104,7 @@ fun ZapCustomDialog(onClose: () -> Unit, account: Account, accountViewModel: Acc postViewModel.customMessage.text, context, onError = { + zappingProgress = 0f scope.launch { Toast .makeText(context, it, Toast.LENGTH_SHORT).show() @@ -105,8 +112,10 @@ fun ZapCustomDialog(onClose: () -> Unit, account: Account, accountViewModel: Acc }, onProgress = { scope.launch(Dispatchers.Main) { + zappingProgress = it } - } + }, + type = selectedZapType.first ) } onClose() @@ -174,6 +183,15 @@ fun ZapCustomDialog(onClose: () -> Unit, account: Account, accountViewModel: Acc .weight(1f) ) } + TextSpinner( + label = "Zap Type", + placeholder = "Public", + options = zapOptions, + onSelect = { + selectedZapType = zapTypes[it] + }, + modifier = Modifier.fillMaxWidth() + ) } } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt index e9f777be1f..513c5b1505 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt @@ -14,6 +14,7 @@ import com.vitorpamplona.amethyst.model.AccountState import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.model.User import com.vitorpamplona.amethyst.service.lnurl.LightningAddressResolver +import com.vitorpamplona.amethyst.service.model.LnZapEvent import com.vitorpamplona.amethyst.service.model.ReportEvent import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay @@ -52,7 +53,7 @@ class AccountViewModel(private val account: Account) : ViewModel() { account.delete(account.boostsTo(note)) } - fun zap(note: Note, amount: Long, pollOption: Int?, message: String, context: Context, onError: (String) -> Unit, onProgress: (percent: Float) -> Unit) { + fun zap(note: Note, amount: Long, pollOption: Int?, message: String, context: Context, onError: (String) -> Unit, onProgress: (percent: Float) -> Unit, type: LnZapEvent.ZapType) { val lud16 = note.author?.info?.lud16?.trim() ?: note.author?.info?.lud06?.trim() if (lud16.isNullOrBlank()) { @@ -60,7 +61,12 @@ class AccountViewModel(private val account: Account) : ViewModel() { return } - val zapRequest = account.createZapRequestFor(note, pollOption, message) + var zapRequest = account.createZapRequestFor(note, pollOption, message) + var zapRequestJson = zapRequest?.toJson() + + if (type == LnZapEvent.ZapType.NONZAP) { + zapRequestJson = "" + } onProgress(0.10f) @@ -68,7 +74,7 @@ class AccountViewModel(private val account: Account) : ViewModel() { lud16, amount, message, - zapRequest?.toJson(), + zapRequestJson, onSuccess = { onProgress(0.7f) if (account.hasWalletConnectSetup()) { From 9a5d8522fb3f5905d911a54b409162f193f70adb Mon Sep 17 00:00:00 2001 From: Believethehype Date: Mon, 10 Apr 2023 13:25:09 +0200 Subject: [PATCH 3/4] added anonymous zaps --- .../vitorpamplona/amethyst/model/Account.kt | 10 +++++--- .../service/model/LnZapRequestEvent.kt | 25 ++++++++++++++----- .../amethyst/ui/components/InvoiceRequest.kt | 3 ++- .../amethyst/ui/note/PollNote.kt | 2 +- .../amethyst/ui/note/ReactionsRow.kt | 2 +- .../amethyst/ui/note/ZapCustomDialog.kt | 4 +-- .../ui/screen/loggedIn/AccountViewModel.kt | 12 +++++---- 7 files changed, 38 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index f287b3011f..178e5f2648 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -137,7 +137,7 @@ class Account( } } - fun createZapRequestFor(note: Note, pollOption: Int?, message: String = ""): LnZapRequestEvent? { + fun createZapRequestFor(note: Note, pollOption: Int?, message: String = "", zapType: LnZapEvent.ZapType): LnZapRequestEvent? { if (!isWriteable()) return null note.event?.let { event -> @@ -147,7 +147,8 @@ class Account( ?: localRelays.map { it.url }.toSet(), loggedIn.privKey!!, pollOption, - message + message, + zapType ) } return null @@ -171,14 +172,15 @@ class Account( return createZapRequestFor(user) } - fun createZapRequestFor(userPubKeyHex: String, message: String = ""): LnZapRequestEvent? { + fun createZapRequestFor(userPubKeyHex: String, message: String = "", zapType: LnZapEvent.ZapType): LnZapRequestEvent? { if (!isWriteable()) return null return LnZapRequestEvent.create( userPubKeyHex, userProfile().latestContactList?.relays()?.keys?.ifEmpty { null } ?: localRelays.map { it.url }.toSet(), loggedIn.privKey!!, - message + message, + zapType ) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapRequestEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapRequestEvent.kt index 5452aa36ab..34fddc02ac 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapRequestEvent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapRequestEvent.kt @@ -25,10 +25,12 @@ class LnZapRequestEvent( privateKey: ByteArray, pollOption: Int?, message: String, + zapType: LnZapEvent.ZapType, createdAt: Long = Date().time / 1000 ): LnZapRequestEvent { val content = message - val pubKey = Utils.pubkeyCreate(privateKey).toHexKey() + var privkey = privateKey + var pubKey = Utils.pubkeyCreate(privateKey).toHexKey() var tags = listOf( listOf("e", originalNote.id()), listOf("p", originalNote.pubKey()), @@ -40,9 +42,13 @@ class LnZapRequestEvent( if (pollOption != null && pollOption >= 0) { tags = tags + listOf(listOf(POLL_OPTION, pollOption.toString())) } - + if (zapType == LnZapEvent.ZapType.ANONYMOUS) { + tags = tags + listOf(listOf("anon", "")) + privkey = Utils.privkeyCreate() + pubKey = Utils.pubkeyCreate(privkey).toHexKey() + } val id = generateId(pubKey, createdAt, kind, tags, content) - val sig = Utils.sign(id, privateKey) + val sig = Utils.sign(id, privkey) return LnZapRequestEvent(id.toHexKey(), pubKey, createdAt, tags, content, sig.toHexKey()) } @@ -51,17 +57,24 @@ class LnZapRequestEvent( relays: Set, privateKey: ByteArray, message: String, + zapType: LnZapEvent.ZapType, createdAt: Long = Date().time / 1000 ): LnZapRequestEvent { val content = message - val pubKey = Utils.pubkeyCreate(privateKey).toHexKey() - val tags = listOf( + var privkey = privateKey + var pubKey = Utils.pubkeyCreate(privateKey).toHexKey() + var tags = listOf( listOf("p", userHex), listOf("relays") + relays ) + if (zapType == LnZapEvent.ZapType.ANONYMOUS) { + tags = tags + listOf(listOf("anon", "")) + privkey = Utils.privkeyCreate() + pubKey = Utils.pubkeyCreate(privkey).toHexKey() + } val id = generateId(pubKey, createdAt, kind, tags, content) - val sig = Utils.sign(id, privateKey) + val sig = Utils.sign(id, privkey) return LnZapRequestEvent(id.toHexKey(), pubKey, createdAt, tags, content, sig.toHexKey()) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoiceRequest.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoiceRequest.kt index bca274b3c6..06e38c773c 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoiceRequest.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoiceRequest.kt @@ -37,6 +37,7 @@ import androidx.compose.ui.unit.sp import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.lnurl.LightningAddressResolver +import com.vitorpamplona.amethyst.service.model.LnZapEvent import kotlinx.coroutines.launch @Composable @@ -135,7 +136,7 @@ fun InvoiceRequest( Button( modifier = Modifier.fillMaxWidth().padding(vertical = 10.dp), onClick = { - val zapRequest = account.createZapRequestFor(toUserPubKeyHex, message) + val zapRequest = account.createZapRequestFor(toUserPubKeyHex, message, LnZapEvent.ZapType.PUBLIC) LightningAddressResolver().lnAddressInvoice( lud16, diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/PollNote.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/PollNote.kt index 6a56c847fe..da0f35936a 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/PollNote.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/PollNote.kt @@ -253,7 +253,7 @@ fun ZapVote( zappingProgress = it } }, - type = LnZapEvent.ZapType.PUBLIC + zapType = LnZapEvent.ZapType.PUBLIC ) } } else { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt index 77e7ddfeee..5a0d7a3b47 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt @@ -365,7 +365,7 @@ fun ZapReaction( zappingProgress = it } }, - type = LnZapEvent.ZapType.PUBLIC + zapType = LnZapEvent.ZapType.PUBLIC ) } } else if (account.zapAmountChoices.size > 1) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapCustomDialog.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapCustomDialog.kt index 2fcde04b35..5fe601a6ab 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapCustomDialog.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapCustomDialog.kt @@ -59,7 +59,6 @@ fun ZapCustomDialog(onClose: () -> Unit, account: Account, accountViewModel: Acc val context = LocalContext.current val scope = rememberCoroutineScope() val postViewModel: ZapOptionstViewModel = viewModel() - postViewModel.load(account) LaunchedEffect(account) { postViewModel.load(account) } @@ -68,6 +67,7 @@ fun ZapCustomDialog(onClose: () -> Unit, account: Account, accountViewModel: Acc val zapTypes = listOf( Pair(LnZapEvent.ZapType.PUBLIC, "Public"), + Pair(LnZapEvent.ZapType.ANONYMOUS, "Anonymous"), Pair(LnZapEvent.ZapType.NONZAP, "Non-Zap") ) @@ -115,7 +115,7 @@ fun ZapCustomDialog(onClose: () -> Unit, account: Account, accountViewModel: Acc zappingProgress = it } }, - type = selectedZapType.first + zapType = selectedZapType.first ) } onClose() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt index 513c5b1505..c88352b6c7 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt @@ -53,7 +53,7 @@ class AccountViewModel(private val account: Account) : ViewModel() { account.delete(account.boostsTo(note)) } - fun zap(note: Note, amount: Long, pollOption: Int?, message: String, context: Context, onError: (String) -> Unit, onProgress: (percent: Float) -> Unit, type: LnZapEvent.ZapType) { + fun zap(note: Note, amount: Long, pollOption: Int?, message: String, context: Context, onError: (String) -> Unit, onProgress: (percent: Float) -> Unit, zapType: LnZapEvent.ZapType) { val lud16 = note.author?.info?.lud16?.trim() ?: note.author?.info?.lud06?.trim() if (lud16.isNullOrBlank()) { @@ -61,11 +61,13 @@ class AccountViewModel(private val account: Account) : ViewModel() { return } - var zapRequest = account.createZapRequestFor(note, pollOption, message) - var zapRequestJson = zapRequest?.toJson() + var zapRequestJson = "" - if (type == LnZapEvent.ZapType.NONZAP) { - zapRequestJson = "" + if (zapType != LnZapEvent.ZapType.NONZAP) { + val zapRequest = account.createZapRequestFor(note, pollOption, message, zapType) + if (zapRequest != null) { + zapRequestJson = zapRequest.toJson() + } } onProgress(0.10f) From 37dab1c8b614af951bf498d56ee5c51b049f9440 Mon Sep 17 00:00:00 2001 From: Believethehype Date: Mon, 10 Apr 2023 13:54:29 +0200 Subject: [PATCH 4/4] Update LnZapEvent.kt --- .../com/vitorpamplona/amethyst/service/model/LnZapEvent.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt index ca8eedee6d..1812fb8030 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt @@ -72,8 +72,8 @@ class LnZapEvent( enum class ZapType() { PUBLIC, - PRIVATE, // not implemented - ANONYMOUS, // not implemented + PRIVATE, // not yet implemented + ANONYMOUS, NONZAP } }