コード例 #1
0
    def test_verify_tree_from_hex_str_invalid(self):
        raw_leaves = [secrets.token_bytes(16) for _ in range(16)]
        random_hash = MerkleTree.hash(secrets.token_bytes(16))

        m = MerkleTree(raw_leaves)

        self.assertFalse(MerkleTree.verify_tree_from_hex_str(m.leaves_as_concat_hex_str, random_hash))
コード例 #2
0
ファイル: test_merkle_tree.py プロジェクト: sanko61/cilantro
    def test_leaves_as_hex_str(self):
        leaves = [1, 2, 3, 4]
        hashed_leaves = [MerkleTree.hash(leaf).hex() for leaf in leaves]
        hex_leaves = ''.join(hashed_leaves)

        m = MerkleTree(leaves)

        self.assertEqual(hex_leaves, m.leaves_as_concat_hex_str)
コード例 #3
0
ファイル: test_merkle_tree.py プロジェクト: sanko61/cilantro
    def test_leaves_as_hex(self):
        leaves = [1, 2, 3, 4]
        hashed_leaves = [MerkleTree.hash(leaf).hex() for leaf in leaves]

        m = MerkleTree(leaves)

        for actual, expected in zip(m.leaves_as_hex, hashed_leaves):
            self.assertEqual(actual, expected)
コード例 #4
0
ファイル: test_block_data.py プロジェクト: cclauss/cilantro
    def test_creation(self):
        """
        Tests that a created block data reply has the expected properties
        """
        tx_binary = b'some random binary'
        bdr = BlockDataReply.create(tx_binary)

        self.assertEqual(tx_binary, bdr.raw_tx)
        self.assertEqual(bdr.tx_hash, MerkleTree.hash(tx_binary))
コード例 #5
0
ファイル: test_merkle_tree.py プロジェクト: sanko61/cilantro
    def test_make_merkle_works(self):
        leaves = [1, 2, 3, 4]
        test_merkle = [
            None, None, None,
            MerkleTree.hash(1),
            MerkleTree.hash(2),
            MerkleTree.hash(3),
            MerkleTree.hash(4)
        ]

        test_merkle[2] = MerkleTree.hash(test_merkle[-2] + test_merkle[-1])
        test_merkle[1] = MerkleTree.hash(test_merkle[3] + test_merkle[4])
        test_merkle[0] = MerkleTree.hash(test_merkle[1] + test_merkle[2])

        m = MerkleTree(leaves)

        self.assertEqual(test_merkle, m.nodes)
コード例 #6
0
ファイル: test_merkle_tree.py プロジェクト: sanko61/cilantro
    def test_root_as_hex(self):
        leaves = [1, 2, 3, 4]
        test_merkle = [
            None, None, None,
            MerkleTree.hash(1),
            MerkleTree.hash(2),
            MerkleTree.hash(3),
            MerkleTree.hash(4)
        ]

        test_merkle[2] = MerkleTree.hash(test_merkle[-2] + test_merkle[-1])
        test_merkle[1] = MerkleTree.hash(test_merkle[3] + test_merkle[4])
        test_merkle[0] = MerkleTree.hash(test_merkle[1] + test_merkle[2])

        m = MerkleTree(leaves)

        self.assertEqual(m.root, test_merkle[0])
        self.assertEqual(m.root_as_hex, test_merkle[0].hex())
コード例 #7
0
ファイル: test_merkle_tree.py プロジェクト: cclauss/cilantro
    def test_make_merkle_works(self):
        # create a merkle tree that should be
        leaves = [1, 2, 3, 4]
        test_merkle = [None,
                       None,
                       None,
                       MerkleTree.hash(bytes(1)),
                       MerkleTree.hash(bytes(2)),
                       MerkleTree.hash(bytes(3)),
                       MerkleTree.hash(bytes(4))]

        test_merkle[2] = MerkleTree.hash(test_merkle[-2] + test_merkle[-1])
        test_merkle[1] = MerkleTree.hash(test_merkle[3] + test_merkle[4])
        test_merkle[0] = MerkleTree.hash(test_merkle[1] + test_merkle[2])

        m = MerkleTree(leaves)

        self.assertEqual(test_merkle, m.nodes)
コード例 #8
0
ファイル: test_merkle_tree.py プロジェクト: sanko61/cilantro
    def test_find_children(self):
        leaves = [1, 2, 3, 4]
        test_merkle = [
            None, None, None,
            MerkleTree.hash(1),
            MerkleTree.hash(2),
            MerkleTree.hash(3),
            MerkleTree.hash(4)
        ]

        test_merkle[2] = MerkleTree.hash(test_merkle[-2] + test_merkle[-1])
        test_merkle[1] = MerkleTree.hash(test_merkle[3] + test_merkle[4])
        test_merkle[0] = MerkleTree.hash(test_merkle[1] + test_merkle[2])

        m = MerkleTree(leaves)

        self.assertEqual(m.children(0), [test_merkle[1], test_merkle[2]])
        self.assertEqual(m.children(1), [test_merkle[3], test_merkle[4]])
        self.assertEqual(m.children(2), [test_merkle[5], test_merkle[6]])
コード例 #9
0
ファイル: test_merkle_tree.py プロジェクト: cclauss/cilantro
    def test_find_root(self):
        leaves = [1, 2, 3, 4]
        test_merkle = [None,
                       None,
                       None,
                       MerkleTree.hash(bytes(1)),
                       MerkleTree.hash(bytes(2)),
                       MerkleTree.hash(bytes(3)),
                       MerkleTree.hash(bytes(4))]

        test_merkle[2] = MerkleTree.hash(test_merkle[-2] + test_merkle[-1])
        test_merkle[1] = MerkleTree.hash(test_merkle[3] + test_merkle[4])
        test_merkle[0] = MerkleTree.hash(test_merkle[1] + test_merkle[2])

        m = MerkleTree(leaves)

        self.assertEqual(m.root(2), test_merkle[0])
        self.assertEqual(m.root(4), test_merkle[1])
        self.assertEqual(m.root(), test_merkle[0])
コード例 #10
0
ファイル: block_data.py プロジェクト: cclauss/cilantro
 def tx_hash(self):
     return MerkleTree.hash(self._data)
コード例 #11
0
 def tx_hash(self) -> str:
     """
     The hash of the requested transaction (64 characters, valid hex)
     """
     return MerkleTree.hash(self._data)