public function update() { if ($GLOBALS['cached'] == false || $this->_fileHandler->lastTimeModified() >= 30) { // updates every 30 seconds $poolData = curlCall($this->_apiURL . '/tmp_api?address=' . $this->_btcaddess); // Offline Check if (empty($poolData)) { return; } // Data Order $data['type'] = $this->_type; $data['sent'] = $poolData['balances']['sent']; $data['balance'] = $poolData['balances']['confirmed']; $data['unconfirmed_balance'] = number_format($poolData['balances']['unconverted'], 8); $data['hashrate'] = formatHashrate($poolData['hash_rate'] / 1000); $activeWorkers = 0; foreach ($poolData['worker_hashrates'] as $worker) { if ($worker['hashrate'] != 0) { $activeWorkers++; continue; } } $data['active_worker(s)'] = $activeWorkers; $data['url'] = $this->_apiURL; $this->_fileHandler->write(json_encode($data)); return $data; } return json_decode($this->_fileHandler->read(), true); }
public function update() { if ($GLOBALS['cached'] == false || $this->_fileHandler->lastTimeModified() >= 30) { // updates every 30 seconds $poolData = array(); foreach ($this->_actions as $action) { $nonce = number_format(time() * mt_rand(), 0, '', ''); $hmacSig = strtoupper(hash_hmac('sha256', $this->_userId . $this->_apiKey . $nonce, $this->_apiSecret)); $postParams = http_build_query(array('key' => $this->_apiKey, 'nonce' => $nonce, 'signature' => $hmacSig)); $poolData[$action] = curlCall($this->_apiURL . '/api/' . $action . '.htm', $postParams, 'application/x-www-form-urlencoded', array('key' => $this->_apiKey, 'sig' => $hmacSig)); $poolData[$action] = $poolData[$action]['data']; } // Offline Check if (empty($poolData[$this->_actions[0]])) { return; } // Data Order $data['type'] = $this->_type; $data['sent'] = number_format($poolData['account']['paidOut'], 8); $data['balance'] = number_format($poolData['account']['balance'], 8); $data['current_earnings'] = number_format($poolData['account']['earnTotal'], 8); $data['pool_hashrate'] = formatHashrate($poolData['poolStats']['poolHashrate'] * 1000); // User Hashrate $data['user_hashrate_(1_day)'] = formatHashrate($poolData['hashrate']['last1d'] * 1000); $data['user_hashrate_(1_hour)'] = formatHashrate($poolData['hashrate']['last1h'] * 1000); $data['user_hashrate_(10_minutes)'] = formatHashrate($poolData['hashrate']['last10m'] * 1000); $data['eta_on_block'] = formatTimeElapsed($poolData['poolStats']['estimateTime']); $data['url'] = $this->_apiURL; $this->_fileHandler->write(json_encode($data)); return $data; } return json_decode($this->_fileHandler->read(), true); }
public function update() { if ($GLOBALS['cached'] == false || $this->_fileHandler->lastTimeModified() >= 30) { // updates every 30 seconds $poolData = array(); $poolData['user'] = curlCall($this->_apiURL . '/index.php?k=api&json=y&username='******'&api=' . $this->_apiKey); $poolData['workers'] = curlCall($this->_apiURL . '/index.php?k=api&json=y&work=y&username='******'&api=' . $this->_apiKey); // Offline Check if (empty($poolData['user']) || empty($poolData['workers'])) { return; } // Data Order $data['type'] = $this->_type; $data['user_hashrate'] = formatHashrate($poolData['user']['u_hashrate5m'] / 1000); $data['pool_hashrate'] = formatHashrate($poolData['user']['p_hashrate5m'] / 1000); for ($i = 0; $poolData['workers']['rows'] > $i; $i++) { $data[$poolData['workers']['workername:' . $i]] = formatHashrate($poolData['workers']['w_hashrate5m:' . $i] / 1000); } $data['workers'] = $poolData['workers']['rows']; $data['round_duration'] = formatTimeElapsed(time() - $poolData['user']['lastblock']); $data['url'] = $this->_apiURL; $this->_fileHandler->write(json_encode($data)); return $data; } return json_decode($this->_fileHandler->read(), true); }
public function update() { if ($CACHED == false || $this->_fileHandler->lastTimeModified() >= 30) { // updates every 30 seconds $poolData = array(); $poolData['global'] = curlCall($this->_apiURL . '/stats/json/' . $this->_apiKey); $poolData['user'] = curlCall($this->_apiURL . '/accounts/profile/json/' . $this->_apiKey); // Offline Check if (empty($poolData['global']) || empty($poolData['user'])) { return; } $data = array(); $data['type'] = $this->_type; $data['confirmed_balance'] = $poolData['user']['confirmed_reward']; $data['unconfirmed_balance'] = $poolData['user']['unconfirmed_reward']; $data['estimated_balance'] = $poolData['user']['estimated_reward']; $data['pool_hashrate'] = formatHashrate($poolData['global']['ghashes_ps'] * 1000000); $data['user_hashrate'] = formatHashrate($poolData['user']['hashrate'] * 1000); $data['workers'] = count($poolData['user']['workers']); $roundDuration = 0; $roundDurationVal = explode(':', $poolData['global']['round_duration']); $roundDuration += intval($roundDurationVal[0] * 60 * 60); $roundDuration += intval($roundDurationVal[1] * 60); $roundDuration += intval($roundDurationVal[2]); $data['round_duration'] = formatTimeElapsed($roundDuration); $data['username'] = $poolData['user']['username']; $data['url'] = $this->_apiURL; $this->_fileHandler->write(json_encode($data)); return $data; } return json_decode($this->_fileHandler->read(), true); }
public function update() { if ($GLOBALS['cached'] == false || $this->_fileHandler->lastTimeModified() >= 30) { // updates every 30 seconds $poolData = array(); foreach ($this->_actions as $action) { $poolData[$action] = curlCall($this->_apiURL . '/' . $action); } // Offline Check if (empty($poolData[$this->_actions[0]])) { return; } // Data Order $data['type'] = $this->_type; $data['coin'] = $poolData['web/currency_info']['symbol']; $data['balance'] = number_format($poolData['current_payouts'][$this->_addess], 8); $data['user_hashrate'] = formatHashrate($poolData['local_stats']['miner_hash_rates'][$this->_addess] / 1000); $data['pool_hashrate'] = formatHashrate($poolData['global_stats']['pool_nonstale_hash_rate'] / 1000); $data['pool_uptime'] = formatTimeElapsed($poolData['local_stats']['uptime']); $data['pool_fee'] = $poolData['local_stats']['fee'] . '%'; $data['peers_in'] = $poolData['local_stats']['peers']['incoming']; $data['peers_out'] = $poolData['local_stats']['peers']['outgoing']; $data['url'] = $this->_apiURL; $this->_fileHandler->write(json_encode($data)); return $data; } return json_decode($this->_fileHandler->read(), true); }
public function update() { if ($GLOBALS['cached'] == false || $this->_fileHandler->lastTimeModified() >= 30) { // updates every 30 seconds $poolData = array(); foreach ($this->_actions as $action) { $poolData[$action] = curlCall($this->_apiURL . '/index.php?page=api&id=' . $this->_userId . '&api_key=' . $this->_apiKey . '&action=' . $action); if ($action == 'getpoolstatus') { $poolData[$action] = $poolData[$action]['getpoolstatus']['data']; } else { if ($action == 'getblockstats') { $poolData[$action] = $poolData[$action]['getblockstats']['data']; } else { if ($action == 'getuserbalance') { $poolData[$action] = $poolData[$action]['getuserbalance']['data']; } else { if ($action == 'getuserstatus') { $poolData[$action] = $poolData[$action]['getuserstatus']['data']; } } } } } // Offline Check if (empty($poolData[$this->_actions[0]])) { return; } // Data Order $data['type'] = $this->_type; $data['pending_payout'] = number_format($poolData['getuserbalance']['pending_payout'], 8); $data['payout_bonus'] = number_format($poolData['getuserbalance']['pending_bonus'], 8); $data['bonus_%'] = $poolData['getuserbalance']['pending_bonus_pct'] . '%'; if ($poolData['getuserbalance']['merged_mining']) { foreach ($poolData['getuserbalance']['merged_mining'] as $coin) { $data[$coin['coin'] . '_balance'] = number_format($coin['balance'], 8); } } $data['network_hashrate'] = formatHashrate($poolData['getpoolstatus']['nethashrate'] / 1000); $data['pool_hashrate'] = formatHashrate($poolData['getpoolstatus']['hashrate']); $data['user_hashrate'] = formatHashrate($poolData['getuserstatus']['hashrate']); $data['pool_workers'] = $poolData['getpoolstatus']['workers']; $data['efficiency'] = $poolData['getpoolstatus']['efficiency'] . '%'; $data['accepted'] = $poolData['public']['shares_this_round']; $data['rejected'] = round($poolData['public']['shares_this_round'] - $poolData['public']['shares_this_round'] * ($poolData['getpoolstatus']['efficiency'] / 100)); $data['difficulty'] = round($poolData['getpoolstatus']['networkdiff'], 5); $timeSinceLastBlock = formatTimeElapsed($poolData['getpoolstatus']['timesincelast']); $data['time_since_last_block'] = $timeSinceLastBlock; $data['%_of_expected'] = round($poolData['public']['shares_this_round'] / $poolData['getpoolstatus']['estshares'] * 100, 2) . '%'; $data['current_block'] = $poolData['getpoolstatus']['currentnetworkblock']; $data['last_block'] = $poolData['getpoolstatus']['lastblock']; $data['username'] = $poolData['getuserstatus']['username']; $data['url'] = $this->_apiURL; $this->_fileHandler->write(json_encode($data)); return $data; } return json_decode($this->_fileHandler->read(), true); }
public function update() { if ($GLOBALS['cached'] == false || $this->_fileHandler->lastTimeModified() >= 30) { // updates every 30 seconds $poolData = curlCall($this->_apiURL . '?api_key=' . $this->_apiKey); // Offline Check if (empty($poolData)) { return; } // Payout Information $data['type'] = $this->_type; $poolHashrate = 0; $userHashrate = 0; foreach ($poolData['currency'] as $coin => $values) { if ($values['confirmed_rewards'] != 0) { $data[$coin . '_balance'] = number_format($values['confirmed_rewards'], 8); } if ($values['estimated_rewards'] != 0) { $data[$coin . '_unconfirmed_balance'] = number_format($values['estimated_rewards'], 8); } // removed until we find a better way to display this information. Right now it's way too cluttered // if ($values['hashrate'] != '0') { // $data[$coin.'_hashrate'] = formatHashrate($values['hashrate']); // } if ($values['hashrate'] != 0) { $userHashrate += $values['hashrate']; } $poolHashrate += $values['pool_hashrate']; } $data['pool_hashrate'] = $poolHashrate; $data['user_hashrate'] = $userHashrate; $userWorkers = array(); foreach ($poolData['workers'] as $coin => $workers) { foreach ($workers as $name => $worker) { if (!array_key_exists($name, $userWorkers)) { $userWorkers[$name] = 0; } if ($worker['hashrate'] != 0) { $userWorkers[$name] += $worker['hashrate']; } } } foreach ($userWorkers as $name => $worker) { $name = explode('.', $name); $data['worker_' . $name[1]] = formatHashrate($worker); } $data['pool_hashrate'] = formatHashrate($data['pool_hashrate']); $data['user_hashrate'] = formatHashrate($data['user_hashrate']); $data['url_name'] = 'https://multipool.us'; $data['url'] = 'https://multipool.us/'; $this->_fileHandler->write(json_encode($data)); return $data; } return json_decode($this->_fileHandler->read(), true); }
public function update() { if ($GLOBALS['cached'] == false || $this->_fileHandler->lastTimeModified() >= 30) { // updates every 30 seconds $poolData = array(); foreach ($this->_actions as $action) { $poolData[$action] = curlCall($this->_apiURL . '/api/' . $action); } // Offline Check if (empty($poolData[$this->_actions[0]])) { return; } // Data Order $data['type'] = $this->_type; $data['total_paid'] = !empty($poolData[$this->_apiKey]['total_paid']) ? $poolData[$this->_apiKey]['total_paid'] / 100000000 : 0; $data['balance'] = !empty($poolData[$this->_apiKey]['balance']) ? $poolData[$this->_apiKey]['balance'] / 100000000 : 0; $data['unconfirmed_balance'] = !empty($poolData[$this->_apiKey]['unconfirmed_balance']) ? $poolData[$this->_apiKey]['unconfirmed_balance'] / 100000000 : 0; $data['estimated_round_payout'] = !empty($poolData[$this->_apiKey]['est_round_payout']) ? number_format($poolData[$this->_apiKey]['est_round_payout'], 8) : 0; $data['pool_hashrate'] = formatHashrate($poolData['pool_stats']['hashrate']); $data['user_hashrate'] = formatHashrate($poolData[$this->_apiKey]['last_10_hashrate'] * 1000); $data['pool_workers'] = $poolData['pool_stats']['workers']; $data['accepted'] = 0; $data['rejected'] = 0; $data['efficiency'] = 0; $data['active_worker(s)'] = 0; foreach ($poolData[$this->_apiKey]['workers'] as $worker) { if ($worker['online']) { $data['efficiency'] += $worker['efficiency']; $data['accepted'] += $worker['accepted']; $data['rejected'] += $worker['rejected']; $data['active_worker(s)']++; } } if ($data['active_worker(s)'] > 0) { $data['efficiency'] = number_format($data['efficiency'] / $data['active_worker(s)'], 2); } else { $data['efficiency'] = 0.0; } $data['efficiency'] .= '%'; $data['time_since_last_block'] = gmdate('H\\H i\\M s\\S', $poolData['pool_stats']['round_duration']); $data['last_block_found'] = $poolData['pool_stats']['last_block_found']; $data['url'] = $this->_apiURL; $this->_fileHandler->write(json_encode($data)); return $data; } return json_decode($this->_fileHandler->read(), true); }
public function update() { if ($GLOBALS['cached'] == false || $this->_fileHandler->lastTimeModified() >= 30) { // updates every 30 seconds $poolData['pool'] = curlCall($this->_apiURL . '/api.php'); $poolData['user'] = curlCall($this->_apiURL . '/api.php?user='******'pool']) || empty($poolData['user'])) { return; } // Data Order $data['type'] = $this->_type; $data['total_paid'] = number_format($poolData['user']['totalPaid'], 8); $data['balance'] = number_format($poolData['user']['pending'], 8); $data['profitability_(BTC/MHs/day)'] = number_format($poolData['user']['lastProf'], 8); $data['pool_hashrate'] = formatHashrate($poolData['pool']['poolhashrate'] * 1000); $data['user_hashrate'] = formatHashrate($poolData['user']['hashrate'] * 1000); $data['url'] = $this->_apiURL; $this->_fileHandler->write(json_encode($data)); return $data; } return json_decode($this->_fileHandler->read(), true); }
public function update() { if ($CACHED == false || $this->_fileHandler->lastTimeModified() >= 30) { // updates every 30 seconds $poolData = array(); $poolData['user'] = curlCall($this->_apiURL . '/api?method=stats.provider&addr=' . $this->_btcaddess); $poolData['global'] = curlCall($this->_apiURL . '/api?method=stats.global.current'); // Offline Check if (empty($poolData['user']) || empty($poolData['global'])) { return; } $algoNetSpeed = array(); foreach ($poolData['global']['result']['stats'] as $values) { $algoNetSpeed[$values['algo']] = $values['speed']; } $data = array(); $data['type'] = $this->_type; $data['total_balance'] = 0; foreach ($poolData['user']['result']['stats'] as $stats => $values) { if ($values['accepted_speed'] > 0 || $values['balance'] > 0.0) { $algo = $this->getAlgo($values['algo']); $data['total_balance'] += $values['balance']; $data[$algo . '_balance'] = $values['balance'] . ' BTC'; $data[$algo . '_accepted'] = formatHashrate($values['accepted_speed'] * 1000000); $data[$algo . '_rejected'] = formatHashrate($values['rejected_speed'] * 1000000); $data[$algo . '_network_speed'] = formatHashrate($algoNetSpeed[$values['algo']] * 1000000); } } $data['total_balance'] = number_format($data['total_balance'], 8) . ' BTC'; $data['address'] = $this->_btcaddess; $data['url'] = $this->_apiURL; $this->_fileHandler->write(json_encode($data)); return $data; } return json_decode($this->_fileHandler->read(), true); }
function formatCapacity($hashrate, $precision = 2) { // h expected return str_replace('H/s', 'B', formatHashrate($hashrate, $precision)); }
echo $dev['status']['colour']; ?> "></i></td> <td class="<?php echo $dev['status']['colour']; ?> "><?php echo $dev['type'] . $dev['id']; ?> </td> <td><input type="checkbox" class="devEnabled" <?php echo strtolower($dev['enabled']) == 'y' ? 'checked' : ''; ?> /></td> <td><?php echo formatHashrate($dev['hashrate_5s'] * 1000); ?> </td> <?php if ($dev['type'] == 'GPU') { ?> <td><?php echo $dev['temperature_c'] . '<span>°C</span>/' . $dev['temperature_f'] . '<span>°F</span>'; ?> </td> <td><input name="devices[<?php echo $dev['id']; ?> ][intensity]" type="text" class="form-control" value="<?php echo $dev['intensity']; ?>