diff --git a/CHANGELOG.rst b/CHANGELOG.rst index fe461b2..cff2059 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,12 @@ +Merkle_Tree_Stream 0.0.1a2 (2019-10-06) +======================================= + +Bug Fixes +--------- + +- MerkleTreeIterator leaf and parent functions now return bytes. + + Merkle_Tree_Stream 0.0.1a1 (2019-08-07) ======================================= diff --git a/merkle_tree_stream/node.py b/merkle_tree_stream/node.py index 192c92f..3fb1689 100644 --- a/merkle_tree_stream/node.py +++ b/merkle_tree_stream/node.py @@ -23,7 +23,7 @@ class MerkleTreeNode: parent: int size: int data: bytes - hash: Optional[str] = attr.Factory(str) + hash: Optional[bytes] = attr.Factory(bytes) def __attrs_post_init__(self) -> Any: """Initialise the parent index.""" diff --git a/merkle_tree_stream/tree.py b/merkle_tree_stream/tree.py index 547d49e..930af05 100644 --- a/merkle_tree_stream/tree.py +++ b/merkle_tree_stream/tree.py @@ -7,8 +7,6 @@ from flat_tree import FlatTreeAccessor from merkle_tree_stream.node import MerkleTreeNode -Hash = str - EMPTY_DATA = b'' EMPTY_HASH = None @@ -26,8 +24,8 @@ class MerkleTreeIterator: :param roots: The tree roots """ - leaf: Callable[[MerkleTreeNode], Hash] - parent: Callable[[MerkleTreeNode, MerkleTreeNode], Hash] + leaf: Callable[[MerkleTreeNode], bytes] + parent: Callable[[MerkleTreeNode, MerkleTreeNode], bytes] roots: List[MerkleTreeNode] = attr.Factory(list) _position: int = 0 diff --git a/test/conftest.py b/test/conftest.py index f0fad3a..a70772e 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -6,7 +6,7 @@ import pytest @pytest.fixture def leaf(): def _leaf(node, roots=None): - return hashlib.sha256(node.data).hexdigest() + return hashlib.sha256(node.data).digest() return _leaf @@ -17,6 +17,6 @@ def parent(): sha256 = hashlib.sha256() sha256.update(first.data) sha256.update(second.data) - return sha256.hexdigest() + return sha256.digest() return _parent diff --git a/test/test_tree.py b/test/test_tree.py index 07cb231..6953296 100644 --- a/test/test_tree.py +++ b/test/test_tree.py @@ -17,26 +17,18 @@ def test_hashes(leaf, parent): assert len(merkle_iter) == expected_count assert next(merkle_iter) == MerkleTreeNode( - index=0, - parent=1, - hash=hashlib.sha256(b'a').hexdigest(), - size=1, - data=b'a', + index=0, parent=1, hash=hashlib.sha256(b'a').digest(), size=1, data=b'a' ) assert next(merkle_iter) == MerkleTreeNode( - index=2, - parent=1, - hash=hashlib.sha256(b'b').hexdigest(), - size=1, - data=b'b', + index=2, parent=1, hash=hashlib.sha256(b'b').digest(), size=1, data=b'b' ) hashed = hashlib.sha256(b'a') hashed.update(b'b') assert next(merkle_iter) == MerkleTreeNode( - index=1, parent=3, hash=hashed.hexdigest(), size=2, data=b'' + index=1, parent=3, hash=hashed.digest(), size=2, data=b'' ) with pytest.raises(StopIteration):