From 3a160c1136af88303d4997590385f0290ba58daf Mon Sep 17 00:00:00 2001 From: fekt Date: Sat, 30 Mar 2024 21:13:22 -0400 Subject: [PATCH] Add DRGX market data --- src/rpc.cpp | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/src/rpc.cpp b/src/rpc.cpp index 06d3fc6..1c648c7 100644 --- a/src/rpc.cpp +++ b/src/rpc.cpp @@ -1573,8 +1573,13 @@ void RPC::refreshPrice() { if (conn == nullptr) return noConnection(); + QString price_feed; + + // TODO: Make price_feed dynamic to support HACs if (isdragonx) { - return; + price_feed = "https://api.coingecko.com/api/v3/simple/price?ids=dragonx-2&vs_currencies=btc%2Cusd%2Ceur%2Ceth%2Cgbp%2Ccny%2Cjpy%2Cidr%2Crub%2Ccad%2Csgd%2Cchf%2Cinr%2Caud%2Cinr%2Ckrw%2Cthb%2Cnzd%2Czar%2Cvef%2Cxau%2Cxag%2Cvnd%2Csar%2Ctwd%2Caed%2Cars%2Cbdt%2Cbhd%2Cbmd%2Cbrl%2Cclp%2Cczk%2Cdkk%2Chuf%2Cils%2Ckwd%2Clkr%2Cpkr%2Cnok%2Ctry%2Csek%2Cmxn%2Cuah%2Chkd&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true"; + } else { + price_feed = "https://api.coingecko.com/api/v3/simple/price?ids=hush&vs_currencies=btc%2Cusd%2Ceur%2Ceth%2Cgbp%2Ccny%2Cjpy%2Cidr%2Crub%2Ccad%2Csgd%2Cchf%2Cinr%2Caud%2Cinr%2Ckrw%2Cthb%2Cnzd%2Czar%2Cvef%2Cxau%2Cxag%2Cvnd%2Csar%2Ctwd%2Caed%2Cars%2Cbdt%2Cbhd%2Cbmd%2Cbrl%2Cclp%2Cczk%2Cdkk%2Chuf%2Cils%2Ckwd%2Clkr%2Cpkr%2Cnok%2Ctry%2Csek%2Cmxn%2Cuah%2Chkd&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true"; } auto s = Settings::getInstance(); @@ -1584,7 +1589,6 @@ void RPC::refreshPrice() { return; } - QString price_feed = "https://api.coingecko.com/api/v3/simple/price?ids=hush&vs_currencies=btc%2Cusd%2Ceur%2Ceth%2Cgbp%2Ccny%2Cjpy%2Cidr%2Crub%2Ccad%2Csgd%2Cchf%2Cinr%2Caud%2Cinr%2Ckrw%2Cthb%2Cnzd%2Czar%2Cvef%2Cxau%2Cxag%2Cvnd%2Csar%2Ctwd%2Caed%2Cars%2Cbdt%2Cbhd%2Cbmd%2Cbrl%2Cclp%2Cczk%2Cdkk%2Chuf%2Cils%2Ckwd%2Clkr%2Cpkr%2Cnok%2Ctry%2Csek%2Cmxn%2Cuah%2Chkd&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true"; qDebug() << "Requesting price feed data via " << price_feed; QUrl cmcURL(price_feed); @@ -1632,7 +1636,16 @@ void RPC::refreshPrice() { qDebug() << "Parsed JSON"; const QJsonValue& item = parsed; - const QJsonValue& hush = item["hush"].toObject(); + + // TODO: Rename hush to be more universal for HACs and avoid confusion + QJsonValue hush; + + if (isdragonx) { + hush = item["dragonx-2"].toObject(); + } else { + hush = item["hush"].toObject(); + } + QString ticker = s->get_currency_name(); ticker = ticker.toLower(); fprintf(stderr,"ticker=%s\n", ticker.toLocal8Bit().data()); @@ -1666,17 +1679,24 @@ void RPC::refreshPrice() { qDebug() << "Volume = " << (double) vol; ticker = ticker.toUpper(); - ui->volume->setText( QString::number((double) vol, 'f', 2) + " " + ticker ); - ui->volumeBTC->setText( QString::number((double) btcvol, 'f', 2) + " BTC" ); + ui->volume->setText( QString::number((double) vol, 'f', 8) + " " + ticker ); + ui->volumeBTC->setText( QString::number((double) btcvol, 'f', 8) + " BTC" ); ticker = ticker.toUpper(); // We don't get an actual HUSH volume stat, so we calculate it - if (price > 0) - ui->volumeLocal->setText( QString::number((double) vol / (double) price) + " HUSH"); + if (price > 0) { + + // TODO: Make dynamic to support HACs + if (isdragonx) { + ui->volumeLocal->setText( QString::number((double) vol / (double) price) + " DRGX"); + } else { + ui->volumeLocal->setText( QString::number((double) vol / (double) price) + " HUSH"); + } + } qDebug() << "Mcap = " << (double) mcap; - ui->marketcap->setText( QString::number( (double) mcap, 'f', 2) + " " + ticker ); - ui->marketcapBTC->setText( QString::number((double) btcmcap, 'f', 2) + " BTC" ); + ui->marketcap->setText( QString::number( (double) mcap, 'f', 8) + " " + ticker ); + ui->marketcapBTC->setText( QString::number((double) btcmcap, 'f', 8) + " BTC" ); //ui->marketcapLocal->setText( QString::number((double) mcap * (double) price) + " " + ticker ); refresh(true);