function douserinfo($data, $user) { $sall = $user == 'Kano'; $ans = getUserInfo($user); $pg = '<h1>Block Acclaim</h1>'; $pg .= "<table cellpadding=0 cellspacing=0 border=0>\n"; $pg .= '<thead><tr class=title>'; $pg .= '<td class=dl>User</td>'; $pg .= '<td class=dr>Blocks</td>'; if ($sall) { $pg .= '<td class=dr>Diff</td>'; $pg .= '<td class=dr>Avg</td>'; } $pg .= "</thead></tr>\n"; if ($ans['STATUS'] == 'ok') { $pg .= '<tbody>'; $all = array(); $count = $ans['rows']; for ($i = 0; $i < $count; $i++) { if ($sall) { $diffacc = $ans['diffacc:' . $i]; } else { $diffacc = 0; } $all[] = array('blocks' => $ans['blocks:' . $i], 'username' => $ans['username:'******'diffacc' => $diffacc); } usort($all, 'blocksorder'); for ($i = 0; $i < $count; $i++) { $bl = $all[$i]['blocks']; if ($sall == false && $bl < 1) { break; } if ($i % 2 == 0) { $row = 'even'; } else { $row = 'odd'; } $pg .= "<tr class={$row}>"; $un = htmlspecialchars($all[$i]['username']); $pg .= "<td class=dl>{$un}</td>"; $pg .= "<td class=dr>{$bl}</td>"; if ($sall) { $diffacc = $all[$i]['diffacc']; $pg .= '<td class=dr>' . difffmt($diffacc) . '</td>'; if ($bl == 0) { $bl = 1; } $pg .= '<td class=dr>' . difffmt($diffacc / $bl) . '</td>'; } $pg .= "</tr>\n"; } $pg .= '</tbody>'; } $pg .= "</table>\n"; return $pg; }
function doshifts($data, $user) { $ans = getShifts($user); $pg = "Click <a href='#payoutmark'>here</a> to jump to the start of the last payout<br><br>"; $pg .= "<table callpadding=0 cellspacing=0 border=0>\n"; $pg .= "<tr class=title>"; $pg .= "<td class=dl>Shift</td>"; $pg .= "<td class=dl>Start UTC</td>"; $pg .= "<td class=dr>Length</td>"; $pg .= "<td class=dr>Your Diff</td>"; $pg .= "<td class=dr>Inv Diff</td>"; $pg .= "<td class=dr>Avg Hs</td>"; $pg .= "<td class=dr>Shares</td>"; $pg .= "<td class=dr>Avg Share</td>"; $pg .= "<td class=dr>Rewards</td>"; $pg .= "<td class=dr>Rewarded<span class=st1>*</span></td>"; $pg .= "<td class=dr>PPS%</td>"; $pg .= "</tr>\n"; if ($ans['STATUS'] != 'ok' || !isset($ans['prefix_all'])) { $pg = '<h1>Shifts</h1>' . $pg; } else { $pre = $ans['prefix_all']; $count = $ans['rows']; $pg = '<h1>Last ' . ($count + 1) . ' Shifts</h1>' . $pg; for ($i = 0; $i < $count; $i++) { $u = ''; $mark = ''; if (isset($ans['lastpayoutstart:' . $i]) && $ans['lastpayoutstart:' . $i] != '') { $u = 'u'; $mark = '<a name=payoutmark></a>'; } if ($i % 2 == 0) { $row = "even{$u}"; } else { $row = "odd{$u}"; } $pg .= "<tr class={$row}>"; $shifname = $ans['shift:' . $i]; $shif = preg_replace(array('/^.* to /', '/^.*fin: /'), '', $shifname); $ablock = false; if (preg_match('/to.*Block.* fin/', $shifname) == 1) { $ablock = true; } else { $shifex = $ans['endmarkextra:' . $i]; if (preg_match('/Block .* fin/', $shifex) == 1) { $ablock = true; } } if ($ablock === true) { $btc = ' <img src=/BTCSym.png border=0>'; } else { $btc = ''; } $pg .= "<td class=dl>{$shif}{$btc}{$mark}</td>"; $start = $ans['start:' . $i]; $pg .= '<td class=dl>' . utcd($start, true) . '</td>'; $nd = $ans['end:' . $i]; $elapsed = $nd - $start; $pg .= '<td class=dr>' . howmanyhrs($elapsed) . '</td>'; $diffacc = $ans[$pre . 'diffacc:' . $i]; $pg .= '<td class=dr>' . difffmt($diffacc) . '</td>'; $diffinv = $ans[$pre . 'diffinv:' . $i]; $pg .= '<td class=dr>' . difffmt($diffinv) . '</td>'; $hr = $diffacc * pow(2, 32) / $elapsed; $pg .= '<td class=dr>' . dsprate($hr) . '</td>'; $shareacc = $ans[$pre . 'shareacc:' . $i]; $pg .= '<td class=dr>' . difffmt($shareacc) . '</td>'; if ($shareacc > 0) { $avgsh = $diffacc / $shareacc; } else { $avgsh = 0; } $pg .= '<td class=dr>' . number_format($avgsh, 2) . '</td>'; $pg .= '<td class=dr>' . $ans['rewards:' . $i] . '</td>'; $ppsr = (double) $ans['ppsrewarded:' . $i]; if ($ppsr > 0) { $ppsd = sprintf('%.5f', $ppsr); } else { $ppsd = '0'; } $pg .= "<td class=dr>{$ppsd}</td>"; $ppsv = (double) $ans['ppsvalue:' . $i]; if ($ppsv > 0) { $pgot = number_format(100.0 * $ppsr / $ppsv, 2) . '%'; } else { $pgot = '?'; } $pg .= "<td class=dr>{$pgot}</td>"; $pg .= "</tr>\n"; } } $pg .= "</table>\n"; $pg .= "<span class=st1>*</span> The Rewarded value unit is satoshis per 1diff share<br>"; return $pg; }
function dompayouts($data, $user) { $pg = '<h1>Mining Rewards</h1>'; $ans = getMPayouts($user); $pg .= "The rewards you've earned for each block the pool has found.<br>"; $pg .= 'See the '; $pg .= makeLink('payments'); $pg .= "Payments</a> page for the payments you've been sent.<br><br>"; $pg .= "<table callpadding=0 cellspacing=0 border=0>\n"; $pg .= "<tr class=title>"; $pg .= "<td class=dr>Block</td>"; $pg .= "<td class=dr>Block UTC</td>"; $pg .= "<td class=dr>Miner Reward</td>"; $pg .= "<td class=dr>N Diff</td>"; $pg .= "<td class=dr>N Range</td>"; $pg .= "<td class=dr>Pool N Avg</td>"; $pg .= "<td class=dr>Your %</td>"; $pg .= "<td class=dr>Your N Diff</td>"; $pg .= "<td class=dr>Your N Avg</td>"; $pg .= "<td class=dr>Your BTC</td>"; $pg .= "</tr>\n"; if ($ans['STATUS'] == 'ok') { $totamt = 0; $count = $ans['rows']; for ($i = 0; $i < $count; $i++) { if ($i % 2 == 0) { $row = 'even'; } else { $row = 'odd'; } $pg .= "<tr class={$row}>"; $pg .= '<td class=dr>' . $ans['height:' . $i] . '</td>'; $pg .= '<td class=dr>' . gmdate('j/M H:i', $ans['blockcreatedate:' . $i]) . '</td>'; $pg .= '<td class=dr>' . btcfmt($ans['minerreward:' . $i]) . '</td>'; $diffused = $ans['diffused:' . $i]; $pg .= '<td class=dr>' . difffmt($diffused) . '</td>'; $elapsed = $ans['elapsed:' . $i]; $pg .= '<td class=dr>' . howmanyhrs($elapsed) . '</td>'; $phr = $diffused * pow(2, 32) / $elapsed; $pg .= '<td class=dr>' . siprefmt($phr) . 'Hs</td>'; $diffacc = $ans['diffacc:' . $i]; $ypct = $diffacc * 100 / $diffused; $pg .= '<td class=dr>' . number_format($ypct, 2) . '%</td>'; $pg .= '<td class=dr>' . difffmt($diffacc) . '</td>'; $hr = $diffacc * pow(2, 32) / $elapsed; $pg .= '<td class=dr>' . dsprate($hr) . '</td>'; $amount = $ans['amount:' . $i]; $totamt += $amount; $pg .= '<td class=dr>' . btcfmt($amount) . '</td>'; $pg .= "</tr>\n"; } if ($count > 1) { if ($i % 2 == 0) { $row = 'even'; } else { $row = 'odd'; } $pg .= "<tr class={$row}>"; $pg .= '<td class=dr>Total:</td>'; $pg .= '<td class=dl colspan=8></td>'; $pg .= '<td class=dr>' . btcfmt($totamt) . '</td>'; $pg .= "</tr>\n"; } } $pg .= "</table>\n"; return $pg; }
function workuser($data, $user, &$offset, &$totshare, &$totdiff, &$totshrate, &$totinvalid, &$totrate, &$blockacc, &$blockreward, $old = false, $srt = false, $one = false, &$title, &$instances) { $ans = getWorkers($user); $pg = ''; if ($ans['STATUS'] == 'ok') { if (isset($ans['blockacc'])) { $blockacc = $ans['blockacc']; } if (isset($ans['blockreward'])) { $blockreward = $ans['blockreward']; } if ($one === true && isset($ans['oldworkers'])) { $days = intval($ans['oldworkers']); if ($days != 0) { $title = ' (active during the last ' . $days . ' day' . ($days == 1 ? '' : 's') . ')'; } } $all = array(); $count = $ans['rows']; $now = $ans['STAMP']; for ($i = 0; $i < $count; $i++) { $lst = $now - $ans['w_lastshare:' . $i]; if ($old !== false && $lst > $old) { continue; } if ($ans['w_elapsed:' . $i] > 3600) { $uhr = $ans['w_hashrate1hr:' . $i]; } else { $uhr = $ans['w_hashrate5m:' . $i]; } $all[] = array('workername' => $ans['workername:' . $i], 'w_lastshare' => $ans['w_lastshare:' . $i], 'w_lastshareacc' => $ans['w_lastshareacc:' . $i], 'w_lastdiff' => $ans['w_lastdiff:' . $i], 'w_shareacc' => $ans['w_shareacc:' . $i], 'w_diffacc' => $ans['w_diffacc:' . $i], 'w_diffinv' => $ans['w_diffinv:' . $i], 'w_diffsta' => $ans['w_diffsta:' . $i], 'w_diffdup' => $ans['w_diffdup:' . $i], 'w_diffhi' => $ans['w_diffhi:' . $i], 'w_diffrej' => $ans['w_diffrej:' . $i], 'w_sharesta' => $ans['w_sharesta:' . $i], 'w_sharedup' => $ans['w_sharedup:' . $i], 'w_sharehi' => $ans['w_sharehi:' . $i], 'w_sharerej' => $ans['w_sharerej:' . $i], 'w_lastdiff' => $ans['w_lastdiff:' . $i], 'w_active_diffacc' => $ans['w_active_diffacc:' . $i], 'w_active_start' => $ans['w_active_start:' . $i], 'w_uhr' => $uhr); $instances += $ans['w_instances:' . $i]; } if ($srt) { usort($all, 'workhashorder'); } foreach ($all as $arow) { $lst = $now - $arow['w_lastshare']; if ($old !== false && $lst > $old) { continue; } $lstacc = $now - $arow['w_lastshareacc']; if ($offset % 2 == 0) { $row = 'even'; } else { $row = 'odd'; } $pg .= "<tr class={$row}>"; $pg .= '<td class=dl>' . htmlspecialchars($arow['workername']) . '</td>'; if ($arow['w_lastdiff'] > 0) { $ld = difffmt($arow['w_lastdiff']); } else { $ld = ' '; } $pg .= "<td class=dr>{$ld}</td>"; $pg .= "<td class=dr data-srt={$lstacc}>" . howlongago($lstacc) . '</td>'; $shareacc = number_format($arow['w_shareacc'], 0); $totshare += $arow['w_shareacc']; $dacc = $arow['w_diffacc']; $diffacc = number_format($dacc, 0); $ds = round($dacc); $totdiff += $dacc; $pg .= "<td class=dr>{$shareacc}</td>"; $pg .= "<td class=dr data-srt={$ds}>{$diffacc}</td>"; $acthr = '0'; $acthrv = 0; $actstt = $arow['w_active_start']; if ($actstt <= 0 || $now - $actstt < 0) { $actsin = ' '; } else { $actsin = howmanyhrs($now - $actstt); $elapsed = $now - $actstt; if ($elapsed > 0) { $acthrv = $arow['w_active_diffacc'] * pow(2, 32) / $elapsed; $acthr = dsprate($acthrv); $totshrate += $acthrv; } } $pg .= "<td class=dr data-srt={$acthrv}>{$acthr}</td>"; $pg .= "<td class=dr>{$actsin}</td>"; $dinv = $arow['w_diffinv']; $dtot = $dacc + $dinv; if ($dtot > 0) { $rejf = $dinv / $dtot; $rej = number_format(100.0 * $rejf, 3); } else { $rejf = 0; $rej = '0'; } $totinvalid += $dinv; $pg .= "<td class=dr data-srt={$rejf}>{$rej}%</td>"; foreach (array('sta', 'dup', 'hi', 'rej') as $fld) { $shr = number_format($arow['w_share' . $fld]); $dif = $arow['w_diff' . $fld]; $ddif = number_format($dif); $sdif = number_format($dif, 0, '', ''); $pg .= "<td class=hid data-srt={$sdif} data-hid=dr>{$ddif}/{$shr}</td>"; } if ($blockacc <= 0) { $blkpct = ' '; } else { $blkpct = number_format(100.0 * $dacc / $blockacc, 3) . '%'; } $pg .= "<td class=dr>{$blkpct}</td>"; $uhr = $arow['w_uhr']; if ($uhr == '?') { $uhr = '?GHs'; $su = 0; } else { $su = round($uhr); $totrate += $uhr; $uhr = dsprate($uhr); } $pg .= "<td class=dr data-srt={$su}>{$uhr}</td>"; $pg .= "</tr>\n"; $offset++; } } return $pg; }