diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -255,7 +255,7 @@ } int paramCount = 0; - if (info.amount) { + if (info.amount != 0) { ret += QString("?amount=%1") .arg(BitcoinUnits::format(BitcoinUnits::BCH, info.amount, false, 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)) { + if (!verifyAmount(recipient.amount.GetSatoshis())) { 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) + if (info.amount != 0) html += "" + tr("Amount") + ": " + BitcoinUnits::formatHtmlWithUnit(model->getDisplayUnit(), info.amount) + diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -912,7 +912,7 @@ qobject_cast(ui->entries->itemAt(i)->widget()); if (entry && !entry->isHidden()) { SendCoinsRecipient rcp = entry->getValue(); - CoinControlDialog::payAmounts.append(rcp.amount); + CoinControlDialog::payAmounts.append(rcp.amount.GetSatoshis()); if (rcp.fSubtractFeeFromAmount) CoinControlDialog::fSubtractFeeFromAmount = true; } diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h --- a/src/qt/walletmodel.h +++ b/src/qt/walletmodel.h @@ -40,7 +40,7 @@ : amount(0), fSubtractFeeFromAmount(false), nVersion(SendCoinsRecipient::CURRENT_VERSION) {} explicit SendCoinsRecipient(const QString &addr, const QString &_label, - const CAmount &_amount, const QString &_message) + const Amount _amount, const QString &_message) : address(addr), label(_label), amount(_amount), message(_message), fSubtractFeeFromAmount(false), nVersion(SendCoinsRecipient::CURRENT_VERSION) {} @@ -52,7 +52,7 @@ // TOFO: This is a hack, should be replaced with a cleaner solution! QString address; QString label; - CAmount amount; + Amount amount; // If from a payment request, this is used for storing the memo QString message; @@ -139,13 +139,13 @@ TransactionTableModel *getTransactionTableModel(); RecentRequestsTableModel *getRecentRequestsTableModel(); - CAmount getBalance(const CCoinControl *coinControl = nullptr) const; - CAmount getUnconfirmedBalance() const; - CAmount getImmatureBalance() const; + Amount getBalance(const CCoinControl *coinControl = nullptr) const; + Amount getUnconfirmedBalance() const; + Amount getImmatureBalance() const; bool haveWatchOnly() const; - CAmount getWatchBalance() const; - CAmount getWatchUnconfirmedBalance() const; - CAmount getWatchImmatureBalance() const; + Amount getWatchBalance() const; + Amount getWatchUnconfirmedBalance() const; + Amount getWatchImmatureBalance() const; EncryptionStatus getEncryptionStatus() const; // Check address for validity @@ -244,12 +244,12 @@ RecentRequestsTableModel *recentRequestsTableModel; // Cache some values to be able to detect changes - CAmount cachedBalance; - CAmount cachedUnconfirmedBalance; - CAmount cachedImmatureBalance; - CAmount cachedWatchOnlyBalance; - CAmount cachedWatchUnconfBalance; - CAmount cachedWatchImmatureBalance; + Amount cachedBalance; + Amount cachedUnconfirmedBalance; + Amount cachedImmatureBalance; + Amount cachedWatchOnlyBalance; + Amount cachedWatchUnconfBalance; + Amount cachedWatchImmatureBalance; EncryptionStatus cachedEncryptionStatus; int cachedNumBlocks; @@ -261,12 +261,11 @@ Q_SIGNALS: // Signal that balance in wallet changed - void balanceChanged(const CAmount &balance, - const CAmount &unconfirmedBalance, - const CAmount &immatureBalance, - const CAmount &watchOnlyBalance, - const CAmount &watchUnconfBalance, - const CAmount &watchImmatureBalance); + void balanceChanged(const Amount balance, const Amount unconfirmedBalance, + const Amount immatureBalance, + const Amount watchOnlyBalance, + const Amount watchUnconfBalance, + const Amount watchImmatureBalance); // Encryption status of wallet changed void encryptionStatusChanged(int status); diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -55,7 +55,7 @@ unsubscribeFromCoreSignals(); } -CAmount WalletModel::getBalance(const CCoinControl *coinControl) const { +Amount WalletModel::getBalance(const CCoinControl *coinControl) const { if (coinControl) { Amount nBalance(0); std::vector vCoins; @@ -64,34 +64,34 @@ if (out.fSpendable) nBalance += out.tx->tx->vout[out.i].nValue; } - return nBalance.GetSatoshis(); + return nBalance; } - return wallet->GetBalance().GetSatoshis(); + return wallet->GetBalance(); } -CAmount WalletModel::getUnconfirmedBalance() const { - return wallet->GetUnconfirmedBalance().GetSatoshis(); +Amount WalletModel::getUnconfirmedBalance() const { + return wallet->GetUnconfirmedBalance(); } -CAmount WalletModel::getImmatureBalance() const { - return wallet->GetImmatureBalance().GetSatoshis(); +Amount WalletModel::getImmatureBalance() const { + return wallet->GetImmatureBalance(); } bool WalletModel::haveWatchOnly() const { return fHaveWatchOnly; } -CAmount WalletModel::getWatchBalance() const { - return wallet->GetWatchOnlyBalance().GetSatoshis(); +Amount WalletModel::getWatchBalance() const { + return wallet->GetWatchOnlyBalance(); } -CAmount WalletModel::getWatchUnconfirmedBalance() const { - return wallet->GetUnconfirmedWatchOnlyBalance().GetSatoshis(); +Amount WalletModel::getWatchUnconfirmedBalance() const { + return wallet->GetUnconfirmedWatchOnlyBalance(); } -CAmount WalletModel::getWatchImmatureBalance() const { - return wallet->GetImmatureWatchOnlyBalance().GetSatoshis(); +Amount WalletModel::getWatchImmatureBalance() const { + return wallet->GetImmatureWatchOnlyBalance(); } void WalletModel::updateStatus() { @@ -122,12 +122,12 @@ } void WalletModel::checkBalanceChanged() { - CAmount newBalance = getBalance(); - CAmount newUnconfirmedBalance = getUnconfirmedBalance(); - CAmount newImmatureBalance = getImmatureBalance(); - CAmount newWatchOnlyBalance = 0; - CAmount newWatchUnconfBalance = 0; - CAmount 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) { - CAmount total = 0; + Amount total = 0; bool fSubtractFeeFromAmount = false; QList recipients = transaction.getRecipients(); std::vector vecSend; @@ -195,7 +195,7 @@ // PaymentRequest... if (rcp.paymentRequest.IsInitialized()) { - CAmount subtotal = 0; + Amount subtotal = 0; const payments::PaymentDetails &details = rcp.paymentRequest.getDetails(); for (int i = 0; i < details.outputs_size(); i++) { @@ -205,7 +205,7 @@ const uint8_t *scriptStr = (const uint8_t *)out.script().data(); CScript scriptPubKey(scriptStr, scriptStr + out.script().size()); - CAmount nAmount = out.amount(); + Amount nAmount = out.amount(); CRecipient recipient = {scriptPubKey, Amount(nAmount), rcp.fSubtractFeeFromAmount}; vecSend.push_back(recipient); @@ -237,7 +237,7 @@ return DuplicateAddress; } - CAmount nBalance = getBalance(coinControl); + Amount nBalance = getBalance(coinControl); if (total > nBalance) { return AmountExceedsBalance; @@ -257,13 +257,12 @@ bool fCreated = wallet->CreateTransaction(vecSend, *newTx, *keyChange, nFeeRequired, nChangePosRet, strFailReason, coinControl); - transaction.setTransactionFee(nFeeRequired.GetSatoshis()); + transaction.setTransactionFee(nFeeRequired); if (fSubtractFeeFromAmount && fCreated) transaction.reassignAmounts(nChangePosRet); if (!fCreated) { - if (!fSubtractFeeFromAmount && - (total + nFeeRequired.GetSatoshis()) > nBalance) { + if (!fSubtractFeeFromAmount && (total + nFeeRequired) > nBalance) { return SendCoinsReturn(AmountWithFeeExceedsBalance); } Q_EMIT message(tr("Send Coins"), diff --git a/src/qt/walletmodeltransaction.h b/src/qt/walletmodeltransaction.h --- a/src/qt/walletmodeltransaction.h +++ b/src/qt/walletmodeltransaction.h @@ -27,10 +27,10 @@ CWalletTx *getTransaction(); unsigned int getTransactionSize(); - void setTransactionFee(const CAmount newFee); - CAmount getTransactionFee(); + void setTransactionFee(const Amount newFee); + Amount getTransactionFee(); - CAmount getTotalTransactionAmount(); + Amount getTotalTransactionAmount(); void newPossibleKeyChange(CWallet *wallet); CReserveKey *getPossibleKeyChange(); @@ -42,7 +42,7 @@ QList recipients; CWalletTx *walletTransaction; CReserveKey *keyChange; - CAmount fee; + Amount fee; }; #endif // BITCOIN_QT_WALLETMODELTRANSACTION_H diff --git a/src/qt/walletmodeltransaction.cpp b/src/qt/walletmodeltransaction.cpp --- a/src/qt/walletmodeltransaction.cpp +++ b/src/qt/walletmodeltransaction.cpp @@ -30,11 +30,11 @@ return (!walletTransaction ? 0 : ::GetTransactionSize(*walletTransaction)); } -CAmount WalletModelTransaction::getTransactionFee() { +Amount WalletModelTransaction::getTransactionFee() { return fee; } -void WalletModelTransaction::setTransactionFee(const CAmount newFee) { +void WalletModelTransaction::setTransactionFee(const Amount newFee) { fee = newFee; } @@ -52,22 +52,22 @@ subtotal += walletTransaction->tx->vout[i].nValue; i++; } - rcp.amount = subtotal.GetSatoshis(); + rcp.amount = subtotal; } else { // normal recipient (no payment request) if (i == nChangePosRet) i++; - rcp.amount = walletTransaction->tx->vout[i].nValue.GetSatoshis(); + rcp.amount = walletTransaction->tx->vout[i].nValue; i++; } } } -CAmount WalletModelTransaction::getTotalTransactionAmount() { +Amount WalletModelTransaction::getTotalTransactionAmount() { Amount totalTransactionAmount(0); for (const SendCoinsRecipient &rcp : recipients) { totalTransactionAmount += rcp.amount; } - return totalTransactionAmount.GetSatoshis(); + return totalTransactionAmount; } void WalletModelTransaction::newPossibleKeyChange(CWallet *wallet) {