11use crate :: {
2- hex_utils, ChannelManager , Config , Error , NetworkGraph , PaymentInfo , PaymentInfoStorage ,
3- PaymentStatus , Wallet ,
2+ hex_utils, ChannelId , ChannelManager , Config , Error , NetworkGraph , PaymentInfo ,
3+ PaymentInfoStorage , PaymentStatus , UserChannelId , Wallet ,
44} ;
55
66use crate :: logger:: { log_error, log_given_level, log_info, log_internal, Logger } ;
@@ -50,16 +50,16 @@ pub enum Event {
5050 /// A channel is ready to be used.
5151 ChannelReady {
5252 /// The `channel_id` of the channel.
53- channel_id : [ u8 ; 32 ] ,
53+ channel_id : ChannelId ,
5454 /// The `user_channel_id` of the channel.
55- user_channel_id : u128 ,
55+ user_channel_id : UserChannelId ,
5656 } ,
5757 /// A channel has been closed.
5858 ChannelClosed {
5959 /// The `channel_id` of the channel.
60- channel_id : [ u8 ; 32 ] ,
60+ channel_id : ChannelId ,
6161 /// The `user_channel_id` of the channel.
62- user_channel_id : u128 ,
62+ user_channel_id : UserChannelId ,
6363 } ,
6464}
6565
@@ -83,13 +83,13 @@ impl Readable for Event {
8383 Ok ( Self :: PaymentReceived { payment_hash, amount_msat } )
8484 }
8585 3u8 => {
86- let channel_id: [ u8 ; 32 ] = Readable :: read ( reader) ?;
87- let user_channel_id: u128 = Readable :: read ( reader) ?;
86+ let channel_id = ChannelId ( Readable :: read ( reader) ?) ;
87+ let user_channel_id = UserChannelId ( Readable :: read ( reader) ?) ;
8888 Ok ( Self :: ChannelReady { channel_id, user_channel_id } )
8989 }
9090 4u8 => {
91- let channel_id: [ u8 ; 32 ] = Readable :: read ( reader) ?;
92- let user_channel_id: u128 = Readable :: read ( reader) ?;
91+ let channel_id = ChannelId ( Readable :: read ( reader) ?) ;
92+ let user_channel_id = UserChannelId ( Readable :: read ( reader) ?) ;
9393 Ok ( Self :: ChannelClosed { channel_id, user_channel_id } )
9494 }
9595 _ => Err ( lightning:: ln:: msgs:: DecodeError :: InvalidValue ) ,
@@ -118,14 +118,14 @@ impl Writeable for Event {
118118 }
119119 Self :: ChannelReady { channel_id, user_channel_id } => {
120120 3u8 . write ( writer) ?;
121- channel_id. write ( writer) ?;
122- user_channel_id. write ( writer) ?;
121+ channel_id. 0 . write ( writer) ?;
122+ user_channel_id. 0 . write ( writer) ?;
123123 Ok ( ( ) )
124124 }
125125 Self :: ChannelClosed { channel_id, user_channel_id } => {
126126 4u8 . write ( writer) ?;
127- channel_id. write ( writer) ?;
128- user_channel_id. write ( writer) ?;
127+ channel_id. 0 . write ( writer) ?;
128+ user_channel_id. 0 . write ( writer) ?;
129129 Ok ( ( ) )
130130 }
131131 }
@@ -136,7 +136,7 @@ pub(crate) struct EventQueue<K: Deref>
136136where
137137 K :: Target : KVStorePersister ,
138138{
139- queue : Mutex < VecDeque < Arc < Event > > > ,
139+ queue : Mutex < VecDeque < Event > > ,
140140 notifier : Condvar ,
141141 persister : K ,
142142}
@@ -146,26 +146,26 @@ where
146146 K :: Target : KVStorePersister ,
147147{
148148 pub ( crate ) fn new ( persister : K ) -> Self {
149- let queue: Mutex < VecDeque < Arc < Event > > > = Mutex :: new ( VecDeque :: new ( ) ) ;
149+ let queue: Mutex < VecDeque < Event > > = Mutex :: new ( VecDeque :: new ( ) ) ;
150150 let notifier = Condvar :: new ( ) ;
151151 Self { queue, notifier, persister }
152152 }
153153
154154 pub ( crate ) fn add_event ( & self , event : Event ) -> Result < ( ) , Error > {
155155 {
156156 let mut locked_queue = self . queue . lock ( ) . unwrap ( ) ;
157- locked_queue. push_back ( Arc :: new ( event) ) ;
157+ locked_queue. push_back ( event) ;
158158 self . persist_queue ( & * locked_queue) ?;
159159 }
160160
161161 self . notifier . notify_one ( ) ;
162162 Ok ( ( ) )
163163 }
164164
165- pub ( crate ) fn next_event ( & self ) -> Arc < Event > {
165+ pub ( crate ) fn next_event ( & self ) -> Event {
166166 let locked_queue =
167167 self . notifier . wait_while ( self . queue . lock ( ) . unwrap ( ) , |queue| queue. is_empty ( ) ) . unwrap ( ) ;
168- Arc :: clone ( & locked_queue. front ( ) . unwrap ( ) )
168+ locked_queue. front ( ) . unwrap ( ) . clone ( )
169169 }
170170
171171 pub ( crate ) fn event_handled ( & self ) -> Result < ( ) , Error > {
@@ -178,7 +178,7 @@ where
178178 Ok ( ( ) )
179179 }
180180
181- fn persist_queue ( & self , locked_queue : & VecDeque < Arc < Event > > ) -> Result < ( ) , Error > {
181+ fn persist_queue ( & self , locked_queue : & VecDeque < Event > ) -> Result < ( ) , Error > {
182182 self . persister
183183 . persist ( EVENTS_PERSISTENCE_KEY , & EventQueueSerWrapper ( locked_queue) )
184184 . map_err ( |_| Error :: PersistenceFailed ) ?;
@@ -195,13 +195,13 @@ where
195195 reader : & mut R , persister : K ,
196196 ) -> Result < Self , lightning:: ln:: msgs:: DecodeError > {
197197 let read_queue: EventQueueDeserWrapper = Readable :: read ( reader) ?;
198- let queue: Mutex < VecDeque < Arc < Event > > > = Mutex :: new ( read_queue. 0 ) ;
198+ let queue: Mutex < VecDeque < Event > > = Mutex :: new ( read_queue. 0 ) ;
199199 let notifier = Condvar :: new ( ) ;
200200 Ok ( Self { queue, notifier, persister } )
201201 }
202202}
203203
204- struct EventQueueDeserWrapper ( VecDeque < Arc < Event > > ) ;
204+ struct EventQueueDeserWrapper ( VecDeque < Event > ) ;
205205
206206impl Readable for EventQueueDeserWrapper {
207207 fn read < R : lightning:: io:: Read > (
@@ -210,13 +210,13 @@ impl Readable for EventQueueDeserWrapper {
210210 let len: u16 = Readable :: read ( reader) ?;
211211 let mut queue = VecDeque :: with_capacity ( len as usize ) ;
212212 for _ in 0 ..len {
213- queue. push_back ( Arc :: new ( Readable :: read ( reader) ?) ) ;
213+ queue. push_back ( Readable :: read ( reader) ?) ;
214214 }
215215 Ok ( Self ( queue) )
216216 }
217217}
218218
219- struct EventQueueSerWrapper < ' a > ( & ' a VecDeque < Arc < Event > > ) ;
219+ struct EventQueueSerWrapper < ' a > ( & ' a VecDeque < Event > ) ;
220220
221221impl Writeable for EventQueueSerWrapper < ' _ > {
222222 fn write < W : Writer > ( & self , writer : & mut W ) -> Result < ( ) , lightning:: io:: Error > {
@@ -559,7 +559,10 @@ where
559559 counterparty_node_id,
560560 ) ;
561561 self . event_queue
562- . add_event ( Event :: ChannelReady { channel_id, user_channel_id } )
562+ . add_event ( Event :: ChannelReady {
563+ channel_id : ChannelId ( channel_id) ,
564+ user_channel_id : UserChannelId ( user_channel_id) ,
565+ } )
563566 . expect ( "Failed to push to event queue" ) ;
564567 }
565568 LdkEvent :: ChannelClosed { channel_id, reason, user_channel_id } => {
@@ -570,7 +573,10 @@ where
570573 reason
571574 ) ;
572575 self . event_queue
573- . add_event ( Event :: ChannelClosed { channel_id, user_channel_id } )
576+ . add_event ( Event :: ChannelClosed {
577+ channel_id : ChannelId ( channel_id) ,
578+ user_channel_id : UserChannelId ( user_channel_id) ,
579+ } )
574580 . expect ( "Failed to push to event queue" ) ;
575581 }
576582 LdkEvent :: DiscardFunding { .. } => { }
0 commit comments