diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index a530be5dad..9cd7080347 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -735,7 +735,7 @@ void DomainServer::setupPendingAssignmentCredits() { const float CREDITS_PER_HOUR = 0.10f; const float CREDITS_PER_MSEC = CREDITS_PER_HOUR / (60 * 60 * 1000); - const int SATOSHIS_PER_MSEC = CREDITS_PER_MSEC * powf(10.0f, 8.0f); + const int SATOSHIS_PER_MSEC = CREDITS_PER_MSEC * SATOSHIS_PER_CREDIT; float pendingCredits = elapsedMsecsSinceLastPayment * SATOSHIS_PER_MSEC; @@ -884,10 +884,10 @@ QJsonObject DomainServer::jsonObjectForNode(const SharedNodePointer& node) { if (!nodeData->getWalletUUID().isNull()) { TransactionHash::iterator i = _pendingAssignmentCredits.find(nodeData->getWalletUUID()); - double pendingCreditAmount = 0; + float pendingCreditAmount = 0; while (i != _pendingAssignmentCredits.end() && i.key() == nodeData->getWalletUUID()) { - pendingCreditAmount += i.value()->getAmount(); + pendingCreditAmount += i.value()->getAmount() / (float) SATOSHIS_PER_CREDIT; ++i; } diff --git a/domain-server/src/WalletTransaction.cpp b/domain-server/src/WalletTransaction.cpp index 6ff57f063c..9c8226a908 100644 --- a/domain-server/src/WalletTransaction.cpp +++ b/domain-server/src/WalletTransaction.cpp @@ -18,13 +18,13 @@ WalletTransaction::WalletTransaction() : _uuid(), _destinationUUID(), - _amount(), + _amount(0), _isFinalized(false) { } -WalletTransaction::WalletTransaction(const QUuid& destinationUUID, double amount) : +WalletTransaction::WalletTransaction(const QUuid& destinationUUID, qint64 amount) : _uuid(QUuid::createUuid()), _destinationUUID(destinationUUID), _amount(amount), @@ -63,5 +63,5 @@ void WalletTransaction::loadFromJson(const QJsonObject& jsonObject) { _uuid = QUuid(transactionObject.value(TRANSACTION_ID_KEY).toString()); _destinationUUID = QUuid(transactionObject.value(TRANSACTION_DESTINATION_WALLET_ID_KEY).toString()); - _amount = transactionObject.value(TRANSACTION_AMOUNT_KEY).toDouble(); + _amount = transactionObject.value(TRANSACTION_AMOUNT_KEY).toInt(); } \ No newline at end of file diff --git a/domain-server/src/WalletTransaction.h b/domain-server/src/WalletTransaction.h index 8f36d10302..5e05f9f549 100644 --- a/domain-server/src/WalletTransaction.h +++ b/domain-server/src/WalletTransaction.h @@ -19,16 +19,16 @@ class WalletTransaction : public QObject { public: WalletTransaction(); - WalletTransaction(const QUuid& destinationUUID, double amount); + WalletTransaction(const QUuid& destinationUUID, qint64 amount); const QUuid& getUUID() const { return _uuid; } void setDestinationUUID(const QUuid& destinationUUID) { _destinationUUID = destinationUUID; } const QUuid& getDestinationUUID() const { return _destinationUUID; } - double getAmount() const { return _amount; } - void setAmount(double amount) { _amount = amount; } - void incrementAmount(double increment) { _amount += increment; } + qint64 getAmount() const { return _amount; } + void setAmount(qint64 amount) { _amount = amount; } + void incrementAmount(qint64 increment) { _amount += increment; } bool isFinalized() const { return _isFinalized; } void setIsFinalized(bool isFinalized) { _isFinalized = isFinalized; } @@ -39,7 +39,7 @@ public: private: QUuid _uuid; QUuid _destinationUUID; - double _amount; + qint64 _amount; bool _isFinalized; }; diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 1bf284a00f..83568998b6 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -3108,7 +3108,7 @@ void Application::updateWindowTitle(){ AccountManager& accountManager = AccountManager::getInstance(); if (accountManager.getAccountInfo().hasBalance()) { - float creditBalance = accountManager.getAccountInfo().getBalance() * pow(10.0f, -8.0f); + float creditBalance = accountManager.getAccountInfo().getBalance() / (float) SATOSHIS_PER_CREDIT; QString creditBalanceString; creditBalanceString.sprintf("%.8f", creditBalance); diff --git a/libraries/networking/src/AccountManager.cpp b/libraries/networking/src/AccountManager.cpp index 96292d7baf..7d27332a57 100644 --- a/libraries/networking/src/AccountManager.cpp +++ b/libraries/networking/src/AccountManager.cpp @@ -98,7 +98,7 @@ void AccountManager::updateBalance() { } } -void AccountManager::accountInfoBalanceChanged(quint64 newBalance) { +void AccountManager::accountInfoBalanceChanged(qint64 newBalance) { emit balanceChanged(newBalance); } diff --git a/libraries/networking/src/AccountManager.h b/libraries/networking/src/AccountManager.h index b761b50610..628b084ea8 100644 --- a/libraries/networking/src/AccountManager.h +++ b/libraries/networking/src/AccountManager.h @@ -64,7 +64,7 @@ public slots: void requestError(QNetworkReply::NetworkError error); void logout(); void updateBalance(); - void accountInfoBalanceChanged(quint64 newBalance); + void accountInfoBalanceChanged(qint64 newBalance); signals: void authRequired(); void authEndpointChanged(); @@ -73,7 +73,7 @@ signals: void loginComplete(const QUrl& authURL); void loginFailed(); void logoutComplete(); - void balanceChanged(quint64 newBalance); + void balanceChanged(qint64 newBalance); private slots: void processReply(); private: diff --git a/libraries/networking/src/DataServerAccountInfo.cpp b/libraries/networking/src/DataServerAccountInfo.cpp index b3607200fe..809f083e35 100644 --- a/libraries/networking/src/DataServerAccountInfo.cpp +++ b/libraries/networking/src/DataServerAccountInfo.cpp @@ -83,7 +83,7 @@ void DataServerAccountInfo::setDiscourseApiKey(const QString& discourseApiKey) { } } -void DataServerAccountInfo::setBalance(quint64 balance) { +void DataServerAccountInfo::setBalance(qint64 balance) { if (!_hasBalance || _balance != balance) { _balance = balance; _hasBalance = true; diff --git a/libraries/networking/src/DataServerAccountInfo.h b/libraries/networking/src/DataServerAccountInfo.h index 2777bec4be..f37e05ff63 100644 --- a/libraries/networking/src/DataServerAccountInfo.h +++ b/libraries/networking/src/DataServerAccountInfo.h @@ -16,6 +16,8 @@ #include "OAuthAccessToken.h" +const float SATOSHIS_PER_CREDIT = 10.0e8f; + class DataServerAccountInfo : public QObject { Q_OBJECT public: @@ -35,8 +37,8 @@ public: const QString& getDiscourseApiKey() const { return _discourseApiKey; } void setDiscourseApiKey(const QString& discourseApiKey); - quint64 getBalance() const { return _balance; } - void setBalance(quint64 balance); + qint64 getBalance() const { return _balance; } + void setBalance(qint64 balance); bool hasBalance() const { return _hasBalance; } void setHasBalance(bool hasBalance) { _hasBalance = hasBalance; } Q_INVOKABLE void setBalanceFromJSON(const QJsonObject& jsonObject); @@ -44,7 +46,7 @@ public: friend QDataStream& operator<<(QDataStream &out, const DataServerAccountInfo& info); friend QDataStream& operator>>(QDataStream &in, DataServerAccountInfo& info); signals: - quint64 balanceChanged(quint64 newBalance); + qint64 balanceChanged(qint64 newBalance); private: void swap(DataServerAccountInfo& otherInfo); @@ -52,7 +54,7 @@ private: QString _username; QString _xmppPassword; QString _discourseApiKey; - quint64 _balance; + qint64 _balance; bool _hasBalance; };