Remove number_format for transaction generation
* Fixes: Incorrect payouts due to number formatting * Moved number_format to output only Fixes #611
This commit is contained in:
parent
405451d67a
commit
e7b8cb8d4a
@ -44,13 +44,13 @@ if ( $bitcoin->can_connect() === true ){
|
|||||||
|
|
||||||
// Value per share calculation
|
// Value per share calculation
|
||||||
if ($config['reward_type'] != 'block') {
|
if ($config['reward_type'] != 'block') {
|
||||||
$pps_value = number_format(round($config['reward'] / (pow(2,32) * $dDifficulty) * pow(2, $config['difficulty']), 12) ,12);
|
$pps_value = round($config['reward'] / (pow(2,32) * $dDifficulty) * pow(2, $config['difficulty']), 12);
|
||||||
} else {
|
} else {
|
||||||
// Try to find the last block value and use that for future payouts, revert to fixed reward if none found
|
// Try to find the last block value and use that for future payouts, revert to fixed reward if none found
|
||||||
if ($aLastBlock = $block->getLast()) {
|
if ($aLastBlock = $block->getLast()) {
|
||||||
$pps_value = number_format(round($aLastBlock['amount'] / (pow(2,32) * $dDifficulty) * pow(2, $config['difficulty']), 12) ,12);
|
$pps_value = round($aLastBlock['amount'] / (pow(2,32) * $dDifficulty) * pow(2, $config['difficulty']), 12);
|
||||||
} else {
|
} else {
|
||||||
$pps_value = number_format(round($config['reward'] / (pow(2,32) * $dDifficulty) * pow(2, $config['difficulty']), 12) ,12);
|
$pps_value = round($config['reward'] / (pow(2,32) * $dDifficulty) * pow(2, $config['difficulty']), 12);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ $log->logInfo("ID\tUsername\tInvalid\tValid\t\tPPS Value\t\tPayout\t\tDonation\t
|
|||||||
|
|
||||||
foreach ($aAccountShares as $aData) {
|
foreach ($aAccountShares as $aData) {
|
||||||
// Take our valid shares and multiply by per share value
|
// Take our valid shares and multiply by per share value
|
||||||
$aData['payout'] = number_format(round($aData['valid'] * $pps_value, 8), 8);
|
$aData['payout'] = round($aData['valid'] * $pps_value, 8);
|
||||||
|
|
||||||
// Defaults
|
// Defaults
|
||||||
$aData['fee' ] = 0;
|
$aData['fee' ] = 0;
|
||||||
@ -73,18 +73,18 @@ foreach ($aAccountShares as $aData) {
|
|||||||
|
|
||||||
// Calculate block fees
|
// Calculate block fees
|
||||||
if ($config['fees'] > 0 && $aData['no_fees'] == 0)
|
if ($config['fees'] > 0 && $aData['no_fees'] == 0)
|
||||||
$aData['fee'] = number_format(round($config['fees'] / 100 * $aData['payout'], 8), 8);
|
$aData['fee'] = round($config['fees'] / 100 * $aData['payout'], 8);
|
||||||
// Calculate donation amount
|
// Calculate donation amount
|
||||||
$aData['donation'] = number_format(round($user->getDonatePercent($user->getUserId($aData['username'])) / 100 * ( $aData['payout'] - $aData['fee']), 8), 8);
|
$aData['donation'] = round($user->getDonatePercent($user->getUserId($aData['username'])) / 100 * ( $aData['payout'] - $aData['fee']), 8);
|
||||||
|
|
||||||
$log->logInfo($aData['id'] . "\t" .
|
$log->logInfo($aData['id'] . "\t" .
|
||||||
$aData['username'] . "\t" .
|
$aData['username'] . "\t" .
|
||||||
$aData['invalid'] . "\t" .
|
$aData['invalid'] . "\t" .
|
||||||
$aData['valid'] . "\t*\t" .
|
$aData['valid'] . "\t*\t" .
|
||||||
$pps_value . "\t=\t" .
|
number_format($pps_value, 12) . "\t=\t" .
|
||||||
$aData['payout'] . "\t" .
|
number_format($aData['payout'], 8) . "\t" .
|
||||||
$aData['donation'] . "\t" .
|
number_format($aData['donation'], 8) . "\t" .
|
||||||
$aData['fee']);
|
number_format($aData['fee']), 8);
|
||||||
|
|
||||||
// Add new credit transaction
|
// Add new credit transaction
|
||||||
if (!$transaction->addTransaction($aData['id'], $aData['payout'], 'Credit_PPS'))
|
if (!$transaction->addTransaction($aData['id'], $aData['payout'], 'Credit_PPS'))
|
||||||
|
|||||||
@ -60,26 +60,26 @@ foreach ($aAllBlocks as $iIndex => $aBlock) {
|
|||||||
// Loop through all accounts that have found shares for this round
|
// Loop through all accounts that have found shares for this round
|
||||||
foreach ($aAccountShares as $key => $aData) {
|
foreach ($aAccountShares as $key => $aData) {
|
||||||
// Payout based on shares, PPS system
|
// Payout based on shares, PPS system
|
||||||
$aData['percentage'] = number_format(round(( 100 / $iRoundShares ) * $aData['valid'], 8), 8);
|
$aData['percentage'] = round(( 100 / $iRoundShares ) * $aData['valid'], 8);
|
||||||
$aData['payout'] = number_format(round(( $aData['percentage'] / 100 ) * $dReward, 8), 8);
|
$aData['payout'] = round(( $aData['percentage'] / 100 ) * $dReward, 8);
|
||||||
// Defaults
|
// Defaults
|
||||||
$aData['fee' ] = 0;
|
$aData['fee' ] = 0;
|
||||||
$aData['donation'] = 0;
|
$aData['donation'] = 0;
|
||||||
|
|
||||||
if ($config['fees'] > 0 && $aData['no_fees'] == 0)
|
if ($config['fees'] > 0 && $aData['no_fees'] == 0)
|
||||||
$aData['fee'] = number_format(round($config['fees'] / 100 * $aData['payout'], 8), 8);
|
$aData['fee'] = round($config['fees'] / 100 * $aData['payout'], 8);
|
||||||
// Calculate donation amount, fees not included
|
// Calculate donation amount, fees not included
|
||||||
$aData['donation'] = number_format(round($user->getDonatePercent($user->getUserId($aData['username'])) / 100 * ( $aData['payout'] - $aData['fee']), 8), 8);
|
$aData['donation'] = round($user->getDonatePercent($user->getUserId($aData['username'])) / 100 * ( $aData['payout'] - $aData['fee']), 8);
|
||||||
|
|
||||||
// Verbose output of this users calculations
|
// Verbose output of this users calculations
|
||||||
$log->logInfo($aData['id'] . "\t" .
|
$log->logInfo($aData['id'] . "\t" .
|
||||||
$aData['username'] . "\t" .
|
$aData['username'] . "\t" .
|
||||||
$aData['valid'] . "\t" .
|
$aData['valid'] . "\t" .
|
||||||
$aData['invalid'] . "\t" .
|
$aData['invalid'] . "\t" .
|
||||||
$aData['percentage'] . "\t" .
|
number_format($aData['percentage'], 8) . "\t" .
|
||||||
$aData['payout'] . "\t" .
|
number_format($aData['payout'], 8) . "\t" .
|
||||||
$aData['donation'] . "\t" .
|
number_format($aData['donation'], 8) . "\t" .
|
||||||
$aData['fee']);
|
number_format($aData['fee']), 8);
|
||||||
|
|
||||||
// Update user share statistics
|
// Update user share statistics
|
||||||
if (!$statistics->updateShareStatistics($aData, $aBlock['id']))
|
if (!$statistics->updateShareStatistics($aData, $aBlock['id']))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user