From 69d0bfacd916a42381059cf703fb0554608233d9 Mon Sep 17 00:00:00 2001 From: Wilmer Paulino Date: Fri, 21 Apr 2023 15:54:03 -0700 Subject: [PATCH] Use current height when generating claims on block_disconnected The `height` argument passed to `OnchainTxHandler::block_disconnected` represents the height being disconnected, and not the current height. Due to the incorrect assumption, we'd generate a claim with a locktime in the future. Ultimately, we shouldn't be generating claims within `block_disconnected`. Rather, we should retry the claim at a later block height, since the bitcoin blockchain does not ever roll back without connecting a new block. Addressing this is left for future work. --- lightning/src/chain/onchaintx.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lightning/src/chain/onchaintx.rs b/lightning/src/chain/onchaintx.rs index 04776fbb0..9141efc0b 100644 --- a/lightning/src/chain/onchaintx.rs +++ b/lightning/src/chain/onchaintx.rs @@ -1036,8 +1036,10 @@ impl OnchainTxHandler } } for ((_package_id, _), ref mut request) in bump_candidates.iter_mut() { + // `height` is the height being disconnected, so our `current_height` is 1 lower. + let current_height = height - 1; if let Some((new_timer, new_feerate, bump_claim)) = self.generate_claim( - height, &request, true /* force_feerate_bump */, fee_estimator, &&*logger + current_height, &request, true /* force_feerate_bump */, fee_estimator, &&*logger ) { request.set_timer(new_timer); request.set_feerate(new_feerate); -- 2.39.5