7 class AddressTableModel;
8 class TransactionTableModel;
16 /** Model for Bitcoin network client. */
17 class ClientModel : public QObject
21 explicit ClientModel(OptionsModel *optionsModel, QObject *parent = 0);
24 OptionsModel *getOptionsModel();
26 double getPoSKernelPS();
27 double getDifficulty(bool fProofofStake);
29 int getNumConnections() const;
30 int getNumBlocks() const;
31 int getNumBlocksAtStartup();
33 quint64 getTotalBytesRecv() const;
34 quint64 getTotalBytesSent() const;
36 QDateTime getLastBlockDate() const;
38 //! Return true if client connected to testnet
39 bool isTestNet() const;
40 //! Return true if core is doing initial block download
41 bool inInitialBlockDownload() const;
42 //! Return conservative estimate of total number of blocks, or 0 if unknown
43 int getNumBlocksOfPeers() const;
44 //! Return warnings to be displayed in status bar
45 QString getStatusBarWarnings() const;
47 QString formatFullVersion() const;
48 QString formatBuildDate() const;
49 QString clientName() const;
50 QString formatClientStartupTime() const;
53 OptionsModel *optionsModel;
56 int cachedNumBlocksOfPeers;
58 int numBlocksAtStartup;
62 void subscribeToCoreSignals();
63 void unsubscribeFromCoreSignals();
65 void numConnectionsChanged(int count);
66 void numBlocksChanged(int count, int countOfPeers);
67 void bytesChanged(quint64 totalBytesIn, quint64 totalBytesOut);
69 //! Asynchronous error notification
70 void error(const QString &title, const QString &message, bool modal);
74 void updateNumConnections(int numConnections);
75 void updateAlert(const QString &hash, int status);
78 #endif // CLIENTMODEL_H