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); } }
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); } }
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); }
async void BalanceTimer_Tick(object sender) { if (_model.Session != null) { GetBalanceResponse response = await DiceWebAPI.GetBalanceAsync(_model.Session, _model.Currency); if (response.Success) { _model.InitModel(); } } }
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); } }
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."); } }
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); }
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)); }
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)); } }
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); } } }
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); }
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); } } } }
private async void button_WithdrawAll_Click(object sender, EventArgs e) { ValidateAddress(); Enabled = false; HandleResponse(await DiceWebAPI.WithdrawAllAsync(Session, textBox_Address.Text, Currency)); }