From a028c2c3fc2fa5be50bd842e1b520873bc274efa Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Fri, 27 Sep 2024 15:19:48 -0400 Subject: [PATCH] Fixes missing zaps on the first connection to a NWC wallet with a split payment. --- .../com/vitorpamplona/amethyst/model/Account.kt | 10 +++++----- .../amethyst/service/ZapPaymentHandler.kt | 14 -------------- .../com/vitorpamplona/ammolite/relays/Relay.kt | 2 +- .../com/vitorpamplona/ammolite/relays/RelayPool.kt | 5 ++--- 4 files changed, 8 insertions(+), 23 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index cf41d55b5..c6528ad49 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -1298,11 +1298,11 @@ class Account( signedEvent = event, relayTemplate = RelaySetupInfoToConnect( - nip47.relayUri, - shouldUseTorForTrustedRelays(), // this is trusted. - true, - true, - wcListener.feedTypes, + url = nip47.relayUri, + forceProxy = shouldUseTorForTrustedRelays(), // this is trusted. + read = true, + write = true, + feedTypes = wcListener.feedTypes, ), onDone = { wcListener.destroy() }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/ZapPaymentHandler.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/ZapPaymentHandler.kt index fed20d3c0..c85bdca61 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/ZapPaymentHandler.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/ZapPaymentHandler.kt @@ -118,10 +118,6 @@ class ZapPaymentHandler( onProgress(0.02f) signAllZapRequests(note, pollOption, message, zapType, zapsToSend) { splitZapRequestPairs -> - splitZapRequestPairs.forEach { - println("AABBCC 1 ${it.key} ${it.value} $amountMilliSats") - } - if (splitZapRequestPairs.isEmpty()) { onProgress(0.00f) return@signAllZapRequests @@ -132,10 +128,6 @@ class ZapPaymentHandler( assembleAllInvoices(splitZapRequestPairs.toList(), amountMilliSats, message, showErrorIfNoLnAddress, forceProxy, onError, onProgress = { onProgress(it * 0.7f + 0.05f) // keeps within range. }, context) { - splitZapRequestPairs.forEach { - println("AABBCC 2 ${it.key} ${it.value} $amountMilliSats") - } - if (it.isEmpty()) { onProgress(0.00f) return@assembleAllInvoices @@ -225,7 +217,6 @@ class ZapPaymentHandler( ) + (authorRelayList ?: emptySet()) prepareZapRequestIfNeeded(note, pollOption, message, zapType, user, userRelayList) { zapRequestJson -> - println("AABBCC middle ${user?.toBestDisplayName()} + $zapRequestJson") onReady(SignAllZapRequestsReturn(zapRequestJson, user)) } } @@ -284,20 +275,15 @@ class ZapPaymentHandler( collectSuccessfulSigningOperations( operationsInput = invoices, runRequestFor = { invoice: String, onReady -> - println("AABBCC sending $invoice") - account.sendZapPaymentRequestFor( bolt11 = invoice, zappedNote = note, onSent = { - println("AABBCC sent $invoice") progressAllPayments += 0.5f / invoices.size onProgress(progressAllPayments) onReady(true) }, onResponse = { response -> - println("AABBCC response $invoice") - if (response is PayInvoiceErrorResponse) { progressAllPayments += 0.5f / invoices.size onProgress(progressAllPayments) diff --git a/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/Relay.kt b/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/Relay.kt index 694a2472b..12ab09917 100644 --- a/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/Relay.kt +++ b/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/Relay.kt @@ -99,7 +99,7 @@ class Relay( } } - private fun sendOutbox() { + fun sendOutbox() { synchronized(outboxCache) { outboxCache.values.forEach { send(it) diff --git a/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/RelayPool.kt b/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/RelayPool.kt index b22bfec38..4d744b195 100644 --- a/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/RelayPool.kt +++ b/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/RelayPool.kt @@ -96,9 +96,8 @@ object RelayPool : Relay.Listener { addRelay(relay) relay.connectAndRun { - Client.allSubscriptions().forEach { - relay.sendFilter(it.key, it.value) - } + relay.renewFilters() + relay.sendOutbox() onConnected(relay)