@@ -53,7 +53,7 @@ use crate::util::async_poll::{MaybeSend, MaybeSync};
5353use crate :: util:: errors:: APIError ;
5454use crate :: util:: logger:: { Logger , WithContext } ;
5555use crate :: util:: native_async:: FutureSpawner ;
56- use crate :: util:: persist:: { MonitorName , MonitorUpdatingPersisterAsync , KVStore } ;
56+ use crate :: util:: persist:: { KVStore , MonitorName , MonitorUpdatingPersisterAsync } ;
5757#[ cfg( peer_storage) ]
5858use crate :: util:: ser:: { VecWriter , Writeable } ;
5959use crate :: util:: wakers:: { Future , Notifier } ;
@@ -202,7 +202,9 @@ pub trait Persist<ChannelSigner: EcdsaChannelSigner> {
202202 /// [`ChainMonitor::channel_monitor_updated`]. Because of this, this method is defaulted and
203203 /// hidden in the docs.
204204 #[ doc( hidden) ]
205- fn get_and_clear_completed_updates ( & self ) -> Vec < ( ChannelId , u64 ) > { Vec :: new ( ) }
205+ fn get_and_clear_completed_updates ( & self ) -> Vec < ( ChannelId , u64 ) > {
206+ Vec :: new ( )
207+ }
206208}
207209
208210struct MonitorHolder < ChannelSigner : EcdsaChannelSigner > {
@@ -246,39 +248,59 @@ impl<ChannelSigner: EcdsaChannelSigner> Deref for LockedChannelMonitor<'_, Chann
246248 }
247249}
248250
249-
250251/// An unconstructable [`Persist`]er which is used under the hood when you call
251252/// [`ChainMonitor::new_async_beta`].
252- pub struct AsyncPersister < K : Deref + MaybeSend + MaybeSync + ' static , S : FutureSpawner , L : Deref + MaybeSend + MaybeSync + ' static , ES : Deref + MaybeSend + MaybeSync + ' static , SP : Deref + MaybeSend + MaybeSync + ' static , BI : Deref + MaybeSend + MaybeSync + ' static , FE : Deref + MaybeSend + MaybeSync + ' static >
253- where
253+ pub struct AsyncPersister <
254+ K : Deref + MaybeSend + MaybeSync + ' static ,
255+ S : FutureSpawner ,
256+ L : Deref + MaybeSend + MaybeSync + ' static ,
257+ ES : Deref + MaybeSend + MaybeSync + ' static ,
258+ SP : Deref + MaybeSend + MaybeSync + ' static ,
259+ BI : Deref + MaybeSend + MaybeSync + ' static ,
260+ FE : Deref + MaybeSend + MaybeSync + ' static ,
261+ > where
254262 K :: Target : KVStore + MaybeSync ,
255263 L :: Target : Logger ,
256264 ES :: Target : EntropySource + Sized ,
257265 SP :: Target : SignerProvider + Sized ,
258266 BI :: Target : BroadcasterInterface ,
259- FE :: Target : FeeEstimator
267+ FE :: Target : FeeEstimator ,
260268{
261269 persister : MonitorUpdatingPersisterAsync < K , S , L , ES , SP , BI , FE > ,
262270}
263271
264- impl < K : Deref + MaybeSend + MaybeSync + ' static , S : FutureSpawner , L : Deref + MaybeSend + MaybeSync + ' static , ES : Deref + MaybeSend + MaybeSync + ' static , SP : Deref + MaybeSend + MaybeSync + ' static , BI : Deref + MaybeSend + MaybeSync + ' static , FE : Deref + MaybeSend + MaybeSync + ' static >
265- Deref for AsyncPersister < K , S , L , ES , SP , BI , FE >
272+ impl <
273+ K : Deref + MaybeSend + MaybeSync + ' static ,
274+ S : FutureSpawner ,
275+ L : Deref + MaybeSend + MaybeSync + ' static ,
276+ ES : Deref + MaybeSend + MaybeSync + ' static ,
277+ SP : Deref + MaybeSend + MaybeSync + ' static ,
278+ BI : Deref + MaybeSend + MaybeSync + ' static ,
279+ FE : Deref + MaybeSend + MaybeSync + ' static ,
280+ > Deref for AsyncPersister < K , S , L , ES , SP , BI , FE >
266281where
267282 K :: Target : KVStore + MaybeSync ,
268283 L :: Target : Logger ,
269284 ES :: Target : EntropySource + Sized ,
270285 SP :: Target : SignerProvider + Sized ,
271286 BI :: Target : BroadcasterInterface ,
272- FE :: Target : FeeEstimator
287+ FE :: Target : FeeEstimator ,
273288{
274289 type Target = Self ;
275290 fn deref ( & self ) -> & Self {
276291 self
277292 }
278293}
279294
280- impl < K : Deref + MaybeSend + MaybeSync + ' static , S : FutureSpawner , L : Deref + MaybeSend + MaybeSync + ' static , ES : Deref + MaybeSend + MaybeSync + ' static , SP : Deref + MaybeSend + MaybeSync + ' static , BI : Deref + MaybeSend + MaybeSync + ' static , FE : Deref + MaybeSend + MaybeSync + ' static >
281- Persist < <SP :: Target as SignerProvider >:: EcdsaSigner > for AsyncPersister < K , S , L , ES , SP , BI , FE >
295+ impl <
296+ K : Deref + MaybeSend + MaybeSync + ' static ,
297+ S : FutureSpawner ,
298+ L : Deref + MaybeSend + MaybeSync + ' static ,
299+ ES : Deref + MaybeSend + MaybeSync + ' static ,
300+ SP : Deref + MaybeSend + MaybeSync + ' static ,
301+ BI : Deref + MaybeSend + MaybeSync + ' static ,
302+ FE : Deref + MaybeSend + MaybeSync + ' static ,
303+ > Persist < <SP :: Target as SignerProvider >:: EcdsaSigner > for AsyncPersister < K , S , L , ES , SP , BI , FE >
282304where
283305 K :: Target : KVStore + MaybeSync ,
284306 L :: Target : Logger ,
@@ -289,7 +311,8 @@ where
289311 <SP :: Target as SignerProvider >:: EcdsaSigner : MaybeSend + ' static ,
290312{
291313 fn persist_new_channel (
292- & self , monitor_name : MonitorName , monitor : & ChannelMonitor < <SP :: Target as SignerProvider >:: EcdsaSigner > ,
314+ & self , monitor_name : MonitorName ,
315+ monitor : & ChannelMonitor < <SP :: Target as SignerProvider >:: EcdsaSigner > ,
293316 ) -> ChannelMonitorUpdateStatus {
294317 self . persister . spawn_async_persist_new_channel ( monitor_name, monitor) ;
295318 ChannelMonitorUpdateStatus :: InProgress
@@ -312,7 +335,6 @@ where
312335 }
313336}
314337
315-
316338/// An implementation of [`chain::Watch`] for monitoring channels.
317339///
318340/// Connected and disconnected blocks must be provided to `ChainMonitor` as documented by
@@ -378,8 +400,16 @@ impl<
378400 F : Deref + MaybeSend + MaybeSync + ' static ,
379401 L : Deref + MaybeSend + MaybeSync + ' static ,
380402 ES : Deref + MaybeSend + MaybeSync + ' static ,
381- > ChainMonitor < <SP :: Target as SignerProvider >:: EcdsaSigner , C , T , F , L , AsyncPersister < K , S , L , ES , SP , T , F > , ES >
382- where
403+ >
404+ ChainMonitor <
405+ <SP :: Target as SignerProvider >:: EcdsaSigner ,
406+ C ,
407+ T ,
408+ F ,
409+ L ,
410+ AsyncPersister < K , S , L , ES , SP , T , F > ,
411+ ES ,
412+ > where
383413 K :: Target : KVStore + MaybeSync ,
384414 SP :: Target : SignerProvider + Sized ,
385415 C :: Target : chain:: Filter ,
0 commit comments