@@ -51,13 +51,19 @@ pub enum LdkLiteEvent {
51
51
/// The value, in thousandths of a satoshi that has been received.
52
52
amount_msat : u64 ,
53
53
} ,
54
- // TODO: Implement after a corresponding LDK event is added.
55
- //ChannelOpened {
56
- //},
54
+ /// A channel is ready to be used.
55
+ ChannelReady {
56
+ /// The channel_id of the channel which is ready.
57
+ channel_id : [ u8 ; 32 ] ,
58
+ /// The user_channel_id of the channel which is ready.
59
+ user_channel_id : u64 ,
60
+ } ,
57
61
/// A channel has been closed.
58
62
ChannelClosed {
59
63
/// The channel_id of the channel which has been closed.
60
64
channel_id : [ u8 ; 32 ] ,
65
+ /// The user_channel_id of the channel which has been closed.
66
+ user_channel_id : u64 ,
61
67
} ,
62
68
// TODO: Implement on-chain events when better integrating with BDK wallet sync.
63
69
//OnChainPaymentSent {
@@ -84,12 +90,15 @@ impl Readable for LdkLiteEvent {
84
90
let amount_msat: u64 = Readable :: read ( reader) ?;
85
91
Ok ( Self :: PaymentReceived { payment_hash, amount_msat } )
86
92
}
87
- //3u8 => {
88
- // TODO ChannelOpened
89
- //}
93
+ 3u8 => {
94
+ let channel_id: [ u8 ; 32 ] = Readable :: read ( reader) ?;
95
+ let user_channel_id: u64 = Readable :: read ( reader) ?;
96
+ Ok ( Self :: ChannelReady { channel_id, user_channel_id } )
97
+ }
90
98
4u8 => {
91
99
let channel_id: [ u8 ; 32 ] = Readable :: read ( reader) ?;
92
- Ok ( Self :: ChannelClosed { channel_id } )
100
+ let user_channel_id: u64 = Readable :: read ( reader) ?;
101
+ Ok ( Self :: ChannelClosed { channel_id, user_channel_id } )
93
102
}
94
103
//5u8 => {
95
104
// TODO OnChainPaymentSent
@@ -121,12 +130,16 @@ impl Writeable for LdkLiteEvent {
121
130
amount_msat. write ( writer) ?;
122
131
Ok ( ( ) )
123
132
}
124
- //Self::ChannelOpened { .. } => {
125
- //TODO
126
- //}
127
- Self :: ChannelClosed { channel_id } => {
133
+ Self :: ChannelReady { channel_id, user_channel_id } => {
134
+ 3u8 . write ( writer) ?;
135
+ channel_id. write ( writer) ?;
136
+ user_channel_id. write ( writer) ?;
137
+ Ok ( ( ) )
138
+ }
139
+ Self :: ChannelClosed { channel_id, user_channel_id } => {
128
140
4u8 . write ( writer) ?;
129
141
channel_id. write ( writer) ?;
142
+ user_channel_id. write ( writer) ?;
130
143
Ok ( ( ) )
131
144
} //Self::OnChainPaymentSent { .. } => {
132
145
//TODO
@@ -318,7 +331,7 @@ impl LdkEventHandler for LdkLiteEventHandler {
318
331
payment_hash : * payment_hash,
319
332
amount_msat : * amount_msat,
320
333
} )
321
- . unwrap ( ) ;
334
+ . expect ( "Failed to push to event queue" ) ;
322
335
} else {
323
336
log_error ! (
324
337
self . logger,
@@ -361,6 +374,12 @@ impl LdkEventHandler for LdkLiteEventHandler {
361
374
} ) ;
362
375
}
363
376
}
377
+ self . event_queue
378
+ . add_event ( Event :: PaymentReceived {
379
+ payment_hash : * payment_hash,
380
+ amount_msat : * amount_msat,
381
+ } )
382
+ . expect ( "Failed to push to event queue" ) ;
364
383
}
365
384
LdkEvent :: PaymentSent {
366
385
payment_preimage,
@@ -389,10 +408,8 @@ impl LdkEventHandler for LdkLiteEventHandler {
389
408
}
390
409
}
391
410
self . event_queue
392
- . add_event ( LdkLiteEvent :: PaymentSuccessful {
393
- payment_hash : * payment_hash,
394
- } )
395
- . unwrap ( ) ;
411
+ . add_event ( Event :: PaymentSuccessful { payment_hash : * payment_hash } )
412
+ . expect ( "Failed to push to event queue" ) ;
396
413
}
397
414
LdkEvent :: PaymentFailed { payment_hash, .. } => {
398
415
log_info ! (
@@ -408,10 +425,8 @@ impl LdkEventHandler for LdkLiteEventHandler {
408
425
payment. status = PaymentStatus :: Failed ;
409
426
}
410
427
self . event_queue
411
- . add_event ( LdkLiteEvent :: PaymentFailed {
412
- payment_hash : * payment_hash,
413
- } )
414
- . unwrap ( ) ;
428
+ . add_event ( Event :: PaymentFailed { payment_hash : * payment_hash } )
429
+ . expect ( "Failed to push to event queue" ) ;
415
430
}
416
431
417
432
LdkEvent :: PaymentPathSuccessful { .. } => { }
@@ -514,8 +529,23 @@ impl LdkEventHandler for LdkLiteEventHandler {
514
529
) ;
515
530
}
516
531
}
517
-
518
- LdkEvent :: ChannelClosed { channel_id, reason, user_channel_id : _ } => {
532
+ LdkEvent :: ChannelReady {
533
+ channel_id, user_channel_id, counterparty_node_id, ..
534
+ } => {
535
+ log_info ! (
536
+ self . logger,
537
+ "Channel {} with {} ready to be used." ,
538
+ hex_utils:: to_string( channel_id) ,
539
+ counterparty_node_id,
540
+ ) ;
541
+ self . event_queue
542
+ . add_event ( LdkLiteEvent :: ChannelReady {
543
+ channel_id : * channel_id,
544
+ user_channel_id : * user_channel_id,
545
+ } )
546
+ . expect ( "Failed to push to event queue" ) ;
547
+ }
548
+ LdkEvent :: ChannelClosed { channel_id, reason, user_channel_id } => {
519
549
log_info ! (
520
550
self . logger,
521
551
"Channel {} closed due to: {:?}" ,
@@ -525,8 +555,9 @@ impl LdkEventHandler for LdkLiteEventHandler {
525
555
self . event_queue
526
556
. add_event ( LdkLiteEvent :: ChannelClosed {
527
557
channel_id : * channel_id,
558
+ user_channel_id : * user_channel_id,
528
559
} )
529
- . unwrap ( ) ;
560
+ . expect ( "Failed to push to event queue" ) ;
530
561
}
531
562
LdkEvent :: DiscardFunding { .. } => { }
532
563
}
0 commit comments