Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
 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);
 }