def validate_proof(self, proof, target_hash, merkle_root):
        """
        Takes a proof array, a target hash value, and a merkle root
        Checks the validity of the proof and return true or false
        :param proof:
        :param target_hash:
        :param merkle_root:
        :return:
        """
        return validate_proof(proof, target_hash, merkle_root, self.hash_f)