+ /// In LN, output claimed are time-sensitive, which means we have to spend them before reaching some timelock expiration. At in-channel
+ /// output detection, we generate a first version of a claim tx and associate to it a height timer. A height timer is an absolute block
+ /// height that once reached we should generate a new bumped "version" of the claim tx to be sure that we safely claim outputs before
+ /// that our counterparty can do so. If timelock expires soon, height timer is going to be scaled down in consequence to increase
+ /// frequency of the bump and so increase our bets of success.
+ pub(crate) fn get_height_timer(&self, current_height: u32) -> u32 {
+ if self.soonest_conf_deadline <= current_height + MIDDLE_FREQUENCY_BUMP_INTERVAL {
+ return current_height + HIGH_FREQUENCY_BUMP_INTERVAL
+ } else if self.soonest_conf_deadline - current_height <= LOW_FREQUENCY_BUMP_INTERVAL {
+ return current_height + MIDDLE_FREQUENCY_BUMP_INTERVAL
+ }
+ current_height + LOW_FREQUENCY_BUMP_INTERVAL
+ }