public void ComputeHash(bool useScrypt)
{
MemoryStream ms = new MemoryStream();
BinaryWriter bw = new BinaryWriter(ms);
bw.Write(mVersion);
bw.Write(mPrevBlock);
bw.Write(mMerkleRoot);
bw.Write(mTimestamp);
bw.Write(mDifficultyBits);
bw.Write(mNOnce);
byte[] data = ms.ToArray();
bw.Close();
if (useScrypt)
{
MinerLib_cs.Work work = new MinerLib_cs.Work();
Buffer.BlockCopy(data, 0, work.data, 0, 80);
for (int i = 0; i < 20; i++)
{
work.data[i] = Utils.Byteswap(work.data[i]);
}
MinerLib_cs.Scrypt scrypt = new MinerLib_cs.Scrypt(work);
mHash = scrypt.GetHash();
}
else
{
// SHA 256
mHash = Utils.GenerateHash(data);
}
}