walletmodeltransaction.h 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 #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 <consensus/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 void setWtx(const CTransactionRef&);
31
32 unsigned int getTransactionSize();
33
34 void setTransactionFee(const CAmount& newFee);
35 CAmount getTransactionFee() const;
36
37 CAmount getTotalTransactionAmount() const;
38
39 void reassignAmounts(int nChangePosRet); // needed for the subtract-fee-from-amount feature
40
41 private:
42 QList<SendCoinsRecipient> recipients;
43 CTransactionRef wtx;
44 CAmount fee{0};
45 };
46
47 #endif // BITCOIN_QT_WALLETMODELTRANSACTION_H
48