call supply every 15 min
This commit is contained in:
@@ -32,6 +32,9 @@ Controller::Controller(MainWindow* main)
|
|||||||
balancesTableModel = new BalancesTableModel(main->ui->balancesTable);
|
balancesTableModel = new BalancesTableModel(main->ui->balancesTable);
|
||||||
main->ui->balancesTable->setModel(balancesTableModel);
|
main->ui->balancesTable->setModel(balancesTableModel);
|
||||||
|
|
||||||
|
// Call the supply once
|
||||||
|
// supplyUpdate();
|
||||||
|
|
||||||
// Setup transactions table model
|
// Setup transactions table model
|
||||||
transactionsTableModel = new TxTableModel(ui->transactionsTable);
|
transactionsTableModel = new TxTableModel(ui->transactionsTable);
|
||||||
main->ui->transactionsTable->setModel(transactionsTableModel);
|
main->ui->transactionsTable->setModel(transactionsTableModel);
|
||||||
@@ -52,6 +55,13 @@ Controller::Controller(MainWindow* main)
|
|||||||
});
|
});
|
||||||
timer->start(Settings::updateSpeed);
|
timer->start(Settings::updateSpeed);
|
||||||
|
|
||||||
|
// Set up to fetch supply
|
||||||
|
timer = new QTimer(main);
|
||||||
|
QObject::connect(timer, &QTimer::timeout, [=]() {
|
||||||
|
supplyUpdate();
|
||||||
|
});
|
||||||
|
timer->start(Settings::priceRefreshSpeed);
|
||||||
|
|
||||||
// Create the data model
|
// Create the data model
|
||||||
model = new DataModel();
|
model = new DataModel();
|
||||||
|
|
||||||
@@ -81,6 +91,7 @@ void Controller::setConnection(Connection* c)
|
|||||||
// If we're allowed to get the Hush Price, get the prices
|
// If we're allowed to get the Hush Price, get the prices
|
||||||
if (Settings::getInstance()->getAllowFetchPrices())
|
if (Settings::getInstance()->getAllowFetchPrices())
|
||||||
refreshZECPrice();
|
refreshZECPrice();
|
||||||
|
supplyUpdate();
|
||||||
|
|
||||||
// If we're allowed to check for updates, check for a new release
|
// If we're allowed to check for updates, check for a new release
|
||||||
if (Settings::getInstance()->getCheckForUpdates())
|
if (Settings::getInstance()->getCheckForUpdates())
|
||||||
@@ -577,29 +588,7 @@ void Controller::getInfoThenRefresh(bool force)
|
|||||||
bool isLocked = reply["locked"].get<json::boolean_t>();
|
bool isLocked = reply["locked"].get<json::boolean_t>();
|
||||||
model->setEncryptionStatus(isEncrypted, isLocked);
|
model->setEncryptionStatus(isEncrypted, isLocked);
|
||||||
});
|
});
|
||||||
// Get the total supply and render it with thousand decimal
|
|
||||||
zrpc->fetchSupply([=] (const json& reply) {
|
|
||||||
int supply = reply["supply"].get<json::number_integer_t>();
|
|
||||||
int zfunds = reply["zfunds"].get<json::number_integer_t>();
|
|
||||||
int total = reply["total"].get<json::number_integer_t>();;
|
|
||||||
if (
|
|
||||||
Settings::getInstance()->get_currency_name() == "EUR" ||
|
|
||||||
Settings::getInstance()->get_currency_name() == "CHF" ||
|
|
||||||
Settings::getInstance()->get_currency_name() == "RUB"
|
|
||||||
)
|
|
||||||
{
|
|
||||||
ui->supply_taddr->setText((QLocale(QLocale::German).toString(supply)+ " Hush"));
|
|
||||||
ui->supply_zaddr->setText((QLocale(QLocale::German).toString(zfunds)+ " Hush"));
|
|
||||||
ui->supply_total->setText((QLocale(QLocale::German).toString(total)+ " Hush"));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ui->supply_taddr->setText("Hush " + (QLocale(QLocale::English).toString(supply)));
|
|
||||||
ui->supply_zaddr->setText("Hush " +(QLocale(QLocale::English).toString(zfunds)));
|
|
||||||
ui->supply_total->setText("Hush " +(QLocale(QLocale::English).toString(total)));
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
if ( doUpdate )
|
if ( doUpdate )
|
||||||
{
|
{
|
||||||
@@ -692,6 +681,36 @@ void Controller::updateUI(bool anyUnconfirmed)
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void Controller::supplyUpdate() {
|
||||||
|
|
||||||
|
qDebug()<<"Supply";
|
||||||
|
|
||||||
|
// Get the total supply and render it with thousand decimal
|
||||||
|
zrpc->fetchSupply([=] (const json& reply) {
|
||||||
|
int supply = reply["supply"].get<json::number_integer_t>();
|
||||||
|
int zfunds = reply["zfunds"].get<json::number_integer_t>();
|
||||||
|
int total = reply["total"].get<json::number_integer_t>();;
|
||||||
|
if (
|
||||||
|
Settings::getInstance()->get_currency_name() == "EUR" ||
|
||||||
|
Settings::getInstance()->get_currency_name() == "CHF" ||
|
||||||
|
Settings::getInstance()->get_currency_name() == "RUB"
|
||||||
|
)
|
||||||
|
{
|
||||||
|
ui->supply_taddr->setText((QLocale(QLocale::German).toString(supply)+ " Hush"));
|
||||||
|
ui->supply_zaddr->setText((QLocale(QLocale::German).toString(zfunds)+ " Hush"));
|
||||||
|
ui->supply_total->setText((QLocale(QLocale::German).toString(total)+ " Hush"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ui->supply_taddr->setText("Hush " + (QLocale(QLocale::English).toString(supply)));
|
||||||
|
ui->supply_zaddr->setText("Hush " +(QLocale(QLocale::English).toString(zfunds)));
|
||||||
|
ui->supply_total->setText("Hush " +(QLocale(QLocale::English).toString(total)));
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Function to process reply of the listunspent and z_listunspent API calls, used below.
|
// Function to process reply of the listunspent and z_listunspent API calls, used below.
|
||||||
void Controller::processUnspent(const json& reply, QMap<QString, CAmount>* balancesMap, QList<UnspentOutput>* unspentOutputs) {
|
void Controller::processUnspent(const json& reply, QMap<QString, CAmount>* balancesMap, QList<UnspentOutput>* unspentOutputs) {
|
||||||
auto processFn = [=](const json& array) {
|
auto processFn = [=](const json& array) {
|
||||||
@@ -727,6 +746,7 @@ void Controller::updateUIBalances()
|
|||||||
CAmount balT = getModel()->getBalT();
|
CAmount balT = getModel()->getBalT();
|
||||||
CAmount balZ = getModel()->getBalZ();
|
CAmount balZ = getModel()->getBalZ();
|
||||||
CAmount balVerified = getModel()->getBalVerified();
|
CAmount balVerified = getModel()->getBalVerified();
|
||||||
|
CAmount balSpendable = getModel()->getBalSpendable();
|
||||||
|
|
||||||
// Reduce the BalanceZ by the pending outgoing amount. We're adding
|
// Reduce the BalanceZ by the pending outgoing amount. We're adding
|
||||||
// here because totalPending is already negative for outgoing txns.
|
// here because totalPending is already negative for outgoing txns.
|
||||||
@@ -743,6 +763,7 @@ void Controller::updateUIBalances()
|
|||||||
ui->balSheilded->setText(balZ.toDecimalhushString());
|
ui->balSheilded->setText(balZ.toDecimalhushString());
|
||||||
ui->balVerified->setText(balVerified.toDecimalhushString());
|
ui->balVerified->setText(balVerified.toDecimalhushString());
|
||||||
ui->balTransparent->setText(balT.toDecimalhushString());
|
ui->balTransparent->setText(balT.toDecimalhushString());
|
||||||
|
ui->balSpendable->setText(balSpendable.toDecimalhushString());
|
||||||
ui->balTotal->setText(balTotal.toDecimalhushString());
|
ui->balTotal->setText(balTotal.toDecimalhushString());
|
||||||
|
|
||||||
if (Settings::getInstance()->get_currency_name() == "USD")
|
if (Settings::getInstance()->get_currency_name() == "USD")
|
||||||
@@ -879,10 +900,12 @@ void Controller::refreshBalances()
|
|||||||
CAmount balT = CAmount::fromqint64(reply["tbalance"].get<json::number_unsigned_t>());
|
CAmount balT = CAmount::fromqint64(reply["tbalance"].get<json::number_unsigned_t>());
|
||||||
CAmount balZ = CAmount::fromqint64(reply["zbalance"].get<json::number_unsigned_t>());
|
CAmount balZ = CAmount::fromqint64(reply["zbalance"].get<json::number_unsigned_t>());
|
||||||
CAmount balVerified = CAmount::fromqint64(reply["verified_zbalance"].get<json::number_unsigned_t>());
|
CAmount balVerified = CAmount::fromqint64(reply["verified_zbalance"].get<json::number_unsigned_t>());
|
||||||
|
CAmount balSpendable = CAmount::fromqint64(reply["spendable_zbalance"].get<json::number_unsigned_t>());
|
||||||
|
|
||||||
model->setBalT(balT);
|
model->setBalT(balT);
|
||||||
model->setBalZ(balZ);
|
model->setBalZ(balZ);
|
||||||
model->setBalVerified(balVerified);
|
model->setBalVerified(balVerified);
|
||||||
|
model->setBalSpendable(balSpendable);
|
||||||
|
|
||||||
// This is for the websockets
|
// This is for the websockets
|
||||||
AppDataModel::getInstance()->setBalances(balT, balZ);
|
AppDataModel::getInstance()->setBalances(balT, balZ);
|
||||||
|
|||||||
@@ -108,6 +108,8 @@ public:
|
|||||||
|
|
||||||
void saveWallet(const std::function<void(json)>& cb) { zrpc->saveWallet(cb); }
|
void saveWallet(const std::function<void(json)>& cb) { zrpc->saveWallet(cb); }
|
||||||
|
|
||||||
|
void supplyUpdate();
|
||||||
|
|
||||||
void clearWallet(const std::function<void(json)>& cb) { zrpc->clearWallet(cb); }
|
void clearWallet(const std::function<void(json)>& cb) { zrpc->clearWallet(cb); }
|
||||||
|
|
||||||
void shield(const std::function<void(json)>& cb) { zrpc->shield(cb); }
|
void shield(const std::function<void(json)>& cb) { zrpc->shield(cb); }
|
||||||
|
|||||||
@@ -49,6 +49,9 @@ public:
|
|||||||
CAmount getBalVerified() { QReadLocker locker(lock); return balVerified; }
|
CAmount getBalVerified() { QReadLocker locker(lock); return balVerified; }
|
||||||
void setBalVerified(CAmount a) { QReadLocker locker(lock); this->balVerified = a; }
|
void setBalVerified(CAmount a) { QReadLocker locker(lock); this->balVerified = a; }
|
||||||
|
|
||||||
|
CAmount getBalSpendable() { QReadLocker locker(lock); return balSpendable; }
|
||||||
|
void setBalSpendable(CAmount a) { QReadLocker locker(lock); this->balSpendable = a; }
|
||||||
|
|
||||||
CAmount getTotalPending() { QReadLocker locker(lock); return totalPending; }
|
CAmount getTotalPending() { QReadLocker locker(lock); return totalPending; }
|
||||||
void setTotalPending(CAmount a) { QReadLocker locker(lock); this->totalPending = a; }
|
void setTotalPending(CAmount a) { QReadLocker locker(lock); this->totalPending = a; }
|
||||||
|
|
||||||
@@ -72,6 +75,7 @@ private:
|
|||||||
CAmount balT;
|
CAmount balT;
|
||||||
CAmount balZ;
|
CAmount balZ;
|
||||||
CAmount balVerified;
|
CAmount balVerified;
|
||||||
|
CAmount balSpendable;
|
||||||
|
|
||||||
QReadWriteLock* lock;
|
QReadWriteLock* lock;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
<item row="0" column="0" colspan="2">
|
<item row="0" column="0" colspan="2">
|
||||||
<widget class="QTabWidget" name="tabWidget">
|
<widget class="QTabWidget" name="tabWidget">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>0</number>
|
<number>1</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="tab_6">
|
<widget class="QWidget" name="tab_6">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
@@ -666,13 +666,40 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="3" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_20">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_40">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Spendable</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="balSpendable">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
<widget class="Line" name="line">
|
<widget class="Line" name="line">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="0">
|
<item row="5" column="0">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_3">
|
<widget class="QLabel" name="label_3">
|
||||||
@@ -711,7 +738,7 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="0">
|
<item row="6" column="0">
|
||||||
<widget class="QLabel" name="lblSyncWarning">
|
<widget class="QLabel" name="lblSyncWarning">
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">color:red;</string>
|
<string notr="true">color:red;</string>
|
||||||
@@ -724,7 +751,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="0">
|
<item row="7" column="0">
|
||||||
<widget class="QLabel" name="unconfirmedWarning">
|
<widget class="QLabel" name="unconfirmedWarning">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
@@ -743,14 +770,14 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="7" column="0">
|
<item row="8" column="0">
|
||||||
<widget class="QPushButton" name="depositHushButton">
|
<widget class="QPushButton" name="depositHushButton">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Deposit Hush</string>
|
<string>Deposit Hush</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="8" column="0">
|
<item row="9" column="0">
|
||||||
<spacer name="verticalSpacer">
|
<spacer name="verticalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
|
|||||||
Reference in New Issue
Block a user