Apply Lucas's fix
MODIFY
WalletWasabi/WabiSabi/Client/CoinJoinManager.cs
WalletWasabi/WabiSabi/Client/CoinJoinManager.cs
@@ -70,9 +70,14 @@ namespace WalletWasabi.WabiSabi.Client
foreach (var openedWallet in openedWallets.Select(x => x.Value))
{
+ var coinCandidates = SelectCandidateCoins(openedWallet).ToArray();
+ if (coinCandidates.Length == 0)
+ {
+ continue;
+ }
+
var coinjoinClient = new CoinJoinClient(HttpClientFactory, openedWallet.Kitchen, openedWallet.KeyManager, RoundStatusUpdater);
var cts = CancellationTokenSource.CreateLinkedTokenSource(stoppingToken);
- var coinCandidates = SelectCandidateCoins(openedWallet).ToArray();
var coinjoinTask = coinjoinClient.StartCoinJoinAsync(coinCandidates, cts.Token);
trackedWallets.Add(openedWallet.WalletName, new WalletTrackingData(openedWallet, coinjoinClient, coinjoinTask, coinCandidates, cts));
@@ -143,7 +148,6 @@ namespace WalletWasabi.WabiSabi.Client
WalletManager.GetWallets()
.Where(x => x.State == WalletState.Started) // Only running wallets
.Where(x => x.KeyManager.AutoCoinJoin || x.AllowManualCoinJoin) // configured to be mixed automatically or manually
- .Where(x => x.Coins.Any())
.Where(x => !x.KeyManager.IsWatchOnly) // that are not watch-only wallets
.Where(x => x.Kitchen.HasIngredients)
.ToImmutableDictionary(x => x.WalletName, x => x);

Apply Lucas's fix