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);
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) {