@@ -24,13 +24,13 @@ use bitcoin::secp256k1::PublicKey;
24
24
use bitcoin:: secp256k1:: { Secp256k1 , ecdsa:: Signature } ;
25
25
use bitcoin:: secp256k1;
26
26
27
- use crate :: chain:: chaininterface:: compute_feerate_sat_per_1000_weight;
27
+ use crate :: chain:: chaininterface:: { ConfirmationTarget , compute_feerate_sat_per_1000_weight} ;
28
28
use crate :: sign:: { ChannelDerivationParameters , HTLCDescriptor , ChannelSigner , EntropySource , SignerProvider , ecdsa:: EcdsaChannelSigner } ;
29
29
use crate :: ln:: msgs:: DecodeError ;
30
30
use crate :: ln:: types:: PaymentPreimage ;
31
31
use crate :: ln:: chan_utils:: { self , ChannelTransactionParameters , HTLCOutputInCommitment , HolderCommitmentTransaction } ;
32
32
use crate :: chain:: ClaimId ;
33
- use crate :: chain:: chaininterface:: { ConfirmationTarget , FeeEstimator , BroadcasterInterface , LowerBoundedFeeEstimator } ;
33
+ use crate :: chain:: chaininterface:: { FeeEstimator , BroadcasterInterface , LowerBoundedFeeEstimator } ;
34
34
use crate :: chain:: channelmonitor:: { ANTI_REORG_DELAY , CLTV_SHARED_CLAIM_BUFFER } ;
35
35
use crate :: chain:: package:: { PackageSolvingData , PackageTemplate } ;
36
36
use crate :: chain:: transaction:: MaybeSignedTransaction ;
@@ -487,7 +487,7 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
487
487
/// connections, like on mobile.
488
488
pub ( super ) fn rebroadcast_pending_claims < B : Deref , F : Deref , L : Logger > (
489
489
& mut self , current_height : u32 , feerate_strategy : FeerateStrategy , broadcaster : & B ,
490
- fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L ,
490
+ conf_target : ConfirmationTarget , fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L ,
491
491
)
492
492
where
493
493
B :: Target : BroadcasterInterface ,
@@ -500,7 +500,7 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
500
500
bump_requests. push ( ( * claim_id, request. clone ( ) ) ) ;
501
501
}
502
502
for ( claim_id, request) in bump_requests {
503
- self . generate_claim ( current_height, & request, & feerate_strategy, fee_estimator, logger)
503
+ self . generate_claim ( current_height, & request, & feerate_strategy, conf_target , fee_estimator, logger)
504
504
. map ( |( _, new_feerate, claim) | {
505
505
let mut bumped_feerate = false ;
506
506
if let Some ( mut_request) = self . pending_claim_requests . get_mut ( & claim_id) {
@@ -552,7 +552,7 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
552
552
/// events are not expected to fail, and if they do, we may lose funds.
553
553
fn generate_claim < F : Deref , L : Logger > (
554
554
& mut self , cur_height : u32 , cached_request : & PackageTemplate , feerate_strategy : & FeerateStrategy ,
555
- fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L ,
555
+ conf_target : ConfirmationTarget , fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L ,
556
556
) -> Option < ( u32 , u64 , OnchainClaim ) >
557
557
where F :: Target : FeeEstimator ,
558
558
{
@@ -600,7 +600,7 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
600
600
if cached_request. is_malleable ( ) {
601
601
if cached_request. requires_external_funding ( ) {
602
602
let target_feerate_sat_per_1000_weight = cached_request. compute_package_feerate (
603
- fee_estimator, ConfirmationTarget :: OnChainSweep , feerate_strategy,
603
+ fee_estimator, conf_target , feerate_strategy,
604
604
) ;
605
605
if let Some ( htlcs) = cached_request. construct_malleable_package_with_external_funding ( self ) {
606
606
return Some ( (
@@ -620,7 +620,7 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
620
620
let predicted_weight = cached_request. package_weight ( & self . destination_script ) ;
621
621
if let Some ( ( output_value, new_feerate) ) = cached_request. compute_package_output (
622
622
predicted_weight, self . destination_script . minimal_non_dust ( ) . to_sat ( ) ,
623
- feerate_strategy, fee_estimator, logger,
623
+ feerate_strategy, conf_target , fee_estimator, logger,
624
624
) {
625
625
assert ! ( new_feerate != 0 ) ;
626
626
@@ -650,7 +650,6 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
650
650
debug_assert_eq ! ( tx. 0 . compute_txid( ) , self . holder_commitment. trust( ) . txid( ) ,
651
651
"Holder commitment transaction mismatch" ) ;
652
652
653
- let conf_target = ConfirmationTarget :: OnChainSweep ;
654
653
let package_target_feerate_sat_per_1000_weight = cached_request
655
654
. compute_package_feerate ( fee_estimator, conf_target, feerate_strategy) ;
656
655
if let Some ( input_amount_sat) = output. funding_amount {
@@ -728,7 +727,8 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
728
727
/// `cur_height`, however it must never be higher than `cur_height`.
729
728
pub ( super ) fn update_claims_view_from_requests < B : Deref , F : Deref , L : Logger > (
730
729
& mut self , requests : Vec < PackageTemplate > , conf_height : u32 , cur_height : u32 ,
731
- broadcaster : & B , fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L
730
+ broadcaster : & B , conf_target : ConfirmationTarget ,
731
+ fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L
732
732
) where
733
733
B :: Target : BroadcasterInterface ,
734
734
F :: Target : FeeEstimator ,
@@ -798,7 +798,7 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
798
798
// height timer expiration (i.e in how many blocks we're going to take action).
799
799
for mut req in preprocessed_requests {
800
800
if let Some ( ( new_timer, new_feerate, claim) ) = self . generate_claim (
801
- cur_height, & req, & FeerateStrategy :: ForceBump , & * fee_estimator, & * logger,
801
+ cur_height, & req, & FeerateStrategy :: ForceBump , conf_target , & * fee_estimator, & * logger,
802
802
) {
803
803
req. set_timer ( new_timer) ;
804
804
req. set_feerate ( new_feerate) ;
@@ -863,7 +863,8 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
863
863
/// provided via `cur_height`, however it must never be higher than `cur_height`.
864
864
pub ( super ) fn update_claims_view_from_matched_txn < B : Deref , F : Deref , L : Logger > (
865
865
& mut self , txn_matched : & [ & Transaction ] , conf_height : u32 , conf_hash : BlockHash ,
866
- cur_height : u32 , broadcaster : & B , fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L
866
+ cur_height : u32 , broadcaster : & B , conf_target : ConfirmationTarget ,
867
+ fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L
867
868
) where
868
869
B :: Target : BroadcasterInterface ,
869
870
F :: Target : FeeEstimator ,
@@ -1014,7 +1015,7 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
1014
1015
1015
1016
for ( claim_id, request) in bump_candidates. iter ( ) {
1016
1017
if let Some ( ( new_timer, new_feerate, bump_claim) ) = self . generate_claim (
1017
- cur_height, & request, & FeerateStrategy :: ForceBump , & * fee_estimator, & * logger,
1018
+ cur_height, & request, & FeerateStrategy :: ForceBump , conf_target , & * fee_estimator, & * logger,
1018
1019
) {
1019
1020
match bump_claim {
1020
1021
OnchainClaim :: Tx ( bump_tx) => {
@@ -1049,6 +1050,7 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
1049
1050
& mut self ,
1050
1051
txid : & Txid ,
1051
1052
broadcaster : B ,
1053
+ conf_target : ConfirmationTarget ,
1052
1054
fee_estimator : & LowerBoundedFeeEstimator < F > ,
1053
1055
logger : & L ,
1054
1056
) where
@@ -1064,11 +1066,14 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
1064
1066
}
1065
1067
1066
1068
if let Some ( height) = height {
1067
- self . block_disconnected ( height, broadcaster, fee_estimator, logger) ;
1069
+ self . block_disconnected ( height, broadcaster, conf_target , fee_estimator, logger) ;
1068
1070
}
1069
1071
}
1070
1072
1071
- pub ( super ) fn block_disconnected < B : Deref , F : Deref , L : Logger > ( & mut self , height : u32 , broadcaster : B , fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L )
1073
+ pub ( super ) fn block_disconnected < B : Deref , F : Deref , L : Logger > (
1074
+ & mut self , height : u32 , broadcaster : B , conf_target : ConfirmationTarget ,
1075
+ fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L ,
1076
+ )
1072
1077
where B :: Target : BroadcasterInterface ,
1073
1078
F :: Target : FeeEstimator ,
1074
1079
{
@@ -1100,7 +1105,7 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
1100
1105
// `height` is the height being disconnected, so our `current_height` is 1 lower.
1101
1106
let current_height = height - 1 ;
1102
1107
if let Some ( ( new_timer, new_feerate, bump_claim) ) = self . generate_claim (
1103
- current_height, & request, & FeerateStrategy :: ForceBump , fee_estimator, logger
1108
+ current_height, & request, & FeerateStrategy :: ForceBump , conf_target , fee_estimator, logger
1104
1109
) {
1105
1110
request. set_timer ( new_timer) ;
1106
1111
request. set_feerate ( new_feerate) ;
0 commit comments