From 4a43b57f797151ebd96c66624aee9b4b646f48ba Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Thu, 30 May 2024 13:51:14 -0400 Subject: [PATCH] Uses NIP-65 preferably for zap requests. --- .../vitorpamplona/amethyst/model/Account.kt | 6 ++-- .../quartz/events/AdvertisedRelayListEvent.kt | 28 +++++++++++++++++++ 2 files changed, 32 insertions(+), 2 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 b796c0a17..28a5daf88 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -730,8 +730,10 @@ class Account( note.event?.let { event -> LnZapRequestEvent.create( event, - userProfile().latestContactList?.relays()?.keys?.ifEmpty { null } - ?: localRelays.map { it.url }.toSet(), + relays = + getNIP65RelayList()?.readRelays()?.toSet() + ?: userProfile().latestContactList?.relays()?.keys?.ifEmpty { null } + ?: localRelays.map { it.url }.toSet(), signer, pollOption, message, diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/AdvertisedRelayListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/AdvertisedRelayListEvent.kt index 4d61e3f78..e5add50ad 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/AdvertisedRelayListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/AdvertisedRelayListEvent.kt @@ -54,6 +54,34 @@ class AdvertisedRelayListEvent( } } + fun readRelays(): List? { + return tags.mapNotNull { + if (it.size > 1 && it[0] == "r") { + when (it.getOrNull(2)) { + "read" -> it[1] + "write" -> null + else -> it[1] + } + } else { + null + } + }.ifEmpty { null } + } + + fun writeRelays(): List { + return tags.mapNotNull { + if (it.size > 1 && it[0] == "r") { + when (it.getOrNull(2)) { + "read" -> null + "write" -> it[1] + else -> it[1] + } + } else { + null + } + } + } + companion object { const val KIND = 10002 const val FIXED_D_TAG = ""