Esempio n. 1
0
     unlink($transactions_dir . $t_id);
     continue;
 }
 if (empty($transaction['details'])) {
     continue;
 }
 //$raw = $bitcoin->decoderawtransaction($bitcoin->getrawtransaction($t_id));
 //$sender_address = $raw['vout'][1]['scriptPubKey']['addresses'][0];
 $send = false;
 $pending = false;
 $hot_wallet_in = 0;
 foreach ($transaction['details'] as $detail) {
     if ($detail['category'] == 'receive') {
         // identify the user and request id
         if (empty($addresses[$detail['address']])) {
             $addr_info = BitcoinAddresses::getAddress($detail['address']);
             if (!$addr_info) {
                 continue;
             }
             $addresses[$detail['address']] = $addr_info;
         }
         $user_id = $addresses[$detail['address']]['site_user'];
         $request_id = !empty($requests[$transaction['txid']]) ? $requests[$transaction['txid']] : false;
         // check for hot wallet recharge
         if ($addresses[$detail['address']]['hot_wallet'] == 'Y') {
             if ($transaction['confirmations'] > 0) {
                 $hot_wallet_in = $detail['amount'];
             }
             continue;
         } elseif ($addresses[$detail['address']]['system_address'] == 'Y') {
             unlink($transactions_dir . $t_id);
Esempio n. 2
0
    exit;
}
$bitcoin = new Bitcoin($CFG->bitcoin_username, $CFG->bitcoin_passphrase, $CFG->bitcoin_host, $CFG->bitcoin_port, $CFG->bitcoin_protocol);
$status = DB::getRecord('status', 1, 0, 1);
$available = $status['hot_wallet_btc'];
$deficit = $status['deficit_btc'];
$bitcoin->settxfee($CFG->bitcoin_sending_fee);
$users = array();
$transactions = array();
$user_balances = array();
$addresses = array();
if ($result) {
    $pending = 0;
    foreach ($result as $row) {
        // check if user sending to himself
        $addr_info = BitcoinAddresses::getAddress($row['send_address']);
        if (!empty($addr_info['site_user']) && $addr_info['site_user'] == $row['site_user']) {
            db_update('requests', $row['id'], array('request_status' => $CFG->request_completed_id));
            continue;
        }
        // check if sending to another wlox user
        if (!empty($addr_info['site_user'])) {
            if (empty($user_balances[$addr_info['site_user']])) {
                $bal_info = User::getBalance($addr_info['site_user'], $CFG->btc_currency_id, true);
                $user_balances[$addr_info['site_user']] = $bal_info['balance'];
            }
            User::updateBalances($row['site_user'], array('btc' => -1 * $row['amount']), true);
            User::updateBalances($addr_info['site_user'], array('btc' => $row['amount']), true);
            db_update('requests', $row['id'], array('request_status' => $CFG->request_completed_id));
            $rid = db_insert('requests', array('date' => date('Y-m-d H:i:s'), 'site_user' => $addr_info['site_user'], 'currency' => $CFG->btc_currency_id, 'amount' => $row['amount'], 'description' => $CFG->deposit_bitcoin_desc, 'request_status' => $CFG->request_completed_id, 'request_type' => $CFG->request_deposit_id));
            if ($rid) {