/
database.h
50 lines (39 loc) · 1.44 KB
/
database.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#pragma once
#include <QObject>
#include <QSqlDatabase>
#include "datamgr.h"
class DataBase : public QObject
{
public:
static DataBase* getInstance();
static void destroyInstance();
bool existUser();
bool savePassword(const QString& password);
bool checkPassword(const QString& password);
bool updatePassword(const QString& password);
bool checkNameExists(const QString& name);
bool checkPriKeyExists(const QString& prikey, QString* outname);
bool insertAccount(const QString& name, const QString& address, const QString& pubkey, const QString& prikey);
bool updateAccount(const QString& name, const QMap<QString, QString>& balances);
QString queryPrivateKey(const QString& name);
QString queryPublicKey(const QString& name);
CommonAccountInfo queryAccount(const QString& name);
QVector<CommonAccountInfo> queryAllAccount();
QVector<CurrencyInfo> queryCurrencyList();
bool updateCurrencyList(const QVector<CurrencyInfo>& currencyList);
bool abandonAccount(const QString& name);
bool deleteAbandonAccount(const QString& name);
QString queryFormerNameByAddress(const QString& address);
QVector<DelegateAccount>* queryDelegateAccountList();
bool saveDelegateAccount(const DelegateAccount& delegateAccount);
bool deleteDelegateAccount(int accountId);
private:
DataBase();
~DataBase();
bool createConnection();
bool initTables();
private:
static DataBase* _instance;
QSqlDatabase database;
std::string passwordSha512;
};