internal StratumHeaderBuilder GetLatestBuilder(StratumHeaderBuilder oldBuilder) { var newJob = CurrentJob; if (newJob == null) return null; if (oldBuilder != null && oldBuilder.Job == newJob) return oldBuilder; var _extraNonce2 = new byte[ExtraNonce2Size]; RNG.GetBytes(_extraNonce2); var builder = new StratumHeaderBuilder(newJob, ExtraNonce1, _extraNonce2.ToHexString()); return builder; }
public void SubmitShare(StratumHeaderBuilder work, string nonce) { var submitShareMessage = SimpleJson.SimpleJson.SerializeObject( new { @params = new string[] { WorkerName, work.Job.JobId, work.ExtraNonce2, ReverseEndian(work.NTime.ToBytes().ToHexString()), nonce }, id = 4, method = "mining.submit" } ) + "\n"; lock (outgoingShares) { outgoingShares.Add(submitShareMessage); } }