handle dequeu exceptions
MODIFY
WalletWasabi.Gui/Dialogs/CannotCloseDialogView.xaml
WalletWasabi.Gui/Dialogs/CannotCloseDialogView.xaml
<Panel Grid.Row="0" Margin="10">
<TextBlock FontSize="15" Text="You have coins registered for CoinJoin. Please dequeue your coins and try again. DON'T WORRY, your coins are safe in case of lost internet or Tor connection, or a computer crash. The worst thing that can happen is that your coins get banned from participatin for a few hours or days if a round would progress from Registration phase before your registered coins would time out." TextWrapping="Wrap" />
</Panel>
- <StackPanel Grid.Row="1" Orientation="Horizontal" Margin="10">
- <controls:Spinner Height="20" Width="20" IsVisible="{Binding IsBusy}" Margin="0 0 8 0" />
+ <StackPanel Grid.Row="1" Orientation="Vertical" Margin="10">
+ <StackPanel Orientation="Horizontal" Margin="10" IsVisible="{Binding IsBusy}">
+ <controls:Spinner Height="20" Width="20" Margin="0 0 8 0" />
<TextBlock Text="Dequeuing coins" />
</StackPanel>
+ <TextBlock Text="{Binding WarningMessage}" Classes="warningMessage" />
+ </StackPanel>
</Grid>
</controls:GroupBox>
</UserControl>

MODIFY
WalletWasabi.Gui/Global.cs
WalletWasabi.Gui/Global.cs
@@ -99,6 +99,20 @@ namespace WalletWasabi.Gui
Interlocked.Increment(ref _triedDesperateDequeuing);
}
+ await DesperateDequeueAllCoinsAsync();
+ }
+ catch (Exception ex)
+ {
+ Logger.LogWarning(ex, nameof(Global));
+ }
+ finally
+ {
+ Interlocked.Exchange(ref _triedDesperateDequeuing, 0);
+ }
+ }
+
+ public static async Task DesperateDequeueAllCoinsAsync()
+ {
if (WalletService is null || ChaumianClient is null)
return;
SmartCoin[] enqueuedCoins = WalletService.Coins.Where(x => x.CoinJoinInProgress).ToArray();
@@ -108,11 +122,6 @@ namespace WalletWasabi.Gui
await ChaumianClient.DequeueCoinsFromMixAsync(enqueuedCoins);
}
}
- catch (Exception ex)
- {
- Logger.LogWarning(ex, nameof(Global));
- }
- }
public static void InitializeNoWallet()
{

handle dequeu exceptions