示例#1
0
        public void VerifyProofListTest()
        {
            MerkleTree tree = new MerkleTree();

            tree.AddLeaves(CreateLeaves(new string[] { "a", "e", "l", "f" }));
            tree.GenerateMerkleTree();

            #region Proof List
            //Proof List: hash(a), hash(e), hash(hash(l), hash(f))
            var hash_a = new MerkleHash("a");

            var hash_e = new MerkleHash("e");

            var hash_l   = new MerkleHash("l");
            var hash_f   = new MerkleHash("f");
            var hash_l_f = new MerkleHash(hash_l, hash_f);
            #endregion

            List <MerkleHash> prooflist = new List <MerkleHash>();
            prooflist.Add(hash_a);
            prooflist.Add(hash_e);
            prooflist.Add(hash_l_f);

            Assert.True(tree.VerifyProofList(prooflist));
        }
示例#2
0
        public void GenerateTreeWithEvenLeaves()
        {
            MerkleTree tree = new MerkleTree();

            tree.AddLeaves(CreateLeaves(new string[] { "a", "e", "l", "f" }));
            tree.GenerateMerkleTree();
            Assert.NotNull(tree.MerkleRoot);
        }
示例#3
0
        public void ProofListTest()
        {
            MerkleTree tree = new MerkleTree();

            tree.AddLeaves(CreateLeaves(new string[] { "a", "e", "l", "f", "2", "0", "1", "8" }));
            tree.GenerateMerkleTree();

            MerkleHash target    = new MerkleHash("e");
            var        prooflist = tree.GetProofList(target);

            Assert.True(prooflist[0].Hash.ToString() == new MerkleHash("a").ToString());
            Assert.True(prooflist[prooflist.Count - 1].Hash.ToString() == tree.MerkleRoot.Hash.ToString());
        }