Esempio n. 1
0
        private async void button_Login_Click(object sender, EventArgs e)
        {
            textBox_Username.Text = textBox_Username.Text.Trim();
            if (string.IsNullOrEmpty(textBox_Username.Text))
            {
                MessageBox.Show("Username cannot be blank");
                return;
            }
            int totp;

            if (!int.TryParse(textBox_totp.Text, out totp))
            {
                totp = -1;
            }
            Enabled = false;
            var result = await DiceWebAPI.BeginSessionAsync(Settings.ApiKey, textBox_Username.Text, textBox_Password.Text, totp);

            if (result.Success)
            {
                StartSession(result.Session);
            }
            else
            {
                Enabled = true;
                DisplayError(result);
            }
        }
Esempio n. 2
0
        private async void button_CreateAccount_Click(object sender, EventArgs e)
        {
            if (button_Continue.Enabled)
            {
                if (MessageBox.Show(this, "Are you sure? If you create a new account, you will no longer be able to access the old one! To keep access to the old account, choose 'Continue Last Session' and set up a username and password! Continue with creating a new account?", "WARNING", MessageBoxButtons.YesNo) != System.Windows.Forms.DialogResult.Yes)
                {
                    return;
                }
            }
            Enabled = false;
            var result = await DiceWebAPI.BeginSessionAsync(Settings.ApiKey);

            if (result.Success)
            {
                // Save the account cookie so that we can access this account again
                SaveLastAccountCookie(result.Session.AccountCookie);

                StartSession(result.Session);
            }
            else
            {
                Enabled = true;
                DisplayError(result);
            }
        }
Esempio n. 3
0
 async void BalanceTimer_Tick(object sender, EventArgs e)
 {
     if (BettingInProgress)
     {
         return;
     }
     await DiceWebAPI.GetBalanceAsync(Session, Currency);
 }
        public BetResultData StartBetting(MultipleBetData data)
        {
            if (data == null)
            {
                return(null);
            }

            PlaceAutomatedBetsResponse rezBet = DiceWebAPI.PlaceAutomatedBets(data.Session, data.AutoSettings);
            var rezult = new BetResultData {
                Session = data.Session
            };

            if (rezBet.Success)
            {
                if (rezBet.TotalPayOut == 0) //запуск одиночных ставок
                {
                    decimal baseBet;
                    if (rezBet.BetCount > 1)
                    {
                        baseBet = rezBet.PayIns[rezBet.BetCount - 1] <= rezBet.PayIns[rezBet.BetCount - 2] ?
                                  2 * rezBet.PayIns[rezBet.BetCount - 1] : 2 * rezBet.PayIns[rezBet.BetCount - 2];
                    }
                    else
                    {
                        baseBet = 2 * rezBet.PayIns[rezBet.BetCount - 1];
                    }
                    //сформировать исходные данные для одиночных ставок
                    SingleBetData singlData = data.GetSingleData();
                    singlData.PayIn = baseBet;
                    BetResultData singleResult = singleBetting.StartBetting(singlData);

                    rezult.BetCount = rezBet.BetCount + singleResult.BetCount;
                    rezult.Percent  = singleResult.Percent;
                    rezult.Profit   = rezBet.TotalPayOut + singleResult.Profit;
                    rezult.Balance  = data.Session[data.Currency].Balance;
                }
                else //получен профит
                {
                    rezult.BetCount = rezBet.BetCount;
                    rezult.Percent  = 0;
                    rezult.Profit   = rezBet.TotalPayOut + rezBet.TotalPayIn;
                    rezult.Balance  = data.Session[data.Currency].Balance;
                }
            }
            else
            {
                if (rezBet.InsufficientFunds)
                {
                    OnFinishMoney?.Invoke(this, data);
                }
                else
                {
                    Thread.Sleep(30000);
                }
            }

            return(rezult);
        }
Esempio n. 5
0
        async void BalanceTimer_Tick(object sender)
        {
            if (_model.Session != null)
            {
                GetBalanceResponse response = await DiceWebAPI.GetBalanceAsync(_model.Session, _model.Currency);

                if (response.Success)
                {
                    _model.InitModel();
                }
            }
        }
Esempio n. 6
0
        private async void button_Continue_Click(object sender, EventArgs e)
        {
            Enabled = false;
            var result = await DiceWebAPI.BeginSessionAsync(Settings.ApiKey, LastAccountCookie);

            if (result.Success)
            {
                StartSession(result.Session);
            }
            else
            {
                Enabled = true;
                DisplayError(result);
            }
        }
Esempio n. 7
0
        private async void button_CreateUsername_Click(object sender, EventArgs e)
        {
            textBox_Username.Text = textBox_Username.Text.Trim();
            if (string.IsNullOrEmpty(textBox_Username.Text))
            {
                MessageBox.Show("Username cannot be blank");
                return;
            }
            if (string.IsNullOrEmpty(textBox_Password.Text))
            {
                MessageBox.Show("Password cannot be blank");
                return;
            }
            if (textBox_Password.Text != textBox_Password2.Text)
            {
                MessageBox.Show("Passwords do not match!");
                return;
            }
            Enabled = false;
            var result = await DiceWebAPI.CreateUserAsync(Session, textBox_Username.Text, textBox_Password.Text);

            if (result.Success)
            {
                Close();
                return;
            }
            if (result.UsernameAlreadyTaken)
            {
                MessageBox.Show("That username is already taken, please try another");
            }
            else if (result.AccountAlreadyHasUser)
            {
                MessageBox.Show("This account already has a username: "******"You are performing actions too quickly, please slow down");
            }
            else if (result.ErrorMessage != null)
            {
                MessageBox.Show("Error: " + result.ErrorMessage);
            }
            else
            {
                MessageBox.Show("An error has occurred, please try again.");
            }
        }
Esempio n. 8
0
        public BetResultData StartBetting(SingleBetData bet)
        {
            int betNr  = 0;
            var rezult = new BetResultData();

            while (true)
            {
                PlaceBetResponse rezBet = DiceWebAPI.PlaceBet(bet.Session, bet.PayIn, bet.GessLow, bet.GessHigh, bet.ClientSeed, bet.Currency);

                if (rezBet.Success)
                {
                    betNr++;
                    if (rezBet.PayOut > 0)
                    {
                        rezult.Profit  += rezBet.PayOut - bet.PayIn;
                        rezult.BetCount = betNr;
                        rezult.Percent  = bet.GessHigh;
                        rezult.Balance  = bet.Session[bet.Currency].Balance;
                        rezult.Session  = bet.Session;
                        break;
                    }
                    else
                    {
                        rezult.Profit -= bet.PayIn;
                        CalcPercent(betNr, bet);
                        bet.ClientSeed = new Random().Next();
                        if (betNr % bet.Repit == 0 && betNr != 0)
                        {
                            bet.PayIn = bet.PayIn * 2;
                        }
                    }
                }
                else
                {
                    if (rezBet.InsufficientFunds)
                    {
                        OnFinishMoney?.Invoke(this, bet);
                    }
                    else
                    {
                        Thread.Sleep(30000);
                    }
                }
            }
            return(rezult);
        }
Esempio n. 9
0
        private async void button_Withdraw_Click(object sender, EventArgs e)
        {
            ValidateAddress();
            textBox_Amount.Text = textBox_Amount.Text.Trim();
            decimal amount;

            if (!decimal.TryParse(textBox_Amount.Text, out amount) || amount <= 0)
            {
                MessageBox.Show("Invalid withdrawal amount");
                return;
            }
            if (Currency == Currencies.BTC)
            {
                if (amount <= 0.0001M)
                {
                    MessageBox.Show("Withdrawal amount is less than Bitcoin's transaction fee (0.0001 BTC)");
                    return;
                }
            }
            if (Currency == Currencies.Doge)
            {
                if (amount <= 1M)
                {
                    MessageBox.Show("Withdrawal amount is less than Dogecoin's transaction fee (1 Doge)");
                    return;
                }
            }
            if (Currency == Currencies.LTC)
            {
                if (amount <= 0.001M)
                {
                    MessageBox.Show("Withdrawal amount is less than Litecoin's transaction fee (0.001 LTC)");
                    return;
                }
            }
            if (Currency == Currencies.ETH)
            {
                if (amount <= 0.001M)
                {
                    MessageBox.Show("Withdrawal amount is less than Ethereum's transaction fee (0.001 ETH)");
                    return;
                }
            }
            Enabled = false;
            HandleResponse(await DiceWebAPI.WithdrawAsync(Session, amount, textBox_Address.Text, Currency));
        }
Esempio n. 10
0
        public void LoginAsync(string login, string password, int code = 0)
        {
            if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password))
            {
                return;
            }

            var responce = DiceWebAPI.BeginSession(ApiKey, login, password, code);

            if (responce.Success)
            {
                OnStartSession?.Invoke(responce.Session);
            }
            else
            {
                OnStartSession?.Invoke(null, DisplayError(responce));
            }
        }
Esempio n. 11
0
        public async void StartBet(MultiBetData bet)
        {
            PlaceAutomatedBetsResponse result = await DiceWebAPI.PlaceAutomatedBetsAsync(bet.Session, bet.MultiBetSettings);

            if (result.Success)
            {
                betResult.BetCount++;
                if (result.TotalPayOut == 0)
                {
                    decimal baseBet;
                    if (result.BetCount > 1)
                    {
                        baseBet = result.PayIns[result.BetCount - 1] <= result.PayIns[result.BetCount - 2] ?
                                  2 * result.PayIns[result.BetCount - 1] : 2 * result.PayIns[result.BetCount - 2];
                    }
                    else
                    {
                        baseBet = 2 * result.PayIns[result.BetCount - 1];
                    }

                    SingleBetCycle singlBet = new SingleBetCycle();
                    SingleBetData  sBet     = bet.GetSingleData(baseBet);
                    singlBet.OnNoMoney += SinglBet_OnNoMoney;
                    BetResult singlResult = null;
                    singlBet.StartBet(sBet);
                    betResult.BetCount = result.BetCount + singlResult.BetCount;
                    betResult.Profit   = result.TotalPayOut + result.TotalPayIn + singlResult.Profit;
                }
                else
                {
                    betResult.BetCount = result.BetCount;
                    betResult.Profit   = result.TotalPayOut + result.TotalPayIn;
                    OnBetCompleted?.Invoke(betResult);
                }
            }
            else
            {
                if (result.InsufficientFunds)
                {
                    OnNoMoney?.Invoke(bet.Session.AccountId, bet.Currency);
                    Thread.Sleep(20000);
                }
            }
        }
Esempio n. 12
0
        private async void LoginGo()
        {
            BeginSessionResponse result = null;

            try
            {
                result = await DiceWebAPI.BeginSessionAsync(Settings.Default.ApiSettings, _loginModel.Login,
                                                            _loginModel.Password, int.Parse(_loginModel.GoogleCode == ""?"0": _loginModel.GoogleCode));
            }
            catch (Exception ex)
            {
            }

            if (result != null)
            {
                OnLogin?.Invoke(this, new ResultLoginModel {
                    Session = result.Session, ErrorResult = ErrorProcessing(result)
                });
            }
        }
        private async void GetNewAccount()
        {
            BeginSessionResponse sessionResult = null;

            try
            {
                sessionResult = await DiceWebAPI.BeginSessionAsync(Settings.Default.ApiSettings);
            }
            catch (Exception ex)
            {
            }

            if (sessionResult.Success)
            {
                CreateUserResponse newAccResult = null;
                try
                {
                    newAccResult = await DiceWebAPI.CreateUserAsync(sessionResult.Session, _newAccountModel.Login, _newAccountModel.PasswordOne);
                }
                catch (Exception ex)
                {
                }

                if (newAccResult.Success)
                {
                    MessageBox.Show("New account created!");
                    OnLogin?.Invoke(this, _newAccountModel.Login);
                }
                else
                {
                    ErrorProcessingCreateUser(newAccResult);
                }
            }
            else
            {
                ErrorProcessingBeginSession(sessionResult);
            }
        }
        private void ProcessResult(BetResultData data, SingleBetData bet)
        {
            if (data.Balance > bet.ProfitEdge)
            {
                decimal minProfitToWitdraw = 0;
                switch (bet.Currency)
                {
                case Currencies.BTC:
                {
                    minProfitToWitdraw = Math.Max(data.Balance - bet.ProfitEdge, 0.0005m);
                }
                break;

                case Currencies.Doge:
                {
                    minProfitToWitdraw = Math.Max(data.Balance - bet.ProfitEdge, 2m);
                }
                break;

                case Currencies.LTC:
                {
                    minProfitToWitdraw = Math.Max(data.Balance - bet.ProfitEdge, 0.002m);
                }
                break;

                case Currencies.ETH:
                {
                    minProfitToWitdraw = Math.Max(data.Balance - bet.ProfitEdge, 0.002m);
                }
                break;
                }

                DiceWebAPI.Withdraw(bet.Session, minProfitToWitdraw, bet.AccountToSendProfit, bet.Currency);
            }
            _settings.UserBalance += data.Profit;
            bet.PayIn              = bet.SetBaseBet(_settings);
        }
Esempio n. 15
0
        public async void StartBet(SingleBetData bet)
        {
            var betResult = new BetResult();

            while (true)
            {
                var result = await DiceWebAPI.PlaceBetAsync(bet.Session, bet.PayIn, bet.GessLow, bet.GessHigh, bet.ClientSeed, bet.Currency);

                if (result.Success)
                {
                    betResult.BetCount++;
                    if (result.PayOut > 0)
                    {
                        betResult.Profit += result.PayOut - bet.PayIn;
                        OnBetCompleted?.Invoke(betResult);
                        break;
                    }
                    else
                    {
                        betResult.Profit -= bet.PayIn;
                        if (betResult.BetCount % bet.Repit == 0 && betResult.BetCount != 0)
                        {
                            bet.PayIn = bet.PayIn * 2;
                        }
                        CalcPercent(betResult.BetCount, bet);
                    }
                }
                else
                {
                    if (result.InsufficientFunds)
                    {
                        OnNoMoney?.Invoke(bet.Session.AccountId, bet.Currency);
                        Thread.Sleep(20000);
                    }
                }
            }
        }
Esempio n. 16
0
 private async void button_WithdrawAll_Click(object sender, EventArgs e)
 {
     ValidateAddress();
     Enabled = false;
     HandleResponse(await DiceWebAPI.WithdrawAllAsync(Session, textBox_Address.Text, Currency));
 }