diff --git a/src/qt/bitcoinamountfield.h b/src/qt/bitcoinamountfield.h --- a/src/qt/bitcoinamountfield.h +++ b/src/qt/bitcoinamountfield.h @@ -30,7 +30,7 @@ explicit BitcoinAmountField(QWidget *parent = 0); CAmount value(bool *value = 0) const; - void setValue(const CAmount &value); + void setValue(const CAmount value); /** Set single step in satoshis **/ void setSingleStep(const CAmount &step); diff --git a/src/qt/bitcoinamountfield.cpp b/src/qt/bitcoinamountfield.cpp --- a/src/qt/bitcoinamountfield.cpp +++ b/src/qt/bitcoinamountfield.cpp @@ -42,7 +42,7 @@ void fixup(QString &input) const { bool valid = false; - CAmount val = parse(input, &valid); + Amount val = Amount(parse(input, &valid)); if (valid) { input = BitcoinUnits::format(currentUnit, val, false, BitcoinUnits::separatorAlways); @@ -54,9 +54,9 @@ return parse(text(), valid_out); } - void setValue(const CAmount &value) { + void setValue(const CAmount value) { lineEdit()->setText(BitcoinUnits::format( - currentUnit, value, false, BitcoinUnits::separatorAlways)); + currentUnit, Amount(value), false, BitcoinUnits::separatorAlways)); Q_EMIT valueChanged(); } @@ -64,7 +64,8 @@ bool valid = false; CAmount val = value(&valid); val = val + steps * singleStep; - val = qMin(qMax(val, CAmount(0)), BitcoinUnits::maxMoney()); + val = + qMin(qMax(val, CAmount(0)), BitcoinUnits::maxMoney().GetSatoshis()); setValue(val); } @@ -138,7 +139,7 @@ CAmount val = 0; bool valid = BitcoinUnits::parse(currentUnit, text, &val); if (valid) { - if (val < 0 || val > BitcoinUnits::maxMoney()) { + if (val < 0 || Amount(val) > BitcoinUnits::maxMoney()) { valid = false; } } @@ -178,10 +179,10 @@ bool valid = false; CAmount val = value(&valid); if (valid) { - if (val > 0) { + if (Amount(val) > Amount(0)) { rv |= StepDownEnabled; } - if (val < BitcoinUnits::maxMoney()) { + if (Amount(val) < BitcoinUnits::maxMoney()) { rv |= StepUpEnabled; } } @@ -266,7 +267,7 @@ return amount->value(valid_out); } -void BitcoinAmountField::setValue(const CAmount &value) { +void BitcoinAmountField::setValue(const CAmount value) { amount->setValue(value); } diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -1029,10 +1029,11 @@ const QString &address, const QString &label) { // On new transaction, make an info balloon - QString msg = tr("Date: %1\n").arg(date) + - tr("Amount: %1\n") - .arg(BitcoinUnits::formatWithUnit(unit, amount, true)) + - tr("Type: %1\n").arg(type); + QString msg = + tr("Date: %1\n").arg(date) + + tr("Amount: %1\n") + .arg(BitcoinUnits::formatWithUnit(unit, Amount(amount), true)) + + tr("Type: %1\n").arg(type); if (!label.isEmpty()) msg += tr("Label: %1\n").arg(label); else if (!address.isEmpty()) diff --git a/src/qt/bitcoinunits.h b/src/qt/bitcoinunits.h --- a/src/qt/bitcoinunits.h +++ b/src/qt/bitcoinunits.h @@ -77,16 +77,15 @@ //! Number of decimals left static int decimals(int unit); //! Format as string - static QString format(int unit, const CAmount &amount, - bool plussign = false, + static QString format(int unit, const Amount amount, bool plussign = false, SeparatorStyle separators = separatorStandard); //! Format as string (with unit) static QString - formatWithUnit(int unit, const CAmount &amount, bool plussign = false, + formatWithUnit(int unit, const Amount amount, bool plussign = false, SeparatorStyle separators = separatorStandard); //! Format as HTML string (with unit) static QString - formatHtmlWithUnit(int unit, const CAmount &amount, bool plussign = false, + formatHtmlWithUnit(int unit, const Amount amount, bool plussign = false, SeparatorStyle separators = separatorStandard); //! Parse string to coin amount static bool parse(int unit, const QString &value, CAmount *val_out); @@ -116,7 +115,7 @@ } //! Return maximum number of base units (Satoshis) - static CAmount maxMoney(); + static Amount maxMoney(); private: QList unitlist; diff --git a/src/qt/bitcoinunits.cpp b/src/qt/bitcoinunits.cpp --- a/src/qt/bitcoinunits.cpp +++ b/src/qt/bitcoinunits.cpp @@ -83,7 +83,7 @@ } } -QString BitcoinUnits::format(int unit, const CAmount &nIn, bool fPlus, +QString BitcoinUnits::format(int unit, const Amount nIn, bool fPlus, SeparatorStyle separators) { // Note: not using straight sprintf here because we do NOT want // localized number formatting. @@ -91,7 +91,7 @@ // Refuse to format invalid unit return QString(); } - qint64 n = (qint64)nIn; + qint64 n = (qint64)nIn.GetSatoshis(); qint64 coin = factor(unit); int num_decimals = decimals(unit); qint64 n_abs = (n > 0 ? n : -n); @@ -129,13 +129,13 @@ // Please take care to use formatHtmlWithUnit instead, when // appropriate. -QString BitcoinUnits::formatWithUnit(int unit, const CAmount &amount, +QString BitcoinUnits::formatWithUnit(int unit, const Amount amount, bool plussign, SeparatorStyle separators) { return format(unit, amount, plussign, separators) + QString(" ") + name(unit); } -QString BitcoinUnits::formatHtmlWithUnit(int unit, const CAmount &amount, +QString BitcoinUnits::formatHtmlWithUnit(int unit, const Amount amount, bool plussign, SeparatorStyle separators) { QString str(formatWithUnit(unit, amount, plussign, separators)); @@ -211,6 +211,6 @@ return QVariant(); } -CAmount BitcoinUnits::maxMoney() { - return MAX_MONEY.GetSatoshis(); +Amount BitcoinUnits::maxMoney() { + return MAX_MONEY; } diff --git a/src/qt/coincontroldialog.cpp b/src/qt/coincontroldialog.cpp --- a/src/qt/coincontroldialog.cpp +++ b/src/qt/coincontroldialog.cpp @@ -450,11 +450,11 @@ if (!model) return; // nPayAmount - CAmount nPayAmount = 0; + Amount nPayAmount(0); bool fDust = false; CMutableTransaction txDummy; for (const CAmount &amount : CoinControlDialog::payAmounts) { - nPayAmount += amount; + nPayAmount += Amount(amount); if (amount > 0) { CTxOut txout(Amount(amount), (CScript)std::vector(24, 0)); @@ -494,7 +494,7 @@ nQuantity++; // Amount - nAmount += out.tx->tx->vout[out.i].nValue.GetSatoshis(); + nAmount += out.tx->tx->vout[out.i].nValue; // Priority dPriorityInputs += @@ -530,13 +530,17 @@ // in the subtract fee from amount case, we can tell if zero change // already and subtract the bytes, so that fee calculation afterwards is // accurate - if (CoinControlDialog::fSubtractFeeFromAmount) - if (nAmount - nPayAmount == 0) nBytes -= 34; + if (CoinControlDialog::fSubtractFeeFromAmount) { + if (nAmount - nPayAmount == Amount(0)) { + nBytes -= 34; + } + } // Fee nPayFee = CWallet::GetMinimumFee(nBytes, nTxConfirmTarget, mempool); - if (nPayFee > 0 && coinControl->nMinimumTotalFee > nPayFee) - nPayFee = coinControl->nMinimumTotalFee.GetSatoshis(); + if (nPayFee > Amount(0) && coinControl->nMinimumTotalFee > nPayFee) { + nPayFee = coinControl->nMinimumTotalFee; + } // Allow free? (require at least hard-coded threshold and default to // that if no estimate) @@ -550,31 +554,35 @@ std::max(mempoolEstimatePriority, AllowFreeThreshold()); fAllowFree = (dPriority >= dPriorityNeeded); - if (fSendFreeTransactions) - if (fAllowFree && nBytes <= MAX_FREE_TRANSACTION_CREATE_SIZE) - nPayFee = 0; + if (fSendFreeTransactions) { + if (fAllowFree && nBytes <= MAX_FREE_TRANSACTION_CREATE_SIZE) { + nPayFee = Amount(0); + } + } - if (nPayAmount > 0) { + if (nPayAmount > Amount(0)) { nChange = nAmount - nPayAmount; - if (!CoinControlDialog::fSubtractFeeFromAmount) nChange -= nPayFee; + if (!CoinControlDialog::fSubtractFeeFromAmount) { + nChange -= nPayFee; + } // Never create dust outputs; if we would, just add the dust to the // fee. - if (nChange > 0 && nChange < MIN_CHANGE.GetSatoshis()) { + if (nChange > Amount(0) && nChange < MIN_CHANGE) { CTxOut txout(nChange, (CScript)std::vector(24, 0)); if (txout.IsDust(dustRelayFee)) { // dust-change will be raised until no dust if (CoinControlDialog::fSubtractFeeFromAmount) { - nChange = - txout.GetDustThreshold(dustRelayFee).GetSatoshis(); + nChange = txout.GetDustThreshold(dustRelayFee); } else { nPayFee += nChange; - nChange = 0; + nChange = Amount(0); } } } - if (nChange == 0 && !CoinControlDialog::fSubtractFeeFromAmount) { + if (nChange == Amount(0) && + !CoinControlDialog::fSubtractFeeFromAmount) { nBytes -= 34; } } @@ -599,37 +607,33 @@ // enable/disable "dust" and "change" dialog->findChild("labelCoinControlLowOutputText") - ->setEnabled(nPayAmount > 0); + ->setEnabled(nPayAmount > Amount(0)); dialog->findChild("labelCoinControlLowOutput") - ->setEnabled(nPayAmount > 0); + ->setEnabled(nPayAmount > Amount(0)); dialog->findChild("labelCoinControlChangeText") - ->setEnabled(nPayAmount > 0); + ->setEnabled(nPayAmount > Amount(0)); dialog->findChild("labelCoinControlChange") - ->setEnabled(nPayAmount > 0); + ->setEnabled(nPayAmount > Amount(0)); // stats // Quantity l1->setText(QString::number(nQuantity)); // Amount - l2->setText( - BitcoinUnits::formatWithUnit(nDisplayUnit, nAmount.GetSatoshis())); + l2->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nAmount)); // Fee - l3->setText( - BitcoinUnits::formatWithUnit(nDisplayUnit, nPayFee.GetSatoshis())); + l3->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nPayFee)); // After Fee - l4->setText( - BitcoinUnits::formatWithUnit(nDisplayUnit, nAfterFee.GetSatoshis())); + l4->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nAfterFee)); // Bytes l5->setText(((nBytes > 0) ? ASYMP_UTF8 : "") + QString::number(nBytes)); // Dust l7->setText(fDust ? tr("yes") : tr("no")); // Change - l8->setText( - BitcoinUnits::formatWithUnit(nDisplayUnit, nChange.GetSatoshis())); + l8->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nChange)); if (nPayFee > Amount(0) && (coinControl->nMinimumTotalFee < nPayFee)) { l3->setText(ASYMP_UTF8 + l3->text()); l4->setText(ASYMP_UTF8 + l4->text()); - if (nChange > 0 && !CoinControlDialog::fSubtractFeeFromAmount) { + if (nChange > Amount(0) && !CoinControlDialog::fSubtractFeeFromAmount) { l8->setText(ASYMP_UTF8 + l8->text()); } } @@ -677,7 +681,7 @@ // Insufficient funds QLabel *label = dialog->findChild("labelCoinControlInsuffFunds"); if (label) { - label->setVisible(nChange < 0); + label->setVisible(nChange < Amount(0)); } } @@ -777,9 +781,8 @@ // amount itemOutput->setText( COLUMN_AMOUNT, - BitcoinUnits::format( - nDisplayUnit, - out.tx->tx->vout[out.i].nValue.GetSatoshis())); + BitcoinUnits::format(nDisplayUnit, + out.tx->tx->vout[out.i].nValue)); // padding so that sorting works correctly itemOutput->setData( COLUMN_AMOUNT, Qt::UserRole, @@ -828,8 +831,7 @@ itemWalletAddress->setText(COLUMN_CHECKBOX, "(" + QString::number(nChildren) + ")"); itemWalletAddress->setText( - COLUMN_AMOUNT, - BitcoinUnits::format(nDisplayUnit, nSum.GetSatoshis())); + COLUMN_AMOUNT, BitcoinUnits::format(nDisplayUnit, nSum)); itemWalletAddress->setData(COLUMN_AMOUNT, Qt::UserRole, QVariant((qlonglong)nSum.GetSatoshis())); } diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -234,10 +234,10 @@ int paramCount = 0; if (info.amount) { - ret += - QString("?amount=%1") - .arg(BitcoinUnits::format(BitcoinUnits::BCH, info.amount, false, - BitcoinUnits::separatorNever)); + ret += QString("?amount=%1") + .arg(BitcoinUnits::format(BitcoinUnits::BCH, + Amount(info.amount), false, + BitcoinUnits::separatorNever)); paramCount++; } diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -86,7 +86,7 @@ } painter->setPen(foreground); QString amountText = BitcoinUnits::formatWithUnit( - unit, amount, true, BitcoinUnits::separatorAlways); + unit, Amount(amount), true, BitcoinUnits::separatorAlways); if (!confirmed) { amountText = QString("[") + amountText + QString("]"); } @@ -172,22 +172,26 @@ currentWatchUnconfBalance = watchUnconfBalance; currentWatchImmatureBalance = watchImmatureBalance; ui->labelBalance->setText(BitcoinUnits::formatWithUnit( - unit, balance, false, BitcoinUnits::separatorAlways)); - ui->labelUnconfirmed->setText(BitcoinUnits::formatWithUnit( - unit, unconfirmedBalance, false, BitcoinUnits::separatorAlways)); + unit, Amount(balance), false, BitcoinUnits::separatorAlways)); + ui->labelUnconfirmed->setText( + BitcoinUnits::formatWithUnit(unit, Amount(unconfirmedBalance), false, + BitcoinUnits::separatorAlways)); ui->labelImmature->setText(BitcoinUnits::formatWithUnit( - unit, immatureBalance, false, BitcoinUnits::separatorAlways)); + unit, Amount(immatureBalance), false, BitcoinUnits::separatorAlways)); ui->labelTotal->setText(BitcoinUnits::formatWithUnit( - unit, balance + unconfirmedBalance + immatureBalance, false, + unit, Amount(balance + unconfirmedBalance + immatureBalance), false, BitcoinUnits::separatorAlways)); ui->labelWatchAvailable->setText(BitcoinUnits::formatWithUnit( - unit, watchOnlyBalance, false, BitcoinUnits::separatorAlways)); - ui->labelWatchPending->setText(BitcoinUnits::formatWithUnit( - unit, watchUnconfBalance, false, BitcoinUnits::separatorAlways)); - ui->labelWatchImmature->setText(BitcoinUnits::formatWithUnit( - unit, watchImmatureBalance, false, BitcoinUnits::separatorAlways)); + unit, Amount(watchOnlyBalance), false, BitcoinUnits::separatorAlways)); + ui->labelWatchPending->setText( + BitcoinUnits::formatWithUnit(unit, Amount(watchUnconfBalance), false, + BitcoinUnits::separatorAlways)); + ui->labelWatchImmature->setText( + BitcoinUnits::formatWithUnit(unit, Amount(watchImmatureBalance), false, + BitcoinUnits::separatorAlways)); ui->labelWatchTotal->setText(BitcoinUnits::formatWithUnit( - unit, watchOnlyBalance + watchUnconfBalance + watchImmatureBalance, + unit, + Amount(watchOnlyBalance + watchUnconfBalance + watchImmatureBalance), false, BitcoinUnits::separatorAlways)); // only show immature (newly mined) balance if it's non-zero, so as not to diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp --- a/src/qt/paymentserver.cpp +++ b/src/qt/paymentserver.cpp @@ -579,7 +579,8 @@ tr("Requested payment amount of %1 is too small (considered " "dust).") .arg(BitcoinUnits::formatWithUnit( - optionsModel->getDisplayUnit(), sendingTo.second)), + optionsModel->getDisplayUnit(), + Amount(sendingTo.second))), CClientUIInterface::MSG_ERROR); return false; diff --git a/src/qt/receiverequestdialog.cpp b/src/qt/receiverequestdialog.cpp --- a/src/qt/receiverequestdialog.cpp +++ b/src/qt/receiverequestdialog.cpp @@ -126,7 +126,7 @@ if (info.amount) html += "" + tr("Amount") + ": " + BitcoinUnits::formatHtmlWithUnit(model->getDisplayUnit(), - info.amount) + + Amount(info.amount)) + "
"; if (!info.label.isEmpty()) html += "" + tr("Label") + ": " + diff --git a/src/qt/recentrequeststablemodel.cpp b/src/qt/recentrequeststablemodel.cpp --- a/src/qt/recentrequeststablemodel.cpp +++ b/src/qt/recentrequeststablemodel.cpp @@ -76,12 +76,12 @@ else if (role == Qt::EditRole) return BitcoinUnits::format( walletModel->getOptionsModel()->getDisplayUnit(), - rec->recipient.amount, false, + ::Amount(rec->recipient.amount), false, BitcoinUnits::separatorNever); else return BitcoinUnits::format( walletModel->getOptionsModel()->getDisplayUnit(), - rec->recipient.amount); + ::Amount(rec->recipient.amount)); } } else if (role == Qt::TextAlignmentRole) { if (index.column() == Amount) diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -298,10 +298,10 @@ prepareStatus = model->prepareTransaction(currentTransaction, &ctrl); // process prepareStatus and on error generate message shown to user - processSendCoinsReturn( - prepareStatus, - BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), - currentTransaction.getTransactionFee())); + processSendCoinsReturn(prepareStatus, + BitcoinUnits::formatWithUnit( + model->getOptionsModel()->getDisplayUnit(), + Amount(currentTransaction.getTransactionFee()))); if (prepareStatus.status != WalletModel::OK) { fNewRecipientAllowed = true; @@ -314,9 +314,9 @@ QStringList formatted; for (const SendCoinsRecipient &rcp : currentTransaction.getRecipients()) { // generate bold amount string - QString amount = - "" + BitcoinUnits::formatHtmlWithUnit( - model->getOptionsModel()->getDisplayUnit(), rcp.amount); + QString amount = "" + BitcoinUnits::formatHtmlWithUnit( + model->getOptionsModel()->getDisplayUnit(), + Amount(rcp.amount)); amount.append(""); // generate monospace address string QString address = @@ -357,7 +357,7 @@ // append fee string if a fee is required questionString.append("
"); questionString.append(BitcoinUnits::formatHtmlWithUnit( - model->getOptionsModel()->getDisplayUnit(), txFee)); + model->getOptionsModel()->getDisplayUnit(), Amount(txFee))); questionString.append(" "); questionString.append(tr("added as transaction fee")); @@ -376,12 +376,12 @@ for (BitcoinUnits::Unit u : BitcoinUnits::availableUnits()) { if (u != model->getOptionsModel()->getDisplayUnit()) alternativeUnits.append( - BitcoinUnits::formatHtmlWithUnit(u, totalAmount)); + BitcoinUnits::formatHtmlWithUnit(u, Amount(totalAmount))); } - questionString.append( - tr("Total Amount %1") - .arg(BitcoinUnits::formatHtmlWithUnit( - model->getOptionsModel()->getDisplayUnit(), totalAmount))); + questionString.append(tr("Total Amount %1") + .arg(BitcoinUnits::formatHtmlWithUnit( + model->getOptionsModel()->getDisplayUnit(), + Amount(totalAmount)))); questionString.append( QString("
(=%2)
") @@ -542,7 +542,7 @@ if (model && model->getOptionsModel()) { ui->labelBalance->setText(BitcoinUnits::formatWithUnit( - model->getOptionsModel()->getDisplayUnit(), balance)); + model->getOptionsModel()->getDisplayUnit(), Amount(balance))); } } @@ -599,8 +599,7 @@ msgParams.first = tr("A fee higher than %1 is considered an absurdly high fee.") .arg(BitcoinUnits::formatWithUnit( - model->getOptionsModel()->getDisplayUnit(), - maxTxFee.GetSatoshis())); + model->getOptionsModel()->getDisplayUnit(), maxTxFee)); break; case WalletModel::PaymentRequestExpired: msgParams.first = tr("Payment request expired."); @@ -696,7 +695,7 @@ ui->labelFeeMinimized->setText( BitcoinUnits::formatWithUnit( model->getOptionsModel()->getDisplayUnit(), - ui->customFee->value()) + + Amount(ui->customFee->value())) + ((ui->radioCustomPerKilobyte->isChecked()) ? "/kB" : "")); } } @@ -707,7 +706,7 @@ tr("Pay only the required fee of %1") .arg(BitcoinUnits::formatWithUnit( model->getOptionsModel()->getDisplayUnit(), - CWallet::GetRequiredFee(1000).GetSatoshis()) + + CWallet::GetRequiredFee(1000)) + "/kB")); } @@ -725,8 +724,7 @@ BitcoinUnits::formatWithUnit( model->getOptionsModel()->getDisplayUnit(), std::max(CWallet::fallbackFee.GetFeePerK(), - CWallet::GetRequiredFee(1000)) - .GetSatoshis()) + + CWallet::GetRequiredFee(1000))) + "/kB"); // (Smart fee not initialized yet. This usually takes a few blocks...) ui->labelSmartFee2->show(); @@ -735,8 +733,7 @@ ui->labelSmartFee->setText( BitcoinUnits::formatWithUnit( model->getOptionsModel()->getDisplayUnit(), - std::max(feeRate.GetFeePerK(), CWallet::GetRequiredFee(1000)) - .GetSatoshis()) + + std::max(feeRate.GetFeePerK(), CWallet::GetRequiredFee(1000))) + "/kB"); ui->labelSmartFee2->hide(); ui->labelFeeEstimation->setText( diff --git a/src/qt/transactiondesc.cpp b/src/qt/transactiondesc.cpp --- a/src/qt/transactiondesc.cpp +++ b/src/qt/transactiondesc.cpp @@ -62,7 +62,7 @@ int64_t nTime = wtx.GetTxTime(); Amount nCredit = wtx.GetCredit(ISMINE_ALL); Amount nDebit = wtx.GetDebit(ISMINE_ALL); - CAmount nNet = (nCredit - nDebit).GetSatoshis(); + Amount nNet = nCredit - nDebit; strHTML += "" + tr("Status") + ": " + FormatTxStatus(wtx); int nRequests = wtx.GetRequestCount(); @@ -88,7 +88,7 @@ GUIUtil::HtmlEscape(wtx.mapValue["from"]) + "
"; } else { // Offline transaction - if (nNet > 0) { + if (nNet > Amount(0)) { // Credit CTxDestination address = DecodeDestination(rec->address); if (IsValidDestination(address)) { @@ -143,15 +143,14 @@ } strHTML += "" + tr("Credit") + ": "; if (wtx.IsInMainChain()) - strHTML += BitcoinUnits::formatHtmlWithUnit( - unit, nUnmatured.GetSatoshis()) + + strHTML += BitcoinUnits::formatHtmlWithUnit(unit, nUnmatured) + " (" + tr("matures in %n more block(s)", "", wtx.GetBlocksToMaturity()) + ")"; else strHTML += "(" + tr("not accepted") + ")"; strHTML += "
"; - } else if (nNet > 0) { + } else if (nNet > Amount(0)) { // // Credit // @@ -206,15 +205,15 @@ } } - strHTML += "" + tr("Debit") + ": " + - BitcoinUnits::formatHtmlWithUnit( - unit, -txout.nValue.GetSatoshis()) + - "
"; + strHTML += + "" + tr("Debit") + ": " + + BitcoinUnits::formatHtmlWithUnit(unit, -1 * txout.nValue) + + "
"; if (toSelf) - strHTML += "" + tr("Credit") + ": " + - BitcoinUnits::formatHtmlWithUnit( - unit, txout.nValue.GetSatoshis()) + - "
"; + strHTML += + "" + tr("Credit") + ": " + + BitcoinUnits::formatHtmlWithUnit(unit, txout.nValue) + + "
"; } if (fAllToMe) { @@ -222,20 +221,17 @@ Amount nChange = wtx.GetChange(); Amount nValue = nCredit - nChange; strHTML += "" + tr("Total debit") + ": " + - BitcoinUnits::formatHtmlWithUnit( - unit, -nValue.GetSatoshis()) + + BitcoinUnits::formatHtmlWithUnit(unit, -1 * nValue) + "
"; strHTML += "" + tr("Total credit") + ": " + - BitcoinUnits::formatHtmlWithUnit( - unit, nValue.GetSatoshis()) + + BitcoinUnits::formatHtmlWithUnit(unit, nValue) + "
"; } Amount nTxFee = nDebit - wtx.tx->GetValueOut(); if (nTxFee > Amount(0)) strHTML += "" + tr("Transaction fee") + ": " + - BitcoinUnits::formatHtmlWithUnit( - unit, -nTxFee.GetSatoshis()) + + BitcoinUnits::formatHtmlWithUnit(unit, -1 * nTxFee) + "
"; } else { // @@ -246,16 +242,14 @@ strHTML += "" + tr("Debit") + ": " + BitcoinUnits::formatHtmlWithUnit( - unit, - -wallet->GetDebit(txin, ISMINE_ALL).GetSatoshis()) + + unit, -1 * wallet->GetDebit(txin, ISMINE_ALL)) + "
"; } for (const CTxOut &txout : wtx.tx->vout) { if (wallet->IsMine(txout)) strHTML += "" + tr("Credit") + ": " + BitcoinUnits::formatHtmlWithUnit( - unit, wallet->GetCredit(txout, ISMINE_ALL) - .GetSatoshis()) + + unit, wallet->GetCredit(txout, ISMINE_ALL)) + "
"; } } @@ -324,21 +318,17 @@ strHTML += "

" + tr("Debug information") + "

"; for (const CTxIn &txin : wtx.tx->vin) { if (wallet->IsMine(txin)) - strHTML += - "" + tr("Debit") + ": " + - BitcoinUnits::formatHtmlWithUnit( - unit, - -wallet->GetDebit(txin, ISMINE_ALL).GetSatoshis()) + - "
"; + strHTML += "" + tr("Debit") + ": " + + BitcoinUnits::formatHtmlWithUnit( + unit, -1 * wallet->GetDebit(txin, ISMINE_ALL)) + + "
"; } for (const CTxOut &txout : wtx.tx->vout) { if (wallet->IsMine(txout)) - strHTML += - "" + tr("Credit") + ": " + - BitcoinUnits::formatHtmlWithUnit( - unit, - wallet->GetCredit(txout, ISMINE_ALL).GetSatoshis()) + - "
"; + strHTML += "" + tr("Credit") + ": " + + BitcoinUnits::formatHtmlWithUnit( + unit, wallet->GetCredit(txout, ISMINE_ALL)) + + "
"; } strHTML += "
" + tr("Transaction") + ":
"; @@ -366,8 +356,7 @@ QString::fromStdString(EncodeDestination(address)); } strHTML = strHTML + " " + tr("Amount") + "=" + - BitcoinUnits::formatHtmlWithUnit( - unit, vout.nValue.GetSatoshis()); + BitcoinUnits::formatHtmlWithUnit(unit, vout.nValue); strHTML = strHTML + " IsMine=" + (wallet->IsMine(vout) & ISMINE_SPENDABLE ? tr("true") diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp --- a/src/qt/transactiontablemodel.cpp +++ b/src/qt/transactiontablemodel.cpp @@ -444,9 +444,9 @@ QString TransactionTableModel::formatTxAmount( const TransactionRecord *wtx, bool showUnconfirmed, BitcoinUnits::SeparatorStyle separators) const { - QString str = - BitcoinUnits::format(walletModel->getOptionsModel()->getDisplayUnit(), - wtx->credit + wtx->debit, false, separators); + QString str = BitcoinUnits::format( + walletModel->getOptionsModel()->getDisplayUnit(), + ::Amount(wtx->credit + wtx->debit), false, separators); if (showUnconfirmed) { if (!wtx->status.countsForBalance) { str = QString("[") + str + QString("]"); diff --git a/src/qt/walletmodeltransaction.cpp b/src/qt/walletmodeltransaction.cpp --- a/src/qt/walletmodeltransaction.cpp +++ b/src/qt/walletmodeltransaction.cpp @@ -65,7 +65,7 @@ CAmount WalletModelTransaction::getTotalTransactionAmount() { Amount totalTransactionAmount(0); for (const SendCoinsRecipient &rcp : recipients) { - totalTransactionAmount += rcp.amount; + totalTransactionAmount += Amount(rcp.amount); } return totalTransactionAmount.GetSatoshis(); }