New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Backport 12610 + PrivateSend multiwallet support. #3604
Conversation
Haven't looked a lot at the whole picture or reviewed the other changes but here are some things i would apply to make things running again https://github.com/xdustinface/dash/commits/backport-12610 Need to go now but will give this a better review later. |
Branch looks good. Cherry-picked |
One more here to fix the empty space in the toolbar, place the selector properly between the last tab button and the logo, and remove the "Wallet" label as i would say thats not really needed there? 400070b Result looks like There are still some issues.. can you check if thats something you will fix with backports? If not, i can fix it if you want me to.
|
Cherry-picked commit. Looks good
wallets loaded dynamicly in the GUI is done in bitcoin#13097
Compiling 0.17 of bitcoin it appears they have it too. Probably makes sense if you are doing commands that shouldn't be touching any wallet you set it as none and then it wont touch a wallet |
ok cool! will you add it to this PR or separate one?
Hm, still weird imo and i would choose "oh yeah, please remove it!" in a poll, but ok 😅 |
It'll be done in a separate PR. Also, Udjin, after you review, I'm going to squash PrivateSend changes so yeah. DO NOT MERGE |
d95c23c
to
c123399
Compare
Okay, I changed my mind and squashed those commits before Udjin reviews. |
I think more internal changes/refactoring is needed to make PS really work with the multiwallet setup, pls see https://github.com/UdjinM6/dash/commits/pr3604_2 (this branch seems to be working but might need more fixes, testing it atm). |
Cherry-picked. They look good and generally make sense |
c123399
to
de1a4cc
Compare
What about this e46c2f0 on top of udjin's last suggestions? (The locks are probably not really needed but i guess they also don't hurt there?) |
e46c2f0 makes sense and looks good too imo 👍 |
All looks good, cherry-picked |
Should I squash those PS commits into aadb111 ? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK
(re squashing: it's fine to merge as is imo)
Needs rebase |
779c5f9 Qt: hide RPCConsole wallet selector when no wallets are present (Jonas Schnelli) dc6f150 Qt: show wallet name in request dlg in case of multiwallet (Jonas Schnelli) 4826ca4 Qt: show wallet name in send confirmation dlg in case of multiwallet (Jonas Schnelli) cfa4133 GUI: RPCConsole: Log wallet changes (Luke Dashjr) b6d04fc Qt: Get wallet name from WalletModel rather than passing it around (Luke Dashjr) 12d8d26 Qt: When multiple wallets are used, include in notifications the name (Jonas Schnelli) d1ec34a Qt: QComboBox::setVisible doesn't work in toolbars, so defer adding it at all until needed (Luke Dashjr) d49cc70 Qt: Add wallet selector to debug console (Jonas Schnelli) d558f44 Bugfix: RPC: Add missing UnregisterHTTPHandler for /wallet/ (Luke Dashjr) 85d5319 Qt: Ensure UI updates only come from the currently selected walletView (Luke Dashjr) e449f9a Qt: Add a combobox to toolbar to select from multiple wallets (Luke Dashjr) 3dba3c3 Qt: Load all wallets into WalletModels (Luke Dashjr) Pull request description: This is an overhaul of bitcoin#11383 (plus some additions). It avoids unnecessary coupling of httpserver/jsonrpc and the wallet as well as it avoids pointer pure passing (and pointer deletion) of `CWallet` (plus other minor design changes). Additionally it adds the wallet name to the sendconfirmation and request dialog (in case multiwallet is active) Tree-SHA512: 3d06e18badbc5d1821e488bf1dae463bb0be544cf11b2b618e025812bfdd13c5f39604bb93b4c705313930e7dc4e66f4848b9469ba14871bade58e7a027246a1
Signed-off-by: pasta <pasta@dashboost.org>
With the introduction of better mutliwallet support, privatesend only worked for your first wallet. This commit implements multiwallet for privatesend such that the wallet you start the mixing from is the wallet mixing will occur in. Signed-off-by: pasta <pasta@dashboost.org>
Signed-off-by: pasta <pasta@dashboost.org>
Just verify that it's of a proper type instead
- Makes it singleton to make sure we always only have one instance of it - Protects its members by making them private and adding set/getters - Makes it thread safe
b086f4e
to
8fedc08
Compare
Rebased, QT unit tests now failing |
0a6b5c5 should fix it |
I can't verify right now as i don't have the issue on here on macOS but this one should fix it ba17d30 |
Showing it instantly may lead to the selector showing up in an unexpected place because it only gets added to a proper layout when a second wallet gets added.
appears to fix the issue and works. Cherry-picked and pushed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK
ACK, seems to work and look as expected now. |
- BitcoinGUI::updateWalletStatus() - Make WalletFrame::currentWalletView public
- Add BitcoinGUI::updateWalletStatus() - Add WalletModel::getWalletModel() - Make WalletFrame::currentWalletView public
Currently when trying to mix, it fails at
assert(mixingWallet != nullptr);
inGetMixingWallet()
with below stack trace. However, I don't really understand how that happens... Because, mixingWallet and fPrivateSendRunning should be changed in tandem, when fPrivateSendRunning gets set to false mixingWallet gets set to nullPtr and anytime fPrivateSendRunning gets set to true mixingWallet gets set to a valid wallet pointer. Yet somehow, GetMixingWallet() is getting called inDoAutomaticDenominating
when mixingWallet == nullptr yet that is protected behindif (!fEnablePrivateSend || !fPrivateSendRunning) return false;
I'm done trying to figure it out for today. So if you have any thoughts (on either the backport or the wip privatesend stuff) let me know.