?? GreyFile — Mystic File Browser

Current path: home/webdevt/cryptoimpot.fr/module/Application/src/ExchangeAPI/



?? Go up: /home/webdevt/cryptoimpot.fr/module/Application/src

?? Viewing: KrakenAPI.php

<?php

namespace Application\ExchangeAPI;

/**
 * Description of KrakenAPI
 *
 * https://www.kraken.com/features/api#api-call-rate-limit
 * https://github.com/payward/kraken-api-client/blob/master/php/KrakenAPIClient.php
 * 
 */
class KrakenAPI extends \Payward\KrakenAPI {

    /**
     * Due to ongoing issues with out of date wamp CA bundles
     * This function downloads ca bundle for curl website
     * and uses it as part of the curl options
     */
//    private function downloadCurlCaBundle() {
//
////        var_dump(getcwd()); exit;
//        //$output_filename = getcwd() . "/data/io/ca.pem";
////        if (is_writable(getcwd()) === false) {
////            die(getcwd() . " folder is not writeable, plese check your permissions");
////        }
//        //$host = "https://curl.haxx.se/ca/cacert.pem";
//        $curl = curl_init();
//        curl_setopt($curl, CURLOPT_URL, $host);
//        curl_setopt($curl, CURLOPT_VERBOSE, 0);
//        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//        curl_setopt($curl, CURLOPT_HEADER, 0);
//        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
//        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
//
//        // proxy settings
//        if (is_array($this->proxyConf)) {
//            curl_setopt($curl, CURLOPT_PROXY, $this->getProxyUriString());
//            if (isset($this->proxyConf['user']) && isset($this->proxyConf['pass'])) {
//                curl_setopt($curl, CURLOPT_PROXYUSERPWD, $this->proxyConf['user'] . ':' . $this->proxyConf['pass']);
//            }
//        }
//
//        $result = curl_exec($curl);
//        curl_close($curl);
//
//        if ($result === false) {
//            echo "Unable to to download the CA bundle $host" . PHP_EOL;
//            return;
//        }
//
////        var_dump($result);
////        exit;
//
//        $fp = fopen($output_filename, 'w');
//
//        if ($fp === false) {
//            echo "Unable to write $output_filename, please check permissions on folder" . PHP_EOL;
//            return;
//        }
//
//        fwrite($fp, $result);
//        fclose($fp);
//    }
//    
//    private function balanceData(array $array, $priceData)
//    {
//        $balances = [];
//
//        if (is_array($priceData)) {
//            $btc_value = $btc_total = 0.00;
//        }
//
//        if (empty($array) || empty($array['balances'])) {
//            // WPCS: XSS OK.
//            echo "balanceData error: Please make sure your system time is synchronized: call \$api->useServerTime() before this function" . PHP_EOL;
//            echo "ERROR: Invalid request. Please double check your API keys and permissions." . PHP_EOL;
//            return [];
//        }
//
//        foreach ($array['balances'] as $obj) {
//            $asset = $obj['asset'];
//            $balances[$asset] = [
//                "available" => $obj['free'],
//                "onOrder" => $obj['locked'],
//                "btcValue" => 0.00000000,
//                "btcTotal" => 0.00000000,
//            ];
//
//            if (is_array($priceData) === false) {
//                continue;
//            }
//
//            if ($obj['free'] + $obj['locked'] < 0.00000001) {
//                continue;
//            }
//
//            if ($asset === 'BTC') {
//                $balances[$asset]['btcValue'] = $obj['free'];
//                $balances[$asset]['btcTotal'] = $obj['free'] + $obj['locked'];
//                $btc_value += $obj['free'];
//                $btc_total += $obj['free'] + $obj['locked'];
//                continue;
//            }
//
//            $symbol = $asset . 'BTC';
//
//            if ($symbol === 'BTCUSDT') {
//                $btcValue = number_format($obj['free'] / $priceData['BTCUSDT'], 8, '.', '');
//                $btcTotal = number_format(($obj['free'] + $obj['locked']) / $priceData['BTCUSDT'], 8, '.', '');
//            } elseif (isset($priceData[$symbol]) === false) {
//                $btcValue = $btcTotal = 0;
//            } else {
//                $btcValue = number_format($obj['free'] * $priceData[$symbol], 8, '.', '');
//                $btcTotal = number_format(($obj['free'] + $obj['locked']) * $priceData[$symbol], 8, '.', '');
//            }
//
//            $balances[$asset]['btcValue'] = $btcValue;
//            $balances[$asset]['btcTotal'] = $btcTotal;
//            $btc_value += $btcValue;
//            $btc_total += $btcTotal;
//        }
//        if (is_array($priceData)) {
//            uasort($balances, function ($opA, $opB) {
//                return $opA['btcValue'] < $opB['btcValue'];
//            });
//            $this->btc_value = $btc_value;
//            $this->btc_total = $btc_total;
//        }
//        return $balances;
//    }
//    
//    public function exchangeInfo()
//    {
//        return $this->httpRequest("v1/exchangeInfo");
//    }
//
//    public function history(string $symbol = '', int $limit = 500, int $fromTradeId = -1) {
//        $parameters = [
//                "symbol" => $symbol,
////            'recvWindow'=> 10000000
//            'recvWindow'=> 60000,
//                "limit" => $limit
//        ];
//        if ($fromTradeId > 0) {
//            $parameters["fromId"] = $fromTradeId;
//        }
//
//        return $this->httpRequest("v3/myTrades", "GET", $parameters, true);
//    }
//    
//    public function balances($priceData = false)
//    {
//        if (is_array($priceData) === false) {
//            $priceData = false;
//        }
//
//        $account = $this->httpRequest("v3/account", "GET", [], true);
//
//        if (is_array($account) === false) {
//            echo "Error: unable to fetch your account details" . PHP_EOL;
//        }
//
//        if (isset($account['balances']) === false) {
//            echo "Error: your balances were empty or unset" . PHP_EOL;
//        }
//
//        return $this->balanceData($account, $priceData);
//    }
//    
//    private function httpRequest(string $url, string $method = "GET", array $params = [], bool $signed = false)
//    {
//        if (function_exists('curl_init') === false) {
//            throw new \Exception("Sorry cURL is not installed!");
//        }
//
//        if ($this->caOverride === false) {
//            if (file_exists(getcwd() . '/ca.pem') === false) {
//                //$this->downloadCurlCaBundle();
//            }
//        }
//
//        $curl = curl_init();
//        curl_setopt($curl, CURLOPT_VERBOSE, $this->httpDebug);
//        $query = http_build_query($params, '', '&');
//
//        // signed with params
//        if ($signed === true) {
//            if (empty($this->api_key)) {
//                throw new \Exception("signedRequest error: API Key not set!");
//            }
//
//            if (empty($this->api_secret)) {
//                throw new \Exception("signedRequest error: API Secret not set!");
//            }
//
//            $base = $this->base;
//            $ts = (microtime(true) * 1000) + $this->info['timeOffset'];
//            $params['timestamp'] = number_format($ts, 0, '.', '');
//            if (isset($params['wapi'])) {
//                unset($params['wapi']);
//                $base = $this->wapi;
//            }
//            $query = http_build_query($params, '', '&');
//            $signature = hash_hmac('sha256', $query, $this->api_secret);
//			if ($method === "POST") {
//				$endpoint = $base . $url . '?'  . 'signature=' . $signature;
//			} else
//				$endpoint = $base . $url . '?' . $query . '&signature=' . $signature;
//            curl_setopt($curl, CURLOPT_URL, $endpoint);
//            curl_setopt($curl, CURLOPT_HTTPHEADER, array(
//                'X-MBX-APIKEY: ' . $this->api_key,
//            ));
//        }
//        // params so buildquery string and append to url
//        else if (count($params) > 0) {
//            curl_setopt($curl, CURLOPT_URL, $this->base . $url . '?' . $query);
//        }
//        // no params so just the base url
//        else {
//            curl_setopt($curl, CURLOPT_URL, $this->base . $url);
//            curl_setopt($curl, CURLOPT_HTTPHEADER, array(
//                'X-MBX-APIKEY: ' . $this->api_key,
//            ));
//        }
//        curl_setopt($curl, CURLOPT_USERAGENT, "User-Agent: Mozilla/4.0 (compatible; PHP Binance API)");
//        // Post and postfields
//        if ($method === "POST") {
//            curl_setopt($curl, CURLOPT_POST, true);
//            curl_setopt($curl, CURLOPT_POSTFIELDS, $query);
//        }
//        // Delete Method
//        if ($method === "DELETE") {
//            curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
//        }
//
//        // PUT Method
//        if ($method === "PUT") {
//            curl_setopt($curl, CURLOPT_PUT, true);
//        }
//
//        // proxy settings
//        if (is_array($this->proxyConf)) {
//            curl_setopt($curl, CURLOPT_PROXY, $this->getProxyUriString());
//            if (isset($this->proxyConf['user']) && isset($this->proxyConf['pass'])) {
//                curl_setopt($curl, CURLOPT_PROXYUSERPWD, $this->proxyConf['user'] . ':' . $this->proxyConf['pass']);
//            }
//        }
//        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
//        // headers will proceed the output, json_decode will fail below
//        curl_setopt($curl, CURLOPT_HEADER, false);
//        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
//        curl_setopt($curl, CURLOPT_TIMEOUT, 60);
//
//        // set user defined curl opts last for overriding
//        foreach ($this->curlOpts as $key => $value) {
//            curl_setopt($curl, constant($key), $value);
//        }
//
//        if ($this->caOverride === false) {
//            if (file_exists(getcwd() . '/ca.pem') === false) {
//                //$this->downloadCurlCaBundle();
//            }
//        }
//
//        $output = curl_exec($curl);
//        // Check if any error occurred
//        if (curl_errno($curl) > 0) {
//            // should always output error, not only on httpdebug
//            // not outputing errors, hides it from users and ends up with tickets on github
//            echo 'Curl error: ' . curl_error($curl) . "\n";
//            return [];
//        }
//        curl_close($curl);
//        $json = json_decode($output, true);
//        if (isset($json['msg'])) {
//            // should always output error, not only on httpdebug
//            // not outputing errors, hides it from users and ends up with tickets on github
//            echo "signedRequest error: {$output}" . PHP_EOL;
//        }
//        $this->transfered += strlen($output);
//        $this->requestCount++;
//        return $json;
//    }

}


??

??