X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fqt%2Fwalletmodel.h;h=3c1bcbc53999bb3d50301cdd880bb7cc8ac0d233;hb=43fa9dabffa5d022cc80c85219cbdd438f8e7ab6;hp=324d7f3cce11a396dd18dd8f8507c05ec1ddadc2;hpb=84a4a7763f386934da90e2bd1e355b70023fa9ca;p=novacoin.git diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h index 324d7f3..3c1bcbc 100644 --- a/src/qt/walletmodel.h +++ b/src/qt/walletmodel.h @@ -2,13 +2,22 @@ #define WALLETMODEL_H #include +#include +#include #include "allocators.h" /* for SecureString */ class OptionsModel; class AddressTableModel; class TransactionTableModel; +class MintingTableModel; class CWallet; +class CKeyID; +class CPubKey; +class COutput; +class COutPoint; +class uint256; +class CCoinControl; QT_BEGIN_NAMESPACE class QTimer; @@ -26,6 +35,7 @@ public: class WalletModel : public QObject { Q_OBJECT + public: explicit WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *parent = 0); ~WalletModel(); @@ -52,9 +62,11 @@ public: OptionsModel *getOptionsModel(); AddressTableModel *getAddressTableModel(); + MintingTableModel *getMintingTableModel(); TransactionTableModel *getTransactionTableModel(); qint64 getBalance() const; + qint64 getBalanceWatchOnly() const; qint64 getStake() const; qint64 getUnconfirmedBalance() const; qint64 getImmatureBalance() const; @@ -67,7 +79,7 @@ public: // Return status record for SendCoins, contains error id + information struct SendCoinsReturn { - SendCoinsReturn(StatusCode status, + SendCoinsReturn(StatusCode status=Aborted, qint64 fee=0, QString hex=QString()): status(status), fee(fee), hex(hex) {} @@ -77,7 +89,7 @@ public: }; // Send coins to a list of recipients - SendCoinsReturn sendCoins(const QList &recipients); + SendCoinsReturn sendCoins(const QList &recipients, const CCoinControl *coinControl=NULL); // Wallet encryption bool setWalletEncrypted(bool encrypted, const SecureString &passphrase); @@ -87,6 +99,12 @@ public: // Wallet backup bool backupWallet(const QString &filename); + bool dumpWallet(const QString &filename); + bool importWallet(const QString &filename); + + void getStakeStats(float &nKernelsRate, float &nCoinDaysRate); + void getStakeWeightFromValue(const qint64& nTime, const qint64& nValue, quint64& nWeight); + // RAI object for unlocking wallet, returned by requestUnlock() class UnlockContext { @@ -109,6 +127,16 @@ public: UnlockContext requestUnlock(); + bool getPubKey(const CKeyID &address, CPubKey& vchPubKeyOut) const; + void getOutputs(const std::vector& vOutpoints, std::vector& vOutputs); + void listCoins(std::map >& mapCoins) const; + bool isLockedCoin(uint256 hash, unsigned int n) const; + void lockCoin(COutPoint& output); + void unlockCoin(COutPoint& output); + void listLockedCoins(std::vector& vOutpts); + void clearOrphans(); + CWallet* getWallet(); + private: CWallet *wallet; @@ -117,6 +145,7 @@ private: OptionsModel *optionsModel; AddressTableModel *addressTableModel; + MintingTableModel *mintingTableModel; TransactionTableModel *transactionTableModel; // Cache some values to be able to detect changes @@ -134,9 +163,20 @@ private: void unsubscribeFromCoreSignals(); void checkBalanceChanged(); + +public slots: + /* Wallet status might have changed */ + void updateStatus(); + /* New transaction, or transaction changed status */ + void updateTransaction(const QString &hash, int status); + /* New, updated or removed address book entry */ + void updateAddressBook(const QString &address, const QString &label, bool isMine, int status); + /* Current, immature or unconfirmed balance might have changed - emit 'balanceChanged' if so */ + void pollBalanceChanged(); + signals: // Signal that balance in wallet changed - void balanceChanged(qint64 balance, qint64 stake, qint64 unconfirmedBalance, qint64 immatureBalance); + void balanceChanged(qint64 total, qint64 watchOnly, qint64 stake, qint64 unconfirmedBalance, qint64 immatureBalance); // Number of transactions in wallet changed void numTransactionsChanged(int count); @@ -151,16 +191,6 @@ signals: // Asynchronous error notification void error(const QString &title, const QString &message, bool modal); - -public slots: - /* Wallet status might have changed */ - void updateStatus(); - /* New transaction, or transaction changed status */ - void updateTransaction(const QString &hash, int status); - /* New, updated or removed address book entry */ - void updateAddressBook(const QString &address, const QString &label, bool isMine, int status); - /* Current, immature or unconfirmed balance might have changed - emit 'balanceChanged' if so */ - void pollBalanceChanged(); };