public function addPointsTrade($user_id, $amount_fee, $trade_id, $wallet_init) { $logFile = 'points.log'; Log::useDailyFiles(storage_path() . '/logs/points/' . $logFile); $setting = new Setting(); $balance = new Balance(); $wallet = wallet::where('type', 'POINTS')->first(); $user = User::find($user_id); Log::info("\n" . '------------------------- Add Point Trade -----------------------------'); Log::info("\n" . 'amount_fee ' . $amount_fee . ' . trade_id: ' . $trade_id . " -- wallet_init: " . $wallet_init); if (isset($wallet->id)) { $point_per_btc = $setting->getSetting('point_per_btc', 1); $percent_point_reward_trade = $setting->getSetting('percent_point_reward_trade', 0); $percent_point_reward_referred_trade = $setting->getSetting('percent_point_reward_referred_trade', 0); Log::info("\n" . 'Setting -- point_per_btc: ' . $point_per_btc . ' . percent_point_reward_trade: ' . $percent_point_reward_trade . " % -- percent_point_reward_referred_trade: " . $percent_point_reward_referred_trade . " %"); //cong point cho $user_id if ($percent_point_reward_trade > 0) { $amount_reward = $amount_fee * $percent_point_reward_trade / 100; $point_reward = $amount_reward / $point_per_btc; Log::info("\n" . 'Add point for ' . $user->username . ' . amount_reward: ' . $amount_reward . " BTC -- point_reward: " . $point_reward . " POINTS"); if ($point_reward > 0) { $balance->addMoney($point_reward, $wallet->id, $user->id); $deposit = new Deposit(); $deposit->user_id = $user->id; $deposit->wallet_id = $wallet->id; $deposit->amount = $point_reward; $deposit->paid = 1; $deposit->transaction_id = "Points earned from trade " . $trade_id; $deposit->save(); } } //cong point cho nguoi da gioi thieu $user_id nay neu co if (!empty($user->referral) && $percent_point_reward_referred_trade > 0) { $user_referred = User::where('username', $user->referral)->first(); if (!empty($user_referred)) { $amount_reward = $amount_fee * $percent_point_reward_referred_trade / 100; $point_reward = $amount_reward / $point_per_btc; Log::info("user_referred AAAAAAAAA: ", $user_referred); Log::info("\n" . 'Add point for user referred: ' . $user_referred->username . ' . amount_reward: ' . $amount_reward . " BTC -- point_reward: " . $point_reward . " POINTS"); if ($point_reward > 0) { $balance->addMoney($point_reward, $wallet->id, $user_referred->id); $deposit = new Deposit(); $deposit->user_id = $user_referred->id; $deposit->wallet_id = $wallet->id; $deposit->amount = $point_reward; $deposit->paid = 1; $deposit->transaction_id = "Points earned from User " . $user->username . "( Trade: " . $trade_id . ")"; $deposit->save(); } } } } else { Log::info("\n" . 'No wallet POINTS'); } }
public function doCancel() { if (Auth::guest()) { echo json_encode(array('status' => 'error', 'message' => Lang::get('messages.login_to_buy'))); exit; } $logFile = 'trades.log'; Log::useDailyFiles(storage_path() . '/logs/trades/' . $logFile); Log::info('------------------------- Do Cancel -----------------------------'); $user = Confide::user(); $balance = new Balance(); $order_id = $_POST['order_id']; $orders = Order::find($order_id); if ($orders->user_id == $user->id && in_array($orders->status, $orders->getStatusActive())) { //this condition use to avoid case a user cancel order of other user //message_socket for update data not f5 $message_socket['market_id'] = $orders->market_id; $message_socket_temp = array('id' => $orders->id, 'amount' => $orders->from_value, 'total' => $orders->to_value, 'action' => "update", 'price' => $orders->price); //refund money for user //get info market $market_default = Market::find($orders->market_id); $wallet_from = $market_default->wallet_from; $wallet_to = $market_default->wallet_to; $wallet = new Wallet(); $from = $wallet->getType($wallet_from); $to = $wallet->getType($wallet_to); $value_refund = 0; $type_money_refund = ''; if ($orders->type == 'buy') { //if buy: refund to_value to to_type_money (eg. Market BTC-> USD => refund to USD wallet) $value_refund = $orders->to_value; $type_money_refund = $wallet_to; $coin_code = $to; $message_socket['order_b'] = $message_socket_temp; $message_socket['order_b']['type'] = 'buy'; } else { //if sell: refund from_value to from_type_money (eg. Market BTC-> USD => refund to BTC wallet) $value_refund = $orders->from_value; $type_money_refund = $wallet_from; $coin_code = $from; $message_socket['order_s'] = $message_socket_temp; $message_socket['order_s']['type'] = 'sell'; } $balance->addMoney($value_refund, $type_money_refund, $user->id); //delete order $orders->delete(); echo json_encode(array('status' => 'success', 'message_socket' => $message_socket, 'message' => Lang::get('messages.cancel_successfull', array('value' => $value_refund, 'coin' => strtoupper($coin_code))))); exit; } else { echo json_encode(array('status' => 'error', 'message' => Lang::get('messages.not_your_order'))); exit; } }
public function doTransfer() { $trade_key = Input::get('trade_key'); $amount = Input::get('amount'); $wallet_id = Input::get('wallet_id'); $password = Input::get('password'); $wallet = Wallet::find($wallet_id); $balance = new Balance(); $user = Confide::user(); if (Hash::check($password, $user->password)) { $user_receive = User::where('trade_key', $trade_key)->first(); $amount_balance = $balance->getBalance($wallet->id); if (!isset($user_receive->username)) { return Redirect::to('user/transfer-coin/' . $wallet->id)->with('error', 'Sorry. The trade key not exist!'); } elseif ($user_receive->id == $user->id) { return Redirect::to('user/transfer-coin/' . $wallet->id)->with('error', 'Sorry. You can not referrer to yourself!'); } elseif ($amount_balance < $amount) { return Redirect::to('user/transfer-coin/' . $wallet->id)->with('error', 'Amount should be less than or equal to your balance.'); } else { if ($balance->takeMoney($amount, $wallet->id, $user->id)) { $balance->addMoney($amount, $wallet->id, $user_receive->id); $transfer_his = new Transfer(); $transfer_his->sender = $user->id; $transfer_his->receiver = $user_receive->id; $transfer_his->wallet_id = $wallet->id; $transfer_his->amount = $amount; $transfer_his->save(); return Redirect::to('user/transfer-coin/' . $wallet->id)->with('success', 'You sent to user "' . $user_receive->username . '" ' . $amount . ' ' . $wallet->getType($wallet->id) . '.'); } } } else { return Redirect::to('user/transfer-coin/' . $wallet->id)->with('error', "Password invalid."); } }
public function blocknotifyUpdateDeposit($wallet_type = '') { $blockhash = isset($_GET['trxhash']) ? $_GET['trxhash'] : 0; $logFile = 'laravel_' . $wallet_type . '.log'; Log::useDailyFiles(storage_path() . '/logs/callbackdeposits/' . $logFile); Log::info("*******New Blocknotify Update Deposit: " . $blockhash . " -- wallet_type: " . $wallet_type); Log::info("\n" . "-- wallet_type: " . $wallet_type); if ($wallet_type != '') { $wallet = Wallet::where('type', strtoupper($wallet_type))->first(); $wallet->connectJsonRPCclient($wallet->wallet_username, $wallet->wallet_password, $wallet->wallet_ip, $wallet->port); $limit_confirmations = empty($wallet->limit_confirmations) || $wallet->limit_confirmations <= 0 ? 3 : $wallet->limit_confirmations; $listtrans = $wallet->getListTransactions(); @Log::info("\n" . 'Result listtrans: ', $listtrans); $balance = new Balance(); foreach ($listtrans as $key => $value) { try { $transaction_id = $value['txid']; $trans = $wallet->getTransaction($transaction_id); if ($trans != null) { $account = $trans["details"][0]["account"]; $category = $trans["details"][0]["category"]; $confirms = $trans["confirmations"]; //send,receive $address_ = $trans["details"][0]["address"]; $amount = $trans["amount"]; Log::info("\n" . "transaction: ", $trans); Log::info("\n" . "------Account: " . $account . " -- category:" . $category . " --address: " . $address_); //mail("*****@*****.**", 'Deposit Cron: ', var_export($trans, true)); $deposit = Deposit::where('transaction_id', $transaction_id)->first(); $user = User::where('username', $account)->first(); if (isset($deposit->transaction_id)) { if ($deposit->paid == 0) { if ($category == "receive" && $confirms >= $limit_confirmations && isset($user->id)) { Deposit::where('id', $deposit->id)->update(array('paid' => 1, 'confirmations' => $confirms)); $balance->addMoney($amount, $wallet->id, $user->id); $message .= "<br>" . $amount . " " . $wallet->type . " was credited to your account"; Log::info("\n" . $amount . " " . $wallet->type . " was credited to your account"); } } else { Deposit::where('id', $deposit->id)->update(array('confirmations' => $confirms)); Log::info("\n" . $amount . " " . $wallet->type . " was already credited to your account. contact support if you need further assistance."); } } else { if ($category == "receive" && isset($user->id)) { if ($confirms >= $limit_confirmations) { Deposit::insert(array('user_id' => $user->id, 'wallet_id' => $wallet->id, 'transaction_id' => $transaction_id, 'amount' => $amount, 'paid' => 1, 'confirmations' => $confirms, 'address' => $address_, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'))); $balance->addMoney($amount, $wallet->id, $user->id); Log::info("\n" . $amount . " " . $wallet->type . " was credited to your account"); } else { Deposit::insert(array('user_id' => $user->id, 'wallet_id' => $wallet->id, 'transaction_id' => $transaction_id, 'amount' => $amount, 'paid' => 0, 'confirmations' => $confirms, 'address' => $address_, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'))); Log::info("\n" . "This Deposit is unconfirmed. Current confirmations:" . $confirms . ". Required : 3."); } } else { Log::info("\n" . "transaction is not a deposit or account is invalid."); } } } else { Log::info("\n" . "We can't find any information about this deposit. contact support."); } //trans } catch (Exception $e) { Log::info('Caught exception: ' . $e->getMessage() . "\n"); } } } else { Log::info('------------------- Error: not param wallet_type from _GET'); } Log::info("*******Stop New Blocknotify Update Deposit*************"); }
public function doUpdateSendDeposit() { $username = Input::get('username'); $amount = Input::get('amount'); $transaction_id = Input::get('transaction_id'); $paid = Input::get('paid'); if (empty($paid)) { $paid = 0; } $deposit_id = Input::get('deposit_id'); $redirect = Input::get('redirect'); $user = User::where('username', $username)->first(); //echo "<pre>Input: "; print_r(Input::all()); echo "</pre>"; exit; if (!isset($user->id)) { return Redirect::to($redirect)->with('error', Lang::get('admin_messages.user_not_exist')); } else { $deposit = Deposit::find($deposit_id); if (isset($deposit->id)) { $deposit->amount = $amount; $deposit->transaction_id = $transaction_id; $deposit->paid = $paid; $deposit->save(); $message = ''; if ($paid) { $balance = new Balance(); $wallet = new Wallet(); $balance->addMoney($amount, $deposit->wallet_id, $user->id); $message = ". " . Lang::get('admin_messages.send_money_user', array('amount' => $amount, 'coin' => $wallet->getType($deposit->wallet_id), 'username' => $user->username)); } return Redirect::to($redirect)->with('success', Lang::get('admin_messages.update_success') . $message); } else { return Redirect::to($redirect)->with('error', Lang::get('admin_messages.deposit_not_exist')); } } }