public override void Login(string Username, string Password, string twofa) { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3; ClientHandlr = new HttpClientHandler { UseCookies = true, AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip, Proxy = this.Prox, UseProxy = Prox != null };; Client = new HttpClient(ClientHandlr) { BaseAddress = new Uri("https://www.bitdice.me/api/") }; Client.DefaultRequestHeaders.AcceptEncoding.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("gzip")); Client.DefaultRequestHeaders.AcceptEncoding.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("deflate")); APIKey = Password; try { string Response = Client.GetStringAsync($"user/balance?api_key={APIKey}¤cy={Currency}").Result; BDSTats tmpStats = json.JsonDeserialize <BDSTats>(Response); //Parent.DumpLog(Response, -1); string SecretResponse = Client.GetStringAsync($"dice/secret?api_key={APIKey}").Result; BDSeed tmpSeed = json.JsonDeserialize <BDSeed>(SecretResponse); //Parent.DumpLog(SecretResponse, -1); this.balance = tmpStats.balance; this.wagered = tmpStats.wagered; this.profit = tmpStats.profit; Parent.updateBalance(tmpStats.balance); Parent.updateWagered(tmpStats.wagered); Parent.updateProfit(tmpStats.profit); CurrentSeed = tmpSeed; lastupdate = DateTime.Now; isbitdice = true; new Thread(new ThreadStart(GetBalanceThread)).Start(); finishedlogin(true); return; } catch (Exception e) { Parent.DumpLog(e.ToString(), -1); } finishedlogin(false); }
public void PlaceBetThread(object BetObject) { try { var curBet = BetObject as PlaceBetObj; string ClientSeed = R.Next(0, int.MaxValue).ToString(); string Highlow = curBet.High ? "high" : "low"; string request = string.Format(System.Globalization.NumberFormatInfo.InvariantInfo, "dice?api_key={0}¤cy={1}&amount={2}&chance={3}&type={4}&client={5}&secret={6}", APIKey, Currency, curBet.Amount, curBet.Chance, Highlow, ClientSeed, CurrentSeed.id); var BetResponse = Client.PostAsync(request, new StringContent("")).Result; string sbetresult = BetResponse.Content.ReadAsStringAsync().Result; BDBetResponse NewBet = json.JsonDeserialize <BDBetResponse>(sbetresult); try { if (!string.IsNullOrWhiteSpace(NewBet.error)) { Parent.updateStatus(NewBet.error); return; } Bet result = new Bet { Amount = NewBet.bet.amount, date = DateTime.Now, Chance = NewBet.bet.data.chance, clientseed = ClientSeed, Guid = curBet.Guid, Currency = Currency, high = NewBet.bet.data.high, Id = NewBet.bet.id.ToString(), nonce = -1, Profit = NewBet.bet.profit, Roll = NewBet.bet.data.lucky, serverhash = CurrentSeed.hash, serverseed = NewBet.old.secret }; CurrentSeed = new BDSeed { hash = NewBet.secret.hash, id = NewBet.secret.id }; bool win = NewBet.bet.data.result; if (win) { wins++; } else { losses++; } bets++; wagered += result.Amount; profit += result.Profit; balance = NewBet.balance; FinishedBet(result); } catch (Exception e) { Parent.DumpLog(e.ToString(), -1); Parent.updateStatus("An unknown error has occurred"); } } catch (Exception e) { Parent.DumpLog(e.ToString(), -1); Parent.updateStatus("An unknown error has occurred"); } }