From 114001ab1b5e346fb37ce9f283fd4b0310dc75b1 Mon Sep 17 00:00:00 2001 From: Tanguy Pruvot Date: Sat, 22 Oct 2016 00:34:50 +0200 Subject: [PATCH] cleanup: drop dead exchanges code cryptsy cryptomic(banx) and safecex --- web/yaamp/commands/CoindbCommand.php | 37 -- web/yaamp/commands/ExchangeCommand.php | 17 - web/yaamp/core/backend/markets.php | 352 ------------------ web/yaamp/core/backend/rawcoins.php | 48 --- web/yaamp/core/exchange/cryptsy.php | 65 ---- web/yaamp/core/exchange/exchange.php | 9 - web/yaamp/core/exchange/safecex.php | 69 ---- web/yaamp/core/exchange2/CExchange.php | 9 +- web/yaamp/core/exchange2/CExchangeCoin.php | 7 +- web/yaamp/core/trading/cryptomic_trading.php | 57 --- web/yaamp/core/trading/cryptsy_trading.php | 274 -------------- web/yaamp/core/trading/safecex_trading.php | 275 -------------- web/yaamp/core/trading/trading.php | 22 -- .../modules/thread/CronjobController.php | 3 - 14 files changed, 10 insertions(+), 1234 deletions(-) delete mode 100644 web/yaamp/core/exchange/cryptsy.php delete mode 100644 web/yaamp/core/exchange/safecex.php delete mode 100644 web/yaamp/core/trading/cryptomic_trading.php delete mode 100644 web/yaamp/core/trading/cryptsy_trading.php delete mode 100644 web/yaamp/core/trading/safecex_trading.php diff --git a/web/yaamp/commands/CoindbCommand.php b/web/yaamp/commands/CoindbCommand.php index 666de6b..6ddfcca 100644 --- a/web/yaamp/commands/CoindbCommand.php +++ b/web/yaamp/commands/CoindbCommand.php @@ -54,7 +54,6 @@ class CoindbCommand extends CConsoleCommand $nbUpdated += $this->grabCcexIcons(); $nbUpdated += $this->grabCryptopiaIcons(); $nbUpdated += $this->grabAlcurexIcons(); - $nbUpdated += $this->grabCryptomicIcons(); $nbUpdated += $this->grabNovaIcons(); echo "total updated: $nbUpdated\n"; @@ -402,42 +401,6 @@ class CoindbCommand extends CConsoleCommand return $nbUpdated; } - /** - * Icon grabber - Cryptomic - */ - public function grabCryptomicIcons() - { - $url = 'https://cdn.cryptomic.com/images/currencyicons/'; - $nbUpdated = 0; - $sql = "SELECT DISTINCT coins.id FROM coins INNER JOIN markets M ON M.coinid = coins.id ". - "WHERE M.name='cryptomic' AND IFNULL(coins.image,'') = ''"; - $coins = dbolist($sql); - if (empty($coins)) - return 0; - echo "cryptomic: try to download new icons...\n"; - foreach ($coins as $coin) { - $coin = getdbo('db_coins', $coin["id"]); - $symbol = $coin->symbol; - if (!empty($coin->symbol2)) $symbol = $coin->symbol2; - $local = $this->basePath."/images/coin-{$symbol}.png"; - try { - $data = @ file_get_contents($url.strtoupper($symbol).'-64.png'); - } catch (Exception $e) { - continue; - } - if (strlen($data) < 2048) continue; - echo $symbol." icon found\n"; - file_put_contents($local, $data); - if (filesize($local) > 0) { - $coin->image = "/images/coin-{$symbol}.png"; - $nbUpdated += $coin->save(); - } - } - if ($nbUpdated) - echo "$nbUpdated icons downloaded from cryptomic\n"; - return $nbUpdated; - } - /** * Icon grabber - NovaExchange */ diff --git a/web/yaamp/commands/ExchangeCommand.php b/web/yaamp/commands/ExchangeCommand.php index c7c329d..056baeb 100644 --- a/web/yaamp/commands/ExchangeCommand.php +++ b/web/yaamp/commands/ExchangeCommand.php @@ -122,8 +122,6 @@ class ExchangeCommand extends CConsoleCommand public function testApiKeys() { - require_once($this->basePath.'/yaamp/core/core.php'); - if (!empty(EXCH_BITSTAMP_KEY)) { $balance = bitstamp_api_user('balance'); if (!is_array($balance)) echo "bitstamp error ".json_encode($balance)."\n"; @@ -169,31 +167,16 @@ class ExchangeCommand extends CConsoleCommand if (objSafeVal($info,'status','') != 'success' || !is_array($info->balances)) echo "nova error\n"; else echo("nova btc: ".json_encode($info->balances[0])."\n"); } - if (!empty(EXCH_CRYPTSY_KEY)) { - $info = cryptsy_api_query('getinfo'); - if (!arraySafeVal($info,'success',0) || !is_array($info['return'])) echo "error\n"; - else echo("cryptsy btc: ".json_encode($info['return']['balances_available']['BTC'])."\n"); - } if(!empty(EXCH_POLONIEX_KEY)) { $poloniex = new poloniex; $balance = $poloniex->get_available_balances(); echo("poloniex available : ".json_encode($balance)."\n"); } - if (!empty(EXCH_SAFECEX_KEY)) { - $balance = safecex_api_user('getbalance', "&symbol=BTC"); - echo("safecex btc: ".json_encode($balance)."\n"); - } if (!empty(EXCH_YOBIT_KEY)) { $info = yobit_api_query2('getInfo'); if (!arraySafeVal($info,'success',0) || !is_array($info['return'])) echo "error\n"; else echo("yobit btc: ".json_encode($info['return']['funds']['btc'])."\n"); } - if (!empty(EXCH_BANX_USERNAME)) { - //$balance = cryptomic_api_user('account/getbalance','?currency=BTC'); - $balance = cryptomic_api_user('account/getbalances'); - if (!is_object($balance)) echo "cryptomic error ".json_encode($balance)."\n"; - else echo("cryptomic all: ".json_encode($balance->result)."\n"); - } // only one secret key $balance = empoex_api_user('account/balance','BTC'); if ($balance) echo("empoex btc: ".json_encode($balance['available'])."\n"); diff --git a/web/yaamp/core/backend/markets.php b/web/yaamp/core/backend/markets.php index 04de619..f68bb1a 100644 --- a/web/yaamp/core/backend/markets.php +++ b/web/yaamp/core/backend/markets.php @@ -17,13 +17,10 @@ function BackendPricesUpdate() updateCCexMarkets(); updateCryptopiaMarkets(); updateYobitMarkets(); - updateSafecexMarkets(); updateAlcurexMarkets(); updateBterMarkets(); //updateEmpoexMarkets(); - updateCryptsyMarkets(); updateJubiMarkets(); - updateCryptomicMarkets(); updateNovaMarkets(); updateShapeShiftMarkets(); @@ -410,158 +407,6 @@ function updateBittrexMarkets($force = false) } } -///////////////////////////////////////////////////////////////////////////////////////////// - -function updateCryptsyMarkets() -{ - $exchange = 'cryptsy'; - if (exchange_get($exchange, 'disabled')) return; - -// dborun("update markets set price=0 where name='$exchange'"); -// return; - - $markets = cryptsy_api_query('getmarkets'); - if(!$markets || !isset($markets['return'])) { - return; - } - - $list = cryptsy_api_query('getcoindata'); - if(!$list || !isset($list['return'])) { - return; - } - - foreach($list['return'] as $currency) - { - if($currency['code'] == 'BTC') continue; - $symbol = $currency['code']; - - $coin = getdbosql('db_coins', "symbol=:symbol", array(':symbol'=>$symbol)); - if(!$coin) continue; - - $market = getdbosql('db_markets', "coinid=$coin->id and name='$exchange'"); - if(!$market) - { - $market = new db_markets; - $market->coinid = $coin->id; - $market->name = $exchange; - - foreach($markets['return'] as $item) - { - if($item['secondary_currency_code'] != 'BTC') continue; - if($item['primary_currency_code'] != $symbol) continue; - - $market->marketid = $item['marketid']; - } - } - - if(empty($market->marketid)) - { - foreach($markets['return'] as $item) - { - if($item['secondary_currency_code'] != 'BTC') continue; - if($item['primary_currency_code'] != $symbol) continue; - - $market->marketid = $item['marketid']; - } - } - - if (market_get($exchange, $symbol, "disabled")) { - $market->disabled = 1; - $market->deleted = 1; - $market->message = 'disabled from settings'; - $market->save(); - continue; - } - - $market->txfee = $currency['withdrawalfee']*100; - switch($currency['maintenancemode']) - { - case 0: - $market->message = ''; - break; - case 1: - $market->message = 'Maintenance'; - break; - case 2: - $market->message = 'Updating Wallet'; - break; - case 3: - $market->message = 'Network Issues'; - break; - case 666: - $market->message = 'Funds holded'; - break; - default: - $market->message = 'Unknown Error'; - break; - } - - $market->disabled = (int) (arraySafeVal($currency,'maintenancemode',0) > 0); - $market->save(); - - if ($market->disabled) continue; - - $ticker = getCryptsyTicker($market->marketid); - if(!$ticker) continue; - - if(!isset($ticker->return->$symbol->buyorders[0])) - { - debuglog("$exchange: error $coin->name id {$market->marketid}"); - if (isset($ticker->error)) - debuglog($ticker->error); - else - debuglog($ticker, 5); - continue; - } - - $price2 = $ticker->return->$symbol->buyorders[0]->price; - if (isset($ticker->return->$symbol->sellorders)) - $price2 = ($price2 + $ticker->return->$symbol->sellorders[0]->price) / 2.0; - - $market->price2 = AverageIncrement($market->price2, $price2); - $market->price = AverageIncrement($market->price, $ticker->return->$symbol->buyorders[0]->price); - $market->pricetime = time(); - - $market->save(); - -// debuglog("cryptsy update $coin->symbol: $market->price $market->price2"); - } - - if(!empty(EXCH_CRYPTSY_KEY)) - { - // deposit addresses - $list = array(); - $last_checked = cache()->get($exchange.'-deposit_address-check'); - if (!$last_checked) { - $list = cryptsy_api_query('getmydepositaddresses'); - } - if (empty($list)) return; - if (!is_array($list)) return; - $success = arraySafeVal($list,'success',0); - if (!$success || !is_array($list['return'])) return; - - foreach($list['return'] as $symbol => $address) - { - if($symbol == 'BTC') continue; - - $coin = getdbosql('db_coins', "symbol=:symbol", array(':symbol'=>$symbol)); - if(!$coin) continue; - - $market = getdbosql('db_markets', "coinid={$coin->id} and name='$exchange'"); - if(!$market) continue; - - if (!is_string($address)) - debuglog("$exchange: $symbol deposit address format error ".json_encode($address)); - else if (!empty($address) && $market->deposit_address != $address) { - $market->deposit_address = $address; - $market->save(); - debuglog("$exchange: deposit address for $symbol updated"); - } - } - cache()->set($exchange.'-deposit_address-check', time(), 12*3600); - } -} - //////////////////////////////////////////////////////////////////////////////////// function updateCCexMarkets() @@ -986,103 +831,6 @@ function updateCryptopiaMarkets() cache()->set($exchange.'-deposit_address-check', time(), 12*3600); } -function updateCryptomicMarkets() -{ - $exchange = 'cryptomic'; - if (exchange_get($exchange, 'disabled')) return; - - $data = cryptomic_api_query('getmarketsummaries'); - if(!$data || !is_array($data->result)) return; - - $symbols = array(); - - $currencies = getdbolist('db_markets', "name IN ('$exchange','banx')"); - foreach($currencies as $market) - { - $coin = getdbo('db_coins', $market->coinid); - if(!$coin) continue; - - if (market_get($exchange, $coin->symbol, "disabled")) { - $market->disabled = 1; - $market->deleted = 1; - $market->message = 'disabled from settings'; - $market->save(); - continue; - } - - $pair = strtoupper($coin->symbol).'-BTC'; - foreach ($data->result as $ticker) { - if ($ticker->marketname === $pair) { - - if ($market->disabled < 9) { - $nbm = (int) dboscalar("SELECT COUNT(id) FROM markets WHERE coinid={$coin->id}"); - $market->disabled = intval($ticker->dayvolume) <= 1 && $nbm > 1; - } - if (!$market->disabled) { - $market->price = AverageIncrement($market->price, $ticker->bid); - $market->price2 = AverageIncrement($market->price2, $ticker->ask); - $market->pricetime = time(); - $market->save(); - } - if (empty($coin->price2) && !$market->disabled) { - $coin->price = $market->price; - $coin->price2 = $market->price2; - $coin->save(); - } - if ($coin->name == 'unknown' && !empty($ticker->currencylong)) { - $coin->name = $ticker->currencylong; - $coin->save(); - debuglog("$exchange: update {$coin->symbol} label {$coin->name}"); - } - // store for deposit addresses - $symbols[$ticker->currencylong] = $coin->symbol; - $symbols[$ticker->partnerlong] = $coin->symbol; - break; - } - } - } - - if(!empty(EXCH_BANX_USERNAME)) - { - // deposit addresses - $last_checked = cache()->get($exchange.'-deposit_address-check'); - if (!$last_checked) { - // no coin symbols in the results wtf ! only labels :/ - sleep(1); - $query = cryptomic_api_user('account/getdepositaddresses'); - } - if (!isset($query)) return; - if (!is_object($query)) return; - if (!$query->success || !is_array($query->result)) return; - - foreach($query->result as $account) - { - if (!isset($account->currency) || !isset($account->address)) continue; - if (empty($account->currency) || empty($account->address)) continue; - - $label = $account->currency; - if (!isset($symbols[$label])) continue; - - $symbol = $symbols[$label]; - - if($symbol == 'BTC') continue; - - $coin = getdbosql('db_coins', "symbol=:symbol", array(':symbol'=>$symbol)); - if(!$coin) continue; - - $market = getdbosql('db_markets', "coinid={$coin->id} and name IN ('{$exchange}','banx')"); - if(!$market) continue; - - if ($market->deposit_address != $account->address) { - $market->deposit_address = $account->address; - $market->save(); - debuglog("$exchange: deposit address for $symbol updated"); - } - } - cache()->set($exchange.'-deposit_address-check', time(), 12*3600); - } -} - function updateNovaMarkets() { $exchange = 'nova'; @@ -1147,106 +895,6 @@ function updateNovaMarkets() } } -function updateSafecexMarkets() -{ - $exchange = 'safecex'; - if (exchange_get($exchange, 'disabled')) return; - - $data = safecex_api_query('getmarkets'); - if(empty($data)) return; - - $list = getdbolist('db_markets', "name='$exchange'"); - foreach($list as $market) - { - $coin = getdbo('db_coins', $market->coinid); - if(!$coin) continue; - - if (market_get($exchange, $coin->symbol, "disabled")) { - $market->disabled = 1; - $market->deleted = 1; - $market->message = 'disabled from settings'; - $market->save(); - continue; - } - - $pair = strtoupper($coin->symbol).'/BTC'; - - foreach ($data as $ticker) { - if ($ticker->market === $pair) { - - $price2 = ($ticker->bid + $ticker->ask)/2; - $market->price2 = AverageIncrement($market->price2, $price2); - $market->price = AverageIncrement($market->price, $ticker->bid*0.98); - $market->pricetime = time(); - $market->save(); - - if (empty($coin->price)) { - $coin->price = $market->price; - $coin->price2 = $market->price2; - $coin->save(); - } - - if (empty(EXCH_SAFECEX_KEY)) continue; - - // deposit addresses (in getbalances api) - $last_checked = cache()->get($exchange.'-deposit_address-check'); - if (empty($market->deposit_address) || isset($getbalances_called) || !$last_checked) { - // note: will try to get all missing installed coins deposit address - // but these addresses are not automatically created on safecex. - if (!isset($getbalances_called)) { - // only one query is enough - $balances = safecex_api_user('getbalances'); - $getbalances_called = true; - // allow to check once all new/changed deposit addresses (in 2 job loops) - if (dborun("UPDATE markets SET deposit_address=NULL WHERE name='$exchange' AND deposit_address=' '")) - $need_new_loop = true; - cache()->set($exchange.'-deposit_address-check', time(), 12*3600); // recheck all in 12h - } - if(is_array($balances)) foreach ($balances as $balance) { - if ($balance->symbol == $coin->symbol) { - if (!isset($balance->deposit)) break; - if (empty(trim($market->deposit_address))) { - $market->deposit_address = $balance->deposit; - $market->save(); - debuglog("$exchange: {$coin->symbol} deposit address imported"); - } else if (trim($market->deposit_address) != $balance->deposit) { - $market->deposit_address = $balance->deposit; - $market->save(); - debuglog("$exchange: {$coin->symbol} deposit address was wrong, updated."); - } - } - } - } - } - } - } - - if (isset($getbalances_called)) - { - // update btc balance too btw - if (is_array($balances)) foreach ($balances as $balance) { - if ($balance->symbol == 'BTC') { - $balance = floatval($balance->balance); - dborun("UPDATE balances SET balance=$balance WHERE name='$exchange'"); - } - } - - // prevent api calls each 15mn for deposit addresses - // will be rechecked on new coins or if a market address is empty (or forced in 12 hours) - $list = dbolist("SELECT C.symbol AS symbol FROM markets M INNER JOIN coins C on M.coinid = C.id " . - "WHERE M.name='$exchange' AND C.installed AND IFNULL(M.deposit_address,'')='' ORDER BY symbol"); - $missing = array(); - foreach($list as $row) { - $missing[] = $row['symbol']; - } - if(!empty($missing) && !isset($need_new_loop)) { - debuglog("$exchange: no deposit address found for ".implode(',',$missing)); - // stop asking safecex for inexistant deposit addresses (except on new coin or empty address, or 12h) - dborun("UPDATE markets SET deposit_address=' ' WHERE name='$exchange' AND IFNULL(deposit_address,'')=''"); - } - } -} - function updateBterMarkets() { $exchange = 'bter'; diff --git a/web/yaamp/core/backend/rawcoins.php b/web/yaamp/core/backend/rawcoins.php index be4a321..da6910f 100644 --- a/web/yaamp/core/backend/rawcoins.php +++ b/web/yaamp/core/backend/rawcoins.php @@ -4,10 +4,7 @@ function updateRawcoins() { // debuglog(__FUNCTION__); - exchange_set_default('cryptsy', 'disabled', true); exchange_set_default('empoex', 'disabled', true); - exchange_set_default('safecex', 'disabled', true); - exchange_set_default('cryptomic', 'disabled', true); settings_prefetch_all(); @@ -85,16 +82,6 @@ function updateRawcoins() } } - if (!exchange_get('cryptsy', 'disabled')) { - $list = cryptsy_api_query('getmarkets'); - if(isset($list['return'])) - { - dborun("UPDATE markets SET deleted=true WHERE name='cryptsy'"); - foreach($list['return'] as $item) - updateRawCoin('cryptsy', $item['primary_currency_code'], $item['primary_currency_name']); - } - } - if (!exchange_get('yobit', 'disabled')) { $res = yobit_api_query('info'); if($res) @@ -109,21 +96,6 @@ function updateRawcoins() } } - if (!exchange_get('safecex', 'disabled')) { - $list = safecex_api_query('getmarkets'); - if(!empty($list)) - { - dborun("UPDATE markets SET deleted=true WHERE name='safecex'"); - foreach($list as $pair => $item) { - $e = explode('/', $item->market); - if (strtoupper($e[1]) !== 'BTC') - continue; - $symbol = strtoupper($e[0]); - updateRawCoin('safecex', $symbol, $item->name); - } - } - } - if (!exchange_get('cryptopia', 'disabled')) { $list = cryptopia_api_query('GetMarkets'); if(isset($list->Data)) @@ -169,26 +141,6 @@ function updateRawcoins() } } - if (!exchange_get('cryptomic', 'disabled')) { - $list = cryptomic_api_simple('marketsv2'); - if(is_array($list)) - { - dborun("UPDATE markets SET name='cryptomic', deleted=true WHERE name IN ('cryptomic','banx')"); - foreach($list as $item) { - $e = explode('/', $item['market']); - $base = strtoupper($e[1]); - if ($base != 'BTC') - continue; - $symbol = strtoupper($e[0]); - if ($symbol == 'ATP') - continue; - $name = explode('/', $item['marketname']); - updateRawCoin('cryptomic', $symbol, $name[0]); - //debuglog("cryptomic: $symbol {$name[0]}"); - } - } - } - if (!exchange_get('nova', 'disabled')) { $list = nova_api_query('markets'); if(is_object($list) && !empty($list->markets)) diff --git a/web/yaamp/core/exchange/cryptsy.php b/web/yaamp/core/exchange/cryptsy.php deleted file mode 100644 index 32d6028..0000000 --- a/web/yaamp/core/exchange/cryptsy.php +++ /dev/null @@ -1,65 +0,0 @@ -marketname'"); + $list = getdbolist('db_orders', "market='{$this->marketname}'"); foreach($list as $db_order) { $found = false; @@ -59,7 +59,7 @@ class CExchange } } - $savebalance = getdbosql('db_balances', "name='cryptsy'"); + $savebalance = getdbosql('db_balances', "name='{$this->marketname}'"); $savebalance->balance = 0; $this->balances = $this->loadBalances(); @@ -99,6 +99,8 @@ class CExchange //////////////////////////////////////////////////////////////////////////////////////////////// +/* + class CExchangeCryptsy extends CExchange { protected function loadOrders() @@ -194,6 +196,5 @@ class CExchangeCryptsy extends CExchange }; - - +*/ diff --git a/web/yaamp/core/exchange2/CExchangeCoin.php b/web/yaamp/core/exchange2/CExchangeCoin.php index 7f8b6a8..4ceba51 100644 --- a/web/yaamp/core/exchange2/CExchangeCoin.php +++ b/web/yaamp/core/exchange2/CExchangeCoin.php @@ -30,6 +30,7 @@ class CExchangeCoin public static function create($coin, $marketname) { +/* switch($marketname) { case 'cryptsy': @@ -39,10 +40,13 @@ class CExchangeCoin $cexcoin->load(); return $cexcoin; +*/ } }; +/* + class CExchangeCoinCryptsy extends CExchangeCoin { private $marketid; @@ -79,6 +83,5 @@ class CExchangeCoinCryptsy extends CExchangeCoin }; - - +*/ diff --git a/web/yaamp/core/trading/cryptomic_trading.php b/web/yaamp/core/trading/cryptomic_trading.php deleted file mode 100644 index fac652c..0000000 --- a/web/yaamp/core/trading/cryptomic_trading.php +++ /dev/null @@ -1,57 +0,0 @@ -result) || !$balances->success) return; - - $savebalance = getdbosql('db_balances', "name IN ('{$exchange}','banx')"); - if (is_object($savebalance)) { - $savebalance->balance = 0; - $savebalance->save(); - - dborun("UPDATE markets SET balance=0 WHERE name='{$exchange}'"); - } - - foreach($balances->result as $balance) - { - if ($balance->currency == 'BTC') { - if (!is_object($savebalance)) continue; - $savebalance->balance = $balance->available; - $savebalance->save(); - continue; - } - - if ($updatebalances) { - // store available balance in market table - $coins = getdbolist('db_coins', "symbol=:symbol OR symbol2=:symbol", - array(':symbol'=>$balance->currency) - ); - if (empty($coins)) continue; - foreach ($coins as $coin) { - $market = getdbosql('db_markets', "coinid=:coinid AND name='{$exchange}'", array(':coinid'=>$coin->id)); - if (!$market) continue; - $market->balance = $balance->available; - $market->ontrade = $balance->balance - $balance->available; - $deposit_address = objSafeVal($balance,'cryptoaddress'); - if (!empty($deposit_address) && $market->deposit_address != $balance->cryptoaddress) { - debuglog("{$exchange}: {$coin->symbol} deposit address updated"); - $market->deposit_address = $balance->cryptoaddress; - } - $market->balancetime = time(); - $market->save(); - } - } - } - - if (!YAAMP_ALLOW_EXCHANGE) return; - - $flushall = rand(0, 8) == 0; - if($quick) $flushall = false; -} diff --git a/web/yaamp/core/trading/cryptsy_trading.php b/web/yaamp/core/trading/cryptsy_trading.php deleted file mode 100644 index 6d33584..0000000 --- a/web/yaamp/core/trading/cryptsy_trading.php +++ /dev/null @@ -1,274 +0,0 @@ -balance = 0; - $savebalance->save(); - } - - $balances = cryptsy_api_query('getinfo'); - if(!$balances) return; - if(!isset($balances['return'])) { - debuglog("$exchange balance: ".arraySafeVal($balances,'error')); - return; - } - - foreach($balances['return']['balances_available'] as $symbol=>$balance) - { - if($symbol == 'BTC') { - if (is_object($savebalance)) { - $savebalance->balance = floatval($balance); - $savebalance->save(); - } - continue; - } - - if ($updatebalances) { - // store available balance in market table - $coins = getdbolist('db_coins', "symbol=:symbol OR symbol2=:symbol", - array(':symbol'=>$symbol) - ); - if (empty($coins)) continue; - foreach ($coins as $coin) { - $market = getdbosql('db_markets', "coinid=:coinid AND name='{$exchange}'", array(':coinid'=>$coin->id)); - if (!$market) continue; - $market->balance = $available; - $market->balancetime = time(); - $market->save(); - } - } - } - - if (!YAAMP_ALLOW_EXCHANGE) return; - - $flushall = rand(0, 8) == 0; - if($quick) $flushall = false; - - $orders = cryptsy_api_query('allmyorders'); - if(empty($orders)) return; - if(!is_array($orders) || !isset($orders['return'])) { - debuglog("-------------- doCryptsyTrading() $flushall ".json_encode($orders)); - return; - } - - // add orders - foreach($orders['return'] as $order) - { - if(!isset($order['marketid'])) continue; - if(!isset($order['orderid'])) continue; - - $market = getdbosql('db_markets', "marketid=:marketid", array(':marketid'=>$order['marketid'])); - if(!$market) continue; - - $coin = getdbo('db_coins', $market->coinid); - if(!$coin) continue; - - $symbol = $coin->symbol; - - $ticker = getCryptsyTicker($market->marketid); - if(!$ticker || !isset($ticker->return->$symbol->sellorders[0])) continue; - - $ask = bitcoinvaluetoa($ticker->return->$symbol->sellorders[0]->price); - $sellprice = bitcoinvaluetoa($order['price']); - - // flush orders not on the ask - if($ask+0.00000005 < $sellprice || $flushall) - { -// debuglog("cryptsy cancel order for $coin->symbol ($ask != $sellprice)"); - cryptsy_api_query('cancelorder', array('orderid'=>$order['orderid'])); - - $db_order = getdbosql('db_orders', "uuid=:uuid", array(':uuid'=>$order['orderid'])); - if($db_order) $db_order->delete(); - - sleep(1); - } - - // add existing orders (shouldnt happen after init) - else - { - $db_order = getdbosql('db_orders', "uuid=:uuid", array(':uuid'=>$order['orderid'])); - if($db_order) continue; - - debuglog("adding order $coin->symbol"); - - $db_order = new db_orders; - $db_order->market = 'cryptsy'; - $db_order->coinid = $coin->id; - $db_order->amount = $order['quantity']; - $db_order->price = $sellprice; - $db_order->ask = $ticker->return->$symbol->sellorders[0]->price; - $db_order->bid = isset($ticker->return->$symbol->buyorders)? $ticker->return->$symbol->buyorders[0]->price: 0; - $db_order->uuid = $order['orderid']; - $db_order->created = time(); - $db_order->save(); - } - } - - $list = getdbolist('db_orders', "market='cryptsy'"); - foreach($list as $db_order) - { - $coin = getdbo('db_coins', $db_order->coinid); - - $found = false; - foreach($orders['return'] as $order) - { - if(!isset($order['orderid'])) continue; - - if($order['orderid'] == $db_order->uuid) - { - $found = true; - break; - } - } - - if(!$found) - { - debuglog("cryptsy deleting order $coin->name $db_order->amount"); - $db_order->delete(); - } - } - -// if($flushall) -// { -// debuglog("cryptsy flushall"); -// return; -// } - - sleep(2); - - foreach($balances['return']['balances_available'] as $symbol=>$balance) - { - if($symbol == 'Points') continue; - if($symbol == 'BTC') continue; - - $balance = floatval($balance); - if(!$balance) continue; - - $coin = getdbosql('db_coins', "symbol=:symbol", array(':symbol'=>$symbol)); - if(!$coin || $coin->dontsell) continue; - - $market = getdbosql('db_markets', "coinid=$coin->id and name='cryptsy'"); - if(!$market) continue; - - $market->lasttraded = time(); - $market->save(); - - if($balance*$market->price < 0.00001000) continue; - - $ticker = getCryptsyTicker($market->marketid); - if(!$ticker || !isset($ticker->return->$symbol->buyorders[0])) continue; - - // for 0 to 4 - { - $nextbuy = $ticker->return->$symbol->buyorders[0]; - if($balance >= $nextbuy->quantity && $nextbuy->quantity*$nextbuy->price > 0.00001000) - { - $sellprice = bitcoinvaluetoa($nextbuy->price); - debuglog("cryptsy selling market $coin->symbol, $nextbuy->quantity, $sellprice"); - - $res = cryptsy_api_query('createorder', - array('marketid'=>$market->marketid, 'ordertype'=>'Sell', 'quantity'=>$nextbuy->quantity, 'price'=>$sellprice)); - if($res) $balance -= $nextbuy->quantity; - - // TradingClearExchangeCoin($coin, $nextbuy->quantity, $ticker->return->$symbol->buyorders[1]->price, 'cryptsy'); - sleep(1); - } - - if($coin->sellonbid && $balance*$nextbuy->price > 0.00001000) - { - $sellprice = bitcoinvaluetoa($nextbuy->price); - debuglog("cryptsy selling market $coin->symbol, $balance, $sellprice"); - - $res = cryptsy_api_query('createorder', - array('marketid'=>$market->marketid, 'ordertype'=>'Sell', 'quantity'=>$balance, 'price'=>$sellprice)); - - // TradingClearExchangeCoin($coin, $balance, $ticker->return->$symbol->buyorders[1]->price, 'cryptsy'); - sleep(1); - continue; - } - } - - if($coin->sellonbid) - $sellprice = $ticker->return->$symbol->buyorders[0]->price; - else - $sellprice = $ticker->return->$symbol->sellorders[0]->price; - // if($balance * $sellprice < 0.0001) continue; - -// debuglog("cryptsy selling $coin->symbol, $sellprice, $balance"); - $res = cryptsy_api_query('createorder', - array('marketid'=>$market->marketid, 'ordertype'=>'Sell', 'quantity'=>$balance, 'price'=>$sellprice)); - if(!$res || !isset($res['orderid'])) continue; - - $db_order = new db_orders; - $db_order->market = 'cryptsy'; - $db_order->coinid = $coin->id; - $db_order->amount = $balance; - $db_order->price = $sellprice; - $db_order->ask = $ticker->return->$symbol->sellorders[0]->price; - $db_order->bid = $ticker->return->$symbol->buyorders[0]->price; - $db_order->uuid = $res['orderid']; - $db_order->created = time(); - $db_order->save(); - } - - if(is_object($savebalance)) - if(floatval(EXCH_AUTO_WITHDRAW) > 0 && $savebalance->balance >= (EXCH_AUTO_WITHDRAW + 0.0002)) - { - $btcaddr = YAAMP_BTCADDRESS; //'14LS7Uda6EZGXLtRrFEZ2kWmarrxobkyu9'; - - $amount = $savebalance->balance; // - 0.001; - debuglog("cryptsy withdraw $amount to $btcaddr"); - - sleep(1); - - $res = cryptsy_api_query('makewithdrawal', - array('address'=>$btcaddr, 'amount'=>$amount)); - - debuglog($res); - if($res && $res['success']) - { - $withdraw = new db_withdraws; - $withdraw->market = 'cryptsy'; - $withdraw->address = $btcaddr; - $withdraw->amount = $amount; - $withdraw->time = time(); - // $withdraw->uuid = $res->result->uuid; - $withdraw->save(); - - // $savebalance->balance = 0; - } - } - -// debuglog('-------------- doCryptsyTrading() done'); -} - - - - - - diff --git a/web/yaamp/core/trading/safecex_trading.php b/web/yaamp/core/trading/safecex_trading.php deleted file mode 100644 index 90e86ef..0000000 --- a/web/yaamp/core/trading/safecex_trading.php +++ /dev/null @@ -1,275 +0,0 @@ -status == 'ok') - { - $db_order = getdbosql('db_orders', "market=:market AND uuid=:uuid", array( - ':market'=>'safecex', ':uuid'=>$orderID - )); - if($db_order) $db_order->delete(); - return true; - } - return false; -} - -function doSafecexTrading($quick=false) -{ - $exchange = 'safecex'; - $updatebalances = true; - - if (exchange_get($exchange, 'disabled')) return; - - // {"symbol":"BTC","balance":0.01056525,"pending":0,"orders":0,"total":0.01056525,"deposit":"15pQYjcBJxo3RQfJe6C5pYxHcxAjzVyTfv","withdraw":"1E1..."} - $balances = safecex_api_user('getbalances'); - if(empty($balances)) return; - - $savebalance = getdbosql('db_balances', "name='$exchange'"); - - foreach($balances as $balance) - { - if ($balance->symbol == 'BTC') { - if (is_object($savebalance)) { - $savebalance->balance = $balance->balance; - $savebalance->save(); - } - continue; - } - if ($updatebalances) { - // store available balance in market table - $coins = getdbolist('db_coins', "symbol=:symbol OR symbol2=:symbol", - array(':symbol'=>$balance->symbol) - ); - if (empty($coins)) continue; - foreach ($coins as $coin) { - $market = getdbosql('db_markets', "coinid=:coinid AND name='$exchange'", array(':coinid'=>$coin->id)); - if (!$market) continue; - $market->balance = $balance->balance; - $market->ontrade = $balance->orders; - if (!empty($balance->deposit) && $market->deposit_address != $balance->deposit) { - debuglog("$exchange: {$coin->symbol} deposit address updated"); - $market->deposit_address = $balance->deposit; - } - $market->balancetime = time(); - $market->save(); - } - } - } - - if (!YAAMP_ALLOW_EXCHANGE) return; - - $flushall = rand(0, 8) == 0; - if($quick) $flushall = false; - - // minimum order allowed by the exchange - $min_btc_trade = exchange_get($exchange, 'trade_min_btc', 0.00010000); - // sell on ask price + 5% - $sell_ask_pct = exchange_get($exchange, 'trade_sell_ask_pct', 1.05); - // cancel order if our price is more than ask price + 20% - $cancel_ask_pct = exchange_get($exchange, 'trade_cancel_ask_pct', 1.20); - - sleep(1); - $orders = safecex_api_user('getopenorders'); - - if(!empty($orders)) - foreach($orders as $order) - { - // order: {"id":"1569917","market":"XXX\/BTC","type":"sell","time":"1457380288","price":"0.0000075","amount":"43.61658","remain":"43.61658"} - $pairs = explode("/", $order->market); - $symbol = $pairs[0]; - if ($pairs[1] != 'BTC') continue; - - $coin = getdbosql('db_coins', "symbol=:symbol OR symbol2=:symbol", array(':symbol'=>$symbol)); - if(!$coin || is_array($coin)) continue; - if($coin->dontsell) continue; - - // ignore buy orders - if($order->type != 'sell') continue; - - sleep(1); - $ticker = safecex_api_query('getmarket', "?market={$order->market}"); - // {"name":"Coin","market":"XXX\/BTC","open":"0","last":"0.00000596","low":null,"high":null,"bid":"0.00000518","ask":"0.00000583","volume":null,"volumebtc":"0"} - if(empty($ticker)) continue; - - $ask = bitcoinvaluetoa($ticker->ask); - $sellprice = bitcoinvaluetoa($order->price); - - // flush orders over the 20% range of the current (lowest) ask - if($sellprice > $ask*$cancel_ask_pct || $flushall) - { - debuglog("safecex: cancel order {$order->market} at $sellprice, ask price is now $ask"); - sleep(1); - doSafecexCancelOrder($order->id); - } - - // store existing orders in the db - else - { - $db_order = getdbosql('db_orders', "market=:market AND uuid=:uuid", array( - ':market'=>$exchange, ':uuid'=>$order->id - )); - if($db_order) continue; - - debuglog("safecex: store new order of {$order->amount} {$coin->symbol} at $sellprice BTC"); - - $db_order = new db_orders; - $db_order->market = $exchange; - $db_order->coinid = $coin->id; - $db_order->amount = $order->amount; - $db_order->price = $sellprice; - $db_order->ask = $ticker->ask; - $db_order->bid = $ticker->bid; - $db_order->uuid = $order->id; - $db_order->created = $order->time; - $db_order->save(); - } - } - - // flush obsolete orders - $list = getdbolist('db_orders', "market='$exchange'"); - if (!empty($list) && !empty($orders)) - foreach($list as $db_order) - { - $coin = getdbo('db_coins', $db_order->coinid); - if(!$coin) continue; - - $found = false; - foreach($orders as $order) { - if($order->type != 'sell') continue; - if($order->id == $db_order->uuid) { - // debuglog("$exchange: order waiting, {$order->amount} {$coin->symbol}"); - $found = true; - break; - } - } - - if(!$found) { - debuglog("$exchange: delete db order {$db_order->amount} {$coin->symbol}"); - $db_order->delete(); - } - } - - // add orders - - foreach($balances as $balance) - { - if($balance->symbol == 'BTC') continue; - $amount = floatval($balance->balance); - if(!$amount) continue; - - $coin = getdbosql('db_coins', "symbol=:symbol OR symbol2=:symbol", array(':symbol'=>$balance->symbol)); - if(!$coin || is_array($coin) || $coin->dontsell) continue; - $symbol = $coin->symbol; - if (!empty($coin->symbol2)) $symbol = $coin->symbol2; - - $market = getdbosql('db_markets', "coinid={$coin->id} AND name='$exchange'"); - if($market) - { - $market->lasttraded = time(); - $market->balance = bitcoinvaluetoa($balance->orders); - $market->save(); - } - - if($amount*$coin->price < $min_btc_trade) continue; - $pair = "{$balance->symbol}/BTC"; - - sleep(1); - $data = safecex_api_query('getorderbook', "?market=$pair"); - if(empty($data)) continue; - // {"bids":[{"price":"0.00000517","amount":"20"},{"price":"0.00000457","amount":"1528.13069274"},..],"asks":[{...}] - - if($coin->sellonbid) - for($i = 0; $i < 5 && $amount >= 0; $i++) - { - if(!isset($data->bids[$i])) break; - - $nextbuy = $data->bids[$i]; - if($amount*1.1 < $nextbuy->amount) break; - - $sellprice = bitcoinvaluetoa($nextbuy->price); - $sellamount = min($amount, $nextbuy->amount); - - if($sellamount*$sellprice < $min_btc_trade) continue; - - debuglog("$exchange: selling $sellamount $symbol at $sellprice"); - sleep(1); - $res = safecex_api_user('selllimit', "&market={$pair}&price={$sellprice}&amount={$sellamount}"); - if(!$res || $res->status != 'ok') - { - debuglog("selllimit bid: ".json_encode($res)); - break; - } - - $amount -= $sellamount; - } - - if($amount <= 0) continue; - - sleep(1); - $ticker = safecex_api_query('getmarket', "?market=$pair"); - if(empty($ticker)) continue; - - if($coin->sellonbid) - $sellprice = bitcoinvaluetoa($ticker->bid); - else - $sellprice = bitcoinvaluetoa($ticker->ask * $sell_ask_pct); // lowest ask price +5% - if($amount*$sellprice < $min_btc_trade) continue; - - debuglog("$exchange: selling $amount $symbol at $sellprice"); - sleep(1); - $res = safecex_api_user('selllimit', "&market={$pair}&price={$sellprice}&amount={$amount}"); - if(!$res || $res->status != 'ok') - { - debuglog("selllimit: ".json_encode($res)); - continue; - } - - if (property_exists($res,'id')) { - $db_order = new db_orders; - $db_order->market = $exchange; - $db_order->coinid = $coin->id; - $db_order->amount = $amount; - $db_order->price = $sellprice; - $db_order->ask = $ticker->ask; - $db_order->bid = $ticker->bid; - $db_order->uuid = $res->id; - $db_order->created = time(); - $db_order->save(); - } - } - -/* withdraw API doesn't exist - $withdraw_min = exchange_get($exchange, 'withdraw_min_btc', EXCH_AUTO_WITHDRAW); - $withdraw_fee = exchange_get($exchange, 'withdraw_fee_btc', 0.0002); - $db_balance = getdbosql('db_balances', "name='$exchange'"); - if($withdraw_min > 0 && $db_balance->balance >= ($withdraw_min + $withdraw_fee)) - { - $btcaddr = exchange_get($exchange, 'withdraw_btc_address', YAAMP_BTCADDRESS); - $amount = $db_balance->balance - $withdraw_fee; - debuglog("$exchange: withdraw $amount to $btcaddr"); - - sleep(1); - $res = safecex_api_user('withdraw', "¤cy=BTC&amount={$amount}&address={$btcaddr}"); - debuglog("$exchange: withdraw: ".json_encode($res)); - - if($res && $res->success) - { - $withdraw = new db_withdraws; - $withdraw->market = $exchange; - $withdraw->address = $btcaddr; - $withdraw->amount = $amount; - $withdraw->time = time(); - $withdraw->uuid = $res->id; - $withdraw->save(); - - $db_balance->balance = 0; - } - } -*/ -} diff --git a/web/yaamp/core/trading/trading.php b/web/yaamp/core/trading/trading.php index 80107af..0757ab6 100644 --- a/web/yaamp/core/trading/trading.php +++ b/web/yaamp/core/trading/trading.php @@ -4,15 +4,12 @@ require_once('poloniex_trading.php'); require_once('bittrex_trading.php'); require_once('bleutrade_trading.php'); require_once('bter_trading.php'); -require_once('cryptsy_trading.php'); require_once('c-cex_trading.php'); require_once('kraken_trading.php'); require_once('yobit_trading.php'); require_once('alcurex_trading.php'); -require_once('cryptomic_trading.php'); require_once('cryptopia_trading.php'); require_once('nova_trading.php'); -require_once('safecex_trading.php'); function cancelExchangeOrder($order=false) { @@ -31,9 +28,6 @@ function cancelExchangeOrder($order=false) case 'bleutrade': doBleutradeCancelOrder($order->uuid); break; - case 'safecex': - doSafecexCancelOrder($order->uuid); - break; case 'cryptopia': doCryptopiaCancelOrder($order->uuid); break; @@ -50,12 +44,6 @@ function runExchange($exchangeName=false) updateAlcurexMarkets(); break; - case 'banx': - case 'cryptomic': - doCryptomicTrading(true); - updateCryptomicMarkets(); - break; - case 'bter': doBterTrading(true); updateBterMarkets(); @@ -66,11 +54,6 @@ function runExchange($exchangeName=false) updateCryptopiaMarkets(); break; - case 'cryptsy': - //doCryptsyTrading(true); - updateCryptsyMarkets(); - break; - case 'bitstamp': getBitstampBalances(); break; @@ -90,11 +73,6 @@ function runExchange($exchangeName=false) //updateEmpoexMarkets(); break; - case 'safecex': - doSafecexTrading(true); - updateSafecexMarkets(); - break; - case 'yobit': doYobitTrading(true); updateYobitMarkets(); diff --git a/web/yaamp/modules/thread/CronjobController.php b/web/yaamp/modules/thread/CronjobController.php index 7a9adc9..373ec85 100644 --- a/web/yaamp/modules/thread/CronjobController.php +++ b/web/yaamp/modules/thread/CronjobController.php @@ -134,8 +134,6 @@ class CronjobController extends CommonController getBitstampBalances(); doBittrexTrading(); doCryptopiaTrading(); - doSafecexTrading(); - //doCryptsyTrading(); doKrakenTrading(); doPoloniexTrading(); break; @@ -145,7 +143,6 @@ class CronjobController extends CommonController doYobitTrading(); doCCexTrading(); - doCryptomicTrading(); doBterTrading(); doBleutradeTrading(); doNovaTrading();