Proper message on no coins to mix
MODIFY
WalletWasabi/WabiSabi/Client/CoinJoinClient.cs
WalletWasabi/WabiSabi/Client/CoinJoinClient.cs
@@ -145,7 +145,7 @@ public class CoinJoinClient
if (coins.IsEmpty)
{
- throw new InvalidOperationException($"No coin was selected from '{coinCandidates.Count()}' number of coins. Probably it was not economical, total amount of coins were: {Money.Satoshis(coinCandidates.Sum(c => c.Amount))} BTC.");
+ throw new NoCoinsToMixException($"No coin was selected from '{coinCandidates.Count()}' number of coins. Probably it was not economical, total amount of coins were: {Money.Satoshis(coinCandidates.Sum(c => c.Amount))} BTC.");
}
for (var tries = 0; tries < tryLimit; tries++)

MODIFY
WalletWasabi/WabiSabi/Client/CoinJoinManager.cs
WalletWasabi/WabiSabi/Client/CoinJoinManager.cs
@@ -345,6 +345,11 @@ public class CoinJoinManager : BackgroundService
wallet.LogInfo($"{nameof(CoinJoinClient)} finished. Transaction not broadcasted.");
}
}
+ catch (NoCoinsToMixException x)
+ {
+ NotifyCoinJoinStartError(wallet, CoinjoinError.NoCoinsToMix);
+ Logger.LogDebug(x);
+ }
catch (InvalidOperationException ioe)
{
Logger.LogWarning(ioe);

ADD
WalletWasabi/WabiSabi/Client/RoundStateAwaiters/NoCoinsToMixException.cs
+namespace WalletWasabi.WabiSabi.Client.RoundStateAwaiters;
+
+public class NoCoinsToMixException : InvalidOperationException
+{
+ public NoCoinsToMixException(string? message) : base(message)
+ {
+ }
+}

Proper message on no coins to mix