Ejemplo n.º 1
0
 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');
     }
 }
Ejemplo n.º 2
0
 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;
     }
 }
Ejemplo n.º 3
0
 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.");
     }
 }
Ejemplo n.º 4
0
 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'));
         }
     }
 }