예제 #1
0
        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}&currency={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);
        }
예제 #2
0
        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}&currency={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");
            }
        }