@@ -19,6 +19,7 @@ use ln::msgs;
19
19
use ln:: msgs:: DecodeError ;
20
20
use ln:: { PaymentPreimage , PaymentHash , PaymentSecret } ;
21
21
use routing:: network_graph:: NetworkUpdate ;
22
+ use routing:: router:: RouteHop ;
22
23
use util:: ser:: { Writeable , Writer , MaybeReadable , Readable , VecReadWrapper , VecWriteWrapper } ;
23
24
24
25
use bitcoin:: blockdata:: script:: Script ;
@@ -200,6 +201,8 @@ pub enum Event {
200
201
/// failed. This will be set to false if (1) this is an MPP payment and (2) other parts of the
201
202
/// larger MPP payment were still in flight when this event was generated.
202
203
all_paths_failed : bool ,
204
+ /// The payment path that failed.
205
+ path : Vec < RouteHop > ,
203
206
#[ cfg( test) ]
204
207
error_code : Option < u16 > ,
205
208
#[ cfg( test) ]
@@ -291,7 +294,8 @@ impl Writeable for Event {
291
294
( 0 , payment_preimage, required) ,
292
295
} ) ;
293
296
} ,
294
- & Event :: PaymentPathFailed { ref payment_hash, ref rejected_by_dest, ref network_update, ref all_paths_failed,
297
+ & Event :: PaymentPathFailed { ref payment_hash, ref rejected_by_dest, ref network_update,
298
+ ref all_paths_failed, ref path,
295
299
#[ cfg( test) ]
296
300
ref error_code,
297
301
#[ cfg( test) ]
@@ -307,6 +311,7 @@ impl Writeable for Event {
307
311
( 1 , network_update, option) ,
308
312
( 2 , rejected_by_dest, required) ,
309
313
( 3 , all_paths_failed, required) ,
314
+ ( 5 , path, vec_type) ,
310
315
} ) ;
311
316
} ,
312
317
& Event :: PendingHTLCsForwardable { time_forwardable : _ } => {
@@ -398,17 +403,20 @@ impl MaybeReadable for Event {
398
403
let mut rejected_by_dest = false ;
399
404
let mut network_update = None ;
400
405
let mut all_paths_failed = Some ( true ) ;
406
+ let mut path: Option < Vec < RouteHop > > = Some ( vec ! [ ] ) ;
401
407
read_tlv_fields ! ( reader, {
402
408
( 0 , payment_hash, required) ,
403
409
( 1 , network_update, ignorable) ,
404
410
( 2 , rejected_by_dest, required) ,
405
411
( 3 , all_paths_failed, option) ,
412
+ ( 5 , path, vec_type) ,
406
413
} ) ;
407
414
Ok ( Some ( Event :: PaymentPathFailed {
408
415
payment_hash,
409
416
rejected_by_dest,
410
417
network_update,
411
418
all_paths_failed : all_paths_failed. unwrap ( ) ,
419
+ path : path. unwrap ( ) ,
412
420
#[ cfg( test) ]
413
421
error_code,
414
422
#[ cfg( test) ]
0 commit comments