mirror of
https://github.com/dashpay/dash.git
synced 2024-12-27 04:52:59 +01:00
Merge #10390: [wallet] remove minimum total fee option
091a9ae
remove minimum total fee option (Gregory Sanders)
Tree-SHA512: 9be4df3dab0219f30917211408f47b242f7c96dd7663b06ab1cf3cc63027f14956dc680883be6c58673b6452d0f339cf893694e4f21d0d248e70760614d5a344
This commit is contained in:
commit
e4775167cb
@ -513,8 +513,6 @@ void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog)
|
|||||||
|
|
||||||
// Fee
|
// Fee
|
||||||
nPayFee = CWallet::GetMinimumFee(nBytes, nTxConfirmTarget, ::mempool, ::feeEstimator);
|
nPayFee = CWallet::GetMinimumFee(nBytes, nTxConfirmTarget, ::mempool, ::feeEstimator);
|
||||||
if (nPayFee > 0 && coinControl->nMinimumTotalFee > nPayFee)
|
|
||||||
nPayFee = coinControl->nMinimumTotalFee;
|
|
||||||
|
|
||||||
if (nPayAmount > 0)
|
if (nPayAmount > 0)
|
||||||
{
|
{
|
||||||
@ -573,7 +571,7 @@ void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog)
|
|||||||
l5->setText(((nBytes > 0) ? ASYMP_UTF8 : "") + QString::number(nBytes)); // Bytes
|
l5->setText(((nBytes > 0) ? ASYMP_UTF8 : "") + QString::number(nBytes)); // Bytes
|
||||||
l7->setText(fDust ? tr("yes") : tr("no")); // Dust
|
l7->setText(fDust ? tr("yes") : tr("no")); // Dust
|
||||||
l8->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nChange)); // Change
|
l8->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nChange)); // Change
|
||||||
if (nPayFee > 0 && (coinControl->nMinimumTotalFee < nPayFee))
|
if (nPayFee > 0)
|
||||||
{
|
{
|
||||||
l3->setText(ASYMP_UTF8 + l3->text());
|
l3->setText(ASYMP_UTF8 + l3->text());
|
||||||
l4->setText(ASYMP_UTF8 + l4->text());
|
l4->setText(ASYMP_UTF8 + l4->text());
|
||||||
|
@ -861,19 +861,6 @@
|
|||||||
</attribute>
|
</attribute>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<widget class="QRadioButton" name="radioCustomAtLeast">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>If the custom fee is set to 1000 satoshis and the transaction is only 250 bytes, then "per kilobyte" only pays 250 satoshis in fee, while "total at least" pays 1000 satoshis. For transactions bigger than a kilobyte both pay by kilobyte.</string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>total at least</string>
|
|
||||||
</property>
|
|
||||||
<attribute name="buttonGroup">
|
|
||||||
<string notr="true">groupCustomFee</string>
|
|
||||||
</attribute>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="BitcoinAmountField" name="customFee"/>
|
<widget class="BitcoinAmountField" name="customFee"/>
|
||||||
</item>
|
</item>
|
||||||
|
@ -109,7 +109,6 @@ SendCoinsDialog::SendCoinsDialog(const PlatformStyle *_platformStyle, QWidget *p
|
|||||||
ui->groupFee->setId(ui->radioCustomFee, 1);
|
ui->groupFee->setId(ui->radioCustomFee, 1);
|
||||||
ui->groupFee->button((int)std::max(0, std::min(1, settings.value("nFeeRadio").toInt())))->setChecked(true);
|
ui->groupFee->button((int)std::max(0, std::min(1, settings.value("nFeeRadio").toInt())))->setChecked(true);
|
||||||
ui->groupCustomFee->setId(ui->radioCustomPerKilobyte, 0);
|
ui->groupCustomFee->setId(ui->radioCustomPerKilobyte, 0);
|
||||||
ui->groupCustomFee->setId(ui->radioCustomAtLeast, 1);
|
|
||||||
ui->groupCustomFee->button((int)std::max(0, std::min(1, settings.value("nCustomFeeRadio").toInt())))->setChecked(true);
|
ui->groupCustomFee->button((int)std::max(0, std::min(1, settings.value("nCustomFeeRadio").toInt())))->setChecked(true);
|
||||||
ui->customFee->setValue(settings.value("nTransactionFee").toLongLong());
|
ui->customFee->setValue(settings.value("nTransactionFee").toLongLong());
|
||||||
ui->checkBoxMinimumFee->setChecked(settings.value("fPayOnlyMinFee").toBool());
|
ui->checkBoxMinimumFee->setChecked(settings.value("fPayOnlyMinFee").toBool());
|
||||||
@ -606,7 +605,6 @@ void SendCoinsDialog::updateFeeSectionControls()
|
|||||||
ui->checkBoxMinimumFee ->setEnabled(ui->radioCustomFee->isChecked());
|
ui->checkBoxMinimumFee ->setEnabled(ui->radioCustomFee->isChecked());
|
||||||
ui->labelMinFeeWarning ->setEnabled(ui->radioCustomFee->isChecked());
|
ui->labelMinFeeWarning ->setEnabled(ui->radioCustomFee->isChecked());
|
||||||
ui->radioCustomPerKilobyte ->setEnabled(ui->radioCustomFee->isChecked() && !ui->checkBoxMinimumFee->isChecked());
|
ui->radioCustomPerKilobyte ->setEnabled(ui->radioCustomFee->isChecked() && !ui->checkBoxMinimumFee->isChecked());
|
||||||
ui->radioCustomAtLeast ->setEnabled(ui->radioCustomFee->isChecked() && !ui->checkBoxMinimumFee->isChecked() && CoinControlDialog::coinControl->HasSelected());
|
|
||||||
ui->customFee ->setEnabled(ui->radioCustomFee->isChecked() && !ui->checkBoxMinimumFee->isChecked());
|
ui->customFee ->setEnabled(ui->radioCustomFee->isChecked() && !ui->checkBoxMinimumFee->isChecked());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -617,19 +615,12 @@ void SendCoinsDialog::updateGlobalFeeVariables()
|
|||||||
int nConfirmTarget = ui->sliderSmartFee->maximum() - ui->sliderSmartFee->value() + 2;
|
int nConfirmTarget = ui->sliderSmartFee->maximum() - ui->sliderSmartFee->value() + 2;
|
||||||
payTxFee = CFeeRate(0);
|
payTxFee = CFeeRate(0);
|
||||||
|
|
||||||
// set nMinimumTotalFee to 0 to not accidentally pay a custom fee
|
|
||||||
CoinControlDialog::coinControl->nMinimumTotalFee = 0;
|
|
||||||
|
|
||||||
// show the estimated required time for confirmation
|
// show the estimated required time for confirmation
|
||||||
ui->confirmationTargetLabel->setText(GUIUtil::formatDurationStr(nConfirmTarget * Params().GetConsensus().nPowTargetSpacing) + " / " + tr("%n block(s)", "", nConfirmTarget));
|
ui->confirmationTargetLabel->setText(GUIUtil::formatDurationStr(nConfirmTarget * Params().GetConsensus().nPowTargetSpacing) + " / " + tr("%n block(s)", "", nConfirmTarget));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
payTxFee = CFeeRate(ui->customFee->value());
|
payTxFee = CFeeRate(ui->customFee->value());
|
||||||
|
|
||||||
// if user has selected to set a minimum absolute fee, pass the value to coincontrol
|
|
||||||
// set nMinimumTotalFee to 0 in case of user has selected that the fee is per KB
|
|
||||||
CoinControlDialog::coinControl->nMinimumTotalFee = ui->radioCustomAtLeast->isChecked() ? ui->customFee->value() : 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -828,21 +819,6 @@ void SendCoinsDialog::coinControlUpdateLabels()
|
|||||||
if (!model || !model->getOptionsModel())
|
if (!model || !model->getOptionsModel())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (model->getOptionsModel()->getCoinControlFeatures())
|
|
||||||
{
|
|
||||||
// enable minimum absolute fee UI controls
|
|
||||||
ui->radioCustomAtLeast->setVisible(true);
|
|
||||||
|
|
||||||
// only enable the feature if inputs are selected
|
|
||||||
ui->radioCustomAtLeast->setEnabled(ui->radioCustomFee->isChecked() && !ui->checkBoxMinimumFee->isChecked() &&CoinControlDialog::coinControl->HasSelected());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// in case coin control is disabled (=default), hide minimum absolute fee UI controls
|
|
||||||
ui->radioCustomAtLeast->setVisible(false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// set pay amounts
|
// set pay amounts
|
||||||
CoinControlDialog::payAmounts.clear();
|
CoinControlDialog::payAmounts.clear();
|
||||||
CoinControlDialog::fSubtractFeeFromAmount = false;
|
CoinControlDialog::fSubtractFeeFromAmount = false;
|
||||||
|
@ -18,8 +18,6 @@ public:
|
|||||||
bool fAllowOtherInputs;
|
bool fAllowOtherInputs;
|
||||||
//! Includes watch only addresses which match the ISMINE_WATCH_SOLVABLE criteria
|
//! Includes watch only addresses which match the ISMINE_WATCH_SOLVABLE criteria
|
||||||
bool fAllowWatchOnly;
|
bool fAllowWatchOnly;
|
||||||
//! Minimum absolute fee (not per kilobyte)
|
|
||||||
CAmount nMinimumTotalFee;
|
|
||||||
//! Override estimated feerate
|
//! Override estimated feerate
|
||||||
bool fOverrideFeeRate;
|
bool fOverrideFeeRate;
|
||||||
//! Feerate to use if overrideFeeRate is true
|
//! Feerate to use if overrideFeeRate is true
|
||||||
@ -40,7 +38,6 @@ public:
|
|||||||
fAllowOtherInputs = false;
|
fAllowOtherInputs = false;
|
||||||
fAllowWatchOnly = false;
|
fAllowWatchOnly = false;
|
||||||
setSelected.clear();
|
setSelected.clear();
|
||||||
nMinimumTotalFee = 0;
|
|
||||||
nFeeRate = CFeeRate(0);
|
nFeeRate = CFeeRate(0);
|
||||||
fOverrideFeeRate = false;
|
fOverrideFeeRate = false;
|
||||||
nConfirmTarget = 0;
|
nConfirmTarget = 0;
|
||||||
|
@ -2635,9 +2635,6 @@ bool CWallet::CreateTransaction(const std::vector<CRecipient>& vecSend, CWalletT
|
|||||||
currentConfirmationTarget = coinControl->nConfirmTarget;
|
currentConfirmationTarget = coinControl->nConfirmTarget;
|
||||||
|
|
||||||
CAmount nFeeNeeded = GetMinimumFee(nBytes, currentConfirmationTarget, ::mempool, ::feeEstimator);
|
CAmount nFeeNeeded = GetMinimumFee(nBytes, currentConfirmationTarget, ::mempool, ::feeEstimator);
|
||||||
if (coinControl && nFeeNeeded > 0 && coinControl->nMinimumTotalFee > nFeeNeeded) {
|
|
||||||
nFeeNeeded = coinControl->nMinimumTotalFee;
|
|
||||||
}
|
|
||||||
if (coinControl && coinControl->fOverrideFeeRate)
|
if (coinControl && coinControl->fOverrideFeeRate)
|
||||||
nFeeNeeded = coinControl->nFeeRate.GetFee(nBytes);
|
nFeeNeeded = coinControl->nFeeRate.GetFee(nBytes);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user