diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj b/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj
index 74d5532..a815aaa 100644
--- a/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj
+++ b/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj
@@ -13,7 +13,7 @@
Wabisabi Coinjoin
Allows you to integrate your btcpayserver store with coinjoins.
- 1.0.39
+ 1.0.40
diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorService.cs b/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorService.cs
index c2271ac..79d5a0b 100644
--- a/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorService.cs
+++ b/Plugins/BTCPayServer.Plugins.Wabisabi/Coordinator/WabisabiCoordinatorService.cs
@@ -179,7 +179,7 @@ public class WabisabiCoordinatorService : PeriodicRunner
{
foreach (var discoveredCoordinator in settings.DiscoveredCoordinators)
{
- _instanceManager.AddCoordinator(discoveredCoordinator.Name, discoveredCoordinator.Name, _ => discoveredCoordinator.Uri );
+ _instanceManager.AddCoordinator(discoveredCoordinator.Name, discoveredCoordinator.Name, _ => discoveredCoordinator.Uri, null, discoveredCoordinator.Description );
}
}
if (settings.Enabled)
@@ -197,7 +197,7 @@ public class WabisabiCoordinatorService : PeriodicRunner
{
instance.WasabiCoordinatorStatusFetcher.OverrideConnected = null;
}
- _instanceManager.AddCoordinator("Local Coordinator", "local", _ => null, cachedSettings.TermsConditions);
+ _instanceManager.AddCoordinator("Local Coordinator", "local", _ => null, cachedSettings.TermsConditions, cachedSettings.CoordinatorDescription);
}
public async Task StopAsync(CancellationToken cancellationToken)
diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/AddCoordinator.cshtml b/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/AddCoordinator.cshtml
index 7be0444..90d5119 100644
--- a/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/AddCoordinator.cshtml
+++ b/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/AddCoordinator.cshtml
@@ -16,6 +16,7 @@
@Model.Uri
+
@Model.Description
@{
var canEnable = coordinator.WasabiCoordinatorStatusFetcher.Connected && coordinator.RoundStateUpdater.AnyRound;
diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiCoordinatorClientInstance.cs b/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiCoordinatorClientInstance.cs
index e13dc05..b6a4ac0 100644
--- a/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiCoordinatorClientInstance.cs
+++ b/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiCoordinatorClientInstance.cs
@@ -18,6 +18,7 @@ using WalletWasabi.WabiSabi.Client;
using WalletWasabi.WabiSabi.Client.RoundStateAwaiters;
using WalletWasabi.WabiSabi.Client.StatusChangedEvents;
using WalletWasabi.Wallets;
+using WalletWasabi.WebClients.Wasabi;
using HttpClientFactory = WalletWasabi.WebClients.Wasabi.HttpClientFactory;
namespace BTCPayServer.Plugins.Wabisabi;
@@ -78,7 +79,7 @@ public class WabisabiCoordinatorClientInstanceManager:IHostedService
public void AddCoordinator(string displayName, string name,
- Func fetcher, string termsConditions = null)
+ Func fetcher, string termsConditions = null, string description = null)
{
if (termsConditions is null && name == "zksnacks")
{
@@ -98,7 +99,7 @@ public class WabisabiCoordinatorClientInstanceManager:IHostedService
var instance = new WabisabiCoordinatorClientInstance(
displayName,
name, new Uri(url), _provider.GetService(), _provider, UTXOLocker,
- _provider.GetService(), termsConditions);
+ _provider.GetService(), termsConditions, description);
if (HostedServices.TryAdd(instance.CoordinatorName, instance))
{
if(started)
@@ -131,6 +132,7 @@ public class WabisabiCoordinatorClientInstance
public RoundStateUpdater RoundStateUpdater { get; set; }
public WasabiCoordinatorStatusFetcher WasabiCoordinatorStatusFetcher { get; set; }
public CoinJoinManager CoinJoinManager { get; set; }
+ public string Description { get; set; }
public WabisabiCoordinatorClientInstance(string coordinatorDisplayName,
string coordinatorName,
@@ -138,7 +140,7 @@ public class WabisabiCoordinatorClientInstance
ILoggerFactory loggerFactory,
IServiceProvider serviceProvider,
IUTXOLocker utxoLocker,
- WalletProvider walletProvider, string termsConditions, string coordinatorIdentifier = "CoinJoinCoordinatorIdentifier")
+ WalletProvider walletProvider, string termsConditions, string description,string coordinatorIdentifier = "CoinJoinCoordinatorIdentifier")
{
_utxoLocker = utxoLocker;
@@ -154,6 +156,7 @@ public class WabisabiCoordinatorClientInstance
Coordinator = coordinator;
WalletProvider = walletProvider;
TermsConditions = termsConditions;
+ Description = description;
_logger = loggerFactory.CreateLogger(coordinatorName);
IWabiSabiApiRequestHandler sharedWabisabiClient;
if (coordinatorName == "local")
@@ -167,6 +170,18 @@ public class WabisabiCoordinatorClientInstance
var roundStateUpdaterCircuit = new PersonCircuit();
var roundStateUpdaterHttpClient =
WasabiHttpClientFactory.NewHttpClient(Mode.SingleCircuitPerLifetime, roundStateUpdaterCircuit);
+ if (termsConditions is null)
+ {
+ _ = new WasabiClient(roundStateUpdaterHttpClient)
+ .GetLegalDocumentsAsync(CancellationToken.None)
+ .ContinueWith(task =>
+ {
+ if (task.Status == TaskStatus.RanToCompletion)
+ {
+ TermsConditions = task.Result;
+ }
+ });
+ }
sharedWabisabiClient = new WabiSabiHttpApiClient(roundStateUpdaterHttpClient);
}
diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiStoreController.cs b/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiStoreController.cs
index ebef1bc..4bcde99 100644
--- a/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiStoreController.cs
+++ b/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiStoreController.cs
@@ -229,7 +229,7 @@ namespace BTCPayServer.Plugins.Wabisabi
{
coordSettings.DiscoveredCoordinators.Add(viewModel);
await _wabisabiCoordinatorService.UpdateSettings(coordSettings);
- _instanceManager.AddCoordinator(viewModel.Name, viewModel.Name, provider => viewModel.Uri);
+ _instanceManager.AddCoordinator(viewModel.Name, viewModel.Name, provider => viewModel.Uri, viewModel.Description);
TempData["SuccessMessage"] = $"Coordinator {viewModel.Name } added and started";
}