Skip to content

Commit cc83be6

Browse files
committed
f Preliminary handling of ChannelReady
1 parent a834254 commit cc83be6

File tree

1 file changed

+54
-23
lines changed

1 file changed

+54
-23
lines changed

src/event.rs

+54-23
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)