Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.46 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4. require_once('easybitcoin.php');
  5. use Illuminate\Http\Request;
  6. use Bitcoin;
  7. use Auth;
  8. use Illuminate\Support\Facades\Hash;
  9. use Illuminate\Support\Facades\Validator;
  10. use Illuminate\Support\Facades\Input;
  11. use Illuminate\Support\Facades\Redirect;
  12. use App\Product;
  13. use App\Bid;
  14. use App\Purchase;
  15. use DateTime;
  16. class WalletController extends Controller
  17. {
  18.  
  19. private $bitcoin;
  20. private $minc;
  21.  
  22. public function __construct()
  23. {
  24.  
  25. $this->bitcoin = new Bitcoin(env('BITCOIND_USERNAME'),env('BITCOIND_PASSWORD'),env('BITCOIND_HOST'),env('BITCOIND_PORT'));
  26. $this->minc = (integer)env('BITCOIND_MINCONFIRMATIONS');
  27. }
  28. public function Test(){
  29.  
  30. $auctions = Product::where('sold',0)->where('auction',true)->get();
  31.  
  32. foreach ($auctions as $auction) {
  33.  
  34. $ends = new DateTime($auction->end_date);
  35. $now = new DateTime(date('Y-m-d H:i:s', time()));
  36. if ($ends < $now) {
  37. $lastbid = $auction->bids->where('value',$auction->bids->max('value'))->first();
  38. foreach ($auction->bids as $bid) {
  39. if ($bid->id == $lastbid->id) {
  40.  
  41. } else {
  42. $bid->user->balance += $bid->value;
  43. $bid->user->save();
  44. }
  45. }
  46. $auction->buyer_id = $lastbid->user->id;
  47. $auction->sold = true;
  48. $auction->save();
  49.  
  50. $purchase = new Purchase;
  51. $purchase->uniqueid = 'PU'.str_random(28);
  52. $purchase->buyer_id = $lastbid->user->id;
  53. $purchase->seller_id = $auction->seller->id;
  54. $purchase->value = $lastbid->value;
  55. $purchase->product_id = $auction->id;
  56. $purchase->delivered = false;
  57. $purchase->save();
  58. }
  59. }
  60. }
  61.  
  62. public function NewAddress(){
  63. if (env('APP_DEMO') == true) {
  64. session()->flash('errormessage','Not available in demo mode');
  65. return redirect()->back();
  66. }
  67. $user = Auth::user();
  68. $address = $this->bitcoin->getnewaddress($user->uniqueid);
  69.  
  70. return view('profile.newaddress')->with([
  71. 'address'=>$address
  72. ]);
  73. }
  74.  
  75. public function CheckBalance(){
  76. if (env('APP_DEMO') == true) {
  77. session()->flash('errormessage','Not available in demo mode');
  78. return redirect()->back();
  79. }
  80. $user = Auth::user();
  81. $total_received = $this->bitcoin->getreceivedbyaccount($user->uniqueid,$this->minc)/0.00000001;
  82. $last_credited = $user->last_credited;
  83. $to_credit = $total_received-$last_credited;
  84. if ($to_credit > 0) {
  85. $user->balance += $to_credit;
  86. $user->last_credited = $total_received;
  87. $user->save();
  88. session()->flash('successmessage','Your balance has beed credited with '.$to_credit*0.00000001.' BTC');
  89. return redirect()->back();
  90. }
  91.  
  92. session()->flash('successmessage','Balance update successful, no new transactions');
  93. return redirect()->back();
  94. }
  95. public function WithdrawShow(){
  96. return view('profile.withdraw');
  97. }
  98. public function WithdrawPost(Request $request){
  99. if (env('APP_DEMO') == true) {
  100. session()->flash('errormessage','Not available in demo mode');
  101. return redirect()->back();
  102. }
  103. $user = Auth::user();
  104.  
  105. $rules = ['captcha' => 'required|captcha'];
  106. $validator = Validator::make(Input::all(), $rules);
  107. if ($validator->fails())
  108. {
  109. session()->flash('errormessage','Invalid captcha ');
  110. return redirect()->back()->withInput();
  111. }
  112.  
  113. if ($request->balance == null) {
  114. session()->flash('errormessage','Please enter how much you want to withdraw');
  115. return redirect()->back()->withInput();
  116. }
  117. if ($request->address == null) {
  118. session()->flash('errormessage','Please enter withdraw address');
  119. return redirect()->back()->withInput();
  120. }
  121. if ($request->balance/0.00000001 > $user->balance ) {
  122. session()->flash('errormessage','You don\'t have enough BTC in your balance');
  123. return redirect()->back()->withInput();
  124. }
  125. if ($request->pin == null) {
  126. session()->flash('errormessage','PIN is required');
  127. return redirect()->back()->withInput();
  128. }
  129.  
  130. if ($request->pin == $user->pin) {
  131.  
  132. } else {
  133. session()->flash('errormessage','PIN is incorrect');
  134. return redirect()->back()->withInput();
  135. }
  136. if ($request->password == null ) {
  137. session()->flash('errormessage','Password is required');
  138. return redirect()->back()->withInput();
  139. }
  140. if (!Hash::check($request->password, $user->password)) {
  141. session()->flash('errormessage','Password is incorrect');
  142. return redirect()->back()->withInput();
  143. }
  144.  
  145. $wallet = (string)$user->uniqueid;
  146. $address = (string)$request->address;
  147. $amount = $request->balance;
  148. $response = $this->bitcoin->sendtoaddress($address,$amount);
  149. if ($response !== false) {
  150. $user->balance -= $amount/0.00000001;
  151. $user->save();
  152. session()->flash('successmessage','Successful withdraw of '.$amount.' BTC, with TXID '.$response);
  153. return redirect()->route('wallet');
  154. } else {
  155. session()->flash('errormessage','Something went wrong');
  156. return redirect()->back();
  157. }
  158. }
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement