예제 #1
0
파일: home.php 프로젝트: scuba323/dcoin
}
$res = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\tSELECT *\n\t\tFROM `" . DB_PREFIX . "credits`\n\t\tWHERE (`from_user_id` = {$user_id} OR `to_user_id` = {$user_id}) AND\n\t\t\t\t\t `del_block_id` = 0 AND\n\t\t\t\t\t `amount` > 0\n\t\t");
while ($row = $db->fetchArray($res)) {
    if ($user_id == $row['from_user_id']) {
        $tpl['I_debtor'][] = $row;
    } else {
        $tpl['I_creditor'][] = $row;
    }
}
// балансы
$wallets = get_balances($user_id);
foreach ($wallets as $id => $data) {
    $tpl['wallets'][$data['currency_id']] = $data;
}
$tpl['block_id'] = get_block_id($db);
$tpl['confirmed_block_id'] = get_confirmed_block_id($db);
$tpl['currency_list'] = get_currency_list($db, 'full');
// входящие запросы
$tpl['cash_requests'] = 0;
if (empty($_SESSION['restricted'])) {
    $my_user_id = get_my_user_id($db);
    $tpl['cash_requests'] = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\tSELECT count(`id`)\n\t\t\t\tFROM `" . DB_PREFIX . "cash_requests`\n\t\t\t\tWHERE `to_user_id` = {$my_user_id} AND\n\t\t\t\t\t\t\t `status` = 'pending' AND\n\t\t\t\t\t\t\t `for_repaid_del_block_id` = 0 AND\n\t\t\t\t\t\t\t `del_block_id` = 0\n\t\t\t\t", 'fetch_one');
    $tpl['cash_requests'] = $tpl['cash_requests'] ? 1 : 0;
}
/*
 *  Задания
*/
$tpl['tasks_count'] = 0;
$tpl['tasks_count'] += $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\tSELECT count(`id`)\n\t\tFROM `" . DB_PREFIX . "votes_miners`\n\t\tWHERE  `votes_end` = 0 AND\n\t\t\t\t\t `type` = 'user_voting'\n\t\t", 'fetch_one');
// вначале получим ID валют, которые мы можем проверять.
$res = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\tSELECT `currency_id`\n\t\tFROM `" . DB_PREFIX . "promised_amount`\n\t\tWHERE `status` IN ('mining', 'repaid') AND\n\t\t\t\t\t `user_id` = {$user_id}\n\t\t");
예제 #2
0
파일: shop.php 프로젝트: scuba323/dcoin
/*
 * Важно! отключать в кроне при обнулении данных в БД
*/
define('DC', TRUE);
set_time_limit(0);
define('ABSPATH', dirname(dirname(__FILE__)) . '/');
require_once ABSPATH . 'db_config.php';
require_once ABSPATH . 'includes/autoload.php';
require_once ABSPATH . 'includes/errors.php';
$db = new MySQLidb(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME, DB_PORT);
if (get_my_block_id($db) > get_block_id($db)) {
    die('get_my_block_id > get_block_id');
}
$currency_list = get_currency_list($db);
// нужно знать текущий блок, который есть у большинства нодов
$block_id = get_confirmed_block_id($db);
// сколько должно быть подтверждений, т.е. кол-во блоков сверху
$confirmations = 5;
// берем всех юзеров по порядку
$community = get_community_users($db);
for ($k = 0; $k < sizeof($community); $k++) {
    $private_key = '';
    $MY_PREFIX = $community[$k] . '_';
    //print $MY_PREFIX."\n";
    $table_exists = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\tSHOW TABLES LIKE '" . DB_PREFIX . "{$MY_PREFIX}my_keys'\n\t\t\t", 'num_rows');
    if (!$table_exists) {
        continue;
    }
    // проверим, майнер ли
    $miner_id = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\tSELECT `miner_id`\n\t\tFROM `" . DB_PREFIX . "miners_data`\n\t\tWHERE `user_id` = {$community[$k]}\n\t\tLIMIT 1\n\t\t", 'fetch_one');
    if ($miner_id) {
예제 #3
0
파일: fns-main.php 프로젝트: scuba323/dcoin
function get_my_notice_data()
{
    global $db, $lng;
    if (empty($_SESSION['restricted'])) {
        $data = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, '
				SELECT `user_id`,
							 `miner_id`,
							 `status`
				FROM `' . DB_PREFIX . MY_PREFIX . 'my_table`
				', 'fetch_array');
        if (!$data['user_id']) {
            $tpl['account_status'] = 'searching';
        } else {
            if ($data['status'] == 'bad_key') {
                $tpl['account_status'] = 'bad_key';
            } else {
                if ($data['miner_id']) {
                    $tpl['account_status'] = 'miner';
                } else {
                    if ($data['user_id']) {
                        $tpl['account_status'] = 'user';
                    }
                }
            }
        }
    } else {
        // user_id уже есть, т.к. мы смогли зайти в урезанном режиме по паблик-кею
        // проверим, может есть что-то в miners_data
        $user_id = intval($_SESSION['user_id']);
        $status = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\tSELECT `status`\n\t\t\t\tFROM `" . DB_PREFIX . "miners_data`\n\t\t\t\tWHERE `user_id` = {$user_id}\n\t\t\t\tLIMIT 1\n\t\t\t\t", 'fetch_one');
        if ($status) {
            $tpl['account_status'] = $status;
        } else {
            $tpl['account_status'] = 'user';
        }
    }
    $tpl['account_status'] = $lng['status_' . $tpl['account_status']];
    $confirmed_block_id = get_confirmed_block_id($db);
    $confirmed_block_id = $confirmed_block_id ? $confirmed_block_id : 1;
    // получим время из последнего подвержденного блока
    $last_block_bin = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\tSELECT `data`\n\t\t\tFROM `" . DB_PREFIX . "block_chain`\n\t\t\tWHERE `id` = {$confirmed_block_id}\n\t\t\tLIMIT 1\n\t\t\t", 'fetch_one');
    ParseData::string_shift($last_block_bin, 1);
    // уберем тип
    $block_id = ParseData::binary_dec_string_shift($last_block_bin, 4);
    $block_time = ParseData::binary_dec_string_shift($last_block_bin, 4);
    $tpl['time_last_block'] = date('d-m-Y H:i:s', $block_time);
    $tpl['time_last_block_int'] = $block_time;
    $tpl['cur_block_id'] = $block_id;
    $tpl['connections'] = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\tSELECT count(*)\n\t\t\tFROM `" . DB_PREFIX . "nodes_connection`\n\t\t\t", 'fetch_one');
    if (time() - $block_time > 1800) {
        $tpl['main_status'] = $lng['downloading_blocks'];
        $tpl['main_status_complete'] = 0;
    } else {
        $tpl['main_status'] = $lng['downloading_complete'];
        $tpl['main_status_complete'] = 1;
    }
    return $tpl;
}