@@ -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
268257 // Refill set for every finished future, if we still have something to do.
269258 if let Some ( next_key) = stored_keys. pop ( ) {
@@ -278,8 +267,7 @@ where
278267 }
279268
280269 // Handle result.
281- let mut reader = Cursor :: new ( read_res) ;
282- let payment = PaymentDetails :: read ( & mut reader) . map_err ( |e| {
270+ let payment = PaymentDetails :: read ( & mut & * reader) . map_err ( |e| {
283271 log_error ! ( logger, "Failed to deserialize PaymentDetails: {}" , e) ;
284272 std:: io:: Error :: new (
285273 std:: io:: ErrorKind :: InvalidData ,
@@ -301,15 +289,13 @@ pub(crate) async fn read_output_sweeper(
301289 chain_data_source : Arc < ChainSource > , keys_manager : Arc < KeysManager > , kv_store : Arc < DynStore > ,
302290 logger : Arc < Logger > ,
303291) -> Result < Sweeper , std:: io:: Error > {
304- let mut reader = Cursor :: new (
305- KVStore :: read (
306- & * kv_store,
307- OUTPUT_SWEEPER_PERSISTENCE_PRIMARY_NAMESPACE ,
308- OUTPUT_SWEEPER_PERSISTENCE_SECONDARY_NAMESPACE ,
309- OUTPUT_SWEEPER_PERSISTENCE_KEY ,
310- )
311- . await ?,
312- ) ;
292+ let reader = KVStore :: read (
293+ & * kv_store,
294+ OUTPUT_SWEEPER_PERSISTENCE_PRIMARY_NAMESPACE ,
295+ OUTPUT_SWEEPER_PERSISTENCE_SECONDARY_NAMESPACE ,
296+ OUTPUT_SWEEPER_PERSISTENCE_KEY ,
297+ )
298+ . await ?;
313299 let args = (
314300 broadcaster,
315301 fee_estimator,
@@ -319,7 +305,7 @@ pub(crate) async fn read_output_sweeper(
319305 kv_store,
320306 logger. clone ( ) ,
321307 ) ;
322- let ( _, sweeper) = <( _ , Sweeper ) >:: read ( & mut reader, args) . map_err ( |e| {
308+ let ( _, sweeper) = <( _ , Sweeper ) >:: read ( & mut & * reader, args) . map_err ( |e| {
323309 log_error ! ( logger, "Failed to deserialize OutputSweeper: {}" , e) ;
324310 std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize OutputSweeper" )
325311 } ) ?;
@@ -332,16 +318,14 @@ pub(crate) async fn read_node_metrics<L: Deref>(
332318where
333319 L :: Target : LdkLogger ,
334320{
335- let mut reader = Cursor :: new (
336- KVStore :: read (
337- & * kv_store,
338- NODE_METRICS_PRIMARY_NAMESPACE ,
339- NODE_METRICS_SECONDARY_NAMESPACE ,
340- NODE_METRICS_KEY ,
341- )
342- . await ?,
343- ) ;
344- NodeMetrics :: read ( & mut reader) . map_err ( |e| {
321+ let reader = KVStore :: read (
322+ & * kv_store,
323+ NODE_METRICS_PRIMARY_NAMESPACE ,
324+ NODE_METRICS_SECONDARY_NAMESPACE ,
325+ NODE_METRICS_KEY ,
326+ )
327+ . await ?;
328+ NodeMetrics :: read ( & mut & * reader) . map_err ( |e| {
345329 log_error ! ( logger, "Failed to deserialize NodeMetrics: {}" , e) ;
346330 std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize NodeMetrics" )
347331 } )
@@ -480,7 +464,7 @@ macro_rules! impl_read_write_change_set_type {
480464 where
481465 L :: Target : LdkLogger ,
482466 {
483- let bytes =
467+ let reader =
484468 match KVStoreSync :: read( & * kv_store, $primary_namespace, $secondary_namespace, $key)
485469 {
486470 Ok ( bytes) => bytes,
@@ -501,9 +485,8 @@ macro_rules! impl_read_write_change_set_type {
501485 } ,
502486 } ;
503487
504- let mut reader = Cursor :: new( bytes) ;
505488 let res: Result <ChangeSetDeserWrapper <$change_set_type>, DecodeError > =
506- Readable :: read( & mut reader) ;
489+ Readable :: read( & mut & * reader) ;
507490 match res {
508491 Ok ( res) => Ok ( Some ( res. 0 ) ) ,
509492 Err ( e) => {
0 commit comments