walletmodeltransaction.cpp
1 // Copyright (c) 2011-2021 The Bitcoin Core developers 2 // Distributed under the MIT software license, see the accompanying 3 // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 5 #include <qt/walletmodeltransaction.h> 6 7 #include <policy/policy.h> 8 9 WalletModelTransaction::WalletModelTransaction(const QList<SendCoinsRecipient>& _recipients) 10 : recipients(_recipients) 11 { 12 } 13 14 QList<SendCoinsRecipient> WalletModelTransaction::getRecipients() const 15 { 16 return recipients; 17 } 18 19 CTransactionRef& WalletModelTransaction::getWtx() 20 { 21 return wtx; 22 } 23 24 void WalletModelTransaction::setWtx(const CTransactionRef& newTx) 25 { 26 wtx = newTx; 27 } 28 29 unsigned int WalletModelTransaction::getTransactionSize() 30 { 31 return wtx ? GetVirtualTransactionSize(*wtx) : 0; 32 } 33 34 CAmount WalletModelTransaction::getTransactionFee() const 35 { 36 return fee; 37 } 38 39 void WalletModelTransaction::setTransactionFee(const CAmount& newFee) 40 { 41 fee = newFee; 42 } 43 44 void WalletModelTransaction::reassignAmounts(int nChangePosRet) 45 { 46 const CTransaction* walletTransaction = wtx.get(); 47 int i = 0; 48 for (QList<SendCoinsRecipient>::iterator it = recipients.begin(); it != recipients.end(); ++it) 49 { 50 SendCoinsRecipient& rcp = (*it); 51 { 52 if (i == nChangePosRet) 53 i++; 54 rcp.amount = walletTransaction->vout[i].nValue; 55 i++; 56 } 57 } 58 } 59 60 CAmount WalletModelTransaction::getTotalTransactionAmount() const 61 { 62 CAmount totalTransactionAmount = 0; 63 for (const SendCoinsRecipient &rcp : recipients) 64 { 65 totalTransactionAmount += rcp.amount; 66 } 67 return totalTransactionAmount; 68 }