@@ -31,7 +31,7 @@ use crate::ln::msgs;
31
31
use crate :: ln:: msgs:: { ChannelMessageHandler , RoutingMessageHandler , ErrorAction } ;
32
32
use crate :: util:: enforcing_trait_impls:: EnforcingSigner ;
33
33
use crate :: util:: test_utils;
34
- use crate :: util:: events:: { Event , MessageSendEvent , MessageSendEventsProvider , PaymentPurpose , ClosureReason , HTLCDestination } ;
34
+ use crate :: util:: events:: { Event , Failure , MessageSendEvent , MessageSendEventsProvider , PaymentPurpose , ClosureReason , HTLCDestination } ;
35
35
use crate :: util:: errors:: APIError ;
36
36
use crate :: util:: ser:: { Writeable , ReadableArgs } ;
37
37
use crate :: util:: config:: UserConfig ;
@@ -3235,12 +3235,12 @@ fn do_test_commitment_revoked_fail_backward_exhaustive(deliver_bs_raa: bool, use
3235
3235
let events = nodes[ 0 ] . node . get_and_clear_pending_events ( ) ;
3236
3236
assert_eq ! ( events. len( ) , 6 ) ;
3237
3237
match events[ 0 ] {
3238
- Event :: PaymentPathFailed { ref payment_hash, ref network_update , .. } => {
3238
+ Event :: PaymentPathFailed { ref payment_hash, ref failure , .. } => {
3239
3239
assert ! ( failed_htlcs. insert( payment_hash. 0 ) ) ;
3240
3240
// If we delivered B's RAA we got an unknown preimage error, not something
3241
3241
// that we should update our routing table for.
3242
3242
if !deliver_bs_raa {
3243
- assert ! ( network_update. is_some ( ) ) ;
3243
+ if let Failure :: OnPath { network_update : Some ( _ ) } = failure { } else { panic ! ( "Unexpected path failure" ) }
3244
3244
}
3245
3245
} ,
3246
3246
_ => panic ! ( "Unexpected event" ) ,
@@ -3252,9 +3252,8 @@ fn do_test_commitment_revoked_fail_backward_exhaustive(deliver_bs_raa: bool, use
3252
3252
_ => panic ! ( "Unexpected event" ) ,
3253
3253
}
3254
3254
match events[ 2 ] {
3255
- Event :: PaymentPathFailed { ref payment_hash, ref network_update, .. } => {
3255
+ Event :: PaymentPathFailed { ref payment_hash, failure : Failure :: OnPath { network_update : Some ( _ ) } , .. } => {
3256
3256
assert ! ( failed_htlcs. insert( payment_hash. 0 ) ) ;
3257
- assert ! ( network_update. is_some( ) ) ;
3258
3257
} ,
3259
3258
_ => panic ! ( "Unexpected event" ) ,
3260
3259
}
@@ -3265,9 +3264,8 @@ fn do_test_commitment_revoked_fail_backward_exhaustive(deliver_bs_raa: bool, use
3265
3264
_ => panic ! ( "Unexpected event" ) ,
3266
3265
}
3267
3266
match events[ 4 ] {
3268
- Event :: PaymentPathFailed { ref payment_hash, ref network_update, .. } => {
3267
+ Event :: PaymentPathFailed { ref payment_hash, failure : Failure :: OnPath { network_update : Some ( _ ) } , .. } => {
3269
3268
assert ! ( failed_htlcs. insert( payment_hash. 0 ) ) ;
3270
- assert ! ( network_update. is_some( ) ) ;
3271
3269
} ,
3272
3270
_ => panic ! ( "Unexpected event" ) ,
3273
3271
}
@@ -5148,14 +5146,14 @@ fn do_test_fail_backwards_unrevoked_remote_announce(deliver_last_raa: bool, anno
5148
5146
let mut as_failds = HashSet :: new ( ) ;
5149
5147
let mut as_updates = 0 ;
5150
5148
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 {
5152
5150
assert ! ( as_failds. insert( * payment_hash) ) ;
5153
5151
if * payment_hash != payment_hash_2 {
5154
5152
assert_eq ! ( * payment_failed_permanently, deliver_last_raa) ;
5155
5153
} else {
5156
5154
assert ! ( !payment_failed_permanently) ;
5157
5155
}
5158
- if network_update. is_some ( ) {
5156
+ if let Failure :: OnPath { network_update : Some ( _ ) } = failure {
5159
5157
as_updates += 1 ;
5160
5158
}
5161
5159
} else if let & Event :: PaymentFailed { .. } = event {
@@ -5174,14 +5172,14 @@ fn do_test_fail_backwards_unrevoked_remote_announce(deliver_last_raa: bool, anno
5174
5172
let mut bs_failds = HashSet :: new ( ) ;
5175
5173
let mut bs_updates = 0 ;
5176
5174
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 {
5178
5176
assert ! ( bs_failds. insert( * payment_hash) ) ;
5179
5177
if * payment_hash != payment_hash_1 && * payment_hash != payment_hash_5 {
5180
5178
assert_eq ! ( * payment_failed_permanently, deliver_last_raa) ;
5181
5179
} else {
5182
5180
assert ! ( !payment_failed_permanently) ;
5183
5181
}
5184
- if network_update. is_some ( ) {
5182
+ if let Failure :: OnPath { network_update : Some ( _ ) } = failure {
5185
5183
bs_updates += 1 ;
5186
5184
}
5187
5185
} else if let & Event :: PaymentFailed { .. } = event {
@@ -5695,11 +5693,10 @@ fn test_fail_holding_cell_htlc_upon_free() {
5695
5693
let events = nodes[ 0 ] . node . get_and_clear_pending_events ( ) ;
5696
5694
assert_eq ! ( events. len( ) , 2 ) ;
5697
5695
match & events[ 0 ] {
5698
- & Event :: PaymentPathFailed { ref payment_id, ref payment_hash, ref payment_failed_permanently, ref network_update, ref short_channel_id, .. } => {
5696
+ & Event :: PaymentPathFailed { ref payment_id, ref payment_hash, ref payment_failed_permanently, failure : Failure :: OnPath { network_update : None } , ref short_channel_id, .. } => {
5699
5697
assert_eq ! ( PaymentId ( our_payment_hash. 0 ) , * payment_id. as_ref( ) . unwrap( ) ) ;
5700
5698
assert_eq ! ( our_payment_hash. clone( ) , * payment_hash) ;
5701
5699
assert_eq ! ( * payment_failed_permanently, false ) ;
5702
- assert_eq ! ( * network_update, None ) ;
5703
5700
assert_eq ! ( * short_channel_id, Some ( route. paths[ 0 ] [ 0 ] . short_channel_id) ) ;
5704
5701
} ,
5705
5702
_ => panic ! ( "Unexpected event" ) ,
@@ -5785,11 +5782,10 @@ fn test_free_and_fail_holding_cell_htlcs() {
5785
5782
let events = nodes[ 0 ] . node . get_and_clear_pending_events ( ) ;
5786
5783
assert_eq ! ( events. len( ) , 2 ) ;
5787
5784
match & events[ 0 ] {
5788
- & Event :: PaymentPathFailed { ref payment_id, ref payment_hash, ref payment_failed_permanently, ref network_update, ref short_channel_id, .. } => {
5785
+ & Event :: PaymentPathFailed { ref payment_id, ref payment_hash, ref payment_failed_permanently, failure : Failure :: OnPath { network_update : None } , ref short_channel_id, .. } => {
5789
5786
assert_eq ! ( payment_id_2, * payment_id. as_ref( ) . unwrap( ) ) ;
5790
5787
assert_eq ! ( payment_hash_2. clone( ) , * payment_hash) ;
5791
5788
assert_eq ! ( * payment_failed_permanently, false ) ;
5792
- assert_eq ! ( * network_update, None ) ;
5793
5789
assert_eq ! ( * short_channel_id, Some ( route_2. paths[ 0 ] [ 0 ] . short_channel_id) ) ;
5794
5790
} ,
5795
5791
_ => panic ! ( "Unexpected event" ) ,
@@ -6687,8 +6683,7 @@ fn test_channel_failed_after_message_with_badonion_node_perm_bits_set() {
6687
6683
// Expect a PaymentPathFailed event with a ChannelFailure network update for the channel between
6688
6684
// the node originating the error to its next hop.
6689
6685
match events_5[ 0 ] {
6690
- Event :: PaymentPathFailed { network_update :
6691
- Some ( NetworkUpdate :: ChannelFailure { short_channel_id, is_permanent } ) , error_code, ..
6686
+ Event :: PaymentPathFailed { error_code, failure : Failure :: OnPath { network_update : Some ( NetworkUpdate :: ChannelFailure { short_channel_id, is_permanent } ) } , ..
6692
6687
} => {
6693
6688
assert_eq ! ( short_channel_id, chan_2. 0 . contents. short_channel_id) ;
6694
6689
assert ! ( is_permanent) ;
0 commit comments