@@ -11,10 +11,11 @@ use crate::logger::{
11
11
12
12
use lightning:: chain:: chaininterface:: { BroadcasterInterface , ConfirmationTarget , FeeEstimator } ;
13
13
use lightning:: chain:: keysinterface:: KeysManager ;
14
+ use lightning:: ln:: PaymentHash ;
14
15
use lightning:: routing:: gossip:: NodeId ;
15
16
use lightning:: util:: events as ldk_events;
16
17
use lightning:: util:: persist:: KVStorePersister ;
17
- use lightning:: util:: ser:: { Readable , ReadableArgs , Writeable , Writer } ;
18
+ use lightning:: util:: ser:: { MaybeReadable , Readable , ReadableArgs , Writeable , Writer } ;
18
19
19
20
use bitcoin:: secp256k1:: Secp256k1 ;
20
21
use rand:: { thread_rng, Rng } ;
@@ -29,28 +30,65 @@ pub(crate) const EVENTS_PERSISTENCE_KEY: &str = "events";
29
30
/// An LdkLiteEvent that should be handled by the user.
30
31
#[ derive( Debug , Clone ) ]
31
32
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
+ //},
34
57
}
35
58
36
59
impl Readable for LdkLiteEvent {
37
60
fn read < R : lightning:: io:: Read > (
38
61
reader : & mut R ,
39
62
) -> Result < Self , lightning:: ln:: msgs:: DecodeError > {
40
63
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 ) ,
44
75
}
45
76
}
46
77
}
47
78
48
79
impl Writeable for LdkLiteEvent {
49
80
fn write < W : Writer > ( & self , writer : & mut W ) -> Result < ( ) , lightning:: io:: Error > {
50
81
match self {
51
- Test => {
52
- // TODO
82
+ Self :: PaymentSuccessful { payment_hash, inner } => {
53
83
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) ?;
54
92
Ok ( ( ) )
55
93
}
56
94
}
@@ -285,6 +323,10 @@ impl ldk_events::EventHandler for LdkLiteEventHandler {
285
323
) ;
286
324
}
287
325
}
326
+ self . event_queue . add_event ( LdkLiteEvent :: PaymentSuccessful {
327
+ payment_hash : * payment_hash,
328
+ inner : event. clone ( ) ,
329
+ } ) . unwrap ( ) ;
288
330
}
289
331
ldk_events:: Event :: PaymentFailed { payment_hash, .. } => {
290
332
log_info ! (
0 commit comments