Esempio n. 1
0
        public static string ToJson(this BlockChain blockChain)
        {
            blockChain.Verify(nameof(blockChain)).IsNotNull();
            blockChain.Blocks.Count.Verify(nameof(blockChain.Blocks.Count)).Assert <int, InvalidOperationException>(x => x > 1, "Empty block chain");

            var list = new List <BlockChainNodeModel>();

            foreach (BlockNode node in blockChain)
            {
                BlockChainNodeModel dataBlockNodeModel = node.ConvertTo();
                list.Add(dataBlockNodeModel);
            }

            var blockChainModel = new BlockChainModel()
            {
                Blocks = list,
            };

            return(JsonConvert.SerializeObject(blockChainModel));
        }
Esempio n. 2
0
 public static MerkleTree ToMerkleTree(this BlockChain blockChain)
 {
     return(new MerkleTree()
            .Append(blockChain.Select(x => x.Digest).ToArray()));
 }