public static BlockData Parse(Block block, ChainedBlock chainedBlock = null) { var blockData = new BlockData { Hash = block.GetHash().ToString() }; if (chainedBlock != null) { blockData.Height = chainedBlock.Height; blockData.ChainWork = chainedBlock.ChainWork.ToString(); } blockData.IsProofOfStake = block.IsProofOfStake(); blockData.IsProofOfWork = block.IsProofOfWork(); blockData.StakeEntropyBit = block.GetStakeEntropyBit(); //Header blockData.Header = BlockHeaderData.Parse(block.Header); //Transactions var transactions = new List <TransactionData>(); foreach (var tx in block.Transactions) { transactions.Add(TransactionData.Parse(tx)); } blockData.Transactions = transactions; blockData.Signature = block.BlockSignatur.ToString(); return(blockData); }
public static ChainedBlockData Parse(ChainedBlock block) { var chainedBlock = new ChainedBlockData { Hash = block.HashBlock.ToString(), ChainWork = block.ChainWork.ToString(), Height = block.Height, Previous = block.Previous.HashBlock.ToString(), Header = BlockHeaderData.Parse(block.Header) }; return(chainedBlock); }
public static BlockHeaderData Parse(BlockHeader header) { var headerData = new BlockHeaderData { PowHash = header.GetPoWHash().ToString(), Version = header.Version, Bits = header.Bits.ToUInt256().ToString(), Difficulty = header.Bits.Difficulty, BlockTime = header.BlockTime.ToUnixTimeSeconds(), MerkleRoot = header.HashMerkleRoot.ToString(), HashPrevBlock = header.HashPrevBlock.ToString(), Nonce = header.Nonce, Time = header.Time, PosData = BlockPosData.Parse(header.PosParameters) }; return(headerData); }