@@ -233,6 +233,16 @@ where
233
233
}
234
234
}
235
235
236
+ impl < K : Deref > Deref for KVStoreSyncWrapper < K >
237
+ where
238
+ K :: Target : KVStoreSync ,
239
+ {
240
+ type Target = Self ;
241
+ fn deref ( & self ) -> & Self {
242
+ self
243
+ }
244
+ }
245
+
236
246
impl < K : Deref > KVStore for KVStoreSyncWrapper < K >
237
247
where
238
248
K :: Target : KVStoreSync ,
@@ -663,6 +673,86 @@ where
663
673
state : Arc < MonitorUpdatingPersisterState < K , L , ES , SP , BI , FE > > ,
664
674
}
665
675
676
+ impl < K : Deref , L : Deref , ES : Deref , SP : Deref , BI : Deref , FE : Deref >
677
+ MonitorUpdatingPersister < K , L , ES , SP , BI , FE >
678
+ where
679
+ K :: Target : KVStore ,
680
+ L :: Target : Logger ,
681
+ ES :: Target : EntropySource + Sized ,
682
+ SP :: Target : SignerProvider + Sized ,
683
+ BI :: Target : BroadcasterInterface ,
684
+ FE :: Target : FeeEstimator ,
685
+ {
686
+ pub fn new (
687
+ kv_store : K , logger : L , maximum_pending_updates : u64 , entropy_source : ES ,
688
+ signer_provider : SP , broadcaster : BI , fee_estimator : FE ,
689
+ ) -> Self {
690
+ let state = MonitorUpdatingPersisterState :: new (
691
+ kv_store,
692
+ logger,
693
+ maximum_pending_updates,
694
+ entropy_source,
695
+ signer_provider,
696
+ broadcaster,
697
+ fee_estimator,
698
+ ) ;
699
+ Self { state : Arc :: new ( state) }
700
+ }
701
+
702
+ pub async fn read_all_channel_monitors_with_updates (
703
+ & self ,
704
+ ) -> Result <
705
+ Vec < ( BlockHash , ChannelMonitor < <SP :: Target as SignerProvider >:: EcdsaSigner > ) > ,
706
+ io:: Error ,
707
+ > {
708
+ self . state . read_all_channel_monitors_with_updates ( ) . await
709
+ }
710
+ }
711
+
712
+ pub struct MonitorUpdatingPersisterSync <
713
+ K : Deref ,
714
+ L : Deref ,
715
+ ES : Deref ,
716
+ SP : Deref ,
717
+ BI : Deref ,
718
+ FE : Deref ,
719
+ > ( MonitorUpdatingPersister < KVStoreSyncWrapper < K > , L , ES , SP , BI , FE > )
720
+ where
721
+ K :: Target : KVStoreSync ,
722
+ L :: Target : Logger ,
723
+ ES :: Target : EntropySource + Sized ,
724
+ SP :: Target : SignerProvider + Sized ,
725
+ BI :: Target : BroadcasterInterface ,
726
+ FE :: Target : FeeEstimator ;
727
+
728
+ impl < K : Deref , L : Deref , ES : Deref , SP : Deref , BI : Deref , FE : Deref >
729
+ MonitorUpdatingPersisterSync < K , L , ES , SP , BI , FE >
730
+ where
731
+ K :: Target : KVStoreSync ,
732
+ L :: Target : Logger ,
733
+ ES :: Target : EntropySource + Sized ,
734
+ SP :: Target : SignerProvider + Sized ,
735
+ BI :: Target : BroadcasterInterface ,
736
+ FE :: Target : FeeEstimator ,
737
+ {
738
+ pub fn new (
739
+ kv_store : K , logger : L , maximum_pending_updates : u64 , entropy_source : ES ,
740
+ signer_provider : SP , broadcaster : BI , fee_estimator : FE ,
741
+ ) -> Self {
742
+ let kv_store_sync = KVStoreSyncWrapper :: new ( kv_store) ;
743
+ let persister = MonitorUpdatingPersister :: new (
744
+ kv_store_sync,
745
+ logger,
746
+ maximum_pending_updates,
747
+ entropy_source,
748
+ signer_provider,
749
+ broadcaster,
750
+ fee_estimator,
751
+ ) ;
752
+ Self ( persister)
753
+ }
754
+ }
755
+
666
756
struct MonitorUpdatingPersisterState < K : Deref , L : Deref , ES : Deref , SP : Deref , BI : Deref , FE : Deref >
667
757
where
668
758
K :: Target : KVStore ,
0 commit comments