public void UpDateMinerState() { try { if (this.InvokeRequired) { this.BeginInvoke(new Action(UpDateMinerState), new object[] { }); } else { foreach (Control item in pnlMiner.Controls) { MinerView minerView = item as MinerView; if (minerView != null) { minerView.UpdateState(); } //Todo: this seems to be a duplicate call as timer invokes this separately. analyze MinerInfo.UpdateState(); } } } catch (Exception e) { Logger.Instance.LogError("Error while updating minerstate" + e.Message); } }
public async Task <bool> AddMiningPool(MinerView minerview) { try { if (minerview == null || minerview.Link == null || minerview.Pooltype == null) { return(false); } if (!CheckPoolType(minerview.Link, minerview.Pooltype)) { return(false); } var miners = _dbcontext.Miner; // from s in _context.Miner select s; var miner = new Miner(); miner.Username = minerview.Username; miner.Minertype = minerview.Minertype; miner.Location = minerview.Location; miner.Link = minerview.Link; miner.Total = minerview.Total; miner.Unit = minerview.Unit; miner.Pooltype = minerview.Pooltype; miner.Standardcalculation = minerview.Standardcalculation; miner.Updatedate = DateTime.Now; await miners.AddAsync(miner); await _dbcontext.SaveChangesAsync(); return(true); } catch (Exception ex) { throw ex; } }
public void UpdateMinerList() { List <IMiner> miners = Factory.Instance.CoreObject.Miners; pnlMiner.Controls.Clear(); foreach (IMiner item in miners) { MinerView view = new MinerView(item, this); view.TopLevel = false; pnlMiner.Controls.Add(view); view.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; view.UpdateState(); //view.Dock = DockStyle.Fill; view.Show(); if (Factory.Instance.CoreObject.SelectedMiner == item) { view.ActivateView();//makes it default. the tick mark //view.SelectView();//marks it as selected //ShowMiningInfo(item); //this.MinerView = view; SelectMiningView(view); } } ShowSettingsCarausal(); }
public async Task <bool> ModifyMiningPool(int poolid, MinerView minerview) { try { return(await _minerservice.ModifyMiningPool(poolid, minerview)); } catch (Exception ex) { throw ex; } }
public async Task <bool> AddMiningPool(MinerView minerview) { try { return(await _minerservice.AddMiningPool(minerview)); } catch (Exception ex) { throw ex; } }
public void ActivateMiningView(MinerView view) { foreach (MinerView item in pnlMiner.Controls) { if (item == view) { item.ActivateView(); } else { item.DeActivateView(); } } }
public void ChangeMiningView(MinerView view) { foreach (MinerView item in pnlMiner.Controls) { if (item == view) { SelectMiningView(view); } else { item.DeSelectView(); } } }
KrateApplication() { Application.Init(); this.mainWindow = generateMainWindow(Application.Top); this.navigationMenu = new MenuBar(new MenuBarItem[] { new MenuBarItem("_File", new MenuItem [] { new MenuItem("_Quit", "", () => { Application.Top.Running = false; }), }), new MenuBarItem("Views", new MenuItem [] { new MenuItem("Dashboard", "", () => { var subView = this.mainWindow.Subviews[0]; subView.RemoveAll(); var dashboardView = DashboardView.generateWindow(this.mainWindow); this.mainWindow.Add(dashboardView); dashboardView.FocusFirst(); dashboardView.LayoutSubviews(); }), new MenuItem("Miner", "", () => { var subView = this.mainWindow.Subviews[0]; subView.RemoveAll(); var minerView = MinerView.generateWindow(this.mainWindow); this.mainWindow.Add(minerView); minerView.FocusFirst(); minerView.LayoutSubviews(); }), new MenuItem("Send Krates", "", () => { var subView = this.mainWindow.Subviews[0]; subView.RemoveAll(); var costView = SendView.generateWindow(this.mainWindow); this.mainWindow.Add(costView); costView.FocusFirst(); costView.LayoutSubviews(); }), new MenuItem("All Transactions", "", () => { var subView = this.mainWindow.Subviews[0]; subView.RemoveAll(); var transactionsView = TransactionsView.generateWindow(this.mainWindow); this.mainWindow.Add(transactionsView); transactionsView.FocusFirst(); transactionsView.LayoutSubviews(); }) }) }); }
public MinerView GetMinerTop(long minerIndex, long minerColumn) { minerColumn = Math.Min(minerColumn, 100); var minerView = new MinerView(); if (httpPool != null) { Dictionary <string, MinerTask> miners = httpPool.GetMinerRewardMin(out long miningHeight); if (miners != null) { var minerList = miners.Values.OrderByDescending((x) => { double.TryParse(x.power_average, out double power_average); return(power_average); }).ToList(); for (var ii = 0; ii < minerColumn; ii++) { if ((minerIndex + ii) >= minerList.Count) { break; } var miner = minerList[(int)minerIndex + ii]; if (string.IsNullOrEmpty(miner.power_cur)) { miner.power_cur = CalculatePower.GetPowerCompany(CalculatePower.Power(miner.diff)); } var minerdata = new MinerViewData(); minerdata.number = $"{miner.address}_{ miner.number}"; minerdata.lasttime = miner.time; minerdata.power_cur = miner.power_cur; double.TryParse(miner.power_average, out double power_average); minerdata.power_average = CalculatePower.GetPowerCompany(power_average); minerView.miners.Add(minerdata); } } } return(minerView); }
public async Task <bool> ModifyMiningPool(int poolid, MinerView minerview) { try { if (minerview == null || minerview.Link == null || minerview.Pooltype == null) { return(false); } var miner = await _dbcontext.Miner.Where(x => x.Id == poolid).FirstOrDefaultAsync(); if (miner == null) { return(false); } if (!CheckPoolType(minerview.Link, minerview.Pooltype)) { return(false); } miner.Username = minerview.Username; miner.Minertype = minerview.Minertype; miner.Location = minerview.Location; miner.Link = minerview.Link; miner.Total = minerview.Total; miner.Unit = minerview.Unit; miner.Pooltype = minerview.Pooltype; miner.Standardcalculation = minerview.Standardcalculation; miner.Updatedate = DateTime.Now; _dbcontext.Entry(miner).State = EntityState.Modified; await _dbcontext.SaveChangesAsync(); return(true); } catch (Exception ex) { throw ex; } }
public void SelectMiningView(MinerView view) { view.SelectView(); this.MinerView = view; ShowMiningInfo(view.Miner); }
public MinerView GetMinerViewAbstract(string address) { if (minerViewAbstractTimePass.IsPassSet()) { minerViewAbstractCache.Clear(); } if (minerViewAbstractCache.TryGetValue(address, out MinerView minerViewLast)) { return(minerViewLast); } var minerView = new MinerView(); // pool name var httpPoolRelay = Entity.Root.GetComponent <HttpPoolRelay>(); if (httpPoolRelay != null) { minerView.address = httpPoolRelay.number; } else { minerView.address = "Ruler"; } Dictionary <string, BlockSub> minerTransferCache = null; using (DbSnapshot snapshot = PoolDBStore.GetSnapshot()) { var str = snapshot.Get($"Pool_Cache_MinerReward"); if (!string.IsNullOrEmpty(str)) { minerTransferCache = JsonHelper.FromJson <Dictionary <string, BlockSub> >(str); } } var transfers_cur = minerTransferCache?.Values.FirstOrDefault(c => c.addressOut == address); if (transfers_cur != null) { minerView.amount_cur = transfers_cur.amount; minerView.share = transfers_cur.type; } // 当前总算力 var miners = httpPool.GetMinerRewardMin(out long miningHeight); var minerList = miners?.Values.Where((x) => x.address == address).ToList(); double totalPower = 0L; if (minerList != null) { minerList.Sort((MinerTask a, MinerTask b) => { return(a.number.CompareTo(b.number)); }); for (var ii = 0; ii < minerList.Count; ii++) { var miner = minerList[ii]; if (double.TryParse(miner.power_average, out double power_average)) { totalPower += power_average; } } minerView.totalMiners = minerList.Count; } minerView.totalPower = CalculatePower.GetPowerCompany(totalPower); minerViewAbstractCache.Add(address, minerView); return(minerView); }
public MinerView GetMinerView(string address, long transferIndex, long transferColumn, long minerIndex, long minerColumn) { if (getMinerViewTimePass.IsPassSet()) { getMinerViewCache.Clear(); } if (getMinerViewCache.TryGetValue($"{address}_{transferIndex}_{transferColumn}_{minerIndex}_{minerColumn}", out MinerView minerViewLast)) { return(minerViewLast); } transferColumn = Math.Min(transferColumn, 100); minerColumn = Math.Min(minerColumn, 100); var minerView = new MinerView(); minerView.address = address; Dictionary <string, BlockSub> minerTransferCache = null; using (DbSnapshot snapshot = PoolDBStore.GetSnapshot()) { var str = snapshot.Get($"Pool_Cache_MinerReward"); if (!string.IsNullOrEmpty(str)) { minerTransferCache = JsonHelper.FromJson <Dictionary <string, BlockSub> >(str); } } var transfers_cur = minerTransferCache?.Values.FirstOrDefault(c => c.addressOut == address); if (transfers_cur != null) { minerView.amount_cur = transfers_cur.amount; minerView.share = transfers_cur.type; } // 交易确认 using (DbSnapshot snapshot = PoolDBStore.GetSnapshot()) { int TopIndex = snapshot.Queue.GetTopIndex($"Pool_MT_{address}"); for (int ii = 1; ii <= (int)transferColumn; ii++) { var value = snapshot.Queue.Get($"Pool_MT_{address}", TopIndex - (int)transferIndex - ii); if (!string.IsNullOrEmpty(value)) { var transfer = JsonHelper.FromJson <BlockSub>(value); if (transfer != null) { minerView.transfers.Add(transfer); } } } foreach (var transfer in minerView.transfers) { // 节点使用自己的地址挖矿 if (transfer.addressIn == transfer.addressOut) { transfer.hash = transfer.addressIn; } else { transfer.hash = TransferProcess.GetMinerTansfer(snapshot, transfer.data); } } } var miners = httpPool.GetMinerRewardMin(out long miningHeight); var minerList = miners?.Values.Where((x) => x.address == address).ToList(); double totalPower = 0L; if (minerList != null) { minerList.Sort((MinerTask a, MinerTask b) => { return(a.number.CompareTo(b.number)); }); // 当前页矿机算力 for (var ii = 0; ii < minerColumn; ii++) { if ((minerIndex + ii) >= minerList.Count) { break; } var miner = minerList[(int)minerIndex + ii]; if (string.IsNullOrEmpty(miner.power_cur)) { miner.power_cur = CalculatePower.GetPowerCompany(CalculatePower.Power(miner.diff)); } var minerdata = new MinerViewData(); minerdata.number = miner.number; minerdata.lasttime = miner.time; minerdata.power_cur = miner.power_cur; double.TryParse(miner.power_average, out double power_average); minerdata.power_average = CalculatePower.GetPowerCompany(power_average); minerView.miners.Add(minerdata); } // 当前总算力 for (var ii = 0; ii < minerList.Count; ii++) { var miner = minerList[ii]; if (double.TryParse(miner.power_average, out double power_average)) { totalPower += power_average; } } minerView.totalMiners = minerList.Count; } minerView.totalPower = CalculatePower.GetPowerCompany(totalPower); getMinerViewCache.Add($"{address}_{transferIndex}_{transferColumn}_{minerIndex}_{minerColumn}", minerView); return(minerView); }
public MinerView GetMinerView(string address, long transferIndex, long transferColumn, long minerIndex, long minerColumn) { transferColumn = Math.Min(transferColumn, 100); minerColumn = Math.Min(minerColumn, 100); var minerView = new MinerView(); minerView.address = address; var transfers_cur = MinerReward_PPLNS(false)?.Values.FirstOrDefault(c => c.addressOut == address); if (transfers_cur != null) { minerView.amount_cur = transfers_cur.amount; } using (DbSnapshot snapshot = PoolDBStore.GetSnapshot()) { int TopIndex = snapshot.Queue.GetTopIndex($"Pool_MT_{address}"); for (int ii = 1; ii <= (int)transferColumn; ii++) { var value = snapshot.Queue.Get($"Pool_MT_{address}", TopIndex - (int)transferIndex - ii); if (!string.IsNullOrEmpty(value)) { var transfer = JsonHelper.FromJson <BlockSub>(value); if (transfer != null) { minerView.transfers.Add(transfer); } } } foreach (var transfer in minerView.transfers) { // 节点使用自己的地址挖矿 if (transfer.addressIn == transfer.addressOut) { transfer.hash = transfer.addressIn; } else { transfer.hash = transferProcess.GetMinerTansfer(snapshot, transfer.data); } } } var miners = httpPool.GetMinerReward(out long miningHeight); var minerList = miners?.Values.Where((x) => x.address == address).ToList(); double totalPower = 0L; if (minerList != null) { minerList.Sort((MinerTask a, MinerTask b) => { return(a.number.CompareTo(b.number)); }); for (var ii = 0; ii < minerColumn; ii++) { if ((minerIndex + ii) >= minerList.Count) { break; } var miner = minerList[(int)minerIndex + ii]; if (string.IsNullOrEmpty(miner.power_cur)) { miner.power_cur = CalculatePower.GetPowerCompany(CalculatePower.Power(miner.diff)); } var minerdata = new MinerViewData(); minerdata.number = miner.number; minerdata.lasttime = miner.time; minerdata.power_cur = miner.power_cur; double.TryParse(miner.power_average, out double power_average); minerdata.power_average = CalculatePower.GetPowerCompany(power_average); minerView.miners.Add(minerdata); totalPower += power_average; } minerView.totalMiners = minerList.Count; } minerView.totalPower = CalculatePower.GetPowerCompany(totalPower); return(minerView); }
public void Init(IPhysicItem pysicItem, IView view) { this.pysicItem = pysicItem; this.view = (MinerView)view; }
public MinerView GetMinerView(string address, long transferIndex, long transferColumn, long minerIndex, long minerColumn) { var minerView = new MinerView(); minerView.address = address; var transfers_cur = MinerReward_PPLNS(false)?.Values.FirstOrDefault(c => c.addressOut == address); if (transfers_cur != null) { minerView.amount_cur = transfers_cur.amount; } long counted = 0; using (DbSnapshot snapshot = PoolDBStore.GetSnapshot()) { string str_Counted = snapshot.Get("Pool_Counted"); if (long.TryParse(str_Counted, out counted)) { counted = counted - transferIndex; for (int i = 0; i < transferColumn; i++) { string str_MT = snapshot.Get($"Pool_MT_{counted-i}"); Dictionary <string, BlockSub> minerTransfer = null; if (!string.IsNullOrEmpty(str_MT)) { minerTransfer = JsonHelper.FromJson <Dictionary <string, BlockSub> >(str_MT); if (minerTransfer != null) { var transfer = minerTransfer?.Values.FirstOrDefault(c => c.addressOut == address); if (transfer != null) { string str_MR = snapshot.Get($"Pool_MR_{counted - i}"); MinerRewardDB minerRewardLast = null; if (!string.IsNullOrEmpty(str_MR)) { minerRewardLast = JsonHelper.FromJson <MinerRewardDB>(str_MR); } long.TryParse(minerRewardLast.time, out long time); transfer.depend = new DateTime(time).ToString("yyyy-MM-dd HH:mm:ss"); minerView.transfers.Add(transfer); } } } } } } // Is the query successful using (var dbSnapshot = PoolDBStore.GetSnapshot(0)) { foreach (var transfer in minerView.transfers) { transfer.hash = transferProcess.GetMinerTansfer(dbSnapshot, transfer.data); } } var miners = httpPool.GetMinerReward(out long miningHeight); var minerList = miners?.Values.Where((x) => x.address == address).ToList(); double totalPower = 0L; if (minerList != null) { minerList.Sort((MinerTask a, MinerTask b) => { return(a.number.CompareTo(b.number)); }); for (var ii = 0; ii < minerColumn; ii++) { if ((minerIndex + ii) >= minerList.Count) { break; } var miner = minerList[(int)minerIndex + ii]; if (string.IsNullOrEmpty(miner.power_cur)) { miner.power_cur = CalculatePower.GetPowerCompany(CalculatePower.Power(miner.diff)); } var minerdata = new MinerViewData(); minerdata.number = miner.number; minerdata.lasttime = miner.time; minerdata.power_cur = miner.power_cur; double.TryParse(miner.power_average, out double power_average); minerdata.power_average = CalculatePower.GetPowerCompany(power_average); minerView.miners.Add(minerdata); totalPower += power_average; } minerView.totalMiners = minerList.Count; } minerView.totalPower = CalculatePower.GetPowerCompany(totalPower); return(minerView); }