public IActionResult StakeRoulette(Stake stake) { try { var userId = context.HttpContext.Request.Headers["Basic"]; if (string.IsNullOrEmpty(userId)) { return(Unauthorized()); } if (users.Any(u => u.UserId == userId)) { if (users.FirstOrDefault(u => u.UserId == userId).Credit > stake.Value && (stake.Color.Trim().ToLower().Contains("rojo") || stake.Color.Trim().ToLower().Contains("verde")) && stake.Number <= 36 && stake.Value < 10000) { return(StatusCode(200)); } else { return(BadRequest()); } } else { return(Unauthorized()); } } catch { return(StatusCode(500)); } }
private Stake CalculateNewStake(Stake oldStake, MatchUpdate matchUpdate) { var newStake = new Stake { MatchId = oldStake.MatchId, BlueScore = oldStake.BlueScore, RedScore = oldStake.RedScore, IsBettable = false, Ratio = oldStake.Ratio }; if (oldStake.BlueScore < matchUpdate.BlueScore || oldStake.RedScore < matchUpdate.RedScore) { return(newStake); } newStake.IsBettable = true; if ((oldStake.BlueScore > oldStake.RedScore && matchUpdate.BlueScore > matchUpdate.OldBlueScore) || (oldStake.RedScore > oldStake.BlueScore && matchUpdate.RedScore > matchUpdate.OldRedScore)) { newStake.Ratio -= _configuration.BaseRatioStep; } else { newStake.Ratio += _configuration.BaseRatioStep; } newStake.Ratio = Math.Clamp(newStake.Ratio, _configuration.MinimalStake, _configuration.MaximalStake); return(newStake); }
public bool Double(User u) { lock (locker) { if (State != GameState.Playing) { return(false); } if (CurrentUser != u) { return(false); } if (!_cs.Remove(u.DiscordUser.Id, "Blackjack-double", u.Bet)) { return(false); } //read up in Join() why this is done using (var uow = _db.UnitOfWork) { var s = new Stake() { Amount = u.Bet, UserId = u.DiscordUser.Id, Source = "BlackJack", }; s = uow._context.Set <Stake>().Add(s).Entity; _stakes.Add(s); uow.Complete(); } u.Bet *= 2; u.Cards.Add(Deck.Draw()); if (u.GetHandValue() == 21) { //blackjack u.State = User.UserState.Blackjack; } else if (u.GetHandValue() > 21) { // user busted u.State = User.UserState.Bust; } else { //with double you just get one card, and then you're done u.State = User.UserState.Stand; } _currentUserMove.TrySetResult(true); return(true); } }
void AddPurchase(string symbol, float num, float price) { Stake Stake = null; Shares.TryGetValue(symbol, out Stake); if (Stake == null) { Stake = new Stake(); Shares.Add(symbol, Stake); } Stake.AddPurchase(num, price); }
public override double StakeVariance(Stake stake, double stakechance) { if (stake is WoodenStake) { return(0.0); } else { return(stakechance * 0.45); } }
public override double StakeVariance(Stake stake, double stakechance) { if (stake is SilverStake) { return(stakechance * 0.75); } else { return(stakechance); } }
public override double StakeVariance(Stake stake, double stakechance) { if (stake is HolyStake) { return(stakechance * 0.25); } else { return(0.0); } }
void JD_OnStake(Stake Staked) { UpdateLable(lblSiteInvested, Staked.bankroll.ToString()); if (JD.Settings.chatstake) { ch.OnChat(new Chat { Date = jdInstance.ToDateTime(Staked.date.ToString()), Type = "info", Message = string.Format("INFO: we just staked {0} CLAM (total = {1} CLAM; your total = {2} CLAM)", Staked.stake, Staked.total, Staked.stake_pft, Staked.date), UID = "", User = "" }); } }
public Blockchain() { // db DbAccess.Initialize(); Initialize(); //initilize stake Stake.Initialize(); Console.WriteLine(" initilize success ..."); }
public override int GetHashCode() { //https://stackoverflow.com/a/892640/3131828 unchecked { int h = 23; h *= 31 + (Name?.GetHashCode() ?? 0); h *= 31 + (Stake?.GetHashCode() ?? 0); h *= 31 + WonDays.GetHashCode(); return(h); } }
public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } Stake = await _context.Stakes.SingleOrDefaultAsync(m => m.ID == id); if (Stake == null) { return(NotFound()); } return(Page()); }
public async Task <IActionResult> OnPostAsync(int?id) { if (id == null) { return(NotFound()); } Stake = await _context.Stakes.FindAsync(id); if (Stake != null) { _context.Stakes.Remove(Stake); await _context.SaveChangesAsync(); } return(RedirectToPage("./Index")); }
public async Task <bool> Join(IUser user, long bet) { await locker.WaitAsync(); try { if (State != GameState.Starting) { return(false); } if (Players.Count >= 5) { return(false); } if (!await _cs.RemoveAsync(user, "BlackJack-gamble", bet, gamble: true)) { return(false); } //add it to the stake, in case bot crashes or gets restarted during the game //funds will be refunded to the players on next startup using (var uow = _db.UnitOfWork) { var s = new Stake() { Amount = bet, UserId = user.Id, Source = "BlackJack", }; s = uow._context.Set <Stake>().Add(s).Entity; _stakes.Add(s); uow.Complete(); } Players.Add(new User(user, bet)); var _ = PrintState(); return(true); } finally { locker.Release(); } }
private Stake CalculateNewStake(Stake stake, Match match, IDictionary <int, int> betsByStakeIds) { var newStake = new Stake { BlueScore = stake.BlueScore, RedScore = stake.RedScore, IsBettable = true, MatchId = stake.MatchId, Ratio = stake.Ratio }; if (betsByStakeIds.ContainsKey(stake.Id)) { _logger.LogInformation($"Penalty = {_configuration.BaseStep * _configuration.BetPenaltyRatio * betsByStakeIds[stake.Id]}"); _logger.LogInformation($"Base = {_configuration.BaseStep}"); _logger.LogInformation($"BetRatio = {_configuration.BetPenaltyRatio}"); _logger.LogInformation($"Bets = {betsByStakeIds[stake.Id]}"); newStake.Ratio -= _configuration.BaseStep * _configuration.BetPenaltyRatio * betsByStakeIds[stake.Id]; } foreach (var otherStake in match.Stakes) { if (stake == otherStake || !betsByStakeIds.ContainsKey(otherStake.Id)) { continue; } var blueDifference = stake.BlueScore - otherStake.BlueScore; var redDifference = stake.RedScore - otherStake.RedScore; var distance = blueDifference * blueDifference + redDifference * redDifference; var increase = _configuration.BaseStep * distance * _configuration.DistanceRatio * betsByStakeIds[otherStake.Id]; newStake.Ratio += increase; _logger.LogInformation($"Distance = {distance}"); _logger.LogInformation($"DistanceRatio = {_configuration.DistanceRatio}"); _logger.LogInformation($"Increase = {increase}"); } newStake.Ratio = Math.Clamp(newStake.Ratio, _configuration.MinimalStake, _configuration.MaximalStake); return(newStake); }
public eServiceStatus Start(eScanType scanType) { CompareValueDifferent = ProcessorConfigInfo.CompareValue; ScanType = scanType; CountBet = 1; MaxCountBet = ProcessorConfigInfo.MaxCountBet; LastBetTime = DateTime.Now.AddMinutes(-10); LastBetIbetSuccess = DateTime.Now.AddMinutes(-10); BetStakeType = ProcessorConfigInfo.BetStakeType; Stake = ProcessorConfigInfo.BetStake; BetStake = new List <int>(); var stak = Stake.Split(new[] { '#' }); foreach (var s in stak) { if (!string.IsNullOrEmpty(s)) { int stake; int.TryParse(s, out stake); if (stake != 0) { //Logger.Info("STAKE " + stake); BetStake.Add(stake); } } } BetStake.Shuffle(); TimeOffStakeOdds = ProcessorConfigInfo.TimeOffStakeOdds; MinOddDefBet = ProcessorConfigInfo.MinOddDefBet; MinTimeToBet = ProcessorConfigInfo.MinTimeToBet; BetAgainstIbet = ProcessorConfigInfo.RebetIbet; //WaitingTimeRebetIbet = ProcessorConfigInfo.WaitingTimeRebetIbet; AcceptMinLossIbet = ProcessorConfigInfo.AcceptMinLossIbet; if (ProcessorConfigInfo.AccountFirst.ServerType == eServerType.Ibet) { IbetMaxStakeMatch = ProcessorConfigInfo.AccountFirst.MaxStake; IbetRateExchange = ProcessorConfigInfo.AccountFirst.RateExchange; SboMaxStakeMatch = ProcessorConfigInfo.AccountSecond.MaxStake; SboRateExchange = ProcessorConfigInfo.AccountSecond.RateExchange; } else { IbetMaxStakeMatch = ProcessorConfigInfo.AccountSecond.MaxStake; IbetRateExchange = ProcessorConfigInfo.AccountSecond.RateExchange; SboMaxStakeMatch = ProcessorConfigInfo.AccountFirst.MaxStake; SboRateExchange = ProcessorConfigInfo.AccountFirst.RateExchange; } try { Initialize(); ProcessorName = IbetEngine.UserName + " - " + SboEngine.UserName; //EngineLogger engineLogger = new EngineLogger(engineName); //if (SboEngine.CheckLogin() && PiEngine.CheckLogin()) //{ SboEngine.EngineName = ProcessorName; //SboEngine.EngineLogger = engineLogger; SboEngine.Rebet = ProcessorConfigInfo.RebetSbo; //SboEngine.InitEngine(); SboEngine.UpdateAvailabeCredit(); SboEngine.StartScanEngine(scanType); //PiEngine.InitEngine(); IbetEngine.EngineName = ProcessorName; //PiEngine.EngineLogger = engineLogger; IbetEngine.UpdateAvailabeCredit(); IbetEngine.StartScanEngine(scanType); objUpdateCreditTimer = new Timer(WaitUpdateCreditCallback, null, 60000 * 5, 60000 * 5); StartFailCount = 0; _driver.OnSboScanUpdate += OnSboUpdateScan; //SboEngine.UpdateLiveDataChange += SboEngineOnUpdateLiveDataChange; //IbetSboDriver.OnSboScanUpdate += OnSboUpdateScan; //ServerCallback.OnSboScanUpdate += OnSboUpdateScan; //ServerCallback.OnIbetScanUpdate += OnIbetUpdateScan; ServerCallback.OnTransactionStatic += ServerCallback_OnTransaction; FireProcessStateChange(eServiceStatus.Started, ProcessorName); Status = eServiceStatus.Started; //List<TransactionDTO> transactionDtos; //while (TransactionQueue.TryDequeue(out transactionDtos)) //{ // // do nothing //} //processBetThread = new Thread(DoBetTransaction); //processBetThread.Start(); //} // return eServiceStatus.Unknown; } catch (Exception ex) { Logger.Error("Start Processor Fail !", ex); StartFailCount++; SboEngine.Dispose(); SboEngine.Dispose(); Status = eServiceStatus.Unknown; } return(Status); }
private Bet SetEvents(Bet bet, Event ev, bool setSportTime = true) { if (ev.IsBlock) { return(bet); } int eventId = ev.Id; Dictionary <int, CustomFactor> s = ev.Factors; Tuple <int, float> rez; float _1; rez = SetEvent(out _1, s, 921, 3150, 3144); bet._1 = _1; bet._1o = "event" + eventId + "win1," + rez.Item1 + "," + eventId; //bet._1o = "event" + event_id + "win1"; float _X; rez = SetEvent(out _X, s, 922, 3152); bet._X = _X; //bet._Xo = "event" + event_id + "draw"; bet._Xo = "event" + eventId + "draw," + rez.Item1 + "," + eventId; float _2; rez = SetEvent(out _2, s, 923, 3151, 3145); bet._2 = _2; bet._2o = "event" + eventId + "win2," + rez.Item1 + "," + eventId; //bet._2o = "event" + event_id + "win2"; float _1X; rez = SetEvent(out _1X, s, 924); bet._1X = _1X; bet._1Xo = "event" + eventId + "win1draw," + rez.Item1 + "," + eventId; //bet._1Xo = "event" + event_id + "win1draw"; float _12; rez = SetEvent(out _12, s, 1571); bet._12 = _12; bet._12o = "event" + eventId + "win1win2," + rez.Item1 + "," + eventId; //bet._12o = "event" + event_id + "win1win2"; float _X2; rez = SetEvent(out _X2, s, 925); bet._X2 = _X2; bet._X2o = "event" + eventId + "win2draw," + rez.Item1 + "," + eventId; //bet._X2o = "event" + event_id + "win2draw"; float _F1; rez = SetEvent(out _F1, s, 927, 937, 1845); bet._F1_Cof = rez.Item2; bet._F1 = _F1; bet._F1o = "event" + eventId + "hand1odds," + rez.Item1 + "," + eventId; //bet._F1o = "event" + event_id + "hand1odds"; float _F2; rez = SetEvent(out _F2, s, 928, 938, 1846); bet._F2_Cof = rez.Item2; bet._F2 = _F2; bet._F2o = "event" + eventId + "hand2odds," + rez.Item1 + "," + eventId; //bet._F2o = "event" + event_id + "hand2odds"; float _B; rez = SetEvent(out _B, s, 930, 940, 1848); bet._Tmax = _B; bet._Tmaxo = "event" + eventId + "over," + rez.Item1 + "," + eventId; //bet._Tmaxo = "event" + event_id + "over"; bet._Total_Cof = rez.Item2; float _T; rez = SetEvent(out _T, s, 931, 941, 1849); bet._Tmin = _T; bet._Tmino = "event" + eventId + "under," + rez.Item1 + "," + eventId; //bet._Tmino = "event" + event_id + "under"; if (bet._Total_Cof == 0) { bet._Total_Cof = rez.Item2; } else if (bet._Total_Cof != rez.Item2) { if (rez.Item2 != 0) { } } if (setSportTime) { string timeData = ev.EventMisc?.Comment; if (string.IsNullOrWhiteSpace(timeData)) { timeData = ""; } if (bet.SportType == SportType.Баскетбол) { Regex reg = new Regex("\\(.*\\)"); // при перерыве время не показывает MatchCollection m = reg.Matches(timeData); if (m.Count == 0) { bet.Time = "1"; } else { bet.Time = m[0].Value.Replace("(", "").Replace(")", "").Split(' ').Count().ToString(); } } else if (bet.SportType == SportType.Футбол) { EventMisc xtr = ev.EventMisc; if (xtr?.TimerSeconds != null) { string timerSeconds = xtr.TimerSeconds.ToString(); bet.Time = (Convert.ToInt32(timerSeconds) / 60) + "'"; } else { bet.Time = "90'"; } } else if (bet.SportType == SportType.Бадминтон || bet.SportType == SportType.Настольный_теннис || bet.SportType == SportType.Теннис || bet.SportType == SportType.Волейбол) { Regex reg = new Regex("\\(.*\\)"); var m = reg.Matches(timeData); if (m.Count == 0) { bet.Time = "1"; } else { bet.Time = m[0].Value.Replace("(", "").Replace(")", "").Split(' ').Count().ToString(); } } else if (bet.SportType == SportType.Гандбол) { var xtr = ev.EventMisc; if (xtr != null) { var timerSeconds = xtr.TimerSeconds?.ToString(); var timeDirection = xtr.TimerDirection?.ToString(); if (timeDirection == "1") { bet.Time = "П"; } else { bet.Time = (Convert.ToInt32(timerSeconds) / 60) + "'"; } } } else if (bet.SportType == SportType.Хоккей) { EventMisc xtr = ev.EventMisc; if (xtr != null) { string timerSeconds = xtr.TimerSeconds?.ToString(); bet.Time = (Convert.ToInt32(timerSeconds) / 60) + "'"; } else { } } else { bet.Time = "-1"; } } if (bet.SportType == SportType.Теннис) { var gameBet = ParseGameRezult(bet, eventId, s, 1609, 1610); if (gameBet != null) { bet.Games.Add(gameBet); } gameBet = ParseGameRezult(bet, eventId, s, 1747, 1748); if (gameBet != null) { bet.Games.Add(gameBet); } gameBet = ParseGameRezult(bet, eventId, s, 1750, 1751); if (gameBet != null) { bet.Games.Add(gameBet); } gameBet = ParseGameRezult(bet, eventId, s, 1753, 1754); if (gameBet != null) { bet.Games.Add(gameBet); } } foreach (KeyValuePair <int, CustomFactor> factor in s) { if (factor.Value.IsBlocked) { continue; } var stake = new Stake(); if (factor.Key == 931 || factor.Key == 941 || factor.Key == 1849) { stake.StakeType = StakeType.Tmin; stake.ParametrO = $"event{eventId}under,{factor.Key},{eventId}"; } else if (factor.Key == 930 || factor.Key == 940 || factor.Key == 1848) { stake.StakeType = StakeType.Tmax; stake.ParametrO = $"event{eventId}over,{factor.Key},{eventId}"; } else if (factor.Key == 1697 || factor.Key == 1728 || factor.Key == 1731 || factor.Key == 1734 || factor.Key == 1737) { stake.StakeType = StakeType.Tmin; stake.ParametrO = $"{eventId}f{factor.Value.F},{factor.Key},{eventId}"; } else if (factor.Key == 1696 || factor.Key == 1727 || factor.Key == 1730 || factor.Key == 1733 || factor.Key == 1736) { stake.StakeType = StakeType.Tmax; stake.ParametrO = $"{eventId}f{factor.Value.F},{factor.Key},{eventId}"; } else if (factor.Key == 927 || factor.Key == 937 || factor.Key == 1845) { stake.StakeType = StakeType.Fora1; stake.ParametrO = $"event{eventId}hand1odds,{factor.Key},{eventId}"; } else if (factor.Key == 2427 || factor.Key == 2433 || factor.Key == 2436) { if (factor.Key == 2427 && bet.SportType == SportType.Волейбол) { continue; } stake.StakeType = StakeType.Fora1; stake.ParametrO = $"{eventId}f{factor.Value.F},{factor.Key},{eventId}"; } else if (factor.Key == 928 || factor.Key == 938 || factor.Key == 1846) { stake.StakeType = StakeType.Fora2; stake.ParametrO = $"event{eventId}hand2odds,{factor.Key},{eventId}"; } else if (factor.Key == 2428 || factor.Key == 2434 || factor.Key == 2437) { if (factor.Key == 2428 && bet.SportType == SportType.Волейбол) { continue; } stake.StakeType = StakeType.Fora2; stake.ParametrO = $"{eventId}f{factor.Value.F},{factor.Key},{eventId}"; } else if (factor.Key == 974 || factor.Key == 1809 || factor.Key == 1812 || factor.Key == 1815) { stake.StakeType = StakeType.ITmax; stake.Team = ETeam.Team1; stake.ParametrO = $"{eventId}f{factor.Value.F},{factor.Key},{eventId}"; } else if (factor.Key == 976 || factor.Key == 1810 || factor.Key == 1813 || factor.Key == 1816) { stake.StakeType = StakeType.ITmin; stake.Team = ETeam.Team1; stake.ParametrO = $"{eventId}f{factor.Value.F},{factor.Key},{eventId}"; } else if (factor.Key == 978 || factor.Key == 1854 || factor.Key == 1873 || factor.Key == 1880) { stake.StakeType = StakeType.ITmax; stake.Team = ETeam.Team2; stake.ParametrO = $"{eventId}f{factor.Value.F},{factor.Key},{eventId}"; } else if (factor.Key == 980 || factor.Key == 1871 || factor.Key == 1874 || factor.Key == 1881) { stake.StakeType = StakeType.ITmin; stake.Team = ETeam.Team2; stake.ParametrO = $"{eventId}f{factor.Value.F},{factor.Key},{eventId}"; } else { continue; } stake.Coef = factor.Value.V; if (!String.IsNullOrWhiteSpace(factor.Value.Pt)) { stake.Parametr = Convert.ToSingle(factor.Value.Pt.Replace(".", ",")); } if (stake.StakeType == StakeType.Fora1 || stake.StakeType == StakeType.Fora2) { bet.Foras.Add(stake); } else if (stake.StakeType == StakeType.Tmax || stake.StakeType == StakeType.Tmin) { bet.Totals.Add(stake); } else if (stake.StakeType == StakeType.ITmax || stake.StakeType == StakeType.ITmin) { bet.ITotals.Add(stake); } } return(bet); }
public override double StakeVariance(Stake stake, double stakechance) { return(stakechance * 0.50); }
public virtual double StakeVariance(Stake stake, double stakechance) { return(stakechance); }
public static void BuildNewBlock() { // get transaction from pool var trxPool = Transaction.GetPool(); //// get last block to get prev hash and last height var lastBlock = GetLastBlock(); var height = lastBlock.Height + 1; var timestamp = Utils.GetTime(); var prevHash = lastBlock.Hash; var validator = Stake.GetValidator(); var transactions = new List <Transaction>(); // JsonConvert.SerializeObject(new List<Transaction>()); // validator will get coin reward from genesis account // to keep total coin in Blockchain not changed var conbaseTrx = new Transaction { Amount = 0, Recipient = "UKC_QPQY9wHP0jxi/0c/YRlch2Uk5ur/T8lcOaawqyoe66o=", Fee = COINT_REWARD, TimeStamp = timestamp, Sender = "UKC_rcyChuW7cQcIVoKi1LfSXKfCxZBHysTwyPm88ZsN0BM=" }; if (trxPool.Count() > 0) { //Get all tx from pool conbaseTrx.Recipient = validator; conbaseTrx.Amount = GetTotalFees(trxPool.FindAll().ToList()); conbaseTrx.Build(); transactions.Add(conbaseTrx); transactions.AddRange(trxPool.FindAll()); // clear mempool trxPool.DeleteAll(); } else { conbaseTrx.Build(); transactions.Add(conbaseTrx); } var block = new Block { Height = height, TimeStamp = timestamp, PrevHash = prevHash, Transactions = transactions, Validator = validator }; block.Build(); AddBlock(block); PrintBlock(block); // move all record in trx pool to transactions table foreach (var trx in transactions) { Transaction.Add(trx); } }
void AddStake(string symbol, float num, float price) { Stake s = new Stake(); Purchase p = new Purchase(); p.NumShares = num; p.Price = price; s.Orders = new List<Purchase>(); s.Orders.Add(p); s.TotShares = p.NumShares; s.AvgPrice = p.Price; Shares.Add(symbol, s); }
public static void Report() { foreach (string folder in Directory.GetDirectories(GBCommon.DataFolder)) { GameType gameType = (GameType)Enum.Parse(typeof(GameType), folder.Remove(0, GBCommon.DataFolder.Length).TrimStart('\\')); DateTime continuationStartDate = GBCommon.ReadContinuationDate(GBCommon.ConstructReportContinuationFileName(gameType)); DateTime latest = continuationStartDate; var files = new DirectoryInfo(folder).GetFiles("*.json", SearchOption.TopDirectoryOnly).Where(file => file.LastWriteTime > continuationStartDate + TimeSpan.FromSeconds(1)); foreach (var file in files) { AveragedNonWeightedBetItemManager mgr = new AveragedNonWeightedBetItemManager(); mgr.Deserialize(file.FullName, OddsType.ThreeWay); if (mgr.CurrentBets.Count < 1) { throw new FileLoadException(string.Format("Record file {0} not valid", file.Name)); } BetItem firstBet = mgr.CurrentBets[0]; Stake bestStake = mgr.BestStake(firstBet.GameName, firstBet.GameType, firstBet.Odds.Type); string output = bestStake.ROI.ToString("p2") + " " + bestStake.BetItem.MatchDate.ToShortDateString() + " " + bestStake.BetItem.Teams[0].Name + " " + bestStake.BetItem.Teams[1].Name + " " + bestStake.BetItem.BookMaker.Replace(' ', '_') + " " + bestStake.BetItem.Odds.Type.ToString() + " " + bestStake.Decision; GBCommon.Report(output, gameType); if (file.LastWriteTime > latest) { latest = file.LastWriteTime; } // If the game stake exists, delete the old one var deleteStakeResponse = GBCommon.SendRequest( "{\"BetItem.GameName\": \"" + bestStake.BetItem.GameName + "\"}", ConfigurationManager.AppSettings["datastore"], ConfigurationManager.AppSettings["apikey"], ConfigurationManager.AppSettings["passwd"], "application/json", "DELETE" ); using (StreamReader streamReader = new StreamReader(deleteStakeResponse.GetResponseStream())) { var text = streamReader.ReadToEnd(); Console.WriteLine(text); } // Add the new stake var addStakeResponse = GBCommon.SendRequest( JsonConvert.SerializeObject(bestStake), ConfigurationManager.AppSettings["datastore"], ConfigurationManager.AppSettings["apikey"], ConfigurationManager.AppSettings["passwd"], "application/json", "PUT" ); using (StreamReader streamReader = new StreamReader(addStakeResponse.GetResponseStream())) { var text = streamReader.ReadToEnd(); Console.WriteLine(text); } } if (latest > continuationStartDate) { GBCommon.WriteContinuationDate(GBCommon.ConstructReportContinuationFileName(gameType), latest); } } GBCommon.LogInfo("Reporting Completed."); }
public void CreateStakeTest() { var item = new Stake(SR.I1000, StakeType.Unit); Assert.IsNotNull(item); }
public eServiceStatus Start(eScanType scanType) { CompareValueDifferent = ProcessorConfigInfo.CompareValue; //CompareValueDifferent = ProcessorConfigInfo.CompareValue + 0.005; ScanType = scanType; CountBet = 1; MaxCountBet = ProcessorConfigInfo.MaxCountBet; LastBetTime = DateTime.Now.AddMinutes(-10); BetStakeType = ProcessorConfigInfo.BetStakeType; Stake = ProcessorConfigInfo.BetStake; BetStake = new List <int>(); var stak = Stake.Split(new[] { '#' }); foreach (var s in stak) { if (!string.IsNullOrEmpty(s)) { int stake; int.TryParse(s, out stake); if (stake != 0) { //Logger.Info("STAKE " + stake); BetStake.Add(stake); } } } BetStake.Shuffle(); TimeOffStakeOdds = ProcessorConfigInfo.TimeOffStakeOdds; MinOddDefBet = ProcessorConfigInfo.MinOddDefBet; MinTimeToBet = ProcessorConfigInfo.MinTimeToBet; BetAgainstIbet = ProcessorConfigInfo.RebetIbet; AcceptMinLossIbet = ProcessorConfigInfo.AcceptMinLossIbet; if (ProcessorConfigInfo.AccountFirst.ServerType == eServerType.Pina) { IbetMaxStakeMatch = ProcessorConfigInfo.AccountFirst.MaxStake; IbetRateExchange = ProcessorConfigInfo.AccountFirst.RateExchange; SboMaxStakeMatch = ProcessorConfigInfo.AccountSecond.MaxStake; SboRateExchange = ProcessorConfigInfo.AccountSecond.RateExchange; } else { IbetMaxStakeMatch = ProcessorConfigInfo.AccountSecond.MaxStake; IbetRateExchange = ProcessorConfigInfo.AccountSecond.RateExchange; SboMaxStakeMatch = ProcessorConfigInfo.AccountFirst.MaxStake; SboRateExchange = ProcessorConfigInfo.AccountFirst.RateExchange; } try { Initialize(); ProcessorName = PiEngine.UserName + " - " + IsnEngine.UserName; IsnEngine.EngineName = ProcessorName; IsnEngine.Rebet = ProcessorConfigInfo.RebetSbo; IsnEngine.UpdateAvailabeCredit(); IsnEngine.StartScanEngine(scanType); PiEngine.Rebet = ProcessorConfigInfo.RebetSbo; PiEngine.EngineName = ProcessorName; PiEngine.UpdateAvailabeCredit(); PiEngine.StartScanEngine(scanType); objUpdateCreditTimer = new Timer(WaitUpdateCreditCallback, null, 60000 * 5, 60000 * 5); StartFailCount = 0; IsnEngine.UpdateLiveDataChange += OnIsnUpdateScan; //tạm đóng //PiSboDriver.OnSboScanUpdate += PiSboDriver_OnSboScanUpdate; //_driver.OnSboScanUpdate += OnSboUpdateScan; FireProcessStateChange(eServiceStatus.Started, ProcessorName); Status = eServiceStatus.Started; } catch (Exception ex) { Logger.Error("Start Processor Fail !", ex); StartFailCount++; PiEngine.Dispose(); IsnEngine.Dispose(); Status = eServiceStatus.Unknown; } return(Status); }
public static void BuildNewBlock() { // start build time var startTimer = DateTime.UtcNow; // get transaction from pool var trxPool = Transaction.GetPool(); //// get last block to get prev hash and last height var lastBlock = GetLastBlock(); var height = lastBlock.Height + 1; var timestamp = Utils.GetTime(); var prevHash = lastBlock.Hash; var validator = Stake.GetValidator(); var transactions = new List <Transaction>(); // JsonConvert.SerializeObject(new List<Transaction>()); // validator will get coin reward from genesis account // to keep total coin in Blockchain not changed var conbaseTrx = new Transaction { Amount = 0, // Recipient = "UKC_QPQY9wHP0jxi/0c/YRlch2Uk5ur/T8lcOaawqyoe66o=", Recipient = "UkcDrMshfqdHrfckb2SLoSCoG8Lp6MBdrkZ2T83FivTpWC8", Fee = COINT_REWARD, TimeStamp = timestamp, // Sender = "UKC_rcyChuW7cQcIVoKi1LfSXKfCxZBHysTwyPm88ZsN0BM=" Sender = "UkcDEfU9gGnm9tGjmFtXRjirf2LuohU5CzjWunEkPNbUcFW", }; if (trxPool.Count() > 0) { //Get all tx from pool conbaseTrx.Recipient = validator; //sum all fees and give block creator as reward conbaseTrx.Amount = GetTotalFees(trxPool); conbaseTrx.Build(); // add coinbase trx to list transactions.Add(conbaseTrx); transactions.AddRange(trxPool); // clear mempool Transaction.DeletePool(); } else { conbaseTrx.Build(); transactions.Add(conbaseTrx); } var block = new Block { Height = height, TimeStamp = timestamp, PrevHash = prevHash, Transactions = GiveOtherInfos(transactions, height), Validator = validator }; block.Build(); //block size var str = System.Text.Json.JsonSerializer.Serialize(block); block.Size = str.Length; // get build time var endTimer = DateTime.UtcNow; var buildTime = endTimer - startTimer; block.BuildTime = buildTime.Milliseconds; // end of // update balance var txns = block.Transactions; AccountServiceImpl.UpdateAccountBalance(txns); AddBlock(block); PrintBlock(block); // move all record in trx pool to transactions table foreach (var trx in transactions) { Transaction.Add(trx); } }
public Table(Stake stk) { _stk = stk; }
public void CreateStakeWrongIdTest() { var item = new Stake(0, StakeType.Unit); Assert.IsNotNull(item); }
public void Value_ReturnsCorrectly() { var stake = new Stake(StakeValue); Assert.Equal(StakeValue, stake.Value, DecimalPrecision); }