/**
* Get the tree of existing Merkle roots.
*
* @param Channel $chan
* @return MerkleTree
*/
protected function getMerkleTree(Channel $chan) : MerkleTree
{
$nodeList = [];
$nodes = $this->db->run('SELECT
data
FROM
airship_tree_updates
WHERE
channel = ?
ORDER BY
treeupdateid ASC
', $chan->getName());
foreach ($nodes as $node) {
$nodeList[] = new Node($node['data']);
}
return (new MerkleTree(...$nodeList))->setHashSize(\Sodium\CRYPTO_GENERICHASH_BYTES_MAX)->setPersonalizationString(\AIRSHIP_BLAKE2B_PERSONALIZATION);
}