Show unconfirmed balance on overview page
[novacoin.git] / src / qt / walletmodel.h
1 #ifndef WALLETMODEL_H
2 #define WALLETMODEL_H
3
4 #include <QObject>
5
6 class OptionsModel;
7 class AddressTableModel;
8 class TransactionTableModel;
9 class CWallet;
10
11 // Interface to a Bitcoin wallet
12 class WalletModel : public QObject
13 {
14     Q_OBJECT
15 public:
16     explicit WalletModel(CWallet *wallet, QObject *parent = 0);
17
18     enum StatusCode
19     {
20         OK,
21         InvalidAmount,
22         InvalidAddress,
23         AmountExceedsBalance,
24         AmountWithFeeExceedsBalance,
25         Aborted,
26         MiscError
27     };
28
29     OptionsModel *getOptionsModel();
30     AddressTableModel *getAddressTableModel();
31     TransactionTableModel *getTransactionTableModel();
32
33     qint64 getBalance() const;
34     qint64 getUnconfirmedBalance() const;
35     int getNumTransactions() const;
36
37     /* Send coins */
38     StatusCode sendCoins(const QString &payTo, qint64 payAmount, const QString &addToAddressBookAs=QString());
39 private:
40     CWallet *wallet;
41
42     // Wallet has an options model for wallet-specific options
43     // (transaction fee, for example)
44     OptionsModel *optionsModel;
45
46     AddressTableModel *addressTableModel;
47     TransactionTableModel *transactionTableModel;
48
49 signals:
50     void balanceChanged(qint64 balance);
51     void numTransactionsChanged(int count);
52
53     // Asynchronous error notification
54     void error(const QString &title, const QString &message);
55
56 public slots:
57
58 private slots:
59     void update();
60 };
61
62
63 #endif // WALLETMODEL_H