use std::collections::HashMap;
use std::time::{SystemTime, UNIX_EPOCH};
-use bitcoin::BlockHash;
-use bitcoin::hashes::Hash;
+use bitcoin::Network;
+use bitcoin::blockdata::constants::ChainHash;
use lightning::ln::msgs::{UnsignedChannelAnnouncement, UnsignedChannelUpdate};
use lightning::util::ser::{BigSize, Writeable};
use crate::config;
pub(super) updates: Vec<UpdateSerialization>,
pub(super) full_update_defaults: DefaultUpdateValues,
pub(super) latest_seen: u32,
- pub(super) chain_hash: BlockHash,
+ pub(super) chain_hash: ChainHash,
}
pub(super) struct DefaultUpdateValues {
announcements: vec![],
updates: vec![],
full_update_defaults: Default::default(),
- chain_hash: BlockHash::all_zeros(),
+ chain_hash: ChainHash::using_genesis_block(Network::Bitcoin),
latest_seen: 0,
};
let channel_announcement_delta = channel_delta.announcement.as_ref().unwrap();
if !chain_hash_set {
chain_hash_set = true;
- serialization_set.chain_hash = channel_announcement_delta.announcement.chain_hash.clone();
+ serialization_set.chain_hash = channel_announcement_delta.announcement.chain_hash;
}
let current_announcement_seen = channel_announcement_delta.seen;
// we don't count flags as mutated properties
serialization_set.updates.push(
UpdateSerialization::Incremental(latest_update, mutated_properties));
+ } else if channel_delta.requires_reminder {
+ if let Some(flags) = updates.serialization_update_flags {
+ serialization_set.updates.push(UpdateSerialization::Reminder(scid, flags));
+ }
}
} else {
// serialize the full update