@@ -31,7 +31,7 @@ use crate::ln::msgs;
3131use crate :: ln:: msgs:: { ChannelMessageHandler , RoutingMessageHandler , ErrorAction } ;
3232use crate :: util:: enforcing_trait_impls:: EnforcingSigner ;
3333use crate :: util:: test_utils;
34- use crate :: util:: events:: { Event , MessageSendEvent , MessageSendEventsProvider , PaymentPurpose , ClosureReason , HTLCDestination } ;
34+ use crate :: util:: events:: { Event , MessageSendEvent , MessageSendEventsProvider , PathFailure , PaymentPurpose , ClosureReason , HTLCDestination } ;
3535use crate :: util:: errors:: APIError ;
3636use crate :: util:: ser:: { Writeable , ReadableArgs } ;
3737use crate :: util:: config:: UserConfig ;
@@ -3235,12 +3235,12 @@ fn do_test_commitment_revoked_fail_backward_exhaustive(deliver_bs_raa: bool, use
32353235 let events = nodes[ 0 ] . node . get_and_clear_pending_events ( ) ;
32363236 assert_eq ! ( events. len( ) , 6 ) ;
32373237 match events[ 0 ] {
3238- Event :: PaymentPathFailed { ref payment_hash, ref network_update , .. } => {
3238+ Event :: PaymentPathFailed { ref payment_hash, ref failure , .. } => {
32393239 assert ! ( failed_htlcs. insert( payment_hash. 0 ) ) ;
32403240 // If we delivered B's RAA we got an unknown preimage error, not something
32413241 // that we should update our routing table for.
32423242 if !deliver_bs_raa {
3243- assert ! ( network_update. is_some ( ) ) ;
3243+ if let PathFailure :: OnPath { network_update : Some ( _ ) } = failure { } else { panic ! ( "Unexpected path failure" ) }
32443244 }
32453245 } ,
32463246 _ => panic ! ( "Unexpected event" ) ,
@@ -3252,9 +3252,8 @@ fn do_test_commitment_revoked_fail_backward_exhaustive(deliver_bs_raa: bool, use
32523252 _ => panic ! ( "Unexpected event" ) ,
32533253 }
32543254 match events[ 2 ] {
3255- Event :: PaymentPathFailed { ref payment_hash, ref network_update, .. } => {
3255+ Event :: PaymentPathFailed { ref payment_hash, failure : PathFailure :: OnPath { network_update : Some ( _ ) } , .. } => {
32563256 assert ! ( failed_htlcs. insert( payment_hash. 0 ) ) ;
3257- assert ! ( network_update. is_some( ) ) ;
32583257 } ,
32593258 _ => panic ! ( "Unexpected event" ) ,
32603259 }
@@ -3265,9 +3264,8 @@ fn do_test_commitment_revoked_fail_backward_exhaustive(deliver_bs_raa: bool, use
32653264 _ => panic ! ( "Unexpected event" ) ,
32663265 }
32673266 match events[ 4 ] {
3268- Event :: PaymentPathFailed { ref payment_hash, ref network_update, .. } => {
3267+ Event :: PaymentPathFailed { ref payment_hash, failure : PathFailure :: OnPath { network_update : Some ( _ ) } , .. } => {
32693268 assert ! ( failed_htlcs. insert( payment_hash. 0 ) ) ;
3270- assert ! ( network_update. is_some( ) ) ;
32713269 } ,
32723270 _ => panic ! ( "Unexpected event" ) ,
32733271 }
@@ -5148,14 +5146,14 @@ fn do_test_fail_backwards_unrevoked_remote_announce(deliver_last_raa: bool, anno
51485146 let mut as_failds = HashSet :: new ( ) ;
51495147 let mut as_updates = 0 ;
51505148 for event in as_events. iter ( ) {
5151- if let & Event :: PaymentPathFailed { ref payment_hash, ref payment_failed_permanently, ref network_update , .. } = event {
5149+ if let & Event :: PaymentPathFailed { ref payment_hash, ref payment_failed_permanently, ref failure , .. } = event {
51525150 assert ! ( as_failds. insert( * payment_hash) ) ;
51535151 if * payment_hash != payment_hash_2 {
51545152 assert_eq ! ( * payment_failed_permanently, deliver_last_raa) ;
51555153 } else {
51565154 assert ! ( !payment_failed_permanently) ;
51575155 }
5158- if network_update. is_some ( ) {
5156+ if let PathFailure :: OnPath { network_update : Some ( _ ) } = failure {
51595157 as_updates += 1 ;
51605158 }
51615159 } else if let & Event :: PaymentFailed { .. } = event {
@@ -5174,14 +5172,14 @@ fn do_test_fail_backwards_unrevoked_remote_announce(deliver_last_raa: bool, anno
51745172 let mut bs_failds = HashSet :: new ( ) ;
51755173 let mut bs_updates = 0 ;
51765174 for event in bs_events. iter ( ) {
5177- if let & Event :: PaymentPathFailed { ref payment_hash, ref payment_failed_permanently, ref network_update , .. } = event {
5175+ if let & Event :: PaymentPathFailed { ref payment_hash, ref payment_failed_permanently, ref failure , .. } = event {
51785176 assert ! ( bs_failds. insert( * payment_hash) ) ;
51795177 if * payment_hash != payment_hash_1 && * payment_hash != payment_hash_5 {
51805178 assert_eq ! ( * payment_failed_permanently, deliver_last_raa) ;
51815179 } else {
51825180 assert ! ( !payment_failed_permanently) ;
51835181 }
5184- if network_update. is_some ( ) {
5182+ if let PathFailure :: OnPath { network_update : Some ( _ ) } = failure {
51855183 bs_updates += 1 ;
51865184 }
51875185 } else if let & Event :: PaymentFailed { .. } = event {
@@ -5695,12 +5693,10 @@ fn test_fail_holding_cell_htlc_upon_free() {
56955693 let events = nodes[ 0 ] . node . get_and_clear_pending_events ( ) ;
56965694 assert_eq ! ( events. len( ) , 2 ) ;
56975695 match & events[ 0 ] {
5698- & Event :: PaymentPathFailed { ref payment_id, ref payment_hash, ref payment_failed_permanently, ref network_update, ref all_paths_failed , ref short_channel_id, .. } => {
5696+ & Event :: PaymentPathFailed { ref payment_id, ref payment_hash, ref payment_failed_permanently, failure : PathFailure :: OnPath { network_update : None } , ref short_channel_id, .. } => {
56995697 assert_eq ! ( PaymentId ( our_payment_hash. 0 ) , * payment_id. as_ref( ) . unwrap( ) ) ;
57005698 assert_eq ! ( our_payment_hash. clone( ) , * payment_hash) ;
57015699 assert_eq ! ( * payment_failed_permanently, false ) ;
5702- assert_eq ! ( * all_paths_failed, true ) ;
5703- assert_eq ! ( * network_update, None ) ;
57045700 assert_eq ! ( * short_channel_id, Some ( route. paths[ 0 ] [ 0 ] . short_channel_id) ) ;
57055701 } ,
57065702 _ => panic ! ( "Unexpected event" ) ,
@@ -5786,12 +5782,10 @@ fn test_free_and_fail_holding_cell_htlcs() {
57865782 let events = nodes[ 0 ] . node . get_and_clear_pending_events ( ) ;
57875783 assert_eq ! ( events. len( ) , 2 ) ;
57885784 match & events[ 0 ] {
5789- & Event :: PaymentPathFailed { ref payment_id, ref payment_hash, ref payment_failed_permanently, ref network_update, ref all_paths_failed , ref short_channel_id, .. } => {
5785+ & Event :: PaymentPathFailed { ref payment_id, ref payment_hash, ref payment_failed_permanently, failure : PathFailure :: OnPath { network_update : None } , ref short_channel_id, .. } => {
57905786 assert_eq ! ( payment_id_2, * payment_id. as_ref( ) . unwrap( ) ) ;
57915787 assert_eq ! ( payment_hash_2. clone( ) , * payment_hash) ;
57925788 assert_eq ! ( * payment_failed_permanently, false ) ;
5793- assert_eq ! ( * all_paths_failed, true ) ;
5794- assert_eq ! ( * network_update, None ) ;
57955789 assert_eq ! ( * short_channel_id, Some ( route_2. paths[ 0 ] [ 0 ] . short_channel_id) ) ;
57965790 } ,
57975791 _ => panic ! ( "Unexpected event" ) ,
@@ -6689,8 +6683,7 @@ fn test_channel_failed_after_message_with_badonion_node_perm_bits_set() {
66896683 // Expect a PaymentPathFailed event with a ChannelFailure network update for the channel between
66906684 // the node originating the error to its next hop.
66916685 match events_5[ 0 ] {
6692- Event :: PaymentPathFailed { network_update :
6693- Some ( NetworkUpdate :: ChannelFailure { short_channel_id, is_permanent } ) , error_code, ..
6686+ Event :: PaymentPathFailed { error_code, failure : PathFailure :: OnPath { network_update : Some ( NetworkUpdate :: ChannelFailure { short_channel_id, is_permanent } ) } , ..
66946687 } => {
66956688 assert_eq ! ( short_channel_id, chan_2. 0 . contents. short_channel_id) ;
66966689 assert ! ( is_permanent) ;
0 commit comments