mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 15:09:24 +02:00
Merge pull request #2916 from birarda/master
make transaction amounts and balances signed 64-bit
This commit is contained in:
commit
4f8b2819d2
8 changed files with 22 additions and 20 deletions
|
@ -735,7 +735,7 @@ void DomainServer::setupPendingAssignmentCredits() {
|
||||||
|
|
||||||
const float CREDITS_PER_HOUR = 0.10f;
|
const float CREDITS_PER_HOUR = 0.10f;
|
||||||
const float CREDITS_PER_MSEC = CREDITS_PER_HOUR / (60 * 60 * 1000);
|
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;
|
float pendingCredits = elapsedMsecsSinceLastPayment * SATOSHIS_PER_MSEC;
|
||||||
|
|
||||||
|
@ -884,10 +884,10 @@ QJsonObject DomainServer::jsonObjectForNode(const SharedNodePointer& node) {
|
||||||
|
|
||||||
if (!nodeData->getWalletUUID().isNull()) {
|
if (!nodeData->getWalletUUID().isNull()) {
|
||||||
TransactionHash::iterator i = _pendingAssignmentCredits.find(nodeData->getWalletUUID());
|
TransactionHash::iterator i = _pendingAssignmentCredits.find(nodeData->getWalletUUID());
|
||||||
double pendingCreditAmount = 0;
|
float pendingCreditAmount = 0;
|
||||||
|
|
||||||
while (i != _pendingAssignmentCredits.end() && i.key() == nodeData->getWalletUUID()) {
|
while (i != _pendingAssignmentCredits.end() && i.key() == nodeData->getWalletUUID()) {
|
||||||
pendingCreditAmount += i.value()->getAmount();
|
pendingCreditAmount += i.value()->getAmount() / (float) SATOSHIS_PER_CREDIT;
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,13 +18,13 @@
|
||||||
WalletTransaction::WalletTransaction() :
|
WalletTransaction::WalletTransaction() :
|
||||||
_uuid(),
|
_uuid(),
|
||||||
_destinationUUID(),
|
_destinationUUID(),
|
||||||
_amount(),
|
_amount(0),
|
||||||
_isFinalized(false)
|
_isFinalized(false)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WalletTransaction::WalletTransaction(const QUuid& destinationUUID, double amount) :
|
WalletTransaction::WalletTransaction(const QUuid& destinationUUID, qint64 amount) :
|
||||||
_uuid(QUuid::createUuid()),
|
_uuid(QUuid::createUuid()),
|
||||||
_destinationUUID(destinationUUID),
|
_destinationUUID(destinationUUID),
|
||||||
_amount(amount),
|
_amount(amount),
|
||||||
|
@ -63,5 +63,5 @@ void WalletTransaction::loadFromJson(const QJsonObject& jsonObject) {
|
||||||
|
|
||||||
_uuid = QUuid(transactionObject.value(TRANSACTION_ID_KEY).toString());
|
_uuid = QUuid(transactionObject.value(TRANSACTION_ID_KEY).toString());
|
||||||
_destinationUUID = QUuid(transactionObject.value(TRANSACTION_DESTINATION_WALLET_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();
|
||||||
}
|
}
|
|
@ -19,16 +19,16 @@
|
||||||
class WalletTransaction : public QObject {
|
class WalletTransaction : public QObject {
|
||||||
public:
|
public:
|
||||||
WalletTransaction();
|
WalletTransaction();
|
||||||
WalletTransaction(const QUuid& destinationUUID, double amount);
|
WalletTransaction(const QUuid& destinationUUID, qint64 amount);
|
||||||
|
|
||||||
const QUuid& getUUID() const { return _uuid; }
|
const QUuid& getUUID() const { return _uuid; }
|
||||||
|
|
||||||
void setDestinationUUID(const QUuid& destinationUUID) { _destinationUUID = destinationUUID; }
|
void setDestinationUUID(const QUuid& destinationUUID) { _destinationUUID = destinationUUID; }
|
||||||
const QUuid& getDestinationUUID() const { return _destinationUUID; }
|
const QUuid& getDestinationUUID() const { return _destinationUUID; }
|
||||||
|
|
||||||
double getAmount() const { return _amount; }
|
qint64 getAmount() const { return _amount; }
|
||||||
void setAmount(double amount) { _amount = amount; }
|
void setAmount(qint64 amount) { _amount = amount; }
|
||||||
void incrementAmount(double increment) { _amount += increment; }
|
void incrementAmount(qint64 increment) { _amount += increment; }
|
||||||
|
|
||||||
bool isFinalized() const { return _isFinalized; }
|
bool isFinalized() const { return _isFinalized; }
|
||||||
void setIsFinalized(bool isFinalized) { _isFinalized = isFinalized; }
|
void setIsFinalized(bool isFinalized) { _isFinalized = isFinalized; }
|
||||||
|
@ -39,7 +39,7 @@ public:
|
||||||
private:
|
private:
|
||||||
QUuid _uuid;
|
QUuid _uuid;
|
||||||
QUuid _destinationUUID;
|
QUuid _destinationUUID;
|
||||||
double _amount;
|
qint64 _amount;
|
||||||
bool _isFinalized;
|
bool _isFinalized;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -3108,7 +3108,7 @@ void Application::updateWindowTitle(){
|
||||||
|
|
||||||
AccountManager& accountManager = AccountManager::getInstance();
|
AccountManager& accountManager = AccountManager::getInstance();
|
||||||
if (accountManager.getAccountInfo().hasBalance()) {
|
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;
|
QString creditBalanceString;
|
||||||
creditBalanceString.sprintf("%.8f", creditBalance);
|
creditBalanceString.sprintf("%.8f", creditBalance);
|
||||||
|
|
|
@ -98,7 +98,7 @@ void AccountManager::updateBalance() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccountManager::accountInfoBalanceChanged(quint64 newBalance) {
|
void AccountManager::accountInfoBalanceChanged(qint64 newBalance) {
|
||||||
emit balanceChanged(newBalance);
|
emit balanceChanged(newBalance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ public slots:
|
||||||
void requestError(QNetworkReply::NetworkError error);
|
void requestError(QNetworkReply::NetworkError error);
|
||||||
void logout();
|
void logout();
|
||||||
void updateBalance();
|
void updateBalance();
|
||||||
void accountInfoBalanceChanged(quint64 newBalance);
|
void accountInfoBalanceChanged(qint64 newBalance);
|
||||||
signals:
|
signals:
|
||||||
void authRequired();
|
void authRequired();
|
||||||
void authEndpointChanged();
|
void authEndpointChanged();
|
||||||
|
@ -73,7 +73,7 @@ signals:
|
||||||
void loginComplete(const QUrl& authURL);
|
void loginComplete(const QUrl& authURL);
|
||||||
void loginFailed();
|
void loginFailed();
|
||||||
void logoutComplete();
|
void logoutComplete();
|
||||||
void balanceChanged(quint64 newBalance);
|
void balanceChanged(qint64 newBalance);
|
||||||
private slots:
|
private slots:
|
||||||
void processReply();
|
void processReply();
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -83,7 +83,7 @@ void DataServerAccountInfo::setDiscourseApiKey(const QString& discourseApiKey) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DataServerAccountInfo::setBalance(quint64 balance) {
|
void DataServerAccountInfo::setBalance(qint64 balance) {
|
||||||
if (!_hasBalance || _balance != balance) {
|
if (!_hasBalance || _balance != balance) {
|
||||||
_balance = balance;
|
_balance = balance;
|
||||||
_hasBalance = true;
|
_hasBalance = true;
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
#include "OAuthAccessToken.h"
|
#include "OAuthAccessToken.h"
|
||||||
|
|
||||||
|
const float SATOSHIS_PER_CREDIT = 10.0e8f;
|
||||||
|
|
||||||
class DataServerAccountInfo : public QObject {
|
class DataServerAccountInfo : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
|
@ -35,8 +37,8 @@ public:
|
||||||
const QString& getDiscourseApiKey() const { return _discourseApiKey; }
|
const QString& getDiscourseApiKey() const { return _discourseApiKey; }
|
||||||
void setDiscourseApiKey(const QString& discourseApiKey);
|
void setDiscourseApiKey(const QString& discourseApiKey);
|
||||||
|
|
||||||
quint64 getBalance() const { return _balance; }
|
qint64 getBalance() const { return _balance; }
|
||||||
void setBalance(quint64 balance);
|
void setBalance(qint64 balance);
|
||||||
bool hasBalance() const { return _hasBalance; }
|
bool hasBalance() const { return _hasBalance; }
|
||||||
void setHasBalance(bool hasBalance) { _hasBalance = hasBalance; }
|
void setHasBalance(bool hasBalance) { _hasBalance = hasBalance; }
|
||||||
Q_INVOKABLE void setBalanceFromJSON(const QJsonObject& jsonObject);
|
Q_INVOKABLE void setBalanceFromJSON(const QJsonObject& jsonObject);
|
||||||
|
@ -44,7 +46,7 @@ public:
|
||||||
friend QDataStream& operator<<(QDataStream &out, const DataServerAccountInfo& info);
|
friend QDataStream& operator<<(QDataStream &out, const DataServerAccountInfo& info);
|
||||||
friend QDataStream& operator>>(QDataStream &in, DataServerAccountInfo& info);
|
friend QDataStream& operator>>(QDataStream &in, DataServerAccountInfo& info);
|
||||||
signals:
|
signals:
|
||||||
quint64 balanceChanged(quint64 newBalance);
|
qint64 balanceChanged(qint64 newBalance);
|
||||||
private:
|
private:
|
||||||
void swap(DataServerAccountInfo& otherInfo);
|
void swap(DataServerAccountInfo& otherInfo);
|
||||||
|
|
||||||
|
@ -52,7 +54,7 @@ private:
|
||||||
QString _username;
|
QString _username;
|
||||||
QString _xmppPassword;
|
QString _xmppPassword;
|
||||||
QString _discourseApiKey;
|
QString _discourseApiKey;
|
||||||
quint64 _balance;
|
qint64 _balance;
|
||||||
bool _hasBalance;
|
bool _hasBalance;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue