From 8276f28841378f8a48354dd8d63e9d1c409941b9 Mon Sep 17 00:00:00 2001 From: Joe Uhren Date: Wed, 27 Dec 2023 13:28:17 -0700 Subject: [PATCH] Added an optional USD price panel -New settings for the USD price panel were added to the config options -Added USD price to the getsummary API --- README.md | 3 ++- app.js | 3 +++ lib/settings.js | 10 ++++++++++ settings.json.template | 10 ++++++++++ views/info.pug | 2 +- views/layout.pug | 11 +++++++++++ 6 files changed, 37 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e7b018d..661c107 100644 --- a/README.md +++ b/README.md @@ -130,7 +130,7 @@ Table of Contents - **getlasttxs:** Returns transactions greater than a specific number of coins, starting from a particular offset - **getcurrentprice:** Returns last known exchange price - **getbasicstats:** Returns basic statistics about the coin including: block count, circulating supply, USD price, default market price and # of masternodes *\*# of masternodes is only applicable to masternode coins* - - **getsummary:** Returns a summary of coin data including: difficulty, hybrid difficulty, circulating supply, hash rate, default market price, network connection count, block count, count of online masternodes and count of offline masternodes *\*masternode counts are only applicable to masternode coins* + - **getsummary:** Returns a summary of coin data including: difficulty, hybrid difficulty, circulating supply, hash rate, default market price, USD price, network connection count, block count, count of online masternodes and count of offline masternodes *\*masternode counts are only applicable to masternode coins* - **getnetworkpeers:** Returns the list of network peers that have connected to the explorer node in the last 24 hours - **getmasternodelist:** Returns the complete list of masternodes on the network *\*only applicable to masternode coins* - **getmasternoderewards:** Returns a list of masternode reward transactions for a specific address that arrived after a specific block height *\*only applicable to masternode coins* @@ -173,6 +173,7 @@ Table of Contents - **Masternodes:** Displays a count of online and unreachable masternodes *\*only applicable to masternode coins* - **Coin Supply:** Displays the current circulating coin supply value - **Price:** Displays the current market price (value measured using default market pair) + - **USD Price:** Displays the current market price (value measured in USD) - **Market Cap:** Displays the current market cap value in (value measured using default market pair) - **Logo:** Display an image of your coin logo - Configurable network charts that can be independently displayed in the header of any page diff --git a/app.js b/app.js index 5fc32b8..d683c70 100644 --- a/app.js +++ b/app.js @@ -509,6 +509,7 @@ app.use('/ext/getsummary', function(req, res) { supply: (stats == null || stats.supply == null ? 0 : stats.supply), hashrate: hashrate, lastPrice: (stats == null || stats.last_price == null ? 0 : stats.last_price), + lastUSDPrice: (stats == null || stats.last_usd_price == null ? 0 : stats.last_usd_price), connections: (connections ? connections : '-'), blockcount: (blockcount ? blockcount : '-'), masternodeCountOnline: (masternodestotal && mn_enabled != 0 ? mn_enabled : '-'), @@ -857,6 +858,7 @@ var panelcount = (settings.shared_pages.page_header.panels.network_panel.enabled (settings.shared_pages.page_header.panels.masternodes_panel.enabled == true && settings.shared_pages.page_header.panels.masternodes_panel.display_order > 0 ? 1 : 0) + (settings.shared_pages.page_header.panels.coin_supply_panel.enabled == true && settings.shared_pages.page_header.panels.coin_supply_panel.display_order > 0 ? 1 : 0) + (settings.shared_pages.page_header.panels.price_panel.enabled == true && settings.shared_pages.page_header.panels.price_panel.display_order > 0 ? 1 : 0) + + (settings.shared_pages.page_header.panels.usd_price_panel.enabled == true && settings.shared_pages.page_header.panels.usd_price_panel.display_order > 0 ? 1 : 0) + (settings.shared_pages.page_header.panels.market_cap_panel.enabled == true && settings.shared_pages.page_header.panels.market_cap_panel.display_order > 0 ? 1 : 0) + (settings.shared_pages.page_header.panels.logo_panel.enabled == true && settings.shared_pages.page_header.panels.logo_panel.display_order > 0 ? 1 : 0) + (settings.shared_pages.page_header.panels.spacer_panel_1.enabled == true && settings.shared_pages.page_header.panels.spacer_panel_1.display_order > 0 ? 1 : 0) + @@ -872,6 +874,7 @@ if (settings.shared_pages.page_header.panels.difficulty_panel.enabled == true && if (settings.shared_pages.page_header.panels.masternodes_panel.enabled == true && settings.shared_pages.page_header.panels.masternodes_panel.display_order > 0) panel_order.push({name: 'masternodes_panel', val: settings.shared_pages.page_header.panels.masternodes_panel.display_order}); if (settings.shared_pages.page_header.panels.coin_supply_panel.enabled == true && settings.shared_pages.page_header.panels.coin_supply_panel.display_order > 0) panel_order.push({name: 'coin_supply_panel', val: settings.shared_pages.page_header.panels.coin_supply_panel.display_order}); if (settings.shared_pages.page_header.panels.price_panel.enabled == true && settings.shared_pages.page_header.panels.price_panel.display_order > 0) panel_order.push({name: 'price_panel', val: settings.shared_pages.page_header.panels.price_panel.display_order}); +if (settings.shared_pages.page_header.panels.usd_price_panel.enabled == true && settings.shared_pages.page_header.panels.usd_price_panel.display_order > 0) panel_order.push({name: 'usd_price_panel', val: settings.shared_pages.page_header.panels.usd_price_panel.display_order}); if (settings.shared_pages.page_header.panels.market_cap_panel.enabled == true && settings.shared_pages.page_header.panels.market_cap_panel.display_order > 0) panel_order.push({name: 'market_cap_panel', val: settings.shared_pages.page_header.panels.market_cap_panel.display_order}); if (settings.shared_pages.page_header.panels.logo_panel.enabled == true && settings.shared_pages.page_header.panels.logo_panel.display_order > 0) panel_order.push({name: 'logo_panel', val: settings.shared_pages.page_header.panels.logo_panel.display_order}); if (settings.shared_pages.page_header.panels.spacer_panel_1.enabled == true && settings.shared_pages.page_header.panels.spacer_panel_1.display_order > 0) panel_order.push({name: 'spacer_panel_1', val: settings.shared_pages.page_header.panels.spacer_panel_1.display_order}); diff --git a/lib/settings.js b/lib/settings.js index 4d66530..e845de1 100644 --- a/lib/settings.js +++ b/lib/settings.js @@ -243,6 +243,16 @@ exports.shared_pages = { // The panel will be disabled with a value of 0 "display_order": 4 }, + // usd_price_panel: a collection of settings that pertain to the usd price panel which displays the current market price measured in USD + "usd_price_panel": { + // enabled: Enable/disable the usd price panel (true/false) + // If set to false, the usd price panel will be completely inaccessible + "enabled": false, + // display_order: Determine which order this panel is shown from 1-5 + // 1 = far left panel, 5 = far right panel + // The panel will be disabled with a value of 0 + "display_order": 0 + }, // market_cap_panel: a collection of settings that pertain to the market cap panel which displays the current market cap value measured against the default market pair "market_cap_panel": { // enabled: Enable/disable the market cap panel (true/false) diff --git a/settings.json.template b/settings.json.template index 78d3376..2a219f5 100644 --- a/settings.json.template +++ b/settings.json.template @@ -236,6 +236,16 @@ "price_panel": { // enabled: Enable/disable the price panel (true/false) // If set to false, the price panel will be completely inaccessible + "enabled": false, + // display_order: Determine which order this panel is shown from 1-5 + // 1 = far left panel, 5 = far right panel + // The panel will be disabled with a value of 0 + "display_order": 0 + }, + // usd_price_panel: a collection of settings that pertain to the usd price panel which displays the current market price measured in USD + "usd_price_panel": { + // enabled: Enable/disable the usd price panel (true/false) + // If set to false, the usd price panel will be completely inaccessible "enabled": true, // display_order: Determine which order this panel is shown from 1-5 // 1 = far left panel, 5 = far right panel diff --git a/views/info.pug b/views/info.pug index 2624eac..99e9b8a 100644 --- a/views/info.pug +++ b/views/info.pug @@ -243,7 +243,7 @@ block content p div.fw-bold getsummary div - em="Returns a summary of coin data including: difficulty, hybrid difficulty, circulating supply, hash rate, " + settings.markets_page.default_exchange.trading_pair.split('/')[1].toUpperCase() + " price, network connection count, block count" + (settings.api_page.public_apis.rpc.getmasternodecount.enabled == true && settings.api_cmds['getmasternodecount'] != null && settings.api_cmds['getmasternodecount'] != '' ? ', ' + 'count of online masternodes' + ', ' + 'count of offline masternodes' : '') + em="Returns a summary of coin data including: difficulty, hybrid difficulty, circulating supply, hash rate, " + settings.markets_page.default_exchange.trading_pair.split('/')[1].toUpperCase() + " price, USD price, network connection count, block count" + (settings.api_page.public_apis.rpc.getmasternodecount.enabled == true && settings.api_cmds['getmasternodecount'] != null && settings.api_cmds['getmasternodecount'] != '' ? ', ' + 'count of online masternodes' + ', ' + 'count of offline masternodes' : '') a(href='/ext/getsummary') #{address}/ext/getsummary if settings.api_page.public_apis.ext.getmasternodelist.enabled == true && settings.api_cmds['getmasternodelist'] != null && settings.api_cmds['getmasternodelist'] != '' li diff --git a/views/layout.pug b/views/layout.pug index febff57..f3b67e7 100644 --- a/views/layout.pug +++ b/views/layout.pug @@ -308,6 +308,9 @@ html(lang='en') function getPricePanel() { return '
Price (#{settings.markets_page.default_exchange.trading_pair.split('/')[1]})
'; } + function getUSDPricePanel() { + return '
Price (USD)
'; + } function getMarketCapPanel() { return '
Market Cap (#{settings.markets_page.default_exchange.trading_pair.split('/')[1]})
'; } @@ -336,6 +339,9 @@ html(lang='en') case "price_panel": sReturn = getPricePanel(); break; + case "usd_price_panel": + sReturn = getUSDPricePanel(); + break; case "market_cap_panel": sReturn = getMarketCapPanel(); break; @@ -427,6 +433,11 @@ html(lang='en') splitParts = splitValue.split('.'); $("#lastPrice").html(splitParts[0] + '.' + splitParts[1] + ''); showTopPanelData('pricepanel', 'pricePanelLoading'); + + splitValue = Number(json.lastUSDPrice).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true}); + splitParts = splitValue.split('.'); + $("#lastUSDPrice").html(splitParts[0] + '.' + splitParts[1] + ''); + showTopPanelData('usdpricepanel', 'usdPricePanelLoading'); }}); } $(document).ready(function() {