From d2be015554e3173ed0b175fa982766054cde9aea Mon Sep 17 00:00:00 2001 From: iAmShorty Date: Sun, 16 Feb 2014 16:44:36 +0100 Subject: [PATCH 1/5] [FIX] return balance from main account --- public/include/classes/bitcoinwrapper.class.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/public/include/classes/bitcoinwrapper.class.php b/public/include/classes/bitcoinwrapper.class.php index f72f3933..95dec9bc 100644 --- a/public/include/classes/bitcoinwrapper.class.php +++ b/public/include/classes/bitcoinwrapper.class.php @@ -47,9 +47,7 @@ class BitcoinWrapper extends BitcoinClient { return $dBalance; } else { $dMainBalance = $aAccounts['']; - if ($dMainBalance < 0) return $dMainBalance; - $dUnconfirmed = $dMainBalance - abs($dBalance); - return $dMainBalance - abs($dUnconfirmed); + return $dMainBalance; } } public function getdifficulty() { From 63ba74fc608cbd457a8a0a07242697729e5f27d6 Mon Sep 17 00:00:00 2001 From: iAmShorty Date: Sun, 16 Feb 2014 17:32:05 +0100 Subject: [PATCH 2/5] [UPDATE] balance fix for cron and wallet --- cronjobs/payouts.php | 22 ++++++++++++++++--- .../templates/mpos/admin/wallet/default.tpl | 2 +- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/cronjobs/payouts.php b/cronjobs/payouts.php index 24b2629a..43a88ac3 100755 --- a/cronjobs/payouts.php +++ b/cronjobs/payouts.php @@ -44,6 +44,14 @@ if ($sendmanyAvailable) if (!$dWalletBalance = $bitcoin->getrealbalance()) $dWalletBalance = 0; +// Fetch unconfirmed amount from blocks table +empty($config['network_confirmations']) ? $confirmations = 120 : $confirmations = $config['network_confirmations']; +$aBlocksUnconfirmed = $block->getAllUnconfirmed($confirmations); +$dBlocksUnconfirmedBalance = 0; + if (!empty($aBlocksUnconfirmed))foreach ($aBlocksUnconfirmed as $aData) $dBlocksUnconfirmedBalance += $aData['amount']; + +$dWalletBalance = $dWalletBalance - $dBlocksUnconfirmedBalance; + // Fetch outstanding manual-payouts $aManualPayouts = $transaction->getMPQueue(); @@ -54,7 +62,7 @@ if ($setting->getValue('disable_manual_payouts') != 1 && $aManualPayouts) { $aSendMany = NULL; foreach ($aManualPayouts as $aUserData) $dMPTotalAmount += $aUserData['confirmed']; if ($dMPTotalAmount > $dWalletBalance) { - $log->logError(" Wallet does not cover MP payouts"); + $log->logError(" Wallet does not cover MP payouts - Payout: " . $dMPTotalAmount . " - Balance: " . $dWalletBalance); $monitoring->endCronjob($cron_name, 'E0079', 0, true); } @@ -116,6 +124,14 @@ if ($setting->getValue('disable_manual_payouts') != 1 && $aManualPayouts) { if (!$dWalletBalance = $bitcoin->getrealbalance()) $dWalletBalance = 0; +// Fetch unconfirmed amount from blocks table +empty($config['network_confirmations']) ? $confirmations = 120 : $confirmations = $config['network_confirmations']; +$aBlocksUnconfirmed = $block->getAllUnconfirmed($confirmations); +$dBlocksUnconfirmedBalance = 0; + if (!empty($aBlocksUnconfirmed))foreach ($aBlocksUnconfirmed as $aData) $dBlocksUnconfirmedBalance += $aData['amount']; + +$dWalletBalance = $dWalletBalance - $dBlocksUnconfirmedBalance; + // Fetch outstanding auto-payouts $aAutoPayouts = $transaction->getAPQueue(); @@ -126,7 +142,7 @@ if ($setting->getValue('disable_auto_payouts') != 1 && $aAutoPayouts) { $dAPTotalAmount = 0; foreach ($aAutoPayouts as $aUserData) $dAPTotalAmount += $aUserData['confirmed']; if ($dAPTotalAmount > $dWalletBalance) { - $log->logError(" Wallet does not cover AP payouts"); + $log->logError(" Wallet does not cover AP payouts - Payout: " . $dAPTotalAmount . " - Balance: " . $dWalletBalance); $monitoring->endCronjob($cron_name, 'E0079', 0, true); } @@ -181,4 +197,4 @@ if ($setting->getValue('disable_auto_payouts') != 1 && $aAutoPayouts) { } } -require_once('cron_end.inc.php'); +require_once('cron_end.inc.php'); \ No newline at end of file diff --git a/public/templates/mpos/admin/wallet/default.tpl b/public/templates/mpos/admin/wallet/default.tpl index 37cf18d2..31a506ed 100644 --- a/public/templates/mpos/admin/wallet/default.tpl +++ b/public/templates/mpos/admin/wallet/default.tpl @@ -19,7 +19,7 @@ Liquid Assets - {($BALANCE - $LOCKED)|number_format:"8"} + {($BALANCE - $LOCKED - $UNCONFIRMED)|number_format:"8"} {if $NEWMINT >= 0} From 6b8f1e6b5244fe812f8c7202ee0c4c202e383517 Mon Sep 17 00:00:00 2001 From: iAmShorty Date: Sun, 16 Feb 2014 17:51:47 +0100 Subject: [PATCH 3/5] [UPDATE] added logging information looks good while doing payouts ``` 2014-02-16 17:51:09 - INFO --> Starting Payout... 2014-02-16 17:51:09 - INFO --> Auto Payout Sum: 107.55535194 - Wallet Balance: 35779.26412985 with 4750.003 unconfirmed 2014-02-16 17:51:09 - INFO --> found 1 queued auto payouts 2014-02-16 17:51:09 - INFO --> | UserID | Username | Balance | Address | Threshold | 2014-02-16 17:51:09 - INFO --> | 5 | shorty | 107.55535194 | MMRFkUnQSMDBQSMBG3QBBaEg4ixSa7ksDm | 100 | 2014-02-16 17:51:11 - INFO --> payout succeeded with RPC TXID: 722fbd25bd02e08516cb49577c0a69f8aa51be6a6867047cb553b29085c238d3 ``` --- cronjobs/payouts.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cronjobs/payouts.php b/cronjobs/payouts.php index 43a88ac3..8b097851 100755 --- a/cronjobs/payouts.php +++ b/cronjobs/payouts.php @@ -29,7 +29,7 @@ if ($setting->getValue('disable_payouts') == 1) { $log->logInfo(" payouts disabled via admin panel"); $monitoring->endCronjob($cron_name, 'E0009', 0, true, false); } -$log->logDebug("Starting Payout..."); +$log->logInfo("Starting Payout..."); if ($bitcoin->can_connect() !== true) { $log->logFatal(" unable to connect to RPC server, exiting"); $monitoring->endCronjob($cron_name, 'E0006', 1, true); @@ -65,7 +65,8 @@ if ($setting->getValue('disable_manual_payouts') != 1 && $aManualPayouts) { $log->logError(" Wallet does not cover MP payouts - Payout: " . $dMPTotalAmount . " - Balance: " . $dWalletBalance); $monitoring->endCronjob($cron_name, 'E0079', 0, true); } - + + $log->logInfo("Manual Payout Sum: " . $dMPTotalAmount . " - Wallet Balance: " . $dWalletBalance . " with " . $dBlocksUnconfirmedBalance . " unconfirmed"); $log->logInfo(' found ' . count($aManualPayouts) . ' queued manual payouts'); $mask = ' | %-10.10s | %-25.25s | %-20.20s | %-40.40s | %-20.20s |'; $log->logInfo(sprintf($mask, 'UserID', 'Username', 'Balance', 'Address', 'Payout ID')); @@ -145,7 +146,8 @@ if ($setting->getValue('disable_auto_payouts') != 1 && $aAutoPayouts) { $log->logError(" Wallet does not cover AP payouts - Payout: " . $dAPTotalAmount . " - Balance: " . $dWalletBalance); $monitoring->endCronjob($cron_name, 'E0079', 0, true); } - + + $log->logInfo("Auto Payout Sum: " . $dAPTotalAmount . " - Wallet Balance: " . $dWalletBalance . " with " . $dBlocksUnconfirmedBalance . " unconfirmed"); $log->logInfo(' found ' . count($aAutoPayouts) . ' queued auto payouts'); $mask = ' | %-10.10s | %-25.25s | %-20.20s | %-40.40s | %-20.20s |'; $log->logInfo(sprintf($mask, 'UserID', 'Username', 'Balance', 'Address', 'Threshold')); @@ -197,4 +199,4 @@ if ($setting->getValue('disable_auto_payouts') != 1 && $aAutoPayouts) { } } -require_once('cron_end.inc.php'); \ No newline at end of file +require_once('cron_end.inc.php'); From 09e5bd72dc7f02d113fa673699779d2c10b1053e Mon Sep 17 00:00:00 2001 From: iAmShorty Date: Sun, 16 Feb 2014 18:07:27 +0100 Subject: [PATCH 4/5] [UPDATE] changed logging --- cronjobs/payouts.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cronjobs/payouts.php b/cronjobs/payouts.php index 8b097851..d19c742b 100755 --- a/cronjobs/payouts.php +++ b/cronjobs/payouts.php @@ -66,7 +66,7 @@ if ($setting->getValue('disable_manual_payouts') != 1 && $aManualPayouts) { $monitoring->endCronjob($cron_name, 'E0079', 0, true); } - $log->logInfo("Manual Payout Sum: " . $dMPTotalAmount . " - Wallet Balance: " . $dWalletBalance . " with " . $dBlocksUnconfirmedBalance . " unconfirmed"); + $log->logInfo("Manual Payout Sum: " . $dMPTotalAmount . " - Liwuid Assets: " . $dWalletBalance . " - Wallet Balance: " . $dWalletBalance + $dBlocksUnconfirmedBalance . " - Unconfirmed: " . $dBlocksUnconfirmedBalance); $log->logInfo(' found ' . count($aManualPayouts) . ' queued manual payouts'); $mask = ' | %-10.10s | %-25.25s | %-20.20s | %-40.40s | %-20.20s |'; $log->logInfo(sprintf($mask, 'UserID', 'Username', 'Balance', 'Address', 'Payout ID')); @@ -147,7 +147,7 @@ if ($setting->getValue('disable_auto_payouts') != 1 && $aAutoPayouts) { $monitoring->endCronjob($cron_name, 'E0079', 0, true); } - $log->logInfo("Auto Payout Sum: " . $dAPTotalAmount . " - Wallet Balance: " . $dWalletBalance . " with " . $dBlocksUnconfirmedBalance . " unconfirmed"); + $log->logInfo("Auto Payout Sum: " . $dAPTotalAmount . " - Liwuid Assets: " . $dWalletBalance . " - Wallet Balance: " . $dWalletBalance + $dBlocksUnconfirmedBalance . " - Unconfirmed: " . $dBlocksUnconfirmedBalance); $log->logInfo(' found ' . count($aAutoPayouts) . ' queued auto payouts'); $mask = ' | %-10.10s | %-25.25s | %-20.20s | %-40.40s | %-20.20s |'; $log->logInfo(sprintf($mask, 'UserID', 'Username', 'Balance', 'Address', 'Threshold')); From a67b7a9615ef0b655619f2cdea443c5845a619c6 Mon Sep 17 00:00:00 2001 From: iAmShorty Date: Sun, 16 Feb 2014 18:15:11 +0100 Subject: [PATCH 5/5] Update payouts.php --- cronjobs/payouts.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cronjobs/payouts.php b/cronjobs/payouts.php index d19c742b..52325542 100755 --- a/cronjobs/payouts.php +++ b/cronjobs/payouts.php @@ -66,7 +66,7 @@ if ($setting->getValue('disable_manual_payouts') != 1 && $aManualPayouts) { $monitoring->endCronjob($cron_name, 'E0079', 0, true); } - $log->logInfo("Manual Payout Sum: " . $dMPTotalAmount . " - Liwuid Assets: " . $dWalletBalance . " - Wallet Balance: " . $dWalletBalance + $dBlocksUnconfirmedBalance . " - Unconfirmed: " . $dBlocksUnconfirmedBalance); + $log->logInfo("Manual Payout Sum: " . $dMPTotalAmount . " | Liquid Assets: " . $dWalletBalance . " | Wallet Balance: " . ($dWalletBalance + $dBlocksUnconfirmedBalance) . " | Unconfirmed: " . $dBlocksUnconfirmedBalance); $log->logInfo(' found ' . count($aManualPayouts) . ' queued manual payouts'); $mask = ' | %-10.10s | %-25.25s | %-20.20s | %-40.40s | %-20.20s |'; $log->logInfo(sprintf($mask, 'UserID', 'Username', 'Balance', 'Address', 'Payout ID')); @@ -147,7 +147,7 @@ if ($setting->getValue('disable_auto_payouts') != 1 && $aAutoPayouts) { $monitoring->endCronjob($cron_name, 'E0079', 0, true); } - $log->logInfo("Auto Payout Sum: " . $dAPTotalAmount . " - Liwuid Assets: " . $dWalletBalance . " - Wallet Balance: " . $dWalletBalance + $dBlocksUnconfirmedBalance . " - Unconfirmed: " . $dBlocksUnconfirmedBalance); + $log->logInfo("Auto Payout Sum: " . $dAPTotalAmount . " | Liquid Assets: " . $dWalletBalance . " | Wallet Balance: " . ($dWalletBalance + $dBlocksUnconfirmedBalance) . " | Unconfirmed: " . $dBlocksUnconfirmedBalance); $log->logInfo(' found ' . count($aAutoPayouts) . ' queued auto payouts'); $mask = ' | %-10.10s | %-25.25s | %-20.20s | %-40.40s | %-20.20s |'; $log->logInfo(sprintf($mask, 'UserID', 'Username', 'Balance', 'Address', 'Threshold'));