1
0
Fork 0
mirror of https://github.com/romanz/electrs.git synced 2025-02-23 14:50:45 +01:00

Allow HeaderList::apply() with empty chain

This commit is contained in:
Roman Zeyde 2019-05-05 22:11:41 +03:00
parent 43ecefb4b8
commit ce93edcc15
No known key found for this signature in database
GPG key ID: 87CAE5FA46917CBB

View file

@ -126,6 +126,12 @@ impl HeaderList {
}
pub fn apply(&mut self, new_headers: Vec<HeaderEntry>, tip: Sha256dHash) {
if tip == Sha256dHash::default() {
assert!(new_headers.is_empty());
self.heights.clear();
self.headers.clear();
return;
}
// new_headers[i] -> new_headers[i - 1] (i.e. new_headers.last() is the tip)
for i in 1..new_headers.len() {
assert_eq!(new_headers[i - 1].height() + 1, new_headers[i].height());
@ -291,6 +297,7 @@ mod tests {
assert_eq!(header_list.tip(), null_hash);
let ordered = header_list.order(vec![]);
assert_eq!(ordered.len(), 0);
header_list.apply(vec![], null_hash);
let merkle_root = Sha256dHash::hash(&[255]);
let mut headers = vec![BlockHeader {