@@ -1112,15 +1112,15 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
1112
1112
}
1113
1113
1114
1114
if let Some ( height) = height {
1115
- self . block_disconnected (
1116
- height, broadcaster, conf_target, destination_script, fee_estimator, logger,
1115
+ self . blocks_disconnected (
1116
+ height - 1 , broadcaster, conf_target, destination_script, fee_estimator, logger,
1117
1117
) ;
1118
1118
}
1119
1119
}
1120
1120
1121
1121
#[ rustfmt:: skip]
1122
- pub ( super ) fn block_disconnected < B : Deref , F : Deref , L : Logger > (
1123
- & mut self , height : u32 , broadcaster : B , conf_target : ConfirmationTarget ,
1122
+ pub ( super ) fn blocks_disconnected < B : Deref , F : Deref , L : Logger > (
1123
+ & mut self , new_best_height : u32 , broadcaster : B , conf_target : ConfirmationTarget ,
1124
1124
destination_script : & Script , fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L ,
1125
1125
)
1126
1126
where B :: Target : BroadcasterInterface ,
@@ -1130,14 +1130,14 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
1130
1130
let onchain_events_awaiting_threshold_conf =
1131
1131
self . onchain_events_awaiting_threshold_conf . drain ( ..) . collect :: < Vec < _ > > ( ) ;
1132
1132
for entry in onchain_events_awaiting_threshold_conf {
1133
- if entry. height >= height {
1133
+ if entry. height > new_best_height {
1134
1134
//- our claim tx on a commitment tx output
1135
1135
//- resurect outpoint back in its claimable set and regenerate tx
1136
1136
match entry. event {
1137
1137
OnchainEvent :: ContentiousOutpoint { package } => {
1138
1138
if let Some ( pending_claim) = self . claimable_outpoints . get ( package. outpoints ( ) [ 0 ] ) {
1139
1139
if let Some ( request) = self . pending_claim_requests . get_mut ( & pending_claim. 0 ) {
1140
- assert ! ( request. merge_package( package, height ) . is_ok( ) ) ;
1140
+ assert ! ( request. merge_package( package, new_best_height + 1 ) . is_ok( ) ) ;
1141
1141
// Using a HashMap guarantee us than if we have multiple outpoints getting
1142
1142
// resurrected only one bump claim tx is going to be broadcast
1143
1143
bump_candidates. insert ( pending_claim. clone ( ) , request. clone ( ) ) ;
@@ -1151,10 +1151,8 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
1151
1151
}
1152
1152
}
1153
1153
for ( ( _claim_id, _) , ref mut request) in bump_candidates. iter_mut ( ) {
1154
- // `height` is the height being disconnected, so our `current_height` is 1 lower.
1155
- let current_height = height - 1 ;
1156
1154
if let Some ( ( new_timer, new_feerate, bump_claim) ) = self . generate_claim (
1157
- current_height , & request, & FeerateStrategy :: ForceBump , conf_target,
1155
+ new_best_height , & request, & FeerateStrategy :: ForceBump , conf_target,
1158
1156
destination_script, fee_estimator, logger
1159
1157
) {
1160
1158
request. set_timer ( new_timer) ;
@@ -1188,9 +1186,9 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
1188
1186
// right now if one of the outpoint get disconnected, just erase whole pending claim request.
1189
1187
let mut remove_request = Vec :: new ( ) ;
1190
1188
self . claimable_outpoints . retain ( |_, ref v|
1191
- if v. 1 >= height {
1192
- remove_request. push ( v. 0 . clone ( ) ) ;
1193
- false
1189
+ if v. 1 > new_best_height {
1190
+ remove_request. push ( v. 0 . clone ( ) ) ;
1191
+ false
1194
1192
} else { true } ) ;
1195
1193
for req in remove_request {
1196
1194
self . pending_claim_requests . remove ( & req) ;
0 commit comments