public static ChainedHeader CreateForGenesisBlock(BlockHeader genesisBlockHeader) { return new ChainedHeader ( blockHeader: genesisBlockHeader, height: 0, totalWork: genesisBlockHeader.CalculateWork() ); }
public static ChainedHeader CreateFromPrev(ChainedHeader prevChainedHeader, BlockHeader blockHeader, DateTimeOffset dateSeen) { var headerWork = blockHeader.CalculateWork(); return new ChainedHeader(blockHeader, prevChainedHeader.Height + 1, prevChainedHeader.TotalWork + headerWork.ToBigInteger(), dateSeen); }
public static ChainedHeader CreateForGenesisBlock(BlockHeader genesisBlockHeader) { return(new ChainedHeader ( blockHeader: genesisBlockHeader, height: 0, totalWork: genesisBlockHeader.CalculateWork() )); }
public static ChainedHeader CreateFromPrev(ChainedHeader prevChainedHeader, BlockHeader blockHeader, DateTimeOffset dateSeen) { var headerWork = blockHeader.CalculateWork(); return(new ChainedHeader(blockHeader, prevChainedHeader.Height + 1, prevChainedHeader.TotalWork + headerWork.ToBigInteger(), dateSeen)); }
public static ChainedHeader CreateForGenesisBlock(BlockHeader genesisBlockHeader) { return new ChainedHeader ( blockHeader: genesisBlockHeader, height: 0, totalWork: genesisBlockHeader.CalculateWork().ToBigInteger(), dateSeen: DateTimeOffset.MinValue ); }
public static ChainedHeader CreateFromPrev(ChainedHeader prevChainedHeader, BlockHeader blockHeader) { var headerWork = blockHeader.CalculateWork(); if (headerWork < 0) return null; return new ChainedHeader(blockHeader, prevChainedHeader.Height + 1, prevChainedHeader.TotalWork + headerWork); }
public static ChainedHeader CreateForGenesisBlock(BlockHeader genesisBlockHeader) { return(new ChainedHeader ( blockHeader: genesisBlockHeader, height: 0, totalWork: genesisBlockHeader.CalculateWork().ToBigInteger(), dateSeen: DateTimeOffset.MinValue )); }
public ChainedHeader GenesisChained() { if (this.blockHeaders.Count > 0) throw new InvalidOperationException(); var blockHeader = new BlockHeader(0, UInt256.Zero, UInt256.Zero, 0, this.bits, this.nonce); this.totalWork = blockHeader.CalculateWork(); var chainedHeader = new ChainedHeader(blockHeader, 0, this.totalWork); this.blockHeaders.Add(chainedHeader); return chainedHeader; }
public ChainedHeader NextChained(UInt32? bits = null) { if (this.blockHeaders.Count == 0) throw new InvalidOperationException(); var prevBlockHeader = this.blockHeaders.Last(); var blockHeader = new BlockHeader(0, prevBlockHeader.Hash, UInt256.Zero, 0, bits ?? this.bits, this.nonce); this.totalWork += blockHeader.CalculateWork(); var chainedHeader = new ChainedHeader(blockHeader, this.blockHeaders.Count, this.totalWork); this.blockHeaders.Add(chainedHeader); return chainedHeader; }