From 63ba74fc608cbd457a8a0a07242697729e5f27d6 Mon Sep 17 00:00:00 2001 From: iAmShorty Date: Sun, 16 Feb 2014 17:32:05 +0100 Subject: [PATCH] [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}