diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj b/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj index f6b43fb..11f7c9f 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj @@ -13,7 +13,7 @@ Coinjoin Allows you to integrate your btcpayserver store with coinjoins. - 1.0.91 + 1.0.92 true diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorSettings.cs b/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorSettings.cs index 93ed35b..ae5bf12 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorSettings.cs +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorSettings.cs @@ -9,7 +9,7 @@ namespace WalletWasabi.Backend.Controllers; public class WabisabiCoordinatorSettings { public bool Enabled { get; set; } = false; - + public Uri ForwardEndpoint { get; set; } = new Uri("https://wasabiwallet.io/"); public string NostrIdentity { get; set; } public Uri NostrRelay { get; set; } = new Uri("wss://relay.primal.net"); diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WasabiLeechController.cs b/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WasabiLeechController.cs index b772391..9626b0f 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WasabiLeechController.cs +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WasabiLeechController.cs @@ -12,10 +12,13 @@ namespace WalletWasabi.Backend.Controllers; public class WasabiLeechController : Controller { private readonly WabisabiCoordinatorClientInstanceManager _coordinatorClientInstanceManager; + private readonly WabisabiCoordinatorService _wabisabiCoordinatorService; - public WasabiLeechController(WabisabiCoordinatorClientInstanceManager coordinatorClientInstanceManager) + public WasabiLeechController(WabisabiCoordinatorClientInstanceManager coordinatorClientInstanceManager, + WabisabiCoordinatorService wabisabiCoordinatorService) { _coordinatorClientInstanceManager = coordinatorClientInstanceManager; + _wabisabiCoordinatorService = wabisabiCoordinatorService; } [HttpGet("api/v4/Wasabi/legaldocuments")] @@ -32,14 +35,22 @@ public class WasabiLeechController : Controller [Route("{*key}")] public async Task Forward(string key, CancellationToken cancellationToken) { - if (!_coordinatorClientInstanceManager.HostedServices.TryGetValue("zksnacks", out var coordinator)) - return BadRequest(); + if (!_wabisabiCoordinatorService.Started) + return NotFound(); + var settings = await _wabisabiCoordinatorService.GetSettings(); - var b = new UriBuilder(coordinator.Coordinator); - b.Path = key; - b.Query = Request.QueryString.ToString(); + if (settings.ForwardEndpoint is not null) + { + var b = new UriBuilder(settings.ForwardEndpoint) + { + Path = key, + Query = Request.QueryString.ToString() + }; - return RedirectPreserveMethod(b.ToString()); + return RedirectPreserveMethod(b.ToString()); + } + + return NotFound(); } -} +} \ No newline at end of file diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/Views/WabisabiCoordinatorConfig/UpdateWabisabiSettings.cshtml b/Plugins/BTCPayServer.Plugins.Wabisabi/Views/WabisabiCoordinatorConfig/UpdateWabisabiSettings.cshtml index 430b69d..afa0603 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/Views/WabisabiCoordinatorConfig/UpdateWabisabiSettings.cshtml +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/Views/WabisabiCoordinatorConfig/UpdateWabisabiSettings.cshtml @@ -47,6 +47,11 @@ +
+ + +

When someone enters your coordinator endpoint, forward to this url (except for coinjoin endpoints).

+