@@ -18,7 +18,6 @@ use bdk_chain::tx_graph::ChangeSet as BdkTxGraphChangeSet;
1818use bdk_chain:: ConfirmationBlockTime ;
1919use bdk_wallet:: ChangeSet as BdkWalletChangeSet ;
2020use bitcoin:: Network ;
21- use lightning:: io:: Cursor ;
2221use lightning:: ln:: msgs:: DecodeError ;
2322use lightning:: routing:: gossip:: NetworkGraph ;
2423use lightning:: routing:: scoring:: {
@@ -94,16 +93,14 @@ pub(crate) async fn read_network_graph<L: Deref + Clone>(
9493where
9594 L :: Target : LdkLogger ,
9695{
97- let mut reader = Cursor :: new (
98- KVStore :: read (
99- & * kv_store,
100- NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE ,
101- NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE ,
102- NETWORK_GRAPH_PERSISTENCE_KEY ,
103- )
104- . await ?,
105- ) ;
106- NetworkGraph :: read ( & mut reader, logger. clone ( ) ) . map_err ( |e| {
96+ let reader = KVStore :: read (
97+ & * kv_store,
98+ NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE ,
99+ NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE ,
100+ NETWORK_GRAPH_PERSISTENCE_KEY ,
101+ )
102+ . await ?;
103+ NetworkGraph :: read ( & mut & * reader, logger. clone ( ) ) . map_err ( |e| {
107104 log_error ! ( logger, "Failed to deserialize NetworkGraph: {}" , e) ;
108105 std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize NetworkGraph" )
109106 } )
@@ -117,17 +114,15 @@ where
117114 L :: Target : LdkLogger ,
118115{
119116 let params = ProbabilisticScoringDecayParameters :: default ( ) ;
120- let mut reader = Cursor :: new (
121- KVStore :: read (
122- & * kv_store,
123- SCORER_PERSISTENCE_PRIMARY_NAMESPACE ,
124- SCORER_PERSISTENCE_SECONDARY_NAMESPACE ,
125- SCORER_PERSISTENCE_KEY ,
126- )
127- . await ?,
128- ) ;
117+ let reader = KVStore :: read (
118+ & * kv_store,
119+ SCORER_PERSISTENCE_PRIMARY_NAMESPACE ,
120+ SCORER_PERSISTENCE_SECONDARY_NAMESPACE ,
121+ SCORER_PERSISTENCE_KEY ,
122+ )
123+ . await ?;
129124 let args = ( params, network_graph, logger. clone ( ) ) ;
130- ProbabilisticScorer :: read ( & mut reader, args) . map_err ( |e| {
125+ ProbabilisticScorer :: read ( & mut & * reader, args) . map_err ( |e| {
131126 log_error ! ( logger, "Failed to deserialize scorer: {}" , e) ;
132127 std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize Scorer" )
133128 } )
@@ -140,16 +135,14 @@ pub(crate) async fn read_external_pathfinding_scores_from_cache<L: Deref>(
140135where
141136 L :: Target : LdkLogger ,
142137{
143- let mut reader = Cursor :: new (
144- KVStore :: read (
145- & * kv_store,
146- SCORER_PERSISTENCE_PRIMARY_NAMESPACE ,
147- SCORER_PERSISTENCE_SECONDARY_NAMESPACE ,
148- EXTERNAL_PATHFINDING_SCORES_CACHE_KEY ,
149- )
150- . await ?,
151- ) ;
152- ChannelLiquidities :: read ( & mut reader) . map_err ( |e| {
138+ let reader = KVStore :: read (
139+ & * kv_store,
140+ SCORER_PERSISTENCE_PRIMARY_NAMESPACE ,
141+ SCORER_PERSISTENCE_SECONDARY_NAMESPACE ,
142+ EXTERNAL_PATHFINDING_SCORES_CACHE_KEY ,
143+ )
144+ . await ?;
145+ ChannelLiquidities :: read ( & mut & * reader) . map_err ( |e| {
153146 log_error ! ( logger, "Failed to deserialize scorer: {}" , e) ;
154147 std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize Scorer" )
155148 } )
@@ -190,16 +183,14 @@ pub(crate) async fn read_event_queue<L: Deref + Clone>(
190183where
191184 L :: Target : LdkLogger ,
192185{
193- let mut reader = Cursor :: new (
194- KVStore :: read (
195- & * kv_store,
196- EVENT_QUEUE_PERSISTENCE_PRIMARY_NAMESPACE ,
197- EVENT_QUEUE_PERSISTENCE_SECONDARY_NAMESPACE ,
198- EVENT_QUEUE_PERSISTENCE_KEY ,
199- )
200- . await ?,
201- ) ;
202- EventQueue :: read ( & mut reader, ( kv_store, logger. clone ( ) ) ) . map_err ( |e| {
186+ let reader = KVStore :: read (
187+ & * kv_store,
188+ EVENT_QUEUE_PERSISTENCE_PRIMARY_NAMESPACE ,
189+ EVENT_QUEUE_PERSISTENCE_SECONDARY_NAMESPACE ,
190+ EVENT_QUEUE_PERSISTENCE_KEY ,
191+ )
192+ . await ?;
193+ EventQueue :: read ( & mut & * reader, ( kv_store, logger. clone ( ) ) ) . map_err ( |e| {
203194 log_error ! ( logger, "Failed to deserialize event queue: {}" , e) ;
204195 std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize EventQueue" )
205196 } )
@@ -212,16 +203,14 @@ pub(crate) async fn read_peer_info<L: Deref + Clone>(
212203where
213204 L :: Target : LdkLogger ,
214205{
215- let mut reader = Cursor :: new (
216- KVStore :: read (
217- & * kv_store,
218- PEER_INFO_PERSISTENCE_PRIMARY_NAMESPACE ,
219- PEER_INFO_PERSISTENCE_SECONDARY_NAMESPACE ,
220- PEER_INFO_PERSISTENCE_KEY ,
221- )
222- . await ?,
223- ) ;
224- PeerStore :: read ( & mut reader, ( kv_store, logger. clone ( ) ) ) . map_err ( |e| {
206+ let reader = KVStore :: read (
207+ & * kv_store,
208+ PEER_INFO_PERSISTENCE_PRIMARY_NAMESPACE ,
209+ PEER_INFO_PERSISTENCE_SECONDARY_NAMESPACE ,
210+ PEER_INFO_PERSISTENCE_KEY ,
211+ )
212+ . await ?;
213+ PeerStore :: read ( & mut & * reader, ( kv_store, logger. clone ( ) ) ) . map_err ( |e| {
225214 log_error ! ( logger, "Failed to deserialize peer store: {}" , e) ;
226215 std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize PeerStore" )
227216 } )
@@ -263,7 +252,7 @@ where
263252
264253 while let Some ( read_res) = set. join_next ( ) . await {
265254 // Exit early if we get an IO error.
266- let read_res = read_res
255+ let reader = read_res
267256 . map_err ( |e| {
268257 log_error ! ( logger, "Failed to read PaymentDetails: {}" , e) ;
269258 set. abort_all ( ) ;
@@ -288,8 +277,7 @@ where
288277 }
289278
290279 // Handle result.
291- let mut reader = Cursor :: new ( read_res) ;
292- let payment = PaymentDetails :: read ( & mut reader) . map_err ( |e| {
280+ let payment = PaymentDetails :: read ( & mut & * reader) . map_err ( |e| {
293281 log_error ! ( logger, "Failed to deserialize PaymentDetails: {}" , e) ;
294282 std:: io:: Error :: new (
295283 std:: io:: ErrorKind :: InvalidData ,
@@ -311,15 +299,13 @@ pub(crate) async fn read_output_sweeper(
311299 chain_data_source : Arc < ChainSource > , keys_manager : Arc < KeysManager > , kv_store : Arc < DynStore > ,
312300 logger : Arc < Logger > ,
313301) -> Result < Sweeper , std:: io:: Error > {
314- let mut reader = Cursor :: new (
315- KVStore :: read (
316- & * kv_store,
317- OUTPUT_SWEEPER_PERSISTENCE_PRIMARY_NAMESPACE ,
318- OUTPUT_SWEEPER_PERSISTENCE_SECONDARY_NAMESPACE ,
319- OUTPUT_SWEEPER_PERSISTENCE_KEY ,
320- )
321- . await ?,
322- ) ;
302+ let reader = KVStore :: read (
303+ & * kv_store,
304+ OUTPUT_SWEEPER_PERSISTENCE_PRIMARY_NAMESPACE ,
305+ OUTPUT_SWEEPER_PERSISTENCE_SECONDARY_NAMESPACE ,
306+ OUTPUT_SWEEPER_PERSISTENCE_KEY ,
307+ )
308+ . await ?;
323309 let args = (
324310 broadcaster,
325311 fee_estimator,
@@ -329,7 +315,7 @@ pub(crate) async fn read_output_sweeper(
329315 kv_store,
330316 logger. clone ( ) ,
331317 ) ;
332- let ( _, sweeper) = <( _ , Sweeper ) >:: read ( & mut reader, args) . map_err ( |e| {
318+ let ( _, sweeper) = <( _ , Sweeper ) >:: read ( & mut & * reader, args) . map_err ( |e| {
333319 log_error ! ( logger, "Failed to deserialize OutputSweeper: {}" , e) ;
334320 std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize OutputSweeper" )
335321 } ) ?;
@@ -342,16 +328,14 @@ pub(crate) async fn read_node_metrics<L: Deref>(
342328where
343329 L :: Target : LdkLogger ,
344330{
345- let mut reader = Cursor :: new (
346- KVStore :: read (
347- & * kv_store,
348- NODE_METRICS_PRIMARY_NAMESPACE ,
349- NODE_METRICS_SECONDARY_NAMESPACE ,
350- NODE_METRICS_KEY ,
351- )
352- . await ?,
353- ) ;
354- NodeMetrics :: read ( & mut reader) . map_err ( |e| {
331+ let reader = KVStore :: read (
332+ & * kv_store,
333+ NODE_METRICS_PRIMARY_NAMESPACE ,
334+ NODE_METRICS_SECONDARY_NAMESPACE ,
335+ NODE_METRICS_KEY ,
336+ )
337+ . await ?;
338+ NodeMetrics :: read ( & mut & * reader) . map_err ( |e| {
355339 log_error ! ( logger, "Failed to deserialize NodeMetrics: {}" , e) ;
356340 std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize NodeMetrics" )
357341 } )
@@ -490,7 +474,7 @@ macro_rules! impl_read_write_change_set_type {
490474 where
491475 L :: Target : LdkLogger ,
492476 {
493- let bytes =
477+ let reader =
494478 match KVStoreSync :: read( & * kv_store, $primary_namespace, $secondary_namespace, $key)
495479 {
496480 Ok ( bytes) => bytes,
@@ -511,9 +495,8 @@ macro_rules! impl_read_write_change_set_type {
511495 } ,
512496 } ;
513497
514- let mut reader = Cursor :: new( bytes) ;
515498 let res: Result <ChangeSetDeserWrapper <$change_set_type>, DecodeError > =
516- Readable :: read( & mut reader) ;
499+ Readable :: read( & mut & * reader) ;
517500 match res {
518501 Ok ( res) => Ok ( Some ( res. 0 ) ) ,
519502 Err ( e) => {
0 commit comments