@@ -232,7 +232,7 @@ pub(crate) enum FeerateStrategy {
232232pub struct OnchainTxHandler < ChannelSigner : EcdsaChannelSigner > {
233233 channel_value_satoshis : u64 ,
234234 channel_keys_id : [ u8 ; 32 ] ,
235- destination_script : ScriptBuf ,
235+ destination_script : ScriptBuf , // Deprecated as of 0.2.
236236 holder_commitment : HolderCommitmentTransaction ,
237237 prev_holder_commitment : Option < HolderCommitmentTransaction > ,
238238
@@ -487,7 +487,8 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
487487 /// connections, like on mobile.
488488 pub ( super ) fn rebroadcast_pending_claims < B : Deref , F : Deref , L : Logger > (
489489 & mut self , current_height : u32 , feerate_strategy : FeerateStrategy , broadcaster : & B ,
490- conf_target : ConfirmationTarget , fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L ,
490+ conf_target : ConfirmationTarget , destination_script : & Script ,
491+ fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L ,
491492 )
492493 where
493494 B :: Target : BroadcasterInterface ,
@@ -500,7 +501,10 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
500501 bump_requests. push ( ( * claim_id, request. clone ( ) ) ) ;
501502 }
502503 for ( claim_id, request) in bump_requests {
503- self . generate_claim ( current_height, & request, & feerate_strategy, conf_target, fee_estimator, logger)
504+ self . generate_claim (
505+ current_height, & request, & feerate_strategy, conf_target, destination_script,
506+ fee_estimator, logger,
507+ )
504508 . map ( |( _, new_feerate, claim) | {
505509 let mut feerate_was_bumped = false ;
506510 if let Some ( mut_request) = self . pending_claim_requests . get_mut ( & claim_id) {
@@ -551,8 +555,9 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
551555 /// Panics if there are signing errors, because signing operations in reaction to on-chain
552556 /// events are not expected to fail, and if they do, we may lose funds.
553557 fn generate_claim < F : Deref , L : Logger > (
554- & mut self , cur_height : u32 , cached_request : & PackageTemplate , feerate_strategy : & FeerateStrategy ,
555- conf_target : ConfirmationTarget , fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L ,
558+ & mut self , cur_height : u32 , cached_request : & PackageTemplate ,
559+ feerate_strategy : & FeerateStrategy , conf_target : ConfirmationTarget ,
560+ destination_script : & Script , fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L ,
556561 ) -> Option < ( u32 , u64 , OnchainClaim ) >
557562 where F :: Target : FeeEstimator ,
558563 {
@@ -617,15 +622,15 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
617622 }
618623 }
619624
620- let predicted_weight = cached_request. package_weight ( & self . destination_script ) ;
625+ let predicted_weight = cached_request. package_weight ( destination_script) ;
621626 if let Some ( ( output_value, new_feerate) ) = cached_request. compute_package_output (
622- predicted_weight, self . destination_script . minimal_non_dust ( ) . to_sat ( ) ,
627+ predicted_weight, destination_script. minimal_non_dust ( ) . to_sat ( ) ,
623628 feerate_strategy, conf_target, fee_estimator, logger,
624629 ) {
625630 assert ! ( new_feerate != 0 ) ;
626631
627632 let transaction = cached_request. maybe_finalize_malleable_package (
628- cur_height, self , Amount :: from_sat ( output_value) , self . destination_script . clone ( ) , logger
633+ cur_height, self , Amount :: from_sat ( output_value) , destination_script. into ( ) , logger
629634 ) . unwrap ( ) ;
630635 assert ! ( predicted_weight >= transaction. 0 . weight( ) . to_wu( ) ) ;
631636 return Some ( ( new_timer, new_feerate, OnchainClaim :: Tx ( transaction) ) ) ;
@@ -727,7 +732,7 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
727732 /// `cur_height`, however it must never be higher than `cur_height`.
728733 pub ( super ) fn update_claims_view_from_requests < B : Deref , F : Deref , L : Logger > (
729734 & mut self , mut requests : Vec < PackageTemplate > , conf_height : u32 , cur_height : u32 ,
730- broadcaster : & B , conf_target : ConfirmationTarget ,
735+ broadcaster : & B , conf_target : ConfirmationTarget , destination_script : & Script ,
731736 fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L
732737 ) where
733738 B :: Target : BroadcasterInterface ,
@@ -815,7 +820,8 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
815820 // height timer expiration (i.e in how many blocks we're going to take action).
816821 for mut req in preprocessed_requests {
817822 if let Some ( ( new_timer, new_feerate, claim) ) = self . generate_claim (
818- cur_height, & req, & FeerateStrategy :: ForceBump , conf_target, & * fee_estimator, & * logger,
823+ cur_height, & req, & FeerateStrategy :: ForceBump , conf_target, destination_script,
824+ & * fee_estimator, & * logger,
819825 ) {
820826 req. set_timer ( new_timer) ;
821827 req. set_feerate ( new_feerate) ;
@@ -881,7 +887,7 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
881887 pub ( super ) fn update_claims_view_from_matched_txn < B : Deref , F : Deref , L : Logger > (
882888 & mut self , txn_matched : & [ & Transaction ] , conf_height : u32 , conf_hash : BlockHash ,
883889 cur_height : u32 , broadcaster : & B , conf_target : ConfirmationTarget ,
884- fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L
890+ destination_script : & Script , fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L
885891 ) where
886892 B :: Target : BroadcasterInterface ,
887893 F :: Target : FeeEstimator ,
@@ -1032,7 +1038,8 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
10321038
10331039 for ( claim_id, request) in bump_candidates. iter ( ) {
10341040 if let Some ( ( new_timer, new_feerate, bump_claim) ) = self . generate_claim (
1035- cur_height, & request, & FeerateStrategy :: ForceBump , conf_target, & * fee_estimator, & * logger,
1041+ cur_height, & request, & FeerateStrategy :: ForceBump , conf_target, destination_script,
1042+ & * fee_estimator, & * logger,
10361043 ) {
10371044 match bump_claim {
10381045 OnchainClaim :: Tx ( bump_tx) => {
@@ -1068,6 +1075,7 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
10681075 txid : & Txid ,
10691076 broadcaster : B ,
10701077 conf_target : ConfirmationTarget ,
1078+ destination_script : & Script ,
10711079 fee_estimator : & LowerBoundedFeeEstimator < F > ,
10721080 logger : & L ,
10731081 ) where
@@ -1083,13 +1091,15 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
10831091 }
10841092
10851093 if let Some ( height) = height {
1086- self . block_disconnected ( height, broadcaster, conf_target, fee_estimator, logger) ;
1094+ self . block_disconnected (
1095+ height, broadcaster, conf_target, destination_script, fee_estimator, logger,
1096+ ) ;
10871097 }
10881098 }
10891099
10901100 pub ( super ) fn block_disconnected < B : Deref , F : Deref , L : Logger > (
10911101 & mut self , height : u32 , broadcaster : B , conf_target : ConfirmationTarget ,
1092- fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L ,
1102+ destination_script : & Script , fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L ,
10931103 )
10941104 where B :: Target : BroadcasterInterface ,
10951105 F :: Target : FeeEstimator ,
@@ -1122,7 +1132,8 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
11221132 // `height` is the height being disconnected, so our `current_height` is 1 lower.
11231133 let current_height = height - 1 ;
11241134 if let Some ( ( new_timer, new_feerate, bump_claim) ) = self . generate_claim (
1125- current_height, & request, & FeerateStrategy :: ForceBump , conf_target, fee_estimator, logger
1135+ current_height, & request, & FeerateStrategy :: ForceBump , conf_target,
1136+ destination_script, fee_estimator, logger
11261137 ) {
11271138 request. set_timer ( new_timer) ;
11281139 request. set_feerate ( new_feerate) ;
@@ -1375,10 +1386,11 @@ mod tests {
13751386 ) ) ;
13761387 }
13771388 let holder_commit = HolderCommitmentTransaction :: dummy ( 1000000 , & mut htlcs) ;
1389+ let destination_script = ScriptBuf :: new ( ) ;
13781390 let mut tx_handler = OnchainTxHandler :: new (
13791391 1000000 ,
13801392 [ 0 ; 32 ] ,
1381- ScriptBuf :: new ( ) ,
1393+ destination_script . clone ( ) ,
13821394 signer,
13831395 chan_params,
13841396 holder_commit,
@@ -1418,6 +1430,7 @@ mod tests {
14181430 1 ,
14191431 & & broadcaster,
14201432 ConfirmationTarget :: UrgentOnChainSweep ,
1433+ & destination_script,
14211434 & fee_estimator,
14221435 & logger,
14231436 ) ;
@@ -1441,6 +1454,7 @@ mod tests {
14411454 2 ,
14421455 & & broadcaster,
14431456 ConfirmationTarget :: UrgentOnChainSweep ,
1457+ & destination_script,
14441458 & fee_estimator,
14451459 & logger,
14461460 ) ;
0 commit comments