diff --git a/src/qt/bitcoinamountfield.cpp b/src/qt/bitcoinamountfield.cpp --- a/src/qt/bitcoinamountfield.cpp +++ b/src/qt/bitcoinamountfield.cpp @@ -135,7 +135,7 @@ * @note Must return 0 if !valid. */ Amount parse(const QString &text, bool *valid_out = 0) const { - Amount val = 0; + Amount val(0); bool valid = BitcoinUnits::parse(currentUnit, text, &val); if (valid) { if (val < Amount(0) || val > BitcoinUnits::maxMoney()) { @@ -178,7 +178,7 @@ bool valid = false; Amount val = value(&valid); if (valid) { - if (val > 0) { + if (val > Amount(0)) { rv |= StepDownEnabled; } if (val < BitcoinUnits::maxMoney()) { diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -1037,7 +1037,8 @@ msg += tr("Label: %1\n").arg(label); else if (!address.isEmpty()) msg += tr("Address: %1\n").arg(address); - message((amount) < 0 ? tr("Sent transaction") : tr("Incoming transaction"), + message(amount < Amount(0) ? tr("Sent transaction") + : tr("Incoming transaction"), msg, CClientUIInterface::MSG_INFORMATION); } #endif // ENABLE_WALLET diff --git a/src/qt/coincontroldialog.cpp b/src/qt/coincontroldialog.cpp --- a/src/qt/coincontroldialog.cpp +++ b/src/qt/coincontroldialog.cpp @@ -450,13 +450,13 @@ if (!model) return; // nPayAmount - Amount nPayAmount = 0; + Amount nPayAmount(0); bool fDust = false; CMutableTransaction txDummy; for (const Amount amount : CoinControlDialog::payAmounts) { nPayAmount += amount; - if (amount > 0) { + if (amount > Amount(0)) { CTxOut txout(Amount(amount), (CScript)std::vector(24, 0)); txDummy.vout.push_back(txout); if (txout.IsDust(dustRelayFee)) fDust = true; @@ -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) + 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,11 +554,13 @@ 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; @@ -568,12 +574,13 @@ 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; } } @@ -598,13 +605,13 @@ // 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 @@ -624,7 +631,7 @@ 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()); } } @@ -672,7 +679,7 @@ // Insufficient funds QLabel *label = dialog->findChild("labelCoinControlInsuffFunds"); if (label) { - label->setVisible(nChange < 0); + label->setVisible(nChange < Amount(0)); } } diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -190,7 +190,7 @@ if (rv.address.endsWith("/")) { rv.address.truncate(rv.address.length() - 1); } - rv.amount = 0; + rv.amount = Amount(0); #if QT_VERSION < 0x050000 QList> items = uri.queryItems(); @@ -254,7 +254,7 @@ } int paramCount = 0; - if (info.amount != 0) { + if (info.amount != Amount(0)) { ret += QString("?amount=%1") .arg(BitcoinUnits::format(BitcoinUnits::BCH, info.amount, false, diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -52,8 +52,8 @@ QDateTime date = index.data(TransactionTableModel::DateRole).toDateTime(); QString address = index.data(Qt::DisplayRole).toString(); - qint64 amount = - index.data(TransactionTableModel::AmountRole).toLongLong(); + Amount amount( + index.data(TransactionTableModel::AmountRole).toLongLong()); bool confirmed = index.data(TransactionTableModel::ConfirmedRole).toBool(); QVariant value = index.data(Qt::ForegroundRole); @@ -77,7 +77,7 @@ iconWatchonly.paint(painter, watchonlyRect); } - if (amount < 0) { + if (amount < Amount(0)) { foreground = COLOR_NEGATIVE; } else if (!confirmed) { foreground = COLOR_UNCONFIRMED; @@ -193,8 +193,8 @@ // only show immature (newly mined) balance if it's non-zero, so as not to // complicate things // for the non-mining users - bool showImmature = immatureBalance != 0; - bool showWatchOnlyImmature = watchImmatureBalance != 0; + bool showImmature = immatureBalance != Amount(0); + bool showWatchOnlyImmature = watchImmatureBalance != Amount(0); // for symmetry reasons also show immature label when the watch-only one is // shown @@ -270,7 +270,7 @@ void OverviewPage::updateDisplayUnit() { if (walletModel && walletModel->getOptionsModel()) { - if (currentBalance != -1) + if (currentBalance != Amount(-1)) setBalance(currentBalance, currentUnconfirmedBalance, currentImmatureBalance, currentWatchOnlyBalance, currentWatchUnconfBalance, currentWatchImmatureBalance); diff --git a/src/qt/paymentrequestplus.cpp b/src/qt/paymentrequestplus.cpp --- a/src/qt/paymentrequestplus.cpp +++ b/src/qt/paymentrequestplus.cpp @@ -226,7 +226,7 @@ (const uint8_t *)details.outputs(i).script().data(); CScript s(scriptStr, scriptStr + details.outputs(i).script().size()); - result.append(std::make_pair(s, details.outputs(i).amount())); + result.append(std::make_pair(s, Amount(details.outputs(i).amount()))); } return result; } diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp --- a/src/qt/paymentserver.cpp +++ b/src/qt/paymentserver.cpp @@ -589,7 +589,7 @@ recipient.amount += sendingTo.second; // Also verify that the final amount is still in a valid range after // adding additional amounts. - if (!verifyAmount(recipient.amount.GetSatoshis())) { + if (!verifyAmount(recipient.amount)) { Q_EMIT message(tr("Payment request rejected"), tr("Invalid payment request."), CClientUIInterface::MSG_ERROR); diff --git a/src/qt/receiverequestdialog.cpp b/src/qt/receiverequestdialog.cpp --- a/src/qt/receiverequestdialog.cpp +++ b/src/qt/receiverequestdialog.cpp @@ -123,7 +123,7 @@ html += "" + GUIUtil::HtmlEscape(uri) + "
"; html += "" + tr("Address") + ": " + GUIUtil::HtmlEscape(info.address) + "
"; - if (info.amount != 0) + if (info.amount != Amount(0)) html += "" + tr("Amount") + ": " + BitcoinUnits::formatHtmlWithUnit(model->getDisplayUnit(), info.amount) + diff --git a/src/qt/recentrequeststablemodel.cpp b/src/qt/recentrequeststablemodel.cpp --- a/src/qt/recentrequeststablemodel.cpp +++ b/src/qt/recentrequeststablemodel.cpp @@ -71,7 +71,8 @@ return rec->recipient.message; } case Amount: - if (rec->recipient.amount == 0 && role == Qt::DisplayRole) + if (rec->recipient.amount == ::Amount(0) && + role == Qt::DisplayRole) return tr("(no amount requested)"); else if (role == Qt::EditRole) return BitcoinUnits::format( diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -140,7 +140,8 @@ ->button((int)std::max( 0, std::min(1, settings.value("nCustomFeeRadio").toInt()))) ->setChecked(true); - ui->customFee->setValue(settings.value("nTransactionFee").toLongLong()); + ui->customFee->setValue( + Amount(settings.value("nTransactionFee").toLongLong())); ui->checkBoxMinimumFee->setChecked( settings.value("fPayOnlyMinFee").toBool()); minimizeFeeSection(settings.value("fFeeSectionMinimized").toBool()); @@ -353,7 +354,7 @@ QString questionString = tr("Are you sure you want to send?"); questionString.append("

%1"); - if (txFee > 0) { + if (txFee > Amount(0)) { // append fee string if a fee is required questionString.append("
"); questionString.append(BitcoinUnits::formatHtmlWithUnit( @@ -546,7 +547,8 @@ } void SendCoinsDialog::updateDisplayUnit() { - setBalance(model->getBalance(), 0, 0, 0, 0, 0); + setBalance(model->getBalance(), Amount(0), Amount(0), Amount(0), Amount(0), + Amount(0)); ui->customFee->setDisplayUnit(model->getOptionsModel()->getDisplayUnit()); updateMinFeeLabel(); updateSmartFeeLabel(); @@ -680,8 +682,9 @@ // coincontrol // set nMinimumTotalFee to 0 in case of user has selected that the fee // is per KB - CoinControlDialog::coinControl->nMinimumTotalFee = Amount( - ui->radioCustomAtLeast->isChecked() ? ui->customFee->value() : 0); + CoinControlDialog::coinControl->nMinimumTotalFee = + ui->radioCustomAtLeast->isChecked() ? ui->customFee->value() + : Amount(0); } } @@ -908,7 +911,7 @@ qobject_cast(ui->entries->itemAt(i)->widget()); if (entry && !entry->isHidden()) { SendCoinsRecipient rcp = entry->getValue(); - CoinControlDialog::payAmounts.append(rcp.amount.GetSatoshis()); + CoinControlDialog::payAmounts.append(rcp.amount); if (rcp.fSubtractFeeFromAmount) CoinControlDialog::fSubtractFeeFromAmount = true; } diff --git a/src/qt/sendcoinsentry.cpp b/src/qt/sendcoinsentry.cpp --- a/src/qt/sendcoinsentry.cpp +++ b/src/qt/sendcoinsentry.cpp @@ -140,7 +140,7 @@ } // Sending a zero amount is invalid - if (ui->payAmount->value(0) <= 0) { + if (ui->payAmount->value(0) <= Amount(0)) { ui->payAmount->setValid(false); retval = false; } diff --git a/src/qt/test/uritests.cpp b/src/qt/test/uritests.cpp --- a/src/qt/test/uritests.cpp +++ b/src/qt/test/uritests.cpp @@ -25,35 +25,35 @@ QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); QVERIFY(rv.label == QString()); - QVERIFY(rv.amount == 0); + QVERIFY(rv.amount == Amount(0)); uri.setUrl(QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?label=" "Wikipedia Example Address")); QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); QVERIFY(rv.label == QString("Wikipedia Example Address")); - QVERIFY(rv.amount == 0); + QVERIFY(rv.amount == Amount(0)); uri.setUrl( QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=0.001")); QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); QVERIFY(rv.label == QString()); - QVERIFY(rv.amount == 100000); + QVERIFY(rv.amount == Amount(100000)); uri.setUrl( QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1.001")); QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); QVERIFY(rv.label == QString()); - QVERIFY(rv.amount == 100100000); + QVERIFY(rv.amount == Amount(100100000)); uri.setUrl( QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=100&" "label=Wikipedia Example")); QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); - QVERIFY(rv.amount == 10000000000LL); + QVERIFY(rv.amount == Amount(10000000000LL)); QVERIFY(rv.label == QString("Wikipedia Example")); uri.setUrl(QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=" @@ -101,7 +101,7 @@ QVERIFY(rv.address == QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a")); QVERIFY(rv.label == QString()); - QVERIFY(rv.amount == 0); + QVERIFY(rv.amount == Amount(0)); uri.setUrl( QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?label=" @@ -110,7 +110,7 @@ QVERIFY(rv.address == QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a")); QVERIFY(rv.label == QString("Wikipedia Example Address")); - QVERIFY(rv.amount == 0); + QVERIFY(rv.amount == Amount(0)); uri.setUrl(QString( "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?amount=0.001")); @@ -118,7 +118,7 @@ QVERIFY(rv.address == QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a")); QVERIFY(rv.label == QString()); - QVERIFY(rv.amount == 100000); + QVERIFY(rv.amount == Amount(100000)); uri.setUrl(QString( "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?amount=1.001")); @@ -126,7 +126,7 @@ QVERIFY(rv.address == QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a")); QVERIFY(rv.label == QString()); - QVERIFY(rv.amount == 100100000); + QVERIFY(rv.amount == Amount(100100000)); uri.setUrl(QString( "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?amount=100&" @@ -134,7 +134,7 @@ QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); QVERIFY(rv.address == QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a")); - QVERIFY(rv.amount == 10000000000LL); + QVERIFY(rv.amount == Amount(10000000000LL)); QVERIFY(rv.label == QString("Wikipedia Example")); uri.setUrl(QString( diff --git a/src/qt/transactiondesc.cpp b/src/qt/transactiondesc.cpp --- a/src/qt/transactiondesc.cpp +++ b/src/qt/transactiondesc.cpp @@ -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)) { @@ -150,7 +150,7 @@ else strHTML += "(" + tr("not accepted") + ")"; strHTML += "
"; - } else if (nNet > 0) { + } else if (nNet > Amount(0)) { // // Credit // diff --git a/src/qt/transactionfilterproxy.cpp b/src/qt/transactionfilterproxy.cpp --- a/src/qt/transactionfilterproxy.cpp +++ b/src/qt/transactionfilterproxy.cpp @@ -33,8 +33,8 @@ index.data(TransactionTableModel::WatchonlyRole).toBool(); QString address = index.data(TransactionTableModel::AddressRole).toString(); QString label = index.data(TransactionTableModel::LabelRole).toString(); - qint64 amount = - llabs(index.data(TransactionTableModel::AmountRole).toLongLong()); + Amount amount( + llabs(index.data(TransactionTableModel::AmountRole).toLongLong())); int status = index.data(TransactionTableModel::StatusRole).toInt(); if (!showInactive && status == TransactionStatus::Conflicted) return false; diff --git a/src/qt/transactionrecord.cpp b/src/qt/transactionrecord.cpp --- a/src/qt/transactionrecord.cpp +++ b/src/qt/transactionrecord.cpp @@ -40,7 +40,7 @@ uint256 hash = wtx.GetId(); std::map mapValue = wtx.mapValue; - if (nNet > 0 || wtx.IsCoinBase()) { + if (nNet > Amount(0) || wtx.IsCoinBase()) { // // Credit // @@ -141,7 +141,7 @@ // Mixed debit transaction, can't break down payees // parts.append(TransactionRecord( - hash, nTime, TransactionRecord::Other, "", nNet, 0)); + hash, nTime, TransactionRecord::Other, "", nNet, Amount(0))); parts.last().involvesWatchAddress = involvesWatchAddress; } } diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp --- a/src/qt/transactiontablemodel.cpp +++ b/src/qt/transactiontablemodel.cpp @@ -581,7 +581,8 @@ rec->status.status != TransactionStatus::Immature) { return COLOR_UNCONFIRMED; } - if (index.column() == Amount && (rec->credit + rec->debit) < 0) { + if (index.column() == Amount && + (rec->credit + rec->debit) < ::Amount(0)) { return COLOR_NEGATIVE; } if (index.column() == ToAddress) { diff --git a/src/qt/transactionview.cpp b/src/qt/transactionview.cpp --- a/src/qt/transactionview.cpp +++ b/src/qt/transactionview.cpp @@ -338,7 +338,7 @@ &amount_parsed)) { transactionProxyModel->setMinAmount(amount_parsed); } else { - transactionProxyModel->setMinAmount(0); + transactionProxyModel->setMinAmount(Amount(0)); } } diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -122,12 +122,12 @@ } void WalletModel::checkBalanceChanged() { - Amount newBalance = getBalance(); - Amount newUnconfirmedBalance = getUnconfirmedBalance(); - Amount newImmatureBalance = getImmatureBalance(); - Amount newWatchOnlyBalance = 0; - Amount newWatchUnconfBalance = 0; - Amount newWatchImmatureBalance = 0; + Amount newBalance(getBalance()); + Amount newUnconfirmedBalance(getUnconfirmedBalance()); + Amount newImmatureBalance(getImmatureBalance()); + Amount newWatchOnlyBalance(0); + Amount newWatchUnconfBalance(0); + Amount newWatchImmatureBalance(0); if (haveWatchOnly()) { newWatchOnlyBalance = getWatchBalance(); newWatchUnconfBalance = getWatchUnconfirmedBalance(); @@ -176,7 +176,7 @@ WalletModel::SendCoinsReturn WalletModel::prepareTransaction(WalletModelTransaction &transaction, const CCoinControl *coinControl) { - Amount total = 0; + Amount total(0); bool fSubtractFeeFromAmount = false; QList recipients = transaction.getRecipients(); std::vector vecSend; @@ -195,22 +195,22 @@ // PaymentRequest... if (rcp.paymentRequest.IsInitialized()) { - Amount subtotal = 0; + Amount subtotal(0); const payments::PaymentDetails &details = rcp.paymentRequest.getDetails(); for (int i = 0; i < details.outputs_size(); i++) { const payments::Output &out = details.outputs(i); if (out.amount() <= 0) continue; - subtotal += out.amount(); + subtotal += Amount(out.amount()); const uint8_t *scriptStr = (const uint8_t *)out.script().data(); CScript scriptPubKey(scriptStr, scriptStr + out.script().size()); - Amount nAmount = out.amount(); + Amount nAmount = Amount(out.amount()); CRecipient recipient = {scriptPubKey, Amount(nAmount), rcp.fSubtractFeeFromAmount}; vecSend.push_back(recipient); } - if (subtotal <= 0) { + if (subtotal <= Amount(0)) { return InvalidAmount; } total += subtotal; @@ -218,7 +218,7 @@ if (!validateAddress(rcp.address)) { return InvalidAddress; } - if (rcp.amount <= 0) { + if (rcp.amount <= Amount(0)) { return InvalidAmount; } setAddress.insert(rcp.address); diff --git a/src/qt/walletview.cpp b/src/qt/walletview.cpp --- a/src/qt/walletview.cpp +++ b/src/qt/walletview.cpp @@ -192,7 +192,7 @@ Q_EMIT incomingTransaction(date, walletModel->getOptionsModel()->getDisplayUnit(), - amount, type, address, label); + Amount(amount), type, address, label); } void WalletView::gotoOverviewPage() {