Skip to content

Commit d4b41e6

Browse files
committed
Add PaymentSuccessful / PaymentFailed events
1 parent 02a049a commit d4b41e6

File tree

1 file changed

+50
-8
lines changed

1 file changed

+50
-8
lines changed

src/event.rs

Lines changed: 50 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@ use crate::logger::{
1111

1212
use lightning::chain::chaininterface::{BroadcasterInterface, ConfirmationTarget, FeeEstimator};
1313
use lightning::chain::keysinterface::KeysManager;
14+
use lightning::ln::PaymentHash;
1415
use lightning::routing::gossip::NodeId;
1516
use lightning::util::events as ldk_events;
1617
use lightning::util::persist::KVStorePersister;
17-
use lightning::util::ser::{Readable, ReadableArgs, Writeable, Writer};
18+
use lightning::util::ser::{MaybeReadable, Readable, ReadableArgs, Writeable, Writer};
1819

1920
use bitcoin::secp256k1::Secp256k1;
2021
use rand::{thread_rng, Rng};
@@ -29,28 +30,65 @@ pub(crate) const EVENTS_PERSISTENCE_KEY: &str = "events";
2930
/// An LdkLiteEvent that should be handled by the user.
3031
#[derive(Debug, Clone)]
3132
pub enum LdkLiteEvent {
32-
/// asdf
33-
Test,
33+
/// A payment we sent was successful.
34+
PaymentSuccessful {
35+
/// The hash of the payment.
36+
payment_hash: PaymentHash,
37+
/// The wrapped LDK event.
38+
inner: ldk_events::Event,
39+
},
40+
/// A payment we sent has failed.
41+
PaymentFailed {
42+
/// The hash of the payment.
43+
payment_hash: PaymentHash,
44+
/// The wrapped LDK event.
45+
inner: ldk_events::Event,
46+
},
47+
//PaymentReceived {
48+
//},
49+
//ChannelOpened {
50+
//},
51+
//ChannelClosed {
52+
//},
53+
//OnChainPaymentReceived {
54+
//},
55+
//OnChainPaymentReceived {
56+
//},
3457
}
3558

3659
impl Readable for LdkLiteEvent {
3760
fn read<R: lightning::io::Read>(
3861
reader: &mut R,
3962
) -> Result<Self, lightning::ln::msgs::DecodeError> {
4063
match Readable::read(reader)? {
41-
// TODO
42-
0u8 => Ok(LdkLiteEvent::Test),
43-
_ => Ok(LdkLiteEvent::Test),
64+
0u8 => {
65+
let payment_hash: PaymentHash = Readable::read(reader)?;
66+
let inner: ldk_events::Event = MaybeReadable::read(reader)?.unwrap();
67+
Ok(Self::PaymentSuccessful { payment_hash, inner })
68+
}
69+
1u8 => {
70+
let payment_hash: PaymentHash = Readable::read(reader)?;
71+
let inner: ldk_events::Event = MaybeReadable::read(reader)?.unwrap();
72+
Ok(Self::PaymentFailed { payment_hash, inner })
73+
}
74+
_ => Err(lightning::ln::msgs::DecodeError::InvalidValue),
4475
}
4576
}
4677
}
4778

4879
impl Writeable for LdkLiteEvent {
4980
fn write<W: Writer>(&self, writer: &mut W) -> Result<(), lightning::io::Error> {
5081
match self {
51-
Test => {
52-
// TODO
82+
Self::PaymentSuccessful { payment_hash, inner } => {
5383
0u8.write(writer)?;
84+
payment_hash.write(writer)?;
85+
inner.write(writer)?;
86+
Ok(())
87+
}
88+
Self::PaymentFailed { payment_hash, inner } => {
89+
1u8.write(writer)?;
90+
payment_hash.write(writer)?;
91+
inner.write(writer)?;
5492
Ok(())
5593
}
5694
}
@@ -285,6 +323,10 @@ impl ldk_events::EventHandler for LdkLiteEventHandler {
285323
);
286324
}
287325
}
326+
self.event_queue.add_event(LdkLiteEvent::PaymentSuccessful {
327+
payment_hash: *payment_hash,
328+
inner: event.clone(),
329+
}).unwrap();
288330
}
289331
ldk_events::Event::PaymentFailed { payment_hash, .. } => {
290332
log_info!(

0 commit comments

Comments
 (0)