fixing pps payout, getRoundShares system MUST be search by ID or round shares are NOT calculated properly

This commit is contained in:
Sebastian Grewe 2013-05-14 17:58:10 +02:00
parent b8c6e16452
commit 9536e7c193
2 changed files with 9 additions and 16 deletions

View File

@ -43,8 +43,7 @@ foreach ($aAllBlocks as $iIndex => $aBlock) {
continue;
}
$aAccountShares = $share->getSharesForAccounts($share->getLastUpstreamId(), $iCurrentUpstreamId);
$aRoundShares = $share->getRoundShares($share->getLastUpstreamId(), $iCurrentUpstreamId);
$iRoundShares = $aRoundShares['valid'];
$iRoundShares = $share->getRoundShares($share->getLastUpstreamId(), $iCurrentUpstreamId);
verbose("ID\tHeight\tTime\t\tShares\tFinder\t\tShare ID\tPrev Share\tStatus\n");
verbose($aBlock['id'] . "\t" . $aBlock['height'] . "\t" . $aBlock['time'] . "\t" . $iRoundShares . "\t" . $share->getUpstreamFinder() . "\t" . $share->getUpstreamId() . "\t\t" . $share->getLastUpstreamId());
if (empty($aAccountShares)) {

View File

@ -34,25 +34,19 @@ class Share {
return $this->table;
}
public function getRoundShares() {
$stmt = $this->mysqli->prepare("
SELECT
( SELECT IFNULL(count(id), 0)
FROM $this->table
WHERE UNIX_TIMESTAMP(time) >IFNULL((SELECT MAX(time) FROM blocks),0)
AND our_result = 'Y' ) as valid,
( SELECT IFNULL(count(id), 0)
public function getRoundShares($previous_upstream=0, $current_upstream) {
$stmt = $this->mysqli->prepare("SELECT
count(id) as total
FROM $this->table
WHERE UNIX_TIMESTAMP(time) >IFNULL((SELECT MAX(time) FROM blocks),0)
AND our_result = 'N' ) as invalid
");
echo $this->mysqli->error;
WHERE our_result = 'Y'
AND id BETWEEN ? AND ?
");
if ($this->checkStmt($stmt)) {
$stmt->bind_param('ii', $previous_upstream, $current_upstream);
$stmt->execute();
$result = $stmt->get_result();
$stmt->close();
return $result->fetch_assoc();
return $result->fetch_object()->total;
}
return false;
}