@@ -20,6 +20,7 @@ use std::fs;
2020use std:: io:: Write ;
2121use std:: ops:: Deref ;
2222use std:: path:: Path ;
23+ use std:: sync:: Arc ;
2324
2425use super :: KVStore ;
2526
@@ -46,11 +47,10 @@ pub(crate) fn read_or_generate_seed_file(keys_seed_path: &str) -> [u8; WALLET_KE
4647}
4748
4849/// Read previously persisted [`ChannelMonitor`]s from the store.
49- pub ( crate ) fn read_channel_monitors < K : Deref , ES : Deref , SP : Deref > (
50- kv_store : K , entropy_source : ES , signer_provider : SP ,
50+ pub ( crate ) fn read_channel_monitors < K : KVStore + Sync + Send , ES : Deref , SP : Deref > (
51+ kv_store : Arc < K > , entropy_source : ES , signer_provider : SP ,
5152) -> std:: io:: Result < Vec < ( BlockHash , ChannelMonitor < <SP :: Target as SignerProvider >:: Signer > ) > >
5253where
53- K :: Target : KVStore ,
5454 ES :: Target : EntropySource + Sized ,
5555 SP :: Target : SignerProvider + Sized ,
5656{
@@ -92,11 +92,10 @@ where
9292}
9393
9494/// Read a previously persisted [`NetworkGraph`] from the store.
95- pub ( crate ) fn read_network_graph < K : Deref , L : Deref > (
96- kv_store : K , logger : L ,
95+ pub ( crate ) fn read_network_graph < K : KVStore + Sync + Send , L : Deref > (
96+ kv_store : Arc < K > , logger : L ,
9797) -> Result < NetworkGraph < L > , std:: io:: Error >
9898where
99- K :: Target : KVStore ,
10099 L :: Target : Logger ,
101100{
102101 let mut reader =
@@ -108,11 +107,10 @@ where
108107}
109108
110109/// Read a previously persisted [`Scorer`] from the store.
111- pub ( crate ) fn read_scorer < K : Deref , G : Deref < Target = NetworkGraph < L > > , L : Deref > (
112- kv_store : K , network_graph : G , logger : L ,
110+ pub ( crate ) fn read_scorer < K : KVStore + Sync + Send , G : Deref < Target = NetworkGraph < L > > , L : Deref > (
111+ kv_store : Arc < K > , network_graph : G , logger : L ,
113112) -> Result < ProbabilisticScorer < G , L > , std:: io:: Error >
114113where
115- K :: Target : KVStore ,
116114 L :: Target : Logger ,
117115{
118116 let params = ProbabilisticScoringParameters :: default ( ) ;
@@ -125,11 +123,10 @@ where
125123}
126124
127125/// Read previously persisted events from the store.
128- pub ( crate ) fn read_event_queue < K : Deref , L : Deref > (
129- kv_store : K , logger : L ,
126+ pub ( crate ) fn read_event_queue < K : KVStore + Sync + Send , L : Deref > (
127+ kv_store : Arc < K > , logger : L ,
130128) -> Result < EventQueue < K , L > , std:: io:: Error >
131129where
132- K :: Target : KVStore ,
133130 L :: Target : Logger ,
134131{
135132 let mut reader =
@@ -141,11 +138,10 @@ where
141138}
142139
143140/// Read previously persisted peer info from the store.
144- pub ( crate ) fn read_peer_info < K : Deref , L : Deref > (
145- kv_store : K , logger : L ,
141+ pub ( crate ) fn read_peer_info < K : KVStore + Sync + Send , L : Deref > (
142+ kv_store : Arc < K > , logger : L ,
146143) -> Result < PeerStore < K , L > , std:: io:: Error >
147144where
148- K :: Target : KVStore ,
149145 L :: Target : Logger ,
150146{
151147 let mut reader = kv_store. read ( PEER_INFO_PERSISTENCE_NAMESPACE , PEER_INFO_PERSISTENCE_KEY ) ?;
@@ -156,10 +152,9 @@ where
156152}
157153
158154/// Read previously persisted payments information from the store.
159- pub ( crate ) fn read_payments < K : Deref > ( kv_store : K ) -> Result < Vec < PaymentDetails > , std:: io:: Error >
160- where
161- K :: Target : KVStore ,
162- {
155+ pub ( crate ) fn read_payments < K : KVStore + Sync + Send > (
156+ kv_store : Arc < K > ,
157+ ) -> Result < Vec < PaymentDetails > , std:: io:: Error > {
163158 let mut res = Vec :: new ( ) ;
164159
165160 for stored_key in kv_store. list ( PAYMENT_INFO_PERSISTENCE_NAMESPACE ) ? {
@@ -174,10 +169,9 @@ where
174169 Ok ( res)
175170}
176171
177- pub ( crate ) fn read_latest_rgs_sync_timestamp < K : Deref > ( kv_store : K ) -> Result < u32 , std:: io:: Error >
178- where
179- K :: Target : KVStore ,
180- {
172+ pub ( crate ) fn read_latest_rgs_sync_timestamp < K : KVStore + Sync + Send > (
173+ kv_store : Arc < K > ,
174+ ) -> Result < u32 , std:: io:: Error > {
181175 let mut reader =
182176 kv_store. read ( LATEST_RGS_SYNC_TIMESTAMP_NAMESPACE , LATEST_RGS_SYNC_TIMESTAMP_KEY ) ?;
183177 u32:: read ( & mut reader) . map_err ( |_| {
@@ -188,11 +182,10 @@ where
188182 } )
189183}
190184
191- pub ( crate ) fn write_latest_rgs_sync_timestamp < K : Deref , L : Deref > (
192- updated_timestamp : u32 , kv_store : K , logger : L ,
185+ pub ( crate ) fn write_latest_rgs_sync_timestamp < K : KVStore + Sync + Send , L : Deref > (
186+ updated_timestamp : u32 , kv_store : Arc < K > , logger : L ,
193187) -> Result < ( ) , Error >
194188where
195- K :: Target : KVStore ,
196189 L :: Target : Logger ,
197190{
198191 let data = updated_timestamp. encode ( ) ;
@@ -211,14 +204,11 @@ where
211204 Ok ( ( ) )
212205}
213206
214- pub ( crate ) fn read_latest_node_ann_bcast_timestamp < K : Deref > (
215- kv_store : K ,
216- ) -> Result < u64 , std:: io:: Error >
217- where
218- K :: Target : KVStore ,
219- {
207+ pub ( crate ) fn read_latest_node_ann_bcast_timestamp < K : KVStore + Sync + Send > (
208+ kv_store : Arc < K > ,
209+ ) -> Result < u64 , std:: io:: Error > {
220210 let mut reader = kv_store
221- . read ( LATEST_NODE_ANN_BCAST_TIMSTAMP_NAMESPACE , LATEST_NODE_ANN_BCAST_TIMSTAMP_KEY ) ?;
211+ . read ( LATEST_NODE_ANN_BCAST_TIMESTAMP_NAMESPACE , LATEST_NODE_ANN_BCAST_TIMESTAMP_KEY ) ?;
222212 u64:: read ( & mut reader) . map_err ( |_| {
223213 std:: io:: Error :: new (
224214 std:: io:: ErrorKind :: InvalidData ,
@@ -227,43 +217,28 @@ where
227217 } )
228218}
229219
230- pub ( crate ) fn write_latest_node_ann_bcast_timestamp < K : Deref , L : Deref > (
231- updated_timestamp : u64 , kv_store : K , logger : L ,
220+ pub ( crate ) fn write_latest_node_ann_bcast_timestamp < K : KVStore + Sync + Send , L : Deref > (
221+ updated_timestamp : u64 , kv_store : Arc < K > , logger : L ,
232222) -> Result < ( ) , Error >
233223where
234- K :: Target : KVStore ,
235224 L :: Target : Logger ,
236225{
237- let mut writer = kv_store
238- . write ( LATEST_NODE_ANN_BCAST_TIMSTAMP_NAMESPACE , LATEST_NODE_ANN_BCAST_TIMSTAMP_KEY )
226+ let data = updated_timestamp. encode ( ) ;
227+ kv_store
228+ . write (
229+ LATEST_NODE_ANN_BCAST_TIMESTAMP_NAMESPACE ,
230+ LATEST_NODE_ANN_BCAST_TIMESTAMP_KEY ,
231+ & data,
232+ )
239233 . map_err ( |e| {
240234 log_error ! (
241235 logger,
242- "Getting writer for key {}/{} failed due to: {}" ,
243- LATEST_NODE_ANN_BCAST_TIMSTAMP_NAMESPACE ,
244- LATEST_NODE_ANN_BCAST_TIMSTAMP_KEY ,
236+ "Writing data to key {}/{} failed due to: {}" ,
237+ LATEST_NODE_ANN_BCAST_TIMESTAMP_NAMESPACE ,
238+ LATEST_NODE_ANN_BCAST_TIMESTAMP_KEY ,
245239 e
246240 ) ;
247241 Error :: PersistenceFailed
248242 } ) ?;
249- updated_timestamp. write ( & mut writer) . map_err ( |e| {
250- log_error ! (
251- logger,
252- "Writing data to key {}/{} failed due to: {}" ,
253- LATEST_NODE_ANN_BCAST_TIMSTAMP_NAMESPACE ,
254- LATEST_NODE_ANN_BCAST_TIMSTAMP_KEY ,
255- e
256- ) ;
257- Error :: PersistenceFailed
258- } ) ?;
259- writer. commit ( ) . map_err ( |e| {
260- log_error ! (
261- logger,
262- "Committing data to key {}/{} failed due to: {}" ,
263- LATEST_NODE_ANN_BCAST_TIMSTAMP_NAMESPACE ,
264- LATEST_NODE_ANN_BCAST_TIMSTAMP_KEY ,
265- e
266- ) ;
267- Error :: PersistenceFailed
268- } )
243+ Ok ( ( ) )
269244}
0 commit comments