def _hash_and_save(self, node): """ Saves a node into the database and returns its hash """ validate_is_bin_node(node) node_hash = keccak(node) self.db[node_hash] = node return node_hash
def if_branch_valid(branch, root_hash, key, value): # value being None means the key is not in the trie if value is not None: validate_is_bytes(key) # branch must not be empty assert branch for node in branch: validate_is_bin_node(node) db = {keccak(node): node for node in branch} assert BinaryTrie(db=db, root_hash=root_hash).get(key) == value return True
def root_node(self, node): validate_is_bin_node(node) self.root_hash = self._hash_and_save(node)