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