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 ($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(); 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 ($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(); $poolData = curlCall($this->_apiURL . '?accountId=' . $this->_userId); // Offline Check if (empty($poolData)) { return; } // Data Order $data['type'] = $this->_type; $data['sent'] = $poolData['miner']['totalEarned']; $data['unconfirmed_balance'] = $poolData['miner']['unconfirmedPayouts']; $data['user_capacity'] = formatCapacity($poolData['miner']['estimatedCapacity'] * 1000000); $data['pool_capacity'] = formatCapacity($poolData['pool']['estimatedCapacity'] * 1000000); $data['pool_miners'] = $poolData['pool']['totalMiners']; $data['current_block'] = $poolData['current']['block']; $data['nonces_submitted'] = $poolData['current']['noncesSubmitted']; $data['best_deadline'] = formatTimeElapsed($poolData['current']['bestDeadline']); $data['round_duration'] = formatTimeElapsed(time() - $poolData['current']['timeBlockStarted']); $data['pool_blocks_won'] = $poolData['pool']['blocksWon']; $data['url'] = "http://burst.ninja"; $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['global'] = curlCall($this->_apiURL . '/api/pool/stats'); $poolData['user'] = curlCall($this->_apiURL . '/api/users/' . $this->_userId . '?key=' . $this->_apiKey); // Offline Check if (empty($poolData['global']) || empty($poolData['user'])) { return; } // Payout Information $data['type'] = $this->_type; // Balances? $data['btc_balance'] = number_format($poolData['user']['balances']['BTC'], 8); $data['nmc_balance'] = number_format($poolData['user']['balances']['NMC'], 8); $data['user_hashrate'] = formatHashRate($poolData['user']['hash_rate'] * 1000); $data['network_hashrate'] = formatHashRate($poolData['global']['hash_rate'] * 1000000); $data['workers'] = $poolData['user']['active_workers']; $data['round_duration'] = formatTimeElapsed($poolData['user']['now'] - $poolData['user']['round_start']['BTC']); $data['username'] = $poolData['user']['name']; $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 = array(); foreach ($this->_actions as $action) { if ($action == 'livedata') { $poolData[$action] = curlCall($this->_apiURL . '/instant.php/livedata.json'); continue; } $actionParam = $action; if ($action == 'getuserhashrate' || $action == 'getuserstat') { if ($action == 'getuserhashrate') { $actionParam = 'gethashrate'; } $actionParam .= '&username='******'/api.php?cmd=' . $actionParam); } // Offline Check if (empty($poolData[$this->_actions[0]])) { return; } // Data Order $data['type'] = $this->_type; $data['sent'] = number_format($poolData['getuserstat']['output']['everpaid'] * 1.0E-8, 8); $data['balance'] = number_format($poolData['getuserstat']['output']['lbal'] * 1.0E-8, 8); $data['unconfirmed_balance'] = number_format(($poolData['getuserstat']['output']['bal'] - $poolData['getuserstat']['output']['lbal']) * 1.0E-8, 8); $data['total_balance'] = number_format($data['balance'] + $data['unconfirmed_balance'], 8); $data['pool_hashrate_(64 seconds)'] = $poolData['gethashrate']['output']['av64']['pretty']; $data['user_hashrate_(3_hours)'] = $poolData['getuserhashrate']['output']['av10800']['pretty']; $data['user_hashrate_(22.5_minutes)'] = $poolData['getuserhashrate']['output']['av1350']['pretty']; $data['user_hashrate_(128_seconds)'] = $poolData['getuserhashrate']['output']['av128']['pretty']; $data['round_duration'] = formatTimeElapsed($poolData['livedata']['roundduration']); $data['round_luck'] = round(round($poolData['livedata']['network_difficulty'] * 1000 / $poolData['livedata']['roundsharecount'], 2) / 10, 2) . '%'; $data['last_block'] = $poolData['livedata']['lastblockheight']; $data['last_block_url'] = $this->_apiURL . '/blocks.php'; $data['url_name'] = 'http://eligius.st'; $data['url'] = $this->_apiURL . '/userstats.php/' . $this->_btcaddess; $this->_fileHandler->write(json_encode($data)); return $data; } return json_decode($this->_fileHandler->read(), true); }
private function fetchData() { if ($this->onlineCheck() != null) { // Cgminer Summary $summary = json_decode($this->cmd('{"command":"summary"}'), true); $this->_summary = $summary['SUMMARY'][0]; // Devices $this->fetchDevices(); // Device Details $this->fetchDeviceDetails(); // Pools $this->fetchPools(); //Misc data $this->_upTime = formatTimeElapsed($this->_summary['Elapsed']); if (empty($this->_rigHashrate_5s)) { if (isset($this->_summary['MHS av'])) { $this->_rigHashrate_5s = $this->_summary['MHS av']; } else { if (isset($this->_summary['GHS av'])) { $this->_rigHashrate_5s = $this->_summary['GHS av'] * 1000; } } } if (empty($this->_rigHashrate_avg)) { if (isset($this->_summary['MHS av'])) { $this->_rigHashrate_avg = $this->_summary['MHS av']; } else { if (isset($this->_summary['GHS av'])) { $this->_rigHashrate_avg = $this->_summary['GHS av'] * 1000; } } } return true; } return false; }