Do exception handling.
MODIFY
WalletWasabi.Gui/Controls/WalletExplorer/CoinJoinTabViewModel.cs
WalletWasabi.Gui/Controls/WalletExplorer/CoinJoinTabViewModel.cs
@@ -146,6 +146,8 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
}).DisposeWith(Disposables);
this.WhenAnyValue(x => x.Password).Subscribe(async x =>
+ {
+ try
{
if (x.NotNullAndNotEmpty())
{
@@ -156,6 +158,11 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
await DoEnqueueAsync(CoinsList.Coins.Where(c => c.IsSelected));
}
}
+ }
+ catch (Exception ex)
+ {
+ Logger.LogTrace(ex);
+ }
}).DisposeWith(Disposables);
this.WhenAnyValue(x => x.IsEnqueueBusy).Subscribe(busy =>

MODIFY
WalletWasabi.Gui/Controls/WalletExplorer/SendTabViewModel.cs
WalletWasabi.Gui/Controls/WalletExplorer/SendTabViewModel.cs
@@ -249,6 +249,8 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
}).DisposeWith(Disposables);
this.WhenAnyValue(x => x.Password).Subscribe(x =>
+ {
+ try
{
if (x.NotNullAndNotEmpty())
{
@@ -258,6 +260,11 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
Password = x.TrimEnd('\r', '\n');
}
}
+ }
+ catch (Exception ex)
+ {
+ Logging.Logger.LogTrace(ex);
+ }
}).DisposeWith(Disposables);
this.WhenAnyValue(x => x.Label).Subscribe(x => UpdateSuggestions(x)).DisposeWith(Disposables);

MODIFY
WalletWasabi.Gui/Controls/WalletExplorer/WalletInfoViewModel.cs
WalletWasabi.Gui/Controls/WalletExplorer/WalletInfoViewModel.cs
@@ -32,6 +32,8 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
Closing = new CancellationTokenSource().DisposeWith(Disposables);
this.WhenAnyValue(x => x.Password).Subscribe(x =>
+ {
+ try
{
if (x.NotNullAndNotEmpty())
{
@@ -41,6 +43,11 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
Password = x.TrimEnd('\r', '\n');
}
}
+ }
+ catch (Exception ex)
+ {
+ Logging.Logger.LogTrace(ex);
+ }
}).DisposeWith(Disposables);
ShowSensitiveKeysCommand = ReactiveCommand.Create(() =>

MODIFY
WalletWasabi.Gui/Tabs/WalletManager/GenerateWalletViewModel.cs
WalletWasabi.Gui/Tabs/WalletManager/GenerateWalletViewModel.cs
@@ -33,6 +33,8 @@ namespace WalletWasabi.Gui.Tabs.WalletManager
this.WhenAnyValue(x => x.TermsAccepted));
this.WhenAnyValue(x => x.Password).Subscribe(x =>
+ {
+ try
{
if (x.NotNullAndNotEmpty())
{
@@ -46,6 +48,11 @@ namespace WalletWasabi.Gui.Tabs.WalletManager
}
}
}
+ }
+ catch (Exception ex)
+ {
+ Logger.LogTrace(ex);
+ }
});
}

MODIFY
WalletWasabi.Gui/Tabs/WalletManager/LoadWalletViewModel.cs
WalletWasabi.Gui/Tabs/WalletManager/LoadWalletViewModel.cs
@@ -51,6 +51,8 @@ namespace WalletWasabi.Gui.Tabs.WalletManager
.Subscribe(isWalletOpened => SetWalletStates());
this.WhenAnyValue(x => x.Password).Subscribe(x =>
+ {
+ try
{
if (x.NotNullAndNotEmpty())
{
@@ -61,6 +63,11 @@ namespace WalletWasabi.Gui.Tabs.WalletManager
LoadKeyManager(requirePassword: true);
}
}
+ }
+ catch (Exception ex)
+ {
+ Logger.LogTrace(ex);
+ }
});
LoadCommand = ReactiveCommand.Create(LoadWalletAsync, this.WhenAnyValue(x => x.CanLoadWallet));

MODIFY
WalletWasabi.Gui/Tabs/WalletManager/RecoverWalletViewModel.cs
WalletWasabi.Gui/Tabs/WalletManager/RecoverWalletViewModel.cs
@@ -68,6 +68,8 @@ namespace WalletWasabi.Gui.Tabs.WalletManager
});
this.WhenAnyValue(x => x.MnemonicWords).Subscribe(x => UpdateSuggestions(x));
this.WhenAnyValue(x => x.Password).Subscribe(x =>
+ {
+ try
{
if (x.NotNullAndNotEmpty())
{
@@ -77,6 +79,11 @@ namespace WalletWasabi.Gui.Tabs.WalletManager
Password = x.TrimEnd('\r', '\n');
}
}
+ }
+ catch (Exception ex)
+ {
+ Logger.LogTrace(ex);
+ }
});
this.WhenAnyValue(x => x.CaretIndex).Subscribe(_ =>

Do exception handling.