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