@@ -232,7 +232,7 @@ pub(crate) enum FeerateStrategy {
232
232
pub struct OnchainTxHandler < ChannelSigner : EcdsaChannelSigner > {
233
233
channel_value_satoshis : u64 ,
234
234
channel_keys_id : [ u8 ; 32 ] ,
235
- destination_script : ScriptBuf ,
235
+ destination_script : ScriptBuf , // Deprecated as of 0.2.
236
236
holder_commitment : HolderCommitmentTransaction ,
237
237
prev_holder_commitment : Option < HolderCommitmentTransaction > ,
238
238
@@ -487,7 +487,8 @@ 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
- conf_target : ConfirmationTarget , fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L ,
490
+ conf_target : ConfirmationTarget , destination_script : & Script ,
491
+ fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L ,
491
492
)
492
493
where
493
494
B :: Target : BroadcasterInterface ,
@@ -500,7 +501,10 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
500
501
bump_requests. push ( ( * claim_id, request. clone ( ) ) ) ;
501
502
}
502
503
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
+ )
504
508
. map ( |( _, new_feerate, claim) | {
505
509
let mut feerate_was_bumped = false ;
506
510
if let Some ( mut_request) = self . pending_claim_requests . get_mut ( & claim_id) {
@@ -551,8 +555,9 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
551
555
/// Panics if there are signing errors, because signing operations in reaction to on-chain
552
556
/// events are not expected to fail, and if they do, we may lose funds.
553
557
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 ,
556
561
) -> Option < ( u32 , u64 , OnchainClaim ) >
557
562
where F :: Target : FeeEstimator ,
558
563
{
@@ -617,15 +622,15 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
617
622
}
618
623
}
619
624
620
- let predicted_weight = cached_request. package_weight ( & self . destination_script ) ;
625
+ let predicted_weight = cached_request. package_weight ( destination_script) ;
621
626
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 ( ) ,
623
628
feerate_strategy, conf_target, fee_estimator, logger,
624
629
) {
625
630
assert ! ( new_feerate != 0 ) ;
626
631
627
632
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
629
634
) . unwrap ( ) ;
630
635
assert ! ( predicted_weight >= transaction. 0 . weight( ) . to_wu( ) ) ;
631
636
return Some ( ( new_timer, new_feerate, OnchainClaim :: Tx ( transaction) ) ) ;
@@ -727,7 +732,7 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
727
732
/// `cur_height`, however it must never be higher than `cur_height`.
728
733
pub ( super ) fn update_claims_view_from_requests < B : Deref , F : Deref , L : Logger > (
729
734
& 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 ,
731
736
fee_estimator : & LowerBoundedFeeEstimator < F > , logger : & L
732
737
) where
733
738
B :: Target : BroadcasterInterface ,
@@ -815,7 +820,8 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
815
820
// height timer expiration (i.e in how many blocks we're going to take action).
816
821
for mut req in preprocessed_requests {
817
822
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,
819
825
) {
820
826
req. set_timer ( new_timer) ;
821
827
req. set_feerate ( new_feerate) ;
@@ -881,7 +887,7 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
881
887
pub ( super ) fn update_claims_view_from_matched_txn < B : Deref , F : Deref , L : Logger > (
882
888
& mut self , txn_matched : & [ & Transaction ] , conf_height : u32 , conf_hash : BlockHash ,
883
889
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
885
891
) where
886
892
B :: Target : BroadcasterInterface ,
887
893
F :: Target : FeeEstimator ,
@@ -1032,7 +1038,8 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
1032
1038
1033
1039
for ( claim_id, request) in bump_candidates. iter ( ) {
1034
1040
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,
1036
1043
) {
1037
1044
match bump_claim {
1038
1045
OnchainClaim :: Tx ( bump_tx) => {
@@ -1068,6 +1075,7 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
1068
1075
txid : & Txid ,
1069
1076
broadcaster : B ,
1070
1077
conf_target : ConfirmationTarget ,
1078
+ destination_script : & Script ,
1071
1079
fee_estimator : & LowerBoundedFeeEstimator < F > ,
1072
1080
logger : & L ,
1073
1081
) where
@@ -1083,13 +1091,15 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
1083
1091
}
1084
1092
1085
1093
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
+ ) ;
1087
1097
}
1088
1098
}
1089
1099
1090
1100
pub ( super ) fn block_disconnected < B : Deref , F : Deref , L : Logger > (
1091
1101
& 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 ,
1093
1103
)
1094
1104
where B :: Target : BroadcasterInterface ,
1095
1105
F :: Target : FeeEstimator ,
@@ -1122,7 +1132,8 @@ impl<ChannelSigner: EcdsaChannelSigner> OnchainTxHandler<ChannelSigner> {
1122
1132
// `height` is the height being disconnected, so our `current_height` is 1 lower.
1123
1133
let current_height = height - 1 ;
1124
1134
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
1126
1137
) {
1127
1138
request. set_timer ( new_timer) ;
1128
1139
request. set_feerate ( new_feerate) ;
@@ -1375,10 +1386,11 @@ mod tests {
1375
1386
) ) ;
1376
1387
}
1377
1388
let holder_commit = HolderCommitmentTransaction :: dummy ( 1000000 , & mut htlcs) ;
1389
+ let destination_script = ScriptBuf :: new ( ) ;
1378
1390
let mut tx_handler = OnchainTxHandler :: new (
1379
1391
1000000 ,
1380
1392
[ 0 ; 32 ] ,
1381
- ScriptBuf :: new ( ) ,
1393
+ destination_script . clone ( ) ,
1382
1394
signer,
1383
1395
chan_params,
1384
1396
holder_commit,
@@ -1418,6 +1430,7 @@ mod tests {
1418
1430
1 ,
1419
1431
& & broadcaster,
1420
1432
ConfirmationTarget :: UrgentOnChainSweep ,
1433
+ & destination_script,
1421
1434
& fee_estimator,
1422
1435
& logger,
1423
1436
) ;
@@ -1441,6 +1454,7 @@ mod tests {
1441
1454
2 ,
1442
1455
& & broadcaster,
1443
1456
ConfirmationTarget :: UrgentOnChainSweep ,
1457
+ & destination_script,
1444
1458
& fee_estimator,
1445
1459
& logger,
1446
1460
) ;
0 commit comments