Hush full node GUI wallet
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

180 lines
5.1 KiB

// Copyright 2019-2022 The Hush developers
// Released under the GPLv3
6 years ago
#ifndef SETTINGS_H
#define SETTINGS_H
#include "precompiled.h"
6 years ago
struct Config {
6 years ago
QString host;
QString port;
QString rpcuser;
QString rpcpassword;
};
struct Explorer {
QString txExplorerUrl;
QString addressExplorerUrl;
QString onionTxExplorerUrl;
QString onionAddressExplorerUrl;
};
6 years ago
struct ToFields;
struct Tx;
struct PaymentURI {
QString addr;
QString amt;
QString memo;
// Any errors are stored here
QString error;
};
6 years ago
class Settings
{
public:
static Settings* init();
static Settings* getInstance();
6 years ago
Explorer getExplorer();
void saveExplorer(const QString& txExplorerUrl, const QString& addressExplorerUrl, const QString& onionTxExplorerUrl, const QString& onionAddressExplorerUrl);
6 years ago
Config getSettings();
void saveSettings(const QString& host, const QString& port, const QString& username, const QString& password);
bool isTestnet();
void setTestnet(bool isTestnet);
6 years ago
bool isSaplingAddress(QString addr);
bool isValidSaplingPrivateKey(QString pk);
bool isValidTransparentPrivateKey(QString pk);
6 years ago
bool isSyncing();
void setSyncing(bool syncing);
3 years ago
int getHushdVersion();
void setHushdVersion(int version);
6 years ago
void setUseEmbedded(bool r) { _useEmbedded = r; }
bool useEmbedded() { return _useEmbedded; }
void setHeadless(bool h) { _headless = h; }
bool isHeadless() { return _headless; }
6 years ago
int getBlockNumber();
void setBlockNumber(int number);
6 years ago
bool getSaveZtxs();
void setSaveZtxs(bool save);
bool getAutoShield();
void setAutoShield(bool allow);
6 years ago
bool getAllowCustomFees();
void setAllowCustomFees(bool allow);
bool getAllowFetchPrices();
void setAllowFetchPrices(bool allow);
bool getCheckForUpdates();
void setCheckForUpdates(bool allow);
6 years ago
bool isSaplingActive();
QString get_theme_name();
void set_theme_name(QString theme_name);
QString get_currency_name();
void set_currency_name(QString currency_name);
4 years ago
QString get_language();
void set_language(QString lang);
3 years ago
void setUsingHushConf(QString confLocation);
const QString& getHushdConfLocation() { return _confLocation; }
void setHUSHPrice(double p) { hushPrice = p; }
4 years ago
void set_fiat_price(double p) { fiat_price = p; }
void setBTCPrice(unsigned int p) { btcPrice = p; }
double getHUSHPrice();
4 years ago
double get_fiat_price();
unsigned int getBTCPrice();
double get_price(QString currency);
void set_price(QString currency, double price);
double get_volume(QString ticker);
void set_volume(QString curr, double volume);
double get_marketcap(QString curr);
void set_marketcap(QString curr, double marketcap);
void setPeers(int peers);
int getPeers();
6 years ago
// Static stuff
static const QString txidStatusMessage;
static void saveRestore(QDialog* d);
static void saveRestoreTableHeader(QTableView* table, QDialog* d, QString tablename) ;
6 years ago
static PaymentURI parseURI(QString paymentURI);
static QString paymentURIPretty(PaymentURI);
static bool isZAddress(QString addr);
static bool isTAddress(QString addr);
6 years ago
static QString getDecimalString(double amt);
static QString getUSDFormat(double bal);
4 years ago
static QString getDisplayFormat(double bal);
3 years ago
static QString getHUSHUSDDisplayFormat(double bal);
6 years ago
static QString getTokenName();
static QString getDonationAddr();
6 years ago
static double getMinerFee();
//TODO: this could be an advanced setting too
static int getMaxMobileAppTxns() { return 30; }
6 years ago
static bool isValidAddress(QString addr);
3 years ago
static bool addToHushConf(QString confLocation, QString line);
static bool removeFromHushConf(QString confLocation, QString option);
6 years ago
static const QString labelRegExp;
//TODO: add these as advanced options, with sane minimums
static const int updateSpeed = 10 * 1000; // 10 sec
static const int quickUpdateSpeed = 3 * 1000; // 3 sec
static const int priceRefreshSpeed = 15 * 60 * 1000; // 15 mins
6 years ago
protected:
// this event is called, when a new translator is loaded or the system language is changed
// void changeEvent(QEvent* event);
6 years ago
private:
// This class can only be accessed through Settings::getInstance()
Settings() = default;
~Settings() = default;
static Settings* instance;
6 years ago
QString _confLocation;
QString _executable;
6 years ago
bool _isTestnet = false;
bool _isSyncing = false;
int _blockNumber = 0;
int _hushdVersion = 0;
bool _useEmbedded = false;
bool _headless = false;
int _peerConnections = 0;
double hushPrice = 0.0;
4 years ago
double fiat_price = 0.0;
unsigned int btcPrice = 0;
std::map<QString, double> prices;
std::map<QString, double> volumes;
std::map<QString, double> marketcaps;
6 years ago
};
#endif // SETTINGS_H