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 . '/api.php?key=' . $this->_apiKey . '&action=' . $action); } // Offline Check if (empty($poolData[$this->_actions[0]])) { return; } // Data Order $data['type'] = $this->_type; $data['total_sent'] = $poolData['userstats']['data']['user']['total_payout']; $data['balance'] = $poolData['userstats']['data']['user']['confirmed_rewards']; $data['unconfirmed_balance'] = $poolData['userstats']['data']['user']['unconfirmed_rewards']; $data['estimated_rewards'] = $poolData['userstats']['data']['user']['estimated_rewards']; $data['pool_hashrate'] = $poolData['poolstats']['hashrate']; $data['user_hashrate'] = 0; $speedMultiplier = array('GH/s' => 1000, 'TH/s' => 1000000); foreach ($poolData['userstats']['workers'] as $worker) { if (!empty($worker['hash_rate'])) { $hashrate = strtok($worker['hash_rate'], ' '); $hashspeed = substr(strrchr($worker['hash_rate'], ' '), 1); $data['user_hashrate'] += $hashrate * $speedMultiplier[$hashspeed]; } } $data['user_hashrate'] = formatHashRate($data['user_hashrate'] * 1000); $data['pool_workers'] = $poolData['poolstats']['active_workers']; // how to get active user workers and total hashrate? $data['time_since_last_block'] = $poolData['poolstats']['round_duration']; // Would love to format this one day // $data['time_since_last_block'] = formatTimeElapsed(); // how to format? 00:52:44 $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.php?api_key=' . $this->_apiKey); // Offline Check if (empty($poolData)) { return; } // Data Order $data['type'] = $this->_type; // Pool Speed $data['pool_hashrate'] = formatHashRate($poolData['pool']['pool_speed'] * 1000000000); $data['user_hashrate'] = 0; // BTC Payout // $data['total_BTC'] = $poolData['user']['total_rewards']; $data['paid_BTC'] = $poolData['user']['paid_rewards']; $data['unpaid_BTC'] = $poolData['user']['unpaid_rewards']; $data['past_24h_BTC'] = $poolData['user']['past_24h_rewards']; $data['BTC_difficulty'] = $poolData['pool']['difficulty']; $data['valid_BTC_shares'] = 0; $data['stale_BTC_shares'] = 0; $data['duplicate_BTC_shares'] = 0; $data['unknown_BTC_shares'] = 0; // NMC Payout // $data['total_NMC'] = $poolData['user']['total_rewards_nmc']; $data['paid_NMC'] = $poolData['user']['paid_rewards_nmc']; $data['unpaid_NMC'] = $poolData['user']['unpaid_rewards_nmc']; $data['past_24h_NMC'] = $poolData['user']['past_24h_rewards_nmc']; $data['NMC_difficulty'] = $poolData['pool']['difficulty_nmc']; $data['valid_NMC_shares'] = 0; $data['stale_NMC_shares'] = 0; $data['duplicate_NMC_shares'] = 0; $data['unknown_NMC_shares'] = 0; foreach ($poolData['workers'] as $worker) { $data['user_hashrate'] += $worker['hashrate']; // BTC $data['valid_BTC_shares'] += $worker['valid_shares']; $data['stale_BTC_shares'] += $worker['stale_shares']; $data['duplicate_BTC_shares'] += $worker['duplicate_shares']; $data['unknown_BTC_shares'] += $worker['unknown_shares']; // NMC $data['valid_NMC_shares'] += $worker['valid_shares_nmc']; $data['stale_NMC_shares'] += $worker['stale_shares_nmc']; $data['duplicate_NMC_shares'] += $worker['duplicate_shares_nmc']; $data['unknown_NMC_shares'] += $worker['unknown_shares_nmc']; } $data['active_workers'] = 0; if (!empty($poolData['workers'])) { foreach ($poolData['workers'] as $worker) { if ($worker['hash_rate'] != 0) { $data['active_workers']++; } } } // Clear data if it's missing foreach ($data as $key => $value) { if ($value == 0) { unset($data[$key]); } } $data['url'] = $this->_apiURL; $this->_fileHandler->write(json_encode($data)); return $data; } return json_decode($this->_fileHandler->read(), true); }