From e645ee86352f365e733e2fef2db17b15111dc7fe Mon Sep 17 00:00:00 2001 From: joeuhren Date: Wed, 9 Oct 2019 13:04:32 -0600 Subject: [PATCH] added support for customizing daemon api cmds [getmasternodecount only so far] --- lib/explorer.js | 11 +++-- lib/nodeapi.js | 94 +++++++++++++++++++++++------------------- lib/settings.js | 5 +++ settings.json.template | 12 +++++- 4 files changed, 75 insertions(+), 47 deletions(-) diff --git a/lib/explorer.js b/lib/explorer.js index 1e27f91..a848576 100644 --- a/lib/explorer.js +++ b/lib/explorer.js @@ -89,10 +89,13 @@ module.exports = { }, get_masternodecount: function(cb) { - var uri = base_url + 'getmasternodecount'; - request({uri: uri, json: true, headers: {'User-Agent': 'eiquidus'}}, function (error, response, body) { - return cb(body); - }); + if (settings.api_cmds.masternode_count != '') { + var uri = base_url + 'getmasternodecount'; + request({uri: uri, json: true, headers: {'User-Agent': 'eiquidus'}}, function (error, response, body) { + return cb(body); + }); + } else + return cb({"total":0,"enabled":0}); }, get_blockcount: function(cb) { diff --git a/lib/nodeapi.js b/lib/nodeapi.js index 2a0811b..fd9b750 100644 --- a/lib/nodeapi.js +++ b/lib/nodeapi.js @@ -1,5 +1,6 @@ var onode = require('./node'); var express = require('express'); +var settings = require('./settings'); module.exports = function(){ function express_app(){ @@ -30,6 +31,7 @@ module.exports = function(){ if (method == 'sendmany' || method == 'getmasternodecountonline' || + method == 'getmasternodecount' || method == 'getmasternodelist' || method == 'getvotelist') { command = specialApiCase(method); @@ -73,50 +75,58 @@ module.exports = function(){ function specialApiCase(method_name){ var params = []; - if(method_name == 'sendmany'){ - var after_account = false; - var before_min_conf = true; - var address_info = {}; - for(var parameter in query_parameters){ - if(query_parameters.hasOwnProperty(parameter)){ - if(parameter == 'minconf'){ - before_min_conf = false; - params.push(address_info); + + switch(method_name) { + case 'sendmany': + var after_account = false; + var before_min_conf = true; + var address_info = {}; + for(var parameter in query_parameters){ + if(query_parameters.hasOwnProperty(parameter)){ + if(parameter == 'minconf'){ + before_min_conf = false; + params.push(address_info); + } + var param = query_parameters[parameter]; + if(!isNaN(param)){ + param = parseFloat(param); + } + if(after_account && before_min_conf){ + address_info[parameter] = param; + } + else { + params.push(param); + } + if(parameter == 'account') after_account = true; } - var param = query_parameters[parameter]; - if(!isNaN(param)){ - param = parseFloat(param); - } - if(after_account && before_min_conf){ - address_info[parameter] = param; - } - else{ - params.push(param); - } - if(parameter == 'account') after_account = true; } - } - if(before_min_conf){ - params.push(address_info); - } - } - - //not liking this - - if(method_name == 'getvotelist'){ - method_name = 'masternodelist' - params.push('votes'); - } - - if(method_name == 'getmasternodelist'){ - method_name = 'masternode' - params.push('list'); - } - - if(method_name == 'getmasternodecountonline'){ - method_name = 'masternode'; - params.push('count'); - params.push('enabled'); + if(before_min_conf){ + params.push(address_info); + } + break; + case 'getvotelist': + method_name = 'masternodelist' + params.push('votes'); + break; + case 'getmasternodelist': + method_name = 'masternode' + params.push('list'); + break; + case 'getmasternodecountonline': + method_name = 'masternode'; + params.push('count'); + params.push('enabled'); + break; + case 'getmasternodecount': + // split cmd by spaces + var sSplit = settings.api_cmds.masternode_count.split(' '); + for (i=0; i