Skip to content

Commit

Permalink
Change market info from CMC to CoinGecko and fix MyZelNodeList that were
Browse files Browse the repository at this point in the history
using values that will only be available after kamata activation.
  • Loading branch information
Cabecinha84 committed Mar 11, 2020
1 parent a857957 commit 7784eaa
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 37 deletions.
44 changes: 30 additions & 14 deletions src/java/com/cabecinha84/zelcashui/ZelNodesPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -406,29 +406,45 @@ private void getMyZelNodeList() {
JsonObject jsonObj = ja.get(i).asObject();
Log.debug(jsonObj.toString());
++myZelNodeCount;
String tier = jsonObj.get("tier") == null ? "Unknown" : jsonObj.get("tier").toString().replaceAll("[\n\r\"]", "");
String address = jsonObj.get("address") == null ? "Unknown" : jsonObj.get("address").toString().replaceAll("[\n\r\"]", "");
String alias = jsonObj.get("alias") == null ? "Unknown" : jsonObj.get("alias").toString().replaceAll("[\n\r\"]", "");
String status = jsonObj.get("status") == null ? "Unknown" : jsonObj.get("status").toString().replaceAll("[\n\r\"]", "");
data = new Vector<>();
data.add(jsonObj.get("alias").toString().replaceAll("[\n\r\"]", ""));
data.add(jsonObj.get("address").toString().replaceAll("[\n\r\"]", ""));
data.add(jsonObj.get("status").toString().replaceAll("[\n\r\"]", ""));
data.add(jsonObj.get("tier").toString().replaceAll("[\n\r\"]", ""));
String activeTime = jsonObj.get("activesince").toString().replaceAll("[\n\r\"]", "");
if(activeTime == null || activeTime.equals("") || activeTime.equals("0")) {
data.add(alias);
data.add(address);
data.add(status);
data.add(tier);
if(jsonObj.get("activesince") == null) {
data.add("-1");
}
else {
Date aux = new Date(Long.parseLong(activeTime) * 1000);
format = formatter.format(aux);
data.add(format);
String activeTime = jsonObj.get("activesince").toString().replaceAll("[\n\r\"]", "");
if(activeTime == null || activeTime.equals("") || activeTime.equals("0")) {
data.add("-1");
}
else {
Date aux = new Date(Long.parseLong(activeTime) * 1000);
format = formatter.format(aux);
data.add(format);
}
}
String lastPaid = jsonObj.get("lastpaid").toString().replaceAll("[\n\r\"]", "");
if(lastPaid == null || lastPaid.equals("") || lastPaid.equals("0")) {

if(jsonObj.get("lastpaid") == null) {
data.add("-1");
}
else {
Date aux = new Date(Long.parseLong(lastPaid) * 1000);
format = formatter.format(aux);
data.add(format);
String lastPaid = jsonObj.get("lastpaid").toString().replaceAll("[\n\r\"]", "");
if(lastPaid == null || lastPaid.equals("") || lastPaid.equals("0")) {
data.add("-1");
}
else {
Date aux = new Date(Long.parseLong(lastPaid) * 1000);
format = formatter.format(aux);
data.add(format);
}
}

dtm.addRow(data);
dataList.add(data);
}
Expand Down
70 changes: 47 additions & 23 deletions src/java/com/vaklinov/zcashui/DashboardPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -810,22 +810,23 @@ private void recreateExchangeTable() {
private Object[][] getExchangeDataInTableForm() {
JsonObject data = this.zelcashDataGatheringThread.getLastData();
JsonObject rates = new JsonObject();
JsonObject cmc = new JsonObject();
JsonObject coingecko = new JsonObject();
boolean exchangeDataExist = false;
if (data == null) {
data = new JsonObject();
rates = new JsonObject();
cmc = new JsonObject();
coingecko = new JsonObject();
} else {
if (data.get("rates") == null) {
rates = new JsonObject();
} else {
Log.info(data.get("rates").toString());
rates = data.get("rates").asObject();
}
if (data.get("cmc") == null) {
cmc = new JsonObject();
if (data.get("coingecko") == null) {
coingecko = new JsonObject();
} else {
cmc = data.get("cmc").asObject();
coingecko = data.get("coingecko").asObject();
exchangeDataExist = true;
}
}

Expand All @@ -843,25 +844,46 @@ private Object[][] getExchangeDataInTableForm() {
} catch (NumberFormatException nfe) {
/* Do nothing */ }
}

String usdMarketCap = cmc.getString("market_cap_usd", "N/A");
try {
Double usdMarketCapD = Double.parseDouble(usdMarketCap) / 1000000;
usdMarketCap = new DecimalFormat("########0.000").format(usdMarketCapD) + " million";
} catch (NumberFormatException nfe) {
/* Do nothing */ }
Log.info(coingecko.toString());
JsonObject marketCap = null;
Double usdMarketCapAux = null;
Double btcValueAux = null;
Double percentageLast24Aux = null;
Double percentageLast7dAux = null;
String usdMarketCap = "N/A";
String btcValue = "N/A";
String percentageLast24 = "N/A";
String percentageLast7d = "N/A";

if(exchangeDataExist) {
JsonObject marketData = coingecko.get("market_data").asObject();
marketCap = marketData.get("market_cap").asObject();
usdMarketCapAux = marketCap.getDouble("usd", 0);
btcValueAux = marketData.get("current_price").asObject().getDouble("btc", 0);
percentageLast24Aux = marketData.getDouble("price_change_percentage_24h", 0);
percentageLast7dAux = marketData.getDouble("price_change_percentage_7d", 0);
try {
Double usdMarketCapD = usdMarketCapAux / 1000000;
usdMarketCap = new DecimalFormat("########0.000").format(usdMarketCapD) + " million";
btcValue = new DecimalFormat("########0.00000000").format(btcValueAux);
percentageLast24 = percentageLast24Aux.toString();
percentageLast7d = percentageLast7dAux.toString();
} catch (NumberFormatException nfe) {
/* Do nothing */ }
}


// Query the object for individual fields
String currencyMessage = langUtil.getString("panel.dashboard.marketcap.price.currency") + ZelCashUI.currency
+ ":";
String tableData[][] = new String[][] {
{ currencyMessage, lastCurrencyPrice == null ? "N/A" : Double.toString(price) },
{ langUtil.getString("panel.dashboard.marketcap.price.btc"), cmc.getString("price_btc", "N/A") },
{ langUtil.getString("panel.dashboard.marketcap.capitalisation"), usdMarketCap },
{ langUtil.getString("panel.dashboard.marketcap.price.btc"), exchangeDataExist == true ? btcValue : "N/A"},
{ langUtil.getString("panel.dashboard.marketcap.capitalisation"), exchangeDataExist == true ? usdMarketCap : "N/A" },
{ langUtil.getString("panel.dashboard.marketcap.daily.change"),
cmc.getString("percent_change_24h", "N/A") + "%" },
exchangeDataExist == true ? percentageLast24 + "%" : "N/A" },
{ langUtil.getString("panel.dashboard.marketcap.weekly.change"),
cmc.getString("percent_change_7d", "N/A") + "%" }, };
exchangeDataExist == true ? percentageLast7d + "%" : "N/A" }, };

return tableData;
}
Expand All @@ -876,20 +898,22 @@ private JsonObject getExchangeDataFromRemoteService() {
String currency = ZelCashUI.currency;

try {
URL u = new URL("https://api.coinmarketcap.com/v1/ticker/zel");
URL u = new URL("https://api.coingecko.com/api/v3/coins/zelcash?tickers=false&market_data=true&community_data=false&developer_data=false&sparkline=false");
HttpURLConnection huc = (HttpURLConnection) u.openConnection();
huc.setConnectTimeout(2019);
huc.setConnectTimeout(4500);
int responseCode = huc.getResponseCode();

if (responseCode != HttpURLConnection.HTTP_OK) {
Log.warning("Could not connect to https://api.coinmarketcap.com/v1/ticker/zel");
Log.warning("Could not connect to https://api.coingecko.com/api/v3/coins/zelcash?tickers=false&market_data=true&community_data=false&developer_data=false&sparkline=false responseCode:"+responseCode);
} else {
Reader r = new InputStreamReader(u.openStream(), "UTF-8");
JsonArray ar = Json.parse(r).asArray();
data.add("cmc", ar.get(0).asObject());
JsonObject exchange = Json.parse(r).asObject();
Log.info("CoinGecko readed");
Log.info(exchange.toString());
data.add("coingecko", exchange);
}
} catch (Exception ioe) {
Log.warning("Could not obtain ZEL exchange information from coinmarketcap.com due to: {0} {1}",
Log.warning("Could not obtain ZEL exchange information from coingecko.com due to: {0} {1}",
ioe.getClass().getName(), ioe.getMessage());
}

Expand Down

0 comments on commit 7784eaa

Please sign in to comment.