private void timer1_Tick(object sender, EventArgs e)
{
// Update block info
if (mTheMan != null && mTheMan.mBlock != null)
{
lblMidstate.Text = "0x" + mTheMan.mBlock.strMidstate;
lblData.Text = "0x" + mTheMan.mBlock.strData;
lblHash1.Text = "0x" + mTheMan.mBlock.strHash1;
lblTarget.Text = "0x" + mTheMan.mBlock.strTarget;
}
groupBox1.Text = mTheMan.mMiningTarget.mName;
lblSubmitted.Text = "Submitted: " + mTheMan.mBlocksSubmitted.ToString();
lblAccepted.Text = "Accepted: " + mTheMan.mBlocksAccepted.ToString();
lblClients.Text = "Clients: " + mTheMan.mClients.Count;
if (mTheMan.mBlock != null)
{
float percent = ((float)mTheMan.mBlock.mHashMan.mHashesDone / (float)mTheMan.mBlock.mHashMan.mHashesTotal) * 100;
progressBar1.Value = (int)percent;
lblProgress.Text = String.Format("{0:N0} / {1:N0} ({2}%)", mTheMan.mBlock.mHashMan.mHashesDone, mTheMan.mBlock.mHashMan.mHashesTotal, percent);
double hashesPerSecond = mTheMan.mHashrate;
uint hashesRemaining = mTheMan.mBlock.mHashMan.mHashesTotal - mTheMan.mBlock.mHashMan.mHashesDone;
double secondsRemaining = (double)hashesRemaining / hashesPerSecond;
int hoursRemaining = (int)(secondsRemaining / 3600);
secondsRemaining -= (hoursRemaining * 3600);
int minutesRemaining = (int)(secondsRemaining / 60);
secondsRemaining -= (minutesRemaining * 60);
lblHashrate.Text = String.Format("Hashrate: {0:N0} / second. Hashes per client(avg): {1:N0}", (ulong)hashesPerSecond, (ulong)(hashesPerSecond / mTheMan.mClients.Count));
}
}