@@ -51,13 +51,19 @@ pub enum LdkLiteEvent {
5151 /// The value, in thousandths of a satoshi that has been received.
5252 amount_msat : u64 ,
5353 } ,
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+ } ,
5761 /// A channel has been closed.
5862 ChannelClosed {
5963 /// The channel_id of the channel which has been closed.
6064 channel_id : [ u8 ; 32 ] ,
65+ /// The user_channel_id of the channel which has been closed.
66+ user_channel_id : u64 ,
6167 } ,
6268 // TODO: Implement on-chain events when better integrating with BDK wallet sync.
6369 //OnChainPaymentSent {
@@ -84,12 +90,15 @@ impl Readable for LdkLiteEvent {
8490 let amount_msat: u64 = Readable :: read ( reader) ?;
8591 Ok ( Self :: PaymentReceived { payment_hash, amount_msat } )
8692 }
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+ }
9098 4u8 => {
9199 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 } )
93102 }
94103 //5u8 => {
95104 // TODO OnChainPaymentSent
@@ -121,12 +130,16 @@ impl Writeable for LdkLiteEvent {
121130 amount_msat. write ( writer) ?;
122131 Ok ( ( ) )
123132 }
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 } => {
128140 4u8 . write ( writer) ?;
129141 channel_id. write ( writer) ?;
142+ user_channel_id. write ( writer) ?;
130143 Ok ( ( ) )
131144 } //Self::OnChainPaymentSent { .. } => {
132145 //TODO
@@ -318,7 +331,7 @@ impl LdkEventHandler for LdkLiteEventHandler {
318331 payment_hash : * payment_hash,
319332 amount_msat : * amount_msat,
320333 } )
321- . unwrap ( ) ;
334+ . expect ( "Failed to push to event queue" ) ;
322335 } else {
323336 log_error ! (
324337 self . logger,
@@ -361,6 +374,12 @@ impl LdkEventHandler for LdkLiteEventHandler {
361374 } ) ;
362375 }
363376 }
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" ) ;
364383 }
365384 LdkEvent :: PaymentSent {
366385 payment_preimage,
@@ -389,10 +408,8 @@ impl LdkEventHandler for LdkLiteEventHandler {
389408 }
390409 }
391410 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" ) ;
396413 }
397414 LdkEvent :: PaymentFailed { payment_hash, .. } => {
398415 log_info ! (
@@ -408,10 +425,8 @@ impl LdkEventHandler for LdkLiteEventHandler {
408425 payment. status = PaymentStatus :: Failed ;
409426 }
410427 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" ) ;
415430 }
416431
417432 LdkEvent :: PaymentPathSuccessful { .. } => { }
@@ -514,8 +529,23 @@ impl LdkEventHandler for LdkLiteEventHandler {
514529 ) ;
515530 }
516531 }
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 } => {
519549 log_info ! (
520550 self . logger,
521551 "Channel {} closed due to: {:?}" ,
@@ -525,8 +555,9 @@ impl LdkEventHandler for LdkLiteEventHandler {
525555 self . event_queue
526556 . add_event ( LdkLiteEvent :: ChannelClosed {
527557 channel_id : * channel_id,
558+ user_channel_id : * user_channel_id,
528559 } )
529- . unwrap ( ) ;
560+ . expect ( "Failed to push to event queue" ) ;
530561 }
531562 LdkEvent :: DiscardFunding { .. } => { }
532563 }
0 commit comments