mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 09:57:26 +02:00
display hfc in "pennies"
This commit is contained in:
parent
84e13c84ae
commit
8fbdd207c8
3 changed files with 73 additions and 18 deletions
|
@ -89,8 +89,8 @@ Rectangle {
|
||||||
console.log("Failed to get balance", result.data.message);
|
console.log("Failed to get balance", result.data.message);
|
||||||
} else {
|
} else {
|
||||||
root.balanceReceived = true;
|
root.balanceReceived = true;
|
||||||
hfcBalanceText.text = (parseFloat(result.data.balance/100).toFixed(2)) + " HFC";
|
hfcBalanceText.text = result.data.balance + " HFC";
|
||||||
balanceAfterPurchase = parseFloat(result.data.balance/100) - root.itemPriceFull/100;
|
balanceAfterPurchase = result.data.balance - root.itemPriceFull;
|
||||||
root.setBuyText();
|
root.setBuyText();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -892,7 +892,7 @@ Rectangle {
|
||||||
itemNameText.text = message.params.itemName;
|
itemNameText.text = message.params.itemName;
|
||||||
itemAuthorText.text = message.params.itemAuthor;
|
itemAuthorText.text = message.params.itemAuthor;
|
||||||
root.itemPriceFull = message.params.itemPrice;
|
root.itemPriceFull = message.params.itemPrice;
|
||||||
itemPriceText.text = root.itemPriceFull === 0 ? "Free" : "<b>" + (parseFloat(root.itemPriceFull/100).toFixed(2)) + " HFC</b>";
|
itemPriceText.text = root.itemPriceFull === 0 ? "Free" : "<b>" + root.itemPriceFull + " HFC</b>";
|
||||||
itemHref = message.params.itemHref;
|
itemHref = message.params.itemHref;
|
||||||
if (itemHref.indexOf('.json') === -1) {
|
if (itemHref.indexOf('.json') === -1) {
|
||||||
root.itemIsJson = false;
|
root.itemIsJson = false;
|
||||||
|
|
|
@ -38,7 +38,7 @@ Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
onBalanceResult : {
|
onBalanceResult : {
|
||||||
balanceText.text = parseFloat(result.data.balance/100).toFixed(2);
|
balanceText.text = result.data.balance;
|
||||||
}
|
}
|
||||||
|
|
||||||
onHistoryResult : {
|
onHistoryResult : {
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
#include <QJsonArray>
|
#include <QJsonArray>
|
||||||
|
#include <QTimeZone>
|
||||||
#include <QJsonDocument>
|
#include <QJsonDocument>
|
||||||
#include "AccountManager.h"
|
#include "AccountManager.h"
|
||||||
#include "Wallet.h"
|
#include "Wallet.h"
|
||||||
|
@ -45,7 +46,6 @@ Handler(buy)
|
||||||
Handler(receiveAt)
|
Handler(receiveAt)
|
||||||
Handler(balance)
|
Handler(balance)
|
||||||
Handler(inventory)
|
Handler(inventory)
|
||||||
Handler(history)
|
|
||||||
|
|
||||||
void Ledger::send(const QString& endpoint, const QString& success, const QString& fail, QNetworkAccessManager::Operation method, QJsonObject request) {
|
void Ledger::send(const QString& endpoint, const QString& success, const QString& fail, QNetworkAccessManager::Operation method, QJsonObject request) {
|
||||||
auto accountManager = DependencyManager::get<AccountManager>();
|
auto accountManager = DependencyManager::get<AccountManager>();
|
||||||
|
@ -108,6 +108,61 @@ void Ledger::inventory(const QStringList& keys) {
|
||||||
keysQuery("inventory", "inventorySuccess", "inventoryFailure");
|
keysQuery("inventory", "inventorySuccess", "inventoryFailure");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString nameFromKey(const QString& key, const QStringList& publicKeys) {
|
||||||
|
if (key.isNull() || key.isEmpty()) {
|
||||||
|
return "<b>Marketplace</b>";
|
||||||
|
}
|
||||||
|
if (publicKeys.contains(key)) {
|
||||||
|
return "You";
|
||||||
|
}
|
||||||
|
return "<b>Someone</b>";
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ledger::historySuccess(QNetworkReply& reply) {
|
||||||
|
// here we send a historyResult with some extra stuff in it
|
||||||
|
// Namely, the styled text we'd like to show. The issue is the
|
||||||
|
// QML cannot do that easily since it doesn't know what the wallet
|
||||||
|
// public key(s) are. Let's keep it that way
|
||||||
|
QByteArray response = reply.readAll();
|
||||||
|
QJsonObject data = QJsonDocument::fromJson(response).object();
|
||||||
|
|
||||||
|
// we will need the array of public keys from the wallet
|
||||||
|
auto wallet = DependencyManager::get<Wallet>();
|
||||||
|
auto keys = wallet->listPublicKeys();
|
||||||
|
|
||||||
|
// now we need to loop through the transactions and add fancy text...
|
||||||
|
auto historyArray = data.find("data").value().toObject().find("history").value().toArray();
|
||||||
|
QJsonArray newHistoryArray;
|
||||||
|
|
||||||
|
// TODO: do this with 0 copies if possible
|
||||||
|
auto it = historyArray.begin();
|
||||||
|
for(auto it = historyArray.begin(); it != historyArray.end(); it++) {
|
||||||
|
auto valueObject = (*it).toObject();
|
||||||
|
QString from = nameFromKey(valueObject["sender_key"].toString(), keys);
|
||||||
|
QString to = nameFromKey(valueObject["recipient_key"].toString(), keys);
|
||||||
|
// turns out on my machine, toLocalTime convert to some weird timezone, yet the
|
||||||
|
// systemTimeZone is correct. To avoid a strange bug with other's systems too, lets
|
||||||
|
// be explicit
|
||||||
|
QDateTime createdAt = QDateTime::fromSecsSinceEpoch(valueObject["created_at"].toInt(), Qt::UTC);
|
||||||
|
QDateTime localCreatedAt = createdAt.toTimeZone(QTimeZone::systemTimeZone());
|
||||||
|
valueObject["text"] = QString("%1 sent %2 <b>%3 %4</b> on %5 with message \"%6\"").
|
||||||
|
arg(from, to, QString::number(valueObject["quantity"].toInt()), valueObject["asset_title"].toString(), localCreatedAt.toString(Qt::SystemLocaleShortDate), valueObject["message"].toString());
|
||||||
|
newHistoryArray.push_back(valueObject);
|
||||||
|
}
|
||||||
|
// now copy the rest of the json -- this is inefficient
|
||||||
|
// TODO: try to do this without making copies
|
||||||
|
QJsonObject newData;
|
||||||
|
newData["status"] = "success";
|
||||||
|
QJsonObject newDataData;
|
||||||
|
newDataData["history"] = newHistoryArray;
|
||||||
|
newData["data"] = newDataData;
|
||||||
|
emit historyResult(newData);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ledger::historyFailure(QNetworkReply& reply) {
|
||||||
|
failResponse("history", reply);
|
||||||
|
}
|
||||||
|
|
||||||
void Ledger::history(const QStringList& keys) {
|
void Ledger::history(const QStringList& keys) {
|
||||||
keysQuery("history", "historySuccess", "historyFailure");
|
keysQuery("history", "historySuccess", "historyFailure");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue