@@ -11,10 +11,11 @@ use crate::logger::{
1111
1212use lightning:: chain:: chaininterface:: { BroadcasterInterface , ConfirmationTarget , FeeEstimator } ;
1313use lightning:: chain:: keysinterface:: KeysManager ;
14+ use lightning:: ln:: PaymentHash ;
1415use lightning:: routing:: gossip:: NodeId ;
1516use lightning:: util:: events as ldk_events;
1617use lightning:: util:: persist:: KVStorePersister ;
17- use lightning:: util:: ser:: { Readable , ReadableArgs , Writeable , Writer } ;
18+ use lightning:: util:: ser:: { MaybeReadable , Readable , ReadableArgs , Writeable , Writer } ;
1819
1920use bitcoin:: secp256k1:: Secp256k1 ;
2021use 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 ) ]
3132pub 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
3659impl 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
4879impl 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