Skip to content
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

fix: auto backup issue with descriptor wallets for CJ #6090

Merged
merged 1 commit into from
Jul 2, 2024

Conversation

knst
Copy link
Collaborator

@knst knst commented Jul 1, 2024

Issue being fixed or feature implemented

Qt CoinJoin session has problems (#5579 (review)):

  • Autobackup problems
  • False keypool depletion reporting

https://github.com/dashpay/dash-issues/issues/59

What was done?

Disables check for "remaining keys left" and "auto-backups" for non-legacy wallet.

How Has This Been Tested?

Run unit/functional test
Try to run CJ mixing for descriptor wallet.

Breaking Changes

N/A

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have made corresponding changes to the documentation
  • I have assigned this pull request to a milestone

@knst knst added this to the 21 milestone Jul 1, 2024
@knst knst requested a review from kwvg July 1, 2024 16:30
@knst knst force-pushed the descriptors-autobackup-cj branch from a391ce8 to 7198f97 Compare July 1, 2024 16:56
UdjinM6
UdjinM6 previously approved these changes Jul 1, 2024
Copy link

@UdjinM6 UdjinM6 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK

@knst
Copy link
Collaborator Author

knst commented Jul 1, 2024

The first version of PR fixed GUI, but CoinJoin didn't actually started. Added missing changes to coinjoin/client.cpp, itshould work now.

Copy link

@UdjinM6 UdjinM6 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK

Copy link
Collaborator

@kwvg kwvg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

w.r.t. bebea4b

CoinJoin seems to work as expected when the wallet is completely unlocked (i.e. with the red unlock icon on the bottom right)! 🎉

coinjoin_full_unlock.mp4

There seems to be issues with CoinJoin if the wallet is partially unlocked (i.e. for CoinJoin only, represented with the yellow unlock icon on the bottom right), specifically.

  • CoinJoin doesn't seem to be occurring (no new transactions created, no progress)
  • The client hangs and freezes, responding to mouse input with multi-second delay, no error or debug log entry to accompany it.
coinjoin_partial_unlock.mp4

There also seems to be a UI bug that prevents the CoinJoin UI from being seen (requiring me to toggle "Enable advanced interface" to view it) though it's very unlikely this bug is related to descriptor wallets.

Copy link
Member

@PastaPastaPasta PastaPastaPasta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK bebea4b

@PastaPastaPasta PastaPastaPasta merged commit 6e5d3f1 into dashpay:develop Jul 2, 2024
10 checks passed
@knst knst deleted the descriptors-autobackup-cj branch July 2, 2024 13:58
PastaPastaPasta added a commit that referenced this pull request Jul 9, 2024
c944908 refactor: simplify implementation of function CWallet::IsLocked (Konstantin Akimov)
685cf34 fix: unlock descriptor wallet for mixing-only (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  As [noticed by kwvg](#6090 (review)), mixing doesn't work with descriptor wallets if do "unlock only for mixing". This PR is aiming to fix this issue.
  dashpay/dash-issues#59

  ## What was done?
  Removed default argument "bool mixing = false" from WalletStorage interface,
  Refactored a logic of CWallet::IsLocked to make it shorter, clearer and unified with bitcoin.

  ## How Has This Been Tested?
  A. Run Dash-Qt with descriptor wallet, run mixing, enter passphrase.
  The wallet is partially unlocked (for mixing only) - possible to see yellow lock in status. Mixing happens.
  B. Open "send transaction dialog", try to send a transaction: the app asks password to unlock wallet as expected.

  Though, I am not sure how exactly to test that **all** rpc are indeed locked when descriptor wallet is unlocked for mixing only.

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  UdjinM6:
    LGTM, ~utACK~ light ACK c944908
  kwvg:
    ACK c944908
  PastaPastaPasta:
    utACK c944908

Tree-SHA512: 236c895dd75042449282b051e90781ace1c941a3b2c34bb29ddadb6e62ba9c8d57c2a677ed98847630ff7fb6df4e14d2b59f3473d8f299ec104afeeb8103930c
PastaPastaPasta added a commit to PastaPastaPasta/dash that referenced this pull request Jul 15, 2024
…lets

c944908 refactor: simplify implementation of function CWallet::IsLocked (Konstantin Akimov)
685cf34 fix: unlock descriptor wallet for mixing-only (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  As [noticed by kwvg](dashpay#6090 (review)), mixing doesn't work with descriptor wallets if do "unlock only for mixing". This PR is aiming to fix this issue.
  dashpay/dash-issues#59

  ## What was done?
  Removed default argument "bool mixing = false" from WalletStorage interface,
  Refactored a logic of CWallet::IsLocked to make it shorter, clearer and unified with bitcoin.

  ## How Has This Been Tested?
  A. Run Dash-Qt with descriptor wallet, run mixing, enter passphrase.
  The wallet is partially unlocked (for mixing only) - possible to see yellow lock in status. Mixing happens.
  B. Open "send transaction dialog", try to send a transaction: the app asks password to unlock wallet as expected.

  Though, I am not sure how exactly to test that **all** rpc are indeed locked when descriptor wallet is unlocked for mixing only.

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  UdjinM6:
    LGTM, ~utACK~ light ACK c944908
  kwvg:
    ACK c944908
  PastaPastaPasta:
    utACK c944908

Tree-SHA512: 236c895dd75042449282b051e90781ace1c941a3b2c34bb29ddadb6e62ba9c8d57c2a677ed98847630ff7fb6df4e14d2b59f3473d8f299ec104afeeb8103930c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants