cryptopia: workaround for missing deposit addresses

This commit is contained in:
Tanguy Pruvot 2017-09-13 12:38:44 +02:00
parent b7a9174a20
commit 6c90300b6e

View file

@ -832,25 +832,34 @@ function updateCryptopiaMarkets()
if ($last_checked) return; if ($last_checked) return;
$addresses = array(); $addresses = array();
sleep(1);
$query = cryptopia_api_user('GetBalance'); $query = cryptopia_api_user('GetBalance');
if (is_object($query) && is_array($query->Data)) if (is_object($query) && is_array($query->Data))
foreach($query->Data as $balance) { foreach($query->Data as $balance) {
$addresses[$balance->Symbol] = $balance->Address; $addr = objSafeVal($balance,'Address');
if (!empty($addr)) $addresses[$balance->Symbol] = $addr;
} }
// for some reason, no more available in global GetBalance api
$needCurrencyQueries = empty($addresses);
if (!empty($addresses)) if (!empty($list))
foreach($list as $market) { foreach($list as $market) {
$coin = getdbo('db_coins', $market->coinid); $coin = getdbo('db_coins', $market->coinid);
if(!$coin) continue; if(!$coin) continue;
$symbol = $coin->getOfficialSymbol(); $symbol = $coin->getOfficialSymbol();
if (isset($addresses[$symbol])) { $addr = arraySafeVal($addresses, $symbol);
$addr = $addresses[$symbol]; if ($needCurrencyQueries) {
if ($market->deposit_address != $addr) { if(!$coin->installed) continue;
debuglog("$exchange: deposit address for {$symbol} updated"); sleep(1);
$market->deposit_address = $addr; $query = cryptopia_api_user('GetDepositAddress', array('Currency'=>$symbol));
$market->save(); $dep = objSafeVal($query,'Data');
} $addr = objSafeVal($dep,'Address');
}
if (!empty($addr) && $market->deposit_address != $addr) {
debuglog("$exchange: deposit address for {$symbol} updated");
$market->deposit_address = $addr;
$market->save();
} }
} }
cache()->set($exchange.'-deposit_address-check', time(), 12*3600); cache()->set($exchange.'-deposit_address-check', time(), 12*3600);