Skip to content

Commit d77d8e4

Browse files
author
Antoine Riard
committed
Unify claim txn generation path across bumping strategies
Bumping after timer expiration will only be enable for CPFP-packages in following commits of this patchset.
1 parent ed17921 commit d77d8e4

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

lightning/src/ln/onchaintx.rs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -316,22 +316,22 @@ impl<ChanSigner: ChannelKeys> OnchainTxHandler<ChanSigner> {
316316

317317
// Compute new height timer to decide when we need to regenerate a new bumped version of the claim tx (if we
318318
// didn't receive confirmation of it before, or not enough reorg-safe depth on top of it).
319-
let new_timer = Some(Self::get_height_timer(height, cached_request.absolute_timelock));
320-
let amt = cached_request.content.package_amounts();
321-
if cached_request.bump_strategy == BumpStrategy::RBF {
322-
let predicted_weight = cached_request.content.package_weight(&self.destination_script);
323-
if let Some((output_value, new_feerate)) = onchain_utils::compute_output_value(predicted_weight, amt, cached_request.feerate_previous, &fee_estimator, &logger) {
324-
assert!(new_feerate != 0);
325-
326-
let transaction = cached_request.content.package_finalize(self, output_value, self.destination_script.clone(), &logger).unwrap();
327-
log_trace!(logger, "...with timer {} and feerate {}", new_timer.unwrap(), new_feerate);
328-
assert!(predicted_weight >= transaction.get_weight());
329-
return Some((new_timer, new_feerate, transaction))
330-
}
331-
} else {
332-
if let Some(transaction) = cached_request.content.package_finalize(self, amt, self.destination_script.clone(), &logger) {
333-
return Some((None, self.holder_commitment.as_ref().unwrap().feerate_per_kw as u64, transaction));
319+
let mut new_timer = Some(Self::get_height_timer(height, cached_request.absolute_timelock));
320+
let mut amt = cached_request.content.package_amounts();
321+
let holder_commitment = self.holder_commitment.as_ref().unwrap();
322+
let predicted_weight = cached_request.content.package_weight(&self.destination_script, &holder_commitment.unsigned_tx);
323+
if let Some((output_value, new_feerate)) = onchain_utils::compute_output_value(predicted_weight, amt, cached_request.feerate_previous, &fee_estimator, &logger) {
324+
assert!(new_feerate != 0);
325+
326+
let transaction = cached_request.content.package_finalize(self, output_value, self.destination_script.clone(), &logger).unwrap();
327+
log_trace!(logger, "...with timer {} and feerate {}", new_timer.unwrap(), new_feerate);
328+
assert!(predicted_weight >= transaction.get_weight());
329+
// Temporary: disable timer for CPFP-package
330+
if cached_request.bump_strategy == BumpStrategy::CPFP {
331+
new_timer = None;
334332
}
333+
334+
return Some((new_timer, new_feerate, transaction))
335335
}
336336
None
337337
}

0 commit comments

Comments
 (0)