Merge pull request #379 from leofidus/1.7-dust
adjust code to reflect higher dust limit of Dogecoin
This commit is contained in:
commit
d01ba26475
|
@ -436,7 +436,7 @@ void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog)
|
||||||
|
|
||||||
if (amount > 0)
|
if (amount > 0)
|
||||||
{
|
{
|
||||||
if (amount < CENT)
|
if (amount < COIN)
|
||||||
fLowOutput = true;
|
fLowOutput = true;
|
||||||
|
|
||||||
CTxOut txout(amount, (CScript)vector<unsigned char>(24, 0));
|
CTxOut txout(amount, (CScript)vector<unsigned char>(24, 0));
|
||||||
|
@ -525,7 +525,7 @@ void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog)
|
||||||
nChange = nAmount - nPayFee - nPayAmount;
|
nChange = nAmount - nPayFee - nPayAmount;
|
||||||
|
|
||||||
// if sub-cent change is required, the fee must be raised to at least CTransaction::nMinTxFee
|
// if sub-cent change is required, the fee must be raised to at least CTransaction::nMinTxFee
|
||||||
if (nPayFee < CTransaction::nMinTxFee && nChange > 0 && nChange < CENT)
|
if (nPayFee < CTransaction::nMinTxFee && nChange > 0 && nChange < COIN)
|
||||||
{
|
{
|
||||||
if (nChange < CTransaction::nMinTxFee) // change < 0.0001 => simply move all change to fees
|
if (nChange < CTransaction::nMinTxFee) // change < 0.0001 => simply move all change to fees
|
||||||
{
|
{
|
||||||
|
@ -540,7 +540,7 @@ void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Never create dust outputs; if we would, just add the dust to the fee.
|
// Never create dust outputs; if we would, just add the dust to the fee.
|
||||||
if (nChange > 0 && nChange < CENT)
|
if (nChange > 0 && nChange < COIN)
|
||||||
{
|
{
|
||||||
CTxOut txout(nChange, (CScript)vector<unsigned char>(24, 0));
|
CTxOut txout(nChange, (CScript)vector<unsigned char>(24, 0));
|
||||||
if (txout.IsDust(CTransaction::nMinRelayTxFee))
|
if (txout.IsDust(CTransaction::nMinRelayTxFee))
|
||||||
|
@ -594,7 +594,7 @@ void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog)
|
||||||
l5->setStyleSheet((nBytes >= 1000) ? "color:red;" : ""); // Bytes >= 1000
|
l5->setStyleSheet((nBytes >= 1000) ? "color:red;" : ""); // Bytes >= 1000
|
||||||
l6->setStyleSheet((dPriority > 0 && !AllowFree(dPriority)) ? "color:red;" : ""); // Priority < "medium"
|
l6->setStyleSheet((dPriority > 0 && !AllowFree(dPriority)) ? "color:red;" : ""); // Priority < "medium"
|
||||||
l7->setStyleSheet((fLowOutput) ? "color:red;" : ""); // Low Output = "yes"
|
l7->setStyleSheet((fLowOutput) ? "color:red;" : ""); // Low Output = "yes"
|
||||||
l8->setStyleSheet((nChange > 0 && nChange < CENT) ? "color:red;" : ""); // Change < 0.01DOGE
|
l8->setStyleSheet((nChange > 0 && nChange < COIN) ? "color:red;" : ""); // Change < 0.01DOGE
|
||||||
|
|
||||||
// tool tips
|
// tool tips
|
||||||
QString toolTip1 = tr("This label turns red, if the transaction size is greater than 1000 bytes.") + "<br /><br />";
|
QString toolTip1 = tr("This label turns red, if the transaction size is greater than 1000 bytes.") + "<br /><br />";
|
||||||
|
@ -605,11 +605,11 @@ void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog)
|
||||||
toolTip2 += tr("This label turns red, if the priority is smaller than \"medium\".") + "<br /><br />";
|
toolTip2 += tr("This label turns red, if the priority is smaller than \"medium\".") + "<br /><br />";
|
||||||
toolTip2 += tr("This means a fee of at least %1 per kB is required.").arg(BitcoinUnits::formatWithUnit(nDisplayUnit, CTransaction::nMinTxFee));
|
toolTip2 += tr("This means a fee of at least %1 per kB is required.").arg(BitcoinUnits::formatWithUnit(nDisplayUnit, CTransaction::nMinTxFee));
|
||||||
|
|
||||||
QString toolTip3 = tr("This label turns red, if any recipient receives an amount smaller than %1.").arg(BitcoinUnits::formatWithUnit(nDisplayUnit, CENT)) + "<br /><br />";
|
QString toolTip3 = tr("This label turns red, if any recipient receives an amount smaller than %1.").arg(BitcoinUnits::formatWithUnit(nDisplayUnit, COIN)) + "<br /><br />";
|
||||||
toolTip3 += tr("This means a fee of at least %1 is required.").arg(BitcoinUnits::formatWithUnit(nDisplayUnit, CTransaction::nMinTxFee)) + "<br /><br />";
|
toolTip3 += tr("This means a fee of at least %1 is required.").arg(BitcoinUnits::formatWithUnit(nDisplayUnit, CTransaction::nMinTxFee)) + "<br /><br />";
|
||||||
toolTip3 += tr("Amounts below 0.546 times the minimum relay fee are shown as dust.");
|
toolTip3 += tr("Amounts below 0.546 times the minimum relay fee are shown as dust.");
|
||||||
|
|
||||||
QString toolTip4 = tr("This label turns red, if the change is smaller than %1.").arg(BitcoinUnits::formatWithUnit(nDisplayUnit, CENT)) + "<br /><br />";
|
QString toolTip4 = tr("This label turns red, if the change is smaller than %1.").arg(BitcoinUnits::formatWithUnit(nDisplayUnit, COIN)) + "<br /><br />";
|
||||||
toolTip4 += tr("This means a fee of at least %1 is required.").arg(BitcoinUnits::formatWithUnit(nDisplayUnit, CTransaction::nMinTxFee));
|
toolTip4 += tr("This means a fee of at least %1 is required.").arg(BitcoinUnits::formatWithUnit(nDisplayUnit, CTransaction::nMinTxFee));
|
||||||
|
|
||||||
l5->setToolTip(toolTip1);
|
l5->setToolTip(toolTip1);
|
||||||
|
|
|
@ -1114,7 +1114,7 @@ bool CWallet::SelectCoinsMinConf(int64_t nTargetValue, int nConfMine, int nConfT
|
||||||
nValueRet += coin.first;
|
nValueRet += coin.first;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (n < nTargetValue + CENT)
|
else if (n < nTargetValue + COIN)
|
||||||
{
|
{
|
||||||
vValue.push_back(coin);
|
vValue.push_back(coin);
|
||||||
nTotalLower += n;
|
nTotalLower += n;
|
||||||
|
@ -1150,13 +1150,13 @@ bool CWallet::SelectCoinsMinConf(int64_t nTargetValue, int nConfMine, int nConfT
|
||||||
int64_t nBest;
|
int64_t nBest;
|
||||||
|
|
||||||
ApproximateBestSubset(vValue, nTotalLower, nTargetValue, vfBest, nBest, 1000);
|
ApproximateBestSubset(vValue, nTotalLower, nTargetValue, vfBest, nBest, 1000);
|
||||||
if (nBest != nTargetValue && nTotalLower >= nTargetValue + CENT)
|
if (nBest != nTargetValue && nTotalLower >= nTargetValue + COIN)
|
||||||
ApproximateBestSubset(vValue, nTotalLower, nTargetValue + CENT, vfBest, nBest, 1000);
|
ApproximateBestSubset(vValue, nTotalLower, nTargetValue + COIN, vfBest, nBest, 1000);
|
||||||
|
|
||||||
// If we have a bigger coin and (either the stochastic approximation didn't find a good solution,
|
// If we have a bigger coin and (either the stochastic approximation didn't find a good solution,
|
||||||
// or the next bigger coin is closer), return the bigger coin
|
// or the next bigger coin is closer), return the bigger coin
|
||||||
if (coinLowestLarger.second.first &&
|
if (coinLowestLarger.second.first &&
|
||||||
((nBest != nTargetValue && nBest < nTargetValue + CENT) || coinLowestLarger.first <= nBest))
|
((nBest != nTargetValue && nBest < nTargetValue + COIN) || coinLowestLarger.first <= nBest))
|
||||||
{
|
{
|
||||||
setCoinsRet.insert(coinLowestLarger.second);
|
setCoinsRet.insert(coinLowestLarger.second);
|
||||||
nValueRet += coinLowestLarger.first;
|
nValueRet += coinLowestLarger.first;
|
||||||
|
@ -1269,8 +1269,8 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64_t> >& vecSend,
|
||||||
// The following if statement should be removed once enough miners
|
// The following if statement should be removed once enough miners
|
||||||
// have upgraded to the 0.9 GetMinFee() rules. Until then, this avoids
|
// have upgraded to the 0.9 GetMinFee() rules. Until then, this avoids
|
||||||
// creating free transactions that have change outputs less than
|
// creating free transactions that have change outputs less than
|
||||||
// CENT dogecoins.
|
// COIN dogecoins.
|
||||||
if (nFeeRet < CTransaction::nMinTxFee && nChange > 0 && nChange < CENT)
|
if (nFeeRet < CTransaction::nMinTxFee && nChange > 0 && nChange < COIN)
|
||||||
{
|
{
|
||||||
int64_t nMoveToFee = min(nChange, CTransaction::nMinTxFee - nFeeRet);
|
int64_t nMoveToFee = min(nChange, CTransaction::nMinTxFee - nFeeRet);
|
||||||
nChange -= nMoveToFee;
|
nChange -= nMoveToFee;
|
||||||
|
|
Loading…
Reference in a new issue