From f788c7e24efddcd258b015b4fdebddb8a096a994 Mon Sep 17 00:00:00 2001 From: Kukks Date: Thu, 6 Apr 2023 14:57:57 +0200 Subject: [PATCH] fix relays and zap bag holder --- .../BTCPayServer.Plugins.NIP05.csproj | 2 +- Plugins/BTCPayServer.Plugins.NIP05/Zapper.cs | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Plugins/BTCPayServer.Plugins.NIP05/BTCPayServer.Plugins.NIP05.csproj b/Plugins/BTCPayServer.Plugins.NIP05/BTCPayServer.Plugins.NIP05.csproj index 7f7b460..cd3e926 100644 --- a/Plugins/BTCPayServer.Plugins.NIP05/BTCPayServer.Plugins.NIP05.csproj +++ b/Plugins/BTCPayServer.Plugins.NIP05/BTCPayServer.Plugins.NIP05.csproj @@ -11,7 +11,7 @@ Nostr Allows you to verify your nostr account with NIP5 and zap like the rest of the crazies - 1.0.8 + 1.0.9 diff --git a/Plugins/BTCPayServer.Plugins.NIP05/Zapper.cs b/Plugins/BTCPayServer.Plugins.NIP05/Zapper.cs index be068bb..4b00d70 100644 --- a/Plugins/BTCPayServer.Plugins.NIP05/Zapper.cs +++ b/Plugins/BTCPayServer.Plugins.NIP05/Zapper.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Concurrent; +using System.Collections.Generic; using System.Linq; using System.Text.Json; using System.Threading; @@ -47,7 +48,14 @@ public class Zapper : IHostedService if (_pendingZapEvents.Any()) { _logger.LogInformation($"Attempting to send {_pendingZapEvents.Count} zap receipts"); - var pendingZaps = _pendingZapEvents.Take(Range.All).ToArray(); + List pendingZaps = new(); + while (!_pendingZapEvents.IsEmpty) + { + if (_pendingZapEvents.TryTake(out var pendingZap)) + { + pendingZaps.Add(pendingZap); + } + } var relaysToConnectTo = pendingZaps.SelectMany(@event => @event.relays).Distinct(); var relaysToZap =relaysToConnectTo.ToDictionary(s => s, s => pendingZaps.Where(@event => @event.relays.Contains(s)).Select(@event => @event.nostrEvent).ToArray()); @@ -138,7 +146,7 @@ public class Zapper : IHostedService var key = NostrExtensions.ParseKey(settings.settings.PrivateKey); var zapRequestEvent = JsonSerializer.Deserialize(zapRequest); - var relays = zapRequestEvent.GetTaggedData("relays"); + var relays = zapRequestEvent.Tags.Where(tag => tag.TagIdentifier == "relay").SelectMany(tag => tag.Data).ToArray(); var tags = zapRequestEvent.Tags.Where(a => a.TagIdentifier.Length == 1).ToList(); tags.Add(new()