From d55efbd227de692bf62f2a239ed0ea5da6fec125 Mon Sep 17 00:00:00 2001 From: lubuzzo Date: Sun, 24 Mar 2019 12:40:08 -0300 Subject: [PATCH] Allow pool owner to run the pool without explicitly declare the address - Setting the address to false, will generate a new address on startup and after every submission of block --- libs/paymentProcessor.js | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/libs/paymentProcessor.js b/libs/paymentProcessor.js index 9e0fc84..0e5428e 100644 --- a/libs/paymentProcessor.js +++ b/libs/paymentProcessor.js @@ -64,6 +64,7 @@ function SetupForPool(logger, poolOptions, setupFinished){ async.parallel([ function(callback){ + if (poolOptions.address != false) { daemon.cmd('validateaddress', [poolOptions.address], function(result) { if (result.error){ logger.error(logSystem, logComponent, 'Error with payment processing daemon ' + JSON.stringify(result.error)); @@ -90,6 +91,8 @@ function SetupForPool(logger, poolOptions, setupFinished){ callback() } }, true); + } + else callback(); }, function(callback){ daemon.cmd('getbalance', [], function(result){ @@ -529,12 +532,37 @@ function SetupForPool(logger, poolOptions, setupFinished){ }); }; + function handleAddress(address) { + if (address.length === 40){ + return util.addressFromEx(poolOptions.address, address); + } + else return address; + } var getProperAddress = function(address){ - if (address.length === 40){ - return util.addressFromEx(poolOptions.address, address); - } - else return address; + if (address != false) { + return handleAddress(address); + } else { + var addressToPay = ''; + + daemon.cmd('getnewaddress', [], function(result){ + if (result.error){ + callback(true); + return; + } + try { + addressToPay = result.data; + } + catch(e){ + logger.error(logSystem, logComponent, 'Error getting a new address. Got: ' + result.data); + callback(true); + } + + }, true, true); + + return handleAddress(addressToPay); + + } };