From bfb48d8b34512234cf205c2fe7e7e713319f0258 Mon Sep 17 00:00:00 2001 From: joeuhren Date: Mon, 24 Jun 2019 19:52:15 -0600 Subject: [PATCH] Add support for omitting 'burned coin' addresses from the rich list --- app.js | 1 + lib/database.js | 9 +++++++-- lib/markets/database.js | 9 +++++++-- lib/settings.js | 1 + settings.json.template | 18 ++++++++++++++++-- 5 files changed, 32 insertions(+), 6 deletions(-) diff --git a/app.js b/app.js index bc7ca4c..9c16850 100644 --- a/app.js +++ b/app.js @@ -167,6 +167,7 @@ app.set('theme', settings.theme); app.set('labels', settings.labels); app.set('homelink', settings.homelink); app.set('logoheight', settings.logoheight); +app.set('burned_coins', settings.burned_coins); // determine panel offset based on which panels are enabled var paneltotal=5; diff --git a/lib/database.js b/lib/database.js index 2abd12f..75372f0 100644 --- a/lib/database.js +++ b/lib/database.js @@ -321,8 +321,13 @@ module.exports = { }, //property: 'received' or 'balance' update_richlist: function(list, cb){ + // Create the burn address array so that we omit burned coins from the rich list + var oBurnAddresses = []; + for (var x = 0; x < settings.burned_coins.length; x++) { + oBurnAddresses.push(settings.burned_coins[x].address); + } if(list == 'received') { - Address.find({}).sort({received: 'desc'}).limit(100).exec(function(err, addresses){ + Address.find({a_id: { $nin: oBurnAddresses }}).sort({received: 'desc'}).limit(100).exec(function(err, addresses){ Richlist.updateOne({coin: settings.coin}, { received: addresses, }, function() { @@ -330,7 +335,7 @@ module.exports = { }); }); } else { //balance - Address.find({}).sort({balance: 'desc'}).limit(100).exec(function(err, addresses){ + Address.find({a_id: { $nin: oBurnAddresses }}).sort({balance: 'desc'}).limit(100).exec(function(err, addresses){ Richlist.updateOne({coin: settings.coin}, { balance: addresses, }, function() { diff --git a/lib/markets/database.js b/lib/markets/database.js index 2abd12f..75372f0 100644 --- a/lib/markets/database.js +++ b/lib/markets/database.js @@ -321,8 +321,13 @@ module.exports = { }, //property: 'received' or 'balance' update_richlist: function(list, cb){ + // Create the burn address array so that we omit burned coins from the rich list + var oBurnAddresses = []; + for (var x = 0; x < settings.burned_coins.length; x++) { + oBurnAddresses.push(settings.burned_coins[x].address); + } if(list == 'received') { - Address.find({}).sort({received: 'desc'}).limit(100).exec(function(err, addresses){ + Address.find({a_id: { $nin: oBurnAddresses }}).sort({received: 'desc'}).limit(100).exec(function(err, addresses){ Richlist.updateOne({coin: settings.coin}, { received: addresses, }, function() { @@ -330,7 +335,7 @@ module.exports = { }); }); } else { //balance - Address.find({}).sort({balance: 'desc'}).limit(100).exec(function(err, addresses){ + Address.find({a_id: { $nin: oBurnAddresses }}).sort({balance: 'desc'}).limit(100).exec(function(err, addresses){ Richlist.updateOne({coin: settings.coin}, { balance: addresses, }, function() { diff --git a/lib/settings.js b/lib/settings.js index 746ac03..3596c12 100644 --- a/lib/settings.js +++ b/lib/settings.js @@ -159,6 +159,7 @@ exports.usecors = false; exports.corsorigin = "*"; exports.labels = {}; +exports.burned_coins = []; exports.reloadSettings = function reloadSettings() { // Discover where the settings file lives diff --git a/settings.json.template b/settings.json.template index 0745faa..de6779c 100644 --- a/settings.json.template +++ b/settings.json.template @@ -193,5 +193,19 @@ "labels": { // "CLkWg5YSLod772uLzsFRxHgHiWVGAJSezm": {"label": "Donation Address", "type":"primary", "url":"http://example.com"}, // "CaxX1HVWzbQ516w61XbtHR63vNmp2mvLMZ": {"label": "Max Lee War Chest"} - } -} + }, + + // Burned coin addresses + // Use this setting to prevent specific wallet addresses from being displayed or calculated in the rich list and wealth distribution chart sections. + // These wallet addresses will still be accessible via the explorer under all other conditions except from the rich list. + // Add as many wallet addresses as necessary in the following format: + //"burned_coins": [ + // { + // "address": "EPUzEEGa45Rsn88WAos6SqkZZ9GrsfpvtZ" + // }, + // { + // "address": "EUzgbt1r5AFzoZXK6WgTzM8kBBPJU1SX8E" + // } + //] + "burned_coins": [] +} \ No newline at end of file