File tree Expand file tree Collapse file tree 1 file changed +10
-0
lines changed Expand file tree Collapse file tree 1 file changed +10
-0
lines changed Original file line number Diff line number Diff line change @@ -550,6 +550,15 @@ impl ChannelMonitor {
550
550
if our_min_secret > other_min_secret {
551
551
self . provide_secret ( other_min_secret, other. get_secret ( other_min_secret) . unwrap ( ) ) ?;
552
552
}
553
+ if let Some ( ref local_tx) = self . current_local_signed_commitment_tx {
554
+ if let Some ( ref other_local_tx) = other. current_local_signed_commitment_tx {
555
+ let our_commitment_number = 0xffffffffffff - ( ( ( ( local_tx. tx . input [ 0 ] . sequence as u64 & 0xffffff ) << 3 * 8 ) | ( local_tx. tx . lock_time as u64 & 0xffffff ) ) ^ self . commitment_transaction_number_obscure_factor ) ;
556
+ let other_commitment_number = 0xffffffffffff - ( ( ( ( other_local_tx. tx . input [ 0 ] . sequence as u64 & 0xffffff ) << 3 * 8 ) | ( other_local_tx. tx . lock_time as u64 & 0xffffff ) ) ^ other. commitment_transaction_number_obscure_factor ) ;
557
+ if our_commitment_number >= other_commitment_number {
558
+ self . key_storage = other. key_storage ;
559
+ }
560
+ }
561
+ }
553
562
// TODO: We should use current_remote_commitment_number and the commitment number out of
554
563
// local transactions to decide how to merge
555
564
if our_min_secret >= other_min_secret {
@@ -565,6 +574,7 @@ impl ChannelMonitor {
565
574
}
566
575
self . payment_preimages = other. payment_preimages ;
567
576
}
577
+
568
578
self . current_remote_commitment_number = cmp:: min ( self . current_remote_commitment_number , other. current_remote_commitment_number ) ;
569
579
Ok ( ( ) )
570
580
}
You can’t perform that action at this time.
0 commit comments