\feffusing System;
+using System.Linq;
using System.Text;
using System.Collections.Generic;
{
}
+ public CBlockHeader(CBlockHeader h)
+ {
+ nVersion = h.nVersion;
+ prevHash = new Hash256(h.prevHash);
+ merkleRoot = new Hash256(h.merkleRoot);
+ nTime = h.nTime;
+ nBits = h.nBits;
+ nNonce = h.nNonce;
+ }
+
+ public CBlockHeader(byte[] bytes)
+ {
+ nVersion = BitConverter.ToUInt32(bytes, 0);
+ prevHash = new Hash256(bytes, 4);
+ merkleRoot = new Hash256(bytes, 36);
+ nTime = BitConverter.ToUInt32(bytes, 68);
+ nBits = BitConverter.ToUInt32(bytes, 72);
+ nNonce = BitConverter.ToUInt32(bytes, 76);
+ }
+
/// <summary>
/// Convert current block header instance into sequence of bytes
/// </summary>
/// <returns>Byte sequence</returns>
- public IList<byte> ToBytes()
+ public IList<byte> Bytes
{
- List<byte> r = new List<byte>();
+ get
+ {
+ List<byte> r = new List<byte>();
- r.AddRange(BitConverter.GetBytes(nVersion));
- r.AddRange(prevHash.hashBytes);
- r.AddRange(merkleRoot.hashBytes);
- r.AddRange(BitConverter.GetBytes(nTime));
- r.AddRange(BitConverter.GetBytes(nBits));
- r.AddRange(BitConverter.GetBytes(nNonce));
+ r.AddRange(BitConverter.GetBytes(nVersion));
+ r.AddRange(prevHash.hashBytes);
+ r.AddRange(merkleRoot.hashBytes);
+ r.AddRange(BitConverter.GetBytes(nTime));
+ r.AddRange(BitConverter.GetBytes(nBits));
+ r.AddRange(BitConverter.GetBytes(nNonce));
- return r;
+ return r;
+ }
}
public override string ToString()