prevent unnecessary rounding

This commit is contained in:
Aditya Kulkarni
2018-10-26 10:34:56 -07:00
parent 0e8d8a83e0
commit 7f6c0db7d7
3 changed files with 13 additions and 10 deletions

View File

@@ -155,21 +155,15 @@ QList<double> Turnstile::splitAmount(double amount, int parts) {
// Add the Tx fees
sumofparts += amounts.size() * Utils::getMinerFee();
qDebug() << QString::number(sumofparts, 'f', 8) << QString::number(amount, 'f', 8);
Q_ASSERT(QString::number(sumofparts, 'f', 8) == QString::number(amount, 'f', 8));
return amounts;
}
void Turnstile::fillAmounts(QList<double>& amounts, double amount, int count) {
if (count == 1 || amount < 0.01) {
// Split the chaff.
// Chaff is all amounts lesser than 0.0001 ZEC. The chaff will be added to the
// dev fee, and is done so to protect privacy.
// Get the rounded value to 4 decimal places (approx $0.01)
double actual = std::floor(amount * 10000) / 10000;
// Also account for the fees needed to send all these transactions
actual = actual - (Utils::getMinerFee() * (amounts.size() + 1));
auto actual = amount - (Utils::getMinerFee() * (amounts.size() + 1));
amounts.push_back(actual);
return;
@@ -317,6 +311,11 @@ void Turnstile::executeMigrationStep() {
return;
}
if (!rpc->getAllBalances()->keys().contains(nextStep->intTAddr)) {
qDebug() << QString("The int address doesn't have balance, even though it is confirmed");
return;
}
// Send it to the final destination address.
auto bal = rpc->getAllBalances()->value(nextStep->intTAddr);
auto sendAmt = bal - Utils::getMinerFee();