From 129e11e8e3525c62a6e29ecb8879e9c7d1733474 Mon Sep 17 00:00:00 2001 From: hellcatz Date: Fri, 11 Aug 2017 19:56:18 -0700 Subject: [PATCH] Update paymentProcessor.js Only manage opids created by z-nomp. All opids are still monitored. --- libs/paymentProcessor.js | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/libs/paymentProcessor.js b/libs/paymentProcessor.js index 4e317e2..95b883b 100644 --- a/libs/paymentProcessor.js +++ b/libs/paymentProcessor.js @@ -47,8 +47,10 @@ function SetupForPool(logger, poolOptions, setupFinished){ var logSystem = 'Payments'; var logComponent = coin; + var opidCount = 0; - + var opids = []; + // zcash team recommends 10 confirmations for safety from orphaned blocks var minConfShield = Math.max((processingConfig.minConf || 10), 1); // Don't allow 0 conf transactions. var minConfPayout = Math.max((processingConfig.minConf || 10), 1); @@ -259,8 +261,10 @@ function SetupForPool(logger, poolOptions, setupFinished){ callback(true); } else { + var opid = (result.response || result[0].response); opidCount++; - logger.special(logSystem, logComponent, 'Shield balance ' + amount); + opids.push(opid); + logger.special(logSystem, logComponent, 'Shield balance ' + amount + ' ' + opid); callback = function (){}; callback(null); } @@ -300,8 +304,10 @@ function SetupForPool(logger, poolOptions, setupFinished){ callback(true); } else { + var opid = (result.response || result[0].response); opidCount++; - logger.special(logSystem, logComponent, 'Unshield funds for payout ' + amount); + opids.push(opid); + logger.special(logSystem, logComponent, 'Unshield funds for payout ' + amount + ' ' + opid); callback = function (){}; callback(null); } @@ -440,10 +446,12 @@ function SetupForPool(logger, poolOptions, setupFinished){ // check operation id status if (op.status == "success" || op.status == "failed") { // clear operation id result - batchRPC.push(['z_getoperationresult', [[op.id]]]); - // clear operation id count - if (opidCount > 0) { - opidCount = 0; + var opid_index = opids.indexOf(op.id); + if (opid_index > -1) { + // clear operation id count + batchRPC.push(['z_getoperationresult', [[op.id]]]); + opidCount--; + opids.splice(opid_index, 1); } // log status to console if (op.status == "failed") { @@ -498,8 +506,9 @@ function SetupForPool(logger, poolOptions, setupFinished){ } if (err === true) { opidTimeout = setTimeout(checkOpids, opid_interval); - if (opidCount > 0) { + if (opidCount !== 0) { opidCount = 0; + opids = []; logger.warning(logSystem, logComponent, 'Clearing operation ids due to RPC call errors.'); } }