From 6eeb1122aaaa2a9a20bc31d24fc6e7b495558380 Mon Sep 17 00:00:00 2001 From: Kukks Date: Thu, 11 May 2023 13:49:28 +0200 Subject: [PATCH] update nostr components --- .../BTCPayServer.Plugins.NIP05.csproj | 4 +-- .../BTCPayServer.Plugins.Wabisabi.csproj | 2 +- .../Coordinator/WabisabiCoordinatorService.cs | 4 +-- .../WabisabiCoordinatorSettings.cs | 2 +- .../BTCPayServer.Plugins.Wabisabi/Nostr.cs | 35 +++++-------------- .../Wabisabi/AddCoordinatorPrompt.cshtml | 2 +- .../WabisabiStoreController.cs | 2 +- 7 files changed, 16 insertions(+), 35 deletions(-) diff --git a/Plugins/BTCPayServer.Plugins.NIP05/BTCPayServer.Plugins.NIP05.csproj b/Plugins/BTCPayServer.Plugins.NIP05/BTCPayServer.Plugins.NIP05.csproj index a191411..8723ecc 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.12 + 1.0.13 @@ -35,7 +35,7 @@ - + diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj b/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj index c1315f1..b5a02c1 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj @@ -43,7 +43,7 @@ - + diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorService.cs b/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorService.cs index 80f04b7..692b447 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorService.cs +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorService.cs @@ -209,12 +209,10 @@ public class WabisabiCoordinatorService : PeriodicRunner if (s.Enabled && !string.IsNullOrEmpty(s.NostrIdentity) && s.NostrRelay is not null && s.UriToAdvertise is not null) { - - var uri = new Uri(s.UriToAdvertise, "plugins/wabisabi-coordinator/wabisabi"); await Nostr.Publish(s.NostrRelay, new[] { - await Nostr.CreateCoordinatorDiscoveryEvent(network, s.NostrIdentity, uri, + await Nostr.CreateCoordinatorDiscoveryEvent(network, s.NostrIdentity, s.UriToAdvertise, s.CoordinatorDescription) },s.UriToAdvertise.IsOnion()? _socks5HttpClientHandler: null, cancel); } diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorSettings.cs b/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorSettings.cs index 11f76c0..d8c4634 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorSettings.cs +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorSettings.cs @@ -11,7 +11,7 @@ public class WabisabiCoordinatorSettings public bool Enabled { get; set; } = false; public string NostrIdentity { get; set; } - public Uri NostrRelay { get; set; } = new Uri("wss://nostr.mutinywallet.com"); + public Uri NostrRelay { get; set; } = new Uri("wss://kukks.org/nostr"); public List DiscoveredCoordinators { get; set; } = new(); diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/Nostr.cs b/Plugins/BTCPayServer.Plugins.Wabisabi/Nostr.cs index 8ae8949..b25c9c6 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/Nostr.cs +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/Nostr.cs @@ -73,45 +73,28 @@ public class Nostr { var nostrClient = new NostrClient(relayUri, socket => socket.Options.Proxy = relayUri.IsLocalNetwork()? null: httpClientHandler?.Proxy); - Stopwatch stopwatch = new(); var result = new List(); - var tcs = new TaskCompletionSource(); - nostrClient.EoseReceived += (sender, s) => - { - tcs.SetResult(); - }; - nostrClient.EventsReceived += (sender, tuple) => - { - stopwatch.Restart(); - result.AddRange(tuple.events); - }; - var network = currentNetwork.Name.ToLower(); - var cts = new CancellationTokenSource(TimeSpan.FromMinutes(1)); + + var cts = CancellationTokenSource.CreateLinkedTokenSource(new CancellationTokenSource(TimeSpan.FromMinutes(1)).Token, + cancellationToken); _ = nostrClient.Connect(cts.Token); await nostrClient.WaitUntilConnected(cts.Token); - await nostrClient.CreateSubscription("nostr-wabisabi-coordinators", + + result = await nostrClient.SubscribeForEvents( new[] { new NostrSubscriptionFilter() { - Kinds = new[] {Kind}, + Kinds = new[] {Kind}, Since = DateTimeOffset.UtcNow.Subtract(TimeSpan.FromHours(1)), ExtensionData = new Dictionary() { - ["#type"] = JsonSerializer.SerializeToElement(new []{TypeTagValue}), - ["#network"] = JsonSerializer.SerializeToElement(new []{network}) + ["#type"] = JsonSerializer.SerializeToElement(new[] {TypeTagValue}), + ["#network"] = JsonSerializer.SerializeToElement(new[] {network}) } } - }, cancellationToken); - stopwatch.Start(); - - - while (!tcs.Task.IsCompleted && !cts.IsCancellationRequested && - stopwatch.ElapsedMilliseconds < 10000) - { - await Task.Delay(1000, cts.Token); - } + }, true, cts.Token).ToListAsync(); nostrClient.Dispose(); diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/AddCoordinatorPrompt.cshtml b/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/AddCoordinatorPrompt.cshtml index de5d1e0..09c4ca6 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/AddCoordinatorPrompt.cshtml +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/AddCoordinatorPrompt.cshtml @@ -36,7 +36,7 @@ diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiStoreController.cs b/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiStoreController.cs index 31b57cc..ebef1bc 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiStoreController.cs +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiStoreController.cs @@ -73,6 +73,7 @@ namespace BTCPayServer.Plugins.Wabisabi } [HttpGet("")] + [HttpGet("add-coordinator")] public async Task UpdateWabisabiStoreSettings(string storeId) { WabisabiStoreSettings Wabisabi = null; @@ -132,7 +133,6 @@ namespace BTCPayServer.Plugins.Wabisabi } return View(vm); - break; case "check": await _walletProvider.Check(storeId, CancellationToken.None); TempData["SuccessMessage"] = "Store wallet re-checked";