pub fn push_hash(&mut self, leaf_hash: H256) {
        self.hashes.push_back(leaf_hash);
        if self.start_index + self.hashes.len() > self.binary_tree_size {
            self.binary_tree_size *= 2;
            if self.cache.len() < tree_depth_by_size(self.binary_tree_size) {
                self.cache.push(None);
            }
        }
    }
Adds a raw hash to the tree (replaces leftmost empty leaf).
If the tree is full, its size is doubled.
Note: empty leaves != zero leaves.
core/lib/mini_merkle_tree/src/lib.rs