Generate a wallet and load the wallet using the Wallet Explorer.
The wallet will be loaded without the password being tested.
This is something we need to fix.
I spent some time working on this. However, I need to know this to move forward:
https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Gui/Tabs/WalletManager/LoadWallets/LoadWalletType.cs - What purpose do serve these two enum options pls? What is the meaning behind them?
Also how is this class registered https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Gui/Controls/WalletExplorer/WalletExplorerViewModel.cs in xaml?
And what <shell:ShellView DataContext="{Binding Shell}" /> this does? I can't seem to find any documentation on Avalonia webpage.
@kiminuo what were your ideas on how to solve this PR?
https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Gui/Tabs/WalletManager/LoadWallets/LoadWalletType.cs - What purpose do serve these two enum options pls? What is the meaning behind them?
As far as I remember this basically simple means... does the wallet have a password or not... its an enum because at some point I think it could distinguish between a hardware / desktop wallet. now its probably confusing.
- Also how is this class registered https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Gui/Controls/WalletExplorer/WalletExplorerViewModel.cs in xaml?
this is a component that is automatically exported for the Shell to use... You can not pass things to its constructor unfortunately.
Those lines export it automatically using a technology called MEF.
This line, docks the control inside the dock.
- And what
<shell:ShellView DataContext="{Binding Shell}" />this does? I can't seem to find any documentation on Avalonia webpage.
Avalonia is the UI framework.
AvalonStudio.Shell is a shell we are using that provides various things like, commands, menus, and docking. Its the basis of
https://github.com/vitalElement/AvalonStudio which is a cross platform IDE, and its what wasabi was originally built on top of because it provided a lot of functionality out the box so we didnt have to start from nothing.
That Line <shell:ShellView /> simply puts a control in wasabis ui that provides the whole layout of the shell... docking area, etc
Its defined here... https://github.com/VitalElement/AvalonStudio.Shell/blob/master/src/AvalonStudio.Shell/ShellView.paml
if you remove it, it removes the core part of the wasabi ui.
This is how we load from WalletExplorer:
https://github.com/molnard/WalletWasabi/blob/d9ef511de936c649b275844588f39eff8a593aa1/WalletWasabi.Gui/Controls/WalletExplorer/ClosedWalletViewModel.cs#L25
This is how we load from LoadWallet:
This is what blocks and triggers the load of the wallet.
https://github.com/molnard/WalletWasabi/blob/d9ef511de936c649b275844588f39eff8a593aa1/WalletWasabi.Gui/Tabs/WalletManager/LoadWallets/LoadWalletViewModel.cs#L184
So I would implement the same logic to WalletExplorer. For example, if the password is not verified then WalletManagerViewModel.SelectTestPassword(walletName);.
Thank you for the explanation, guys. I have posted a PR that seems to do what is necessary. Please have a look. Feedback is appreciated.