def test_proof_single_false(self): tree = MerkleTree() tree.add_leaf('test', True) tree.make_tree() proof = tree.get_proof(1) self.assertFalse( tree.validate_proof(proof, sha256('test9'), tree.get_merkle_root()))
def test_proof_single_true(self): tree = MerkleTree() tree.add_leaf('test', True) tree.make_tree() proof = tree.get_proof(0) target = sha256('test') self.assertTrue( tree.validate_proof(proof, target, tree.get_merkle_root()))
def test_validate_bad_proof_2_leaves(self): tree = MerkleTree() tree.add_leaf(self.bLeft) tree.add_leaf(self.bRight) tree.make_tree() proof = tree.get_proof(1) isValid = tree.validate_proof( proof, self.bRight, 'a292780cc748697cb499fdcc8cb89d835609f11e502281dfe3f6690b1cc23dcb') self.assertFalse(isValid, 'proof should be invalid')
def test_proof_true(self): tree = MerkleTree() tree.add_leaf('test', True) tree.add_leaf('test2', True) tree.add_leaf('test3', True) tree.make_tree() proof = tree.get_proof(0) self.assertTrue( tree.validate_proof(proof, sha256('test'), tree.get_merkle_root()))
def test_proof_false(self): tree = MerkleTree() tree.add_leaf('test1', True) tree.add_leaf('test2', True) tree.add_leaf('test3', True) tree.make_tree() proof = tree.get_proof(4) result = tree.validate_proof(proof, sha256('test'), tree.get_merkle_root()) self.assertFalse(result)
def test_validate_good_proof_5_leaves_B(self): tree = MerkleTree() tree.add_leaves([ 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb', '3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d', '2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6', '18ac3e7343f016890c510e93f935261169d9e3f565436429830faf0934f4f8e4', '3f79bb7b435b05321651daefd374cdc681dc06faa65e374e38337b88ca046dea' ]) tree.make_tree() proof = tree.get_proof(1) isValid = tree.validate_proof( proof, '3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d', 'd71f8983ad4ee170f8129f1ebcdd7440be7798d8e1c80420bf11f1eced610dba') self.assertTrue(isValid, 'proof should be valid')