walletmodeltransaction.cpp raw
1 // Copyright (c) 2011-present 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 }
69