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 cf51b0b89..7c88d8846 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -781,10 +781,7 @@ class Account( note.event?.let { event -> LnZapRequestEvent.create( event, - relays = - getNIP65RelayList()?.readRelays()?.toSet() - ?: userProfile().latestContactList?.relays()?.keys?.ifEmpty { null } - ?: localRelays.map { it.url }.toSet(), + relays = getReceivingRelays(), signer, pollOption, message, @@ -795,6 +792,12 @@ class Account( } } + fun getReceivingRelays(): Set { + return getNIP65RelayList()?.readRelays()?.toSet() + ?: userProfile().latestContactList?.relays()?.filter { it.value.read }?.keys?.ifEmpty { null } + ?: localRelays.filter { it.read }.map { it.url }.toSet() + } + fun hasWalletConnectSetup(): Boolean { return zapPaymentRequest != null } @@ -2462,7 +2465,7 @@ class Account( dvmPublicKey: String, onReady: (event: NIP90ContentDiscoveryRequestEvent) -> Unit, ) { - NIP90ContentDiscoveryRequestEvent.create(dvmPublicKey, signer.pubKey, signer) { + NIP90ContentDiscoveryRequestEvent.create(dvmPublicKey, signer.pubKey, getReceivingRelays(), signer) { val relayList = (LocalCache.getAddressableNoteIfExists(AdvertisedRelayListEvent.createAddressTag(dvmPublicKey))?.event as? AdvertisedRelayListEvent)?.readRelays() if (relayList != null) { diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/NIP90ContentDiscoveryRequestEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/NIP90ContentDiscoveryRequestEvent.kt index 5ef1d883f..b3bfd70a8 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/NIP90ContentDiscoveryRequestEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/NIP90ContentDiscoveryRequestEvent.kt @@ -38,10 +38,12 @@ class NIP90ContentDiscoveryRequestEvent( ) : Event(id, pubKey, createdAt, KIND, tags, content, sig) { companion object { const val KIND = 5300 + const val ALT = "NIP90 Content Discovery request" fun create( dvmPublicKey: HexKey, forUser: HexKey, + relays: Set, signer: NostrSigner, createdAt: Long = TimeUtils.now(), onReady: (NIP90ContentDiscoveryRequestEvent) -> Unit, @@ -49,9 +51,8 @@ class NIP90ContentDiscoveryRequestEvent( val content = "" val tags = mutableListOf>() tags.add(arrayOf("p", dvmPublicKey)) - tags.add(arrayOf("alt", "NIP90 Content Discovery request")) - tags.add(arrayOf("client", "Amethyst")) - tags.add(arrayOf("client", "Amethyst")) + tags.add(arrayOf("alt", ALT)) + tags.add(arrayOf("relays") + relays.toTypedArray()) tags.add(arrayOf("param", "max_results", "200")) tags.add(arrayOf("param", "user", forUser)) signer.sign(createdAt, KIND, tags.toTypedArray(), content, onReady)