';
///////////////////////////////////////////////////////////////////////////////////////////////////////
echo '';
echo '';
echo '';
echo 'Algo | ';
echo ' | ';
echo 'C | ';
echo 'M | ';
echo 'Fee | ';
echo 'Rate | ';
echo 'Rent | ';
echo 'Bad | ';
echo 'Now | ';
echo 'Rent | ';
//echo 'Norm | ';
echo '24E | ';
echo '24A | ';
echo ' ';
echo '';
$total_coins = 0;
$total_workers = 0;
$total_hashrate = 0;
$total_hashrate_bad = 0;
$algos = array();
foreach(yaamp_get_algos() as $algo)
{
$algo_norm = yaamp_get_algo_norm($algo);
$price = controller()->memcache->get_database_scalar("current_price-$algo",
"select price from hashrate where algo=:algo order by time desc limit 1", array(':algo'=>$algo));
$norm = $price*$algo_norm;
$norm = take_yaamp_fee($norm, $algo);
$algos[] = array($norm, $algo);
}
function cmp($a, $b)
{
return $a[0] < $b[0];
}
usort($algos, 'cmp');
foreach($algos as $item)
{
$norm = $item[0];
$algo = $item[1];
$algo_color = getAlgoColors($algo);
$algo_norm = yaamp_get_algo_norm($algo);
// debuglog($algo);
$coins = getdbocount('db_coins', "enable and auto_ready and algo=:algo", array(':algo'=>$algo));
$count = getdbocount('db_workers', "algo=:algo", array(':algo'=>$algo));
$total_coins += $coins;
$total_workers += $count;
$hashrate = dboscalar("select hashrate from hashrate where algo=:algo order by time desc limit 1", array(':algo'=>$algo));
$hashrate_bad = dboscalar("select hashrate_bad from hashrate where algo=:algo order by time desc limit 1", array(':algo'=>$algo));
$bad = ($hashrate+$hashrate_bad)? round($hashrate_bad * 100 / ($hashrate+$hashrate_bad), 1): '';
$total_hashrate += $hashrate;
$total_hashrate_bad += $hashrate_bad;
$hashrate = $hashrate? Itoa2($hashrate).'h/s': '-';
$hashrate_bad = $hashrate_bad? Itoa2($hashrate_bad).'h/s': '-';
$hashrate_jobs = yaamp_rented_rate($algo);
$hashrate_jobs = $hashrate_jobs>0? Itoa2($hashrate_jobs).'h/s': '';
$price = dboscalar("select price from hashrate where algo=:algo order by time desc limit 1", array(':algo'=>$algo));
$price = $price? mbitcoinvaluetoa($price): '-';
$rent = dboscalar("select rent from hashrate where algo=:algo order by time desc limit 1", array(':algo'=>$algo));
$rent = $rent? mbitcoinvaluetoa($rent): '-';
$norm = mbitcoinvaluetoa($norm);
$t = time() - 24*60*60;
$avgprice = dboscalar("select avg(price) from hashrate where algo=:algo and time>$t", array(':algo'=>$algo));
$avgprice = $avgprice? mbitcoinvaluetoa(take_yaamp_fee($avgprice, $algo)): '-';
$t1 = time() - 24*60*60;
$total1 = dboscalar("select sum(amount*price) from blocks where category!='orphan' and time>$t1 and algo=:algo", array(':algo'=>$algo));
$hashrate1 = dboscalar("select avg(hashrate) from hashrate where time>$t1 and algo=:algo", array(':algo'=>$algo));
$algo_unit_factor = yaamp_algo_mBTC_factor($algo);
$btcmhday1 = $hashrate1 != 0? mbitcoinvaluetoa($total1 / $hashrate1 * 1000000 * 1000 * $algo_unit_factor): '';
$fees = yaamp_fee($algo);
$stratum = getdbosql('db_stratums', "algo=:algo", array(':algo'=>$algo));
$isup = Booltoa($stratum);
echo '';
echo '';
echo CHtml::link($algo, '/site/gomining?algo='.$algo);
echo ' | ';
echo ''.$isup.' | ';
echo ''.(empty($coins) ? '-' : $coins).' | ';
echo ''.(empty($count) ? '-' : $count).' | ';
echo ''.(empty($fees) ? '-' : "$fees %").' | ';
echo ''.$hashrate.' | ';
echo ''.$hashrate_jobs.' | ';
if ($bad > 10)
echo ''.$bad.'% | ';
else if($bad > 5)
echo ''.$bad.'% | ';
else
echo ''.(empty($bad) ? '-' : "$bad %").' | ';
if ($norm>0)
echo ''.($price == 0.0 ? '-' : $price).' | ';
else
echo ''.($price == 0.0 ? '-' : $price).' | ';
echo ''.$rent.' | ';
echo ''.($avgprice == 0.0 ? '-' : $avgprice).' | ';
if($btcmhday1 != '-' && $btcmhday1 > $avgprice*1.1)
echo ''.$btcmhday1.' | ';
else if($btcmhday1 != '-' && $btcmhday1*1.3 < $avgprice)
echo ''.$btcmhday1.' | ';
else if($btcmhday1 != '-' && $btcmhday1*1.2 < $avgprice)
echo ''.$btcmhday1.' | ';
else if($btcmhday1 != '-' && $btcmhday1*1.1 < $avgprice)
echo ''.$btcmhday1.' | ';
else
echo ''.($btcmhday1 == 0.0 ? '-' : $btcmhday1).' | ';
echo ' ';
}
$bad = ($total_hashrate+$total_hashrate_bad)? round($total_hashrate_bad * 100 / ($total_hashrate+$total_hashrate_bad), 1): '';
$total_hashrate = Itoa2($total_hashrate).'h/s';
echo '';
echo ' | ';
echo ''.$total_coins.' | ';
echo ''.$total_workers.' | ';
echo ' | ';
echo ''.$total_hashrate.' | ';
echo ' | ';
echo ''.$bad.'% | ';
echo ' | ';
echo ' | ';
echo ' | ';
echo ' ';
echo ' ';
///////////////////////////////////////////////////////////////////////////////////////////////////////
$markets = getdbolist('db_balances', "1 order by name");
$total_balance = 0;
$total_onsell = 0;
$total_total = 0;
echo '';
echo '';
echo '';
echo ' | ';
foreach($markets as $market)
echo ''.$market->name.' | ';
echo 'Total | ';
echo ' ';
echo '';
echo 'to sell | ';
foreach($markets as $market)
{
$onsell = bitcoinvaluetoa(dboscalar("select sum(amount*bid) from orders where market='$market->name'"));
if($onsell > 0.2)
echo ''.$onsell.' | ';
else if($onsell > 0.1)
echo ''.$onsell.' | ';
else if($onsell == 0.0)
echo '- | ';
else
echo ''.$onsell.' | ';
$total_onsell += $onsell;
}
$total_onsell = bitcoinvaluetoa($total_onsell);
echo ''.$total_onsell.' | ';
echo ' ';
echo 'balance | ';
foreach($markets as $market)
{
$balance = bitcoinvaluetoa($market->balance);
if($balance > 0.250)
echo ''.$balance.' | ';
else if($balance > 0.200)
echo ''.$balance.' | ';
else if($market->balance == 0.0)
echo '- | ';
else
echo ''.$balance.' | ';
$total_balance += $balance;
}
$total_balance = bitcoinvaluetoa($total_balance);
echo ''.$total_balance.' | ';
echo ' ';
echo 'total | ';
foreach($markets as $market)
{
$total = $market->balance + dboscalar("select sum(amount*bid) from orders where market='$market->name'");
echo ''.($total > 0.0 ? bitcoinvaluetoa($total) : '-').' | ';
$total_total += $total;
}
$total_total = bitcoinvaluetoa($total_total);
echo ''.$total_total.' | ';
echo ' ';
echo ' ';
//////////////////////////////////////////////////////////////////////////////////////////////////
$minsent = time()-2*60*60;
$list = getdbolist('db_markets', "lastsent<$minsent and lastsent>lasttraded order by lastsent");
echo '';
echo '';
echo '';
echo ' | ';
echo 'Name | ';
echo 'Exchange | ';
echo 'Sent | ';
echo 'Traded | ';
echo ' | ';
echo ' ';
echo '';
foreach($list as $market)
{
$price = bitcoinvaluetoa($market->price);
$coin = getdbo('db_coins', $market->coinid);
$marketurl = getMarketUrl($coin, $market->name);
// echo '';
$algo_color = getAlgoColors($coin->algo);
echo ' ';
echo ' | ';
echo ''.$coin->name.' ('.$coin->symbol.') | ';
echo ''.$market->name.' | ';
$sent = datetoa2($market->lastsent);
$traded = datetoa2($market->lasttraded);
echo ''.$sent.' ago | ';
echo ''.$traded.' ago | ';
echo 'clear | ';
echo ' ';
}
echo ' ';
//////////////////////////////////////////////////////////////////////////////////////////////////
$orders = getdbolist('db_orders', "1 order by (amount*bid) desc");
echo '';
//showTableSorter('maintable');
echo '';
echo '';
echo ' | ';
echo 'Name | ';
echo 'Exchange | ';
echo 'Created | ';
echo 'Quantity | ';
echo 'Ask | ';
echo 'Bid | ';
echo 'Value | ';
echo ' | ';
echo ' ';
echo '';
$totalvalue = 0;
$totalbid = 0;
foreach($orders as $order)
{
$coin = getdbo('db_coins', $order->coinid);
if(!$coin) continue;
$marketurl = getMarketUrl($coin, $order->market);
$algo_color = getAlgoColors($coin->algo);
echo '';
$created = datetoa2($order->created). ' ago';
$price = $order->price? bitcoinvaluetoa($order->price): '';
$price = bitcoinvaluetoa($order->price);
$bid = bitcoinvaluetoa($order->bid);
$value = bitcoinvaluetoa($order->amount*$order->price);
$bidvalue = bitcoinvaluetoa($order->amount*$order->bid);
$totalvalue += $value;
$totalbid += $bidvalue;
$bidpercent = $value>0? round(($value-$bidvalue)/$value*100, 1): 0;
$amount = round($order->amount, 3);
echo ' | ';
echo ''.$coin->name.' | ';
echo ''.$order->market.' | ';
echo ''.$created.' | ';
echo ''.$amount.' | ';
echo ''.$price.' | ';
echo ''."$bid ({$bidpercent}%)".' | ';
echo $bidvalue>0.01? ''.$bidvalue.' | ': ''.$bidvalue.' | ';
echo '';
echo 'cancel ';
echo 'clear ';
// echo 'sell';
echo ' | ';
echo ' ';
}
$bidpercent = $totalvalue>0? round(($totalvalue-$totalbid)/$totalvalue*100, 1): '';
if ($totalvalue) {
echo '';
echo ' | ';
echo 'Total | ';
echo ' | ';
echo ''.$totalvalue.' | ';
echo ''."$totalbid ({$bidpercent}%) | ";
echo ' | ';
echo ' ';
}
echo ' ';
///////////////////////////////////////////////////////////////////////////////////////
echo ' | | ';
//////////////////////////////////////////////////////////////////////////////////
function cronstate2text($state)
{
switch($state)
{
case 0:
return '';
case 1:
return 'new coins';
case 2:
return 'trading';
case 3:
return 'markets';
case 4:
return 'blocks';
case 5:
return 'sell';
case 6:
return 'find2';
}
}
//$state_block = memcache_get($this->memcache->memcache, 'cronjob_block_state');
$state_main = memcache_get($this->memcache->memcache, 'cronjob_main_state');
$btc = getdbosql('db_coins', "symbol='BTC'");
if (!$btc) $btc = json_decode('{"id": 6, "balance": 0}');
echo '';
for($i=0; $i<10; $i++)
{
// if($i != $state_block-1 && $state_block>0)
// {
// $state = memcache_get($this->memcache->memcache, "cronjob_block_state_$i");
// if($state) echo "block $i ";
// }
if($i != $state_main-1 && $state_main>0)
{
$state = memcache_get($this->memcache->memcache, "cronjob_main_state_$i");
if($state) echo "main $i ";
}
}
echo '';
$block_time = sectoa(time()-memcache_get($this->memcache->memcache, "cronjob_block_time_start"));
$loop2_time = sectoa(time()-memcache_get($this->memcache->memcache, "cronjob_loop2_time_start"));
$main_time2 = sectoa(time()-memcache_get($this->memcache->memcache, "cronjob_main_time_start"));
$main_time = sectoa(memcache_get($this->memcache->memcache, "cronjob_main_time"));
$main_text = cronstate2text($state_main);
echo "*** main ($main_time) $state_main $main_text ($main_time2), loop2 ($loop2_time), block ($block_time) ";
$topay = dboscalar("select sum(balance) from accounts where coinid=$btc->id"); //here: take other currencies too
$topay2 = bitcoinvaluetoa(dboscalar("select sum(balance) from accounts where coinid=$btc->id and balance>0.001"));
$renter = dboscalar("select sum(balance) from renters");
$stats = getdbosql('db_stats', "1 order by time desc");
$margin2 = bitcoinvaluetoa($btc->balance - $topay - $renter + $stats->balances + $stats->onsell + $stats->wallets);
$margin = bitcoinvaluetoa($btc->balance - $topay - $renter);
$topay = bitcoinvaluetoa($topay);
$renter = bitcoinvaluetoa($renter);
$immature = dboscalar("select sum(amount*price) from earnings where status=0");
$mints = dboscalar("select sum(mint*price) from coins where enable");
$off = $mints-$immature;
$immature = bitcoinvaluetoa($immature);
$mints = bitcoinvaluetoa($mints);
$off = bitcoinvaluetoa($off);
$btcaddr = YAAMP_BTCADDRESS; //'14LS7Uda6EZGXLtRrFEZ2kWmarrxobkyu9';
echo 'Bitstamp '.$mining->usdbtc.', ';
echo 'wallet '.$btc->balance.', next payout '.$topay2.' ';
echo "pay $topay, renter $renter, marg $margin, $margin2 ";
echo "mint $mints immature $immature off $off ";
echo ' ';
//////////////////////////////////////////////////////////////////////////////////////////////////
echo '';
//echo '';
echo '';
///////////////////////////////////////////////////////////////////////////
$db_blocks = getdbolist('db_blocks', "1 order by time desc limit 50");
echo '
';
echo '';
echo '';
echo ' | ';
echo 'Name | ';
echo 'Amount | ';
echo 'Diff | ';
echo 'Block | ';
echo 'Time | ';
echo 'Status | ';
echo ' ';
echo '';
foreach($db_blocks as $db_block)
{
$d = datetoa2($db_block->time);
if(!$db_block->coin_id)
{
if (!$showrental)
continue;
$reward = bitcoinvaluetoa($db_block->amount);
$algo_color = getAlgoColors($db_block->algo);
echo '';
echo ' | ';
echo 'Rental ('.$db_block->algo.') | ';
echo '$reward BTC | ';
echo ' | ';
echo ' | ';
echo ''.$d.' ago | ';
echo '';
echo 'Confirmed';
echo ' | ';
echo ' ';
continue;
}
$coin = getdbo('db_coins', $db_block->coin_id);
if(!$coin)
{
debuglog("coin not found {$db_block->coin_id}");
continue;
}
$height = number_format($db_block->height, 0, '.', ' ');
$diff = Itoa2($db_block->difficulty, 3);
$algo_color = getAlgoColors($coin->algo);
echo '';
echo ' | ';
echo ''.$coin->name.' | ';
echo ''.$db_block->amount.' '.$coin->symbol.' | ';
echo ''.$diff.' | ';
echo ''.$height.' | ';
echo ''.$d.' ago | ';
echo '';
if($db_block->category == 'orphan')
echo 'Orphan';
else if($db_block->category == 'immature')
echo 'Immature ('.$db_block->confirmations.')';
else if($db_block->category == 'stake')
echo 'Stake ('.$db_block->confirmations.')';
else if($db_block->category == 'generated')
echo 'Confirmed';
else if($db_block->category == 'generate')
echo 'Confirmed';
else if($db_block->category == 'new')
echo 'New';
echo ' | ';
echo ' ';
}
echo ' ';
echo ' |