if ($detail['category'] == 'send') { $detail['fee'] = abs($detail['fee']); if ($detail['fee'] > 0) { $transfer_fees += $detail['fee']; db_insert('fees', array('fee' => $detail['fee'], 'date' => date('Y-m-d H:i:s'))); } } } Status::sumFields(array('hot_wallet_btc' => 0 - $transferred - $transfer_fees, 'warm_wallet_btc' => $transferred, 'total_btc' => 0 - $transfer_fees)); echo 'Transferred ' . $reserve_surplus . ' to warm wallet. TX: ' . $response . PHP_EOL; } } } elseif ($reserve['hot_wallet_btc'] > $CFG->bitcoin_reserve_min && $warm_wallet && $reserve_surplus > 0) { //$warm_wallet_a = BitcoinAddresses::getWarmWallet(); $warm_wallet_a['address'] = $warm_wallet; $hot_wallet_a = BitcoinAddresses::getHotWallet(); $bitcoin->walletpassphrase($CFG->bitcoin_passphrase, 3); $response = $bitcoin->sendfrom($CFG->bitcoin_accountname, $warm_wallet_a['address'], floatval($reserve_surplus)); $transferred = 0; echo $bitcoin->error; if ($response && !$bitcoin->error) { $transferred = $reserve_surplus; $transfer_fees = 0; $transaction = $bitcoin->gettransaction($response); foreach ($transaction['details'] as $detail) { if ($detail['category'] == 'send') { $detail['fee'] = abs($detail['fee']); if ($detail['fee'] > 0) { $transfer_fees += $detail['fee']; db_insert('fees', array('fee' => $detail['fee'], 'date' => date('Y-m-d H:i:s'))); }
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) {