Line data Source code
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 0 : 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