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);
 }
Example #2
0
 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);
 }
Example #3
0
 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);
 }
Example #4
0
 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);
 }
Example #5
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 . '/' . $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);
 }
Example #10
0
 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);
 }
Example #11
0
function formatCapacity($hashrate, $precision = 2)
{
    // h expected
    return str_replace('H/s', 'B', formatHashrate($hashrate, $precision));
}
Example #12
0
    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>&deg;C</span>/' . $dev['temperature_f'] . '<span>&deg;F</span>';
        ?>
</td>
                                          <td><input name="devices[<?php 
        echo $dev['id'];
        ?>
][intensity]" type="text" class="form-control" value="<?php 
        echo $dev['intensity'];
        ?>