コード例 #1
0
ファイル: BlockData.cs プロジェクト: Rajbandi/HashProof
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: BlockData.cs プロジェクト: Rajbandi/HashProof
        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);
        }