Paste Search Dynamic
Recent pastes
hashpowerEarnings
  1. <?php
  2.  
  3.     $NICEHASH_HOST = 'https://api2.nicehash.com';
  4.     $NICEHASH_ORG_ID = 'bfgevyrf5ec3f1';
  5.     $NICEHASH_KEY = '"q6hfe3gge4g";
  6.    $NICEHASH_SECRET = '4ft4grr6geeg';
  7.  
  8. class NicehashAPI {
  9.         private $host = 'https://api2.nicehash.com';
  10.         private $orgId = 'bfgevyrf5ec3f1';
  11.         private $privateKey = '4ft4grr6geegq';    // API Secret
  12.         private $publicKey = 'q6hfe3gge4g';     // API Key
  13.  
  14.         public function __construct($url, $org, $priv, $pub) {
  15.                 $this->host = $url;
  16.                 $this->orgId = $org;
  17.                 $this->privateKey = $priv;
  18.                 $this->publicKey = $pub;
  19.         }
  20.  
  21.         private function api_nicehash($path, $req, $method="GET") {
  22.                 static $ch = null;
  23.                 $ch = curl_init();
  24.                 $req_par = "";
  25.                 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  26.                 if ($method == "GET") {
  27.                         curl_setopt($ch, CURLOPT_HTTPGET, true);
  28.                 } else {
  29.                         curl_setopt($ch, CURLOPT_POST, true);
  30.                 }
  31.                 $url = $this->host;
  32.                 if (($req) && ($method == "GET")){
  33.                         foreach ($req as $rk => $r ) {
  34.                                 $req_par = $req_par . $rk . '=' . $r . '&';
  35.                         }
  36.                         $req_par = substr($req_par, 0, -1);
  37.                         $url .= $path ."?". $req_par;
  38.                 } else if (($req) && ($method == "POST")){
  39.                         $body = json_encode($req);
  40.                         $url .= $path;
  41.                 } else {
  42.                         $url .= $path;
  43.                 }
  44.                 curl_setopt($ch, CURLOPT_URL, $url );
  45.                
  46.                 #curl_setopt($ch, CURLOPT_VERBOSE, true);
  47.  
  48.                 #curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  49.                 $xtime = round(microtime(true)*1000,0);
  50.                 $xnonce = $this->v4();
  51.                 $xauth = $this->publicKey."".$xtime."".$xnonce.""."".$this->orgId.""."".$method."".$path."".$req_par;
  52.                 if ($method == "POST")
  53.                         $xauth .= "".$body;
  54.                 $xauth = $this->publicKey.":".hash_hmac ( "sha256", $xauth, $this->privateKey, false );
  55.         $headers = [
  56.             'X-Time: '.$xtime,
  57.             'X-Nonce: '.$xnonce,
  58.             'X-Auth: '. $xauth,
  59.             'Content-Type: application/json',
  60.             'X-Organization-Id: '.$this->orgId,
  61.             'X-Request-Id: '.$this->v4()
  62.         ];
  63.                 if ($method == "POST") {
  64.                         curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
  65.                         $headers[] = "Content-Length: ".strlen($body);
  66.                 }
  67.                 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  68.                 $res = curl_exec($ch);
  69.                 if ($res === false) return false;
  70.                 $result = json_decode($res, true);
  71.                 return $result;
  72.         }
  73.  
  74.         public function getBTCBalance() {
  75.                 $path = "/main/api/v2/accounting/account2/BTC";
  76.                 $result = $this->api_nicehash($path, "");
  77.  
  78.                 if(isset($result['errors'][0]['message'])) { echo  "Error: " . $result['errors'][0]['message'] . PHP_EOL; return false; };
  79.                 return $result;
  80.         }
  81.  
  82.         public static function v4() {
  83.                 return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
  84.  
  85.                         // 32 bits for "time_low"
  86.                         mt_rand(0, 0xffff), mt_rand(0, 0xffff),
  87.  
  88.                         // 16 bits for "time_mid"
  89.                         mt_rand(0, 0xffff),
  90.  
  91.                         // 16 bits for "time_hi_and_version",
  92.                         // four most significant bits holds version number 4
  93.                         mt_rand(0, 0x0fff) | 0x4000,
  94.  
  95.                         // 16 bits, 8 bits for "clk_seq_hi_res",
  96.                         // 8 bits for "clk_seq_low",
  97.                         // two most significant bits holds zero and one for variant DCE1.1
  98.                         mt_rand(0, 0x3fff) | 0x8000,
  99.  
  100.                         // 48 bits for "node"
  101.                         mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
  102.                 );
  103.         }
  104.  
  105.     public function hashpowerEarnings() {
  106.  
  107.                 $path = "/main/api/v2/accounting/hashpowerEarnings/BTC";
  108.                 $result = $this->api_nicehash($path, "");
  109.  
  110.                 if(isset($result['errors'][0]['message'])) { echo  "Error: " . $result['errors'][0]['message'] . PHP_EOL; return false; };
  111.                 return $result;
  112.     }
  113. }
  114.  
  115. $NH_API = new NicehashAPI($NICEHASH_HOST, $NICEHASH_ORG_ID, $NICEHASH_SECRET, $NICEHASH_KEY);
  116.  
  117. $btc_balance = $NH_API->getBTCBalance();
  118. $hashpowerEarnings = $NH_API->hashpowerEarnings();
  119.  
  120. var_dump($btc_balance);
  121. echo "<br>-------------------------<br>";
  122. var_dump($hashpowerEarnings);
  123.  
  124. ?>
Parsed in 0.063 seconds