1 // Copyright (c) 2011-2019 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 #ifndef BITCOIN_QT_WALLETMODELTRANSACTION_H
6 #define BITCOIN_QT_WALLETMODELTRANSACTION_H
7 
8 #include <primitives/transaction.h>
9 #include <qt/sendcoinsrecipient.h>
10 
11 #include <amount.h>
12 
13 #include <QObject>
14 
15 class SendCoinsRecipient;
16 
17 namespace interfaces {
18 class Node;
19 }
20 
21 /** Data model for a walletmodel transaction. */
22 class WalletModelTransaction
23 {
24 public:
25     explicit WalletModelTransaction(const QList<SendCoinsRecipient> &recipients);
26 
27     QList<SendCoinsRecipient> getRecipients() const;
28 
29     CTransactionRef& getWtx();
30     unsigned int getTransactionSize();
31 
32     void setTransactionFee(const CAmount& newFee);
33     CAmount getTransactionFee() const;
34 
35     CAmount getTotalTransactionAmount() const;
36 
37     void reassignAmounts(int nChangePosRet); // needed for the subtract-fee-from-amount feature
38 
39 private:
40     QList<SendCoinsRecipient> recipients;
41     CTransactionRef wtx;
42     CAmount fee;
43 };
44 
45 #endif // BITCOIN_QT_WALLETMODELTRANSACTION_H
46