diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj b/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj
index dbc36d0..207c236 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.73
+ 1.0.74
true
diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/WabisabiDashboard.cshtml b/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/WabisabiDashboard.cshtml
index 56dea43..22e4673 100644
--- a/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/WabisabiDashboard.cshtml
+++ b/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/WabisabiDashboard.cshtml
@@ -392,7 +392,14 @@ updateInProgressAnimation(myChart);
}
else if (coordinator.WasabiCoordinatorStatusFetcher.Connected)
{
- if (coordinator.CoinJoinManager.TrackedWallets.TryGetValue(wallet.WalletName, out _))
+ var roundParameters = coordinator.RoundStateUpdater.RoundStates.LastOrDefault(pair => pair.Value.BlameOf == uint256.Zero).Value?.CoinjoinState.Parameters;
+ coordinator.CoinJoinManager.TrackedWallets.TryGetValue(wallet.WalletName, out var trackedWallet);
+ if(trackedWallet is {} && setting.RoundWhenEnabled is not null && roundParameters is not null && !BTCPayWallet.IsRoundOk(roundParameters, setting))
+ {
+
+ New terms detected
+
+ }else if (trackedWallet is {})
{
Idle
}
diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiService.cs b/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiService.cs
index 0652e67..e71bfa3 100644
--- a/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiService.cs
+++ b/Plugins/BTCPayServer.Plugins.Wabisabi/WabisabiService.cs
@@ -116,22 +116,21 @@ namespace BTCPayServer.Plugins.Wabisabi
{
wabisabiStoreCoordinatorSettings.RoundWhenEnabled = null;
}
- else if (
- (termsCoord == wabisabiStoreCoordinatorSettings.Coordinator ||
- res?.Settings?.Find(settings =>
- settings.Coordinator == wabisabiStoreCoordinatorSettings.Coordinator)
- ?.RoundWhenEnabled is null) &&
- _coordinatorClientInstanceManager.HostedServices.TryGetValue(
- wabisabiStoreCoordinatorSettings.Coordinator, out var coordinator))
+ else if ((termsCoord == wabisabiStoreCoordinatorSettings.Coordinator || wabisabiStoreCoordinatorSettings.RoundWhenEnabled is null)&&
+ _coordinatorClientInstanceManager.HostedServices.TryGetValue(wabisabiStoreCoordinatorSettings.Coordinator, out var coordinator))
{
+
var round = coordinator.RoundStateUpdater.RoundStates.LastOrDefault();
- wabisabiStoreCoordinatorSettings.RoundWhenEnabled = new LastCoordinatorRoundConfig()
- {
- CoordinationFeeRate = round.Value.CoinjoinState.Parameters.CoordinationFeeRate.Rate,
- PlebsDontPayThreshold = round.Value.CoinjoinState.Parameters.CoordinationFeeRate
- .PlebsDontPayThreshold.Satoshi.ToString(),
- MinInputCountByRound = round.Value.CoinjoinState.Parameters.MinInputCountByRound,
- };
+ wabisabiStoreCoordinatorSettings.RoundWhenEnabled =
+ round.Value?.CoinjoinState?.Parameters is { } roundParameters
+ ? new LastCoordinatorRoundConfig()
+ {
+ CoordinationFeeRate = roundParameters.CoordinationFeeRate.Rate,
+ PlebsDontPayThreshold = roundParameters.CoordinationFeeRate
+ .PlebsDontPayThreshold.Satoshi.ToString(),
+ MinInputCountByRound = roundParameters.MinInputCountByRound,
+ }
+ : null;
}
}