mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 03:52:49 +01:00
Merge #6090: fix: auto backup issue with descriptor wallets for CJ
bebea4b9b6
fix: auto backup issue with descriptor wallets for CJ (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented Qt CoinJoin session has problems (https://github.com/dashpay/dash/pull/5579#pullrequestreview-1912946808): - 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: - [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: PastaPastaPasta: utACKbebea4b9b6
Tree-SHA512: 610551001d054c447ddca9451ac6d94f3d063ecf3ccfab437d99324efc5f99ff86e59d80a36f4ff4983d3c8107aa19292c021cb3210fcf51e79919387169c414
This commit is contained in:
commit
6e5d3f1d1f
@ -715,6 +715,9 @@ bool CCoinJoinClientManager::CheckAutomaticBackup()
|
|||||||
{
|
{
|
||||||
if (!CCoinJoinClientOptions::IsEnabled() || !IsMixing()) return false;
|
if (!CCoinJoinClientOptions::IsEnabled() || !IsMixing()) return false;
|
||||||
|
|
||||||
|
// We don't need auto-backups for descriptor wallets
|
||||||
|
if (!m_wallet.IsLegacy()) return true;
|
||||||
|
|
||||||
switch (nWalletBackups) {
|
switch (nWalletBackups) {
|
||||||
case 0:
|
case 0:
|
||||||
strAutoDenomResult = _("Automatic backups disabled") + Untranslated(", ") + _("no mixing available.");
|
strAutoDenomResult = _("Automatic backups disabled") + Untranslated(", ") + _("no mixing available.");
|
||||||
|
@ -539,6 +539,10 @@ void OverviewPage::coinJoinStatus(bool fForce)
|
|||||||
if(walletModel->getKeysLeftSinceAutoBackup() < COINJOIN_KEYS_THRESHOLD_WARNING) {
|
if(walletModel->getKeysLeftSinceAutoBackup() < COINJOIN_KEYS_THRESHOLD_WARNING) {
|
||||||
strKeysLeftText = "<span style='" + GUIUtil::getThemedStyleQString(GUIUtil::ThemedStyle::TS_ERROR) + "'>" + strKeysLeftText + "</span>";
|
strKeysLeftText = "<span style='" + GUIUtil::getThemedStyleQString(GUIUtil::ThemedStyle::TS_ERROR) + "'>" + strKeysLeftText + "</span>";
|
||||||
}
|
}
|
||||||
|
if (!walletModel->wallet().isLegacy()) {
|
||||||
|
// we don't need in auto-back for case of Descriptor wallets
|
||||||
|
strKeysLeftText = "";
|
||||||
|
}
|
||||||
ui->labelCoinJoinEnabled->setToolTip(strKeysLeftText);
|
ui->labelCoinJoinEnabled->setToolTip(strKeysLeftText);
|
||||||
|
|
||||||
QString strCoinJoinName = QString::fromStdString(gCoinJoinName);
|
QString strCoinJoinName = QString::fromStdString(gCoinJoinName);
|
||||||
@ -553,7 +557,7 @@ void OverviewPage::coinJoinStatus(bool fForce)
|
|||||||
|
|
||||||
QString strEnabled = tr("Disabled");
|
QString strEnabled = tr("Disabled");
|
||||||
// Show how many keys left in advanced PS UI mode only
|
// Show how many keys left in advanced PS UI mode only
|
||||||
if (fShowAdvancedCJUI) strEnabled += ", " + strKeysLeftText;
|
if (fShowAdvancedCJUI && !strKeysLeftText.isEmpty()) strEnabled += ", " + strKeysLeftText;
|
||||||
ui->labelCoinJoinEnabled->setText(strEnabled);
|
ui->labelCoinJoinEnabled->setText(strEnabled);
|
||||||
|
|
||||||
// If mixing isn't active always show the lower number of txes because there are
|
// If mixing isn't active always show the lower number of txes because there are
|
||||||
@ -567,7 +571,7 @@ void OverviewPage::coinJoinStatus(bool fForce)
|
|||||||
|
|
||||||
// Warn user that wallet is running out of keys
|
// Warn user that wallet is running out of keys
|
||||||
// NOTE: we do NOT warn user and do NOT create autobackups if mixing is not running
|
// NOTE: we do NOT warn user and do NOT create autobackups if mixing is not running
|
||||||
if (nWalletBackups > 0 && walletModel->getKeysLeftSinceAutoBackup() < COINJOIN_KEYS_THRESHOLD_WARNING) {
|
if (walletModel->wallet().isLegacy() && nWalletBackups > 0 && walletModel->getKeysLeftSinceAutoBackup() < COINJOIN_KEYS_THRESHOLD_WARNING) {
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
if(settings.value("fLowKeysWarning").toBool()) {
|
if(settings.value("fLowKeysWarning").toBool()) {
|
||||||
QString strWarn = tr("Very low number of keys left since last automatic backup!") + "<br><br>" +
|
QString strWarn = tr("Very low number of keys left since last automatic backup!") + "<br><br>" +
|
||||||
@ -607,23 +611,25 @@ void OverviewPage::coinJoinStatus(bool fForce)
|
|||||||
|
|
||||||
QString strEnabled = walletModel->coinJoin()->isMixing() ? tr("Enabled") : tr("Disabled");
|
QString strEnabled = walletModel->coinJoin()->isMixing() ? tr("Enabled") : tr("Disabled");
|
||||||
// Show how many keys left in advanced PS UI mode only
|
// Show how many keys left in advanced PS UI mode only
|
||||||
if(fShowAdvancedCJUI) strEnabled += ", " + strKeysLeftText;
|
if(fShowAdvancedCJUI && !strKeysLeftText.isEmpty()) strEnabled += ", " + strKeysLeftText;
|
||||||
ui->labelCoinJoinEnabled->setText(strEnabled);
|
ui->labelCoinJoinEnabled->setText(strEnabled);
|
||||||
|
|
||||||
if(nWalletBackups == -1) {
|
if (walletModel->wallet().isLegacy()) {
|
||||||
// Automatic backup failed, nothing else we can do until user fixes the issue manually
|
if(nWalletBackups == -1) {
|
||||||
DisableCoinJoinCompletely();
|
// Automatic backup failed, nothing else we can do until user fixes the issue manually
|
||||||
|
DisableCoinJoinCompletely();
|
||||||
|
|
||||||
QString strError = tr("ERROR! Failed to create automatic backup") + ", " +
|
QString strError = tr("ERROR! Failed to create automatic backup") + ", " +
|
||||||
tr("see debug.log for details.") + "<br><br>" +
|
tr("see debug.log for details.") + "<br><br>" +
|
||||||
tr("Mixing is disabled, please close your wallet and fix the issue!");
|
tr("Mixing is disabled, please close your wallet and fix the issue!");
|
||||||
ui->labelCoinJoinEnabled->setToolTip(strError);
|
ui->labelCoinJoinEnabled->setToolTip(strError);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
} else if(nWalletBackups == -2) {
|
} else if(nWalletBackups == -2) {
|
||||||
// We were able to create automatic backup but keypool was not replenished because wallet is locked.
|
// We were able to create automatic backup but keypool was not replenished because wallet is locked.
|
||||||
QString strWarning = tr("WARNING! Failed to replenish keypool, please unlock your wallet to do so.");
|
QString strWarning = tr("WARNING! Failed to replenish keypool, please unlock your wallet to do so.");
|
||||||
ui->labelCoinJoinEnabled->setToolTip(strWarning);
|
ui->labelCoinJoinEnabled->setToolTip(strWarning);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// check coinjoin status and unlock if needed
|
// check coinjoin status and unlock if needed
|
||||||
|
Loading…
Reference in New Issue
Block a user