@@ -18,8 +18,6 @@ use esplora_client::AsyncClient;
18
18
use futures:: { try_join, TryFutureExt } ;
19
19
use futures_util:: lock:: Mutex ;
20
20
use hex_conservative:: DisplayHex ;
21
- use lightning:: chain:: chainmonitor:: { MonitorUpdateId , Persist } ;
22
- use lightning:: chain:: channelmonitor:: { ChannelMonitor , ChannelMonitorUpdate } ;
23
21
use lightning:: chain:: transaction:: OutPoint ;
24
22
use lightning:: chain:: { BestBlock , ChannelMonitorUpdateStatus } ;
25
23
use lightning:: io:: Cursor ;
@@ -30,6 +28,14 @@ use lightning::sign::{InMemorySigner, SpendableOutputDescriptor};
30
28
use lightning:: util:: logger:: Logger ;
31
29
use lightning:: util:: persist:: Persister ;
32
30
use lightning:: util:: ser:: { Readable , ReadableArgs , Writeable } ;
31
+ use lightning:: {
32
+ chain:: chainmonitor:: { MonitorUpdateId , Persist } ,
33
+ log_trace,
34
+ } ;
35
+ use lightning:: {
36
+ chain:: channelmonitor:: { ChannelMonitor , ChannelMonitorUpdate } ,
37
+ log_warn,
38
+ } ;
33
39
use lightning:: { log_debug, log_error} ;
34
40
use serde:: { Deserialize , Serialize } ;
35
41
use std:: collections:: HashMap ;
@@ -213,6 +219,11 @@ impl<S: MutinyStorage> MutinyNodePersister<S> {
213
219
let key = self . get_key ( CHANNEL_MANAGER_KEY ) ;
214
220
match self . storage . get_data :: < VersionedValue > ( & key) {
215
221
Ok ( Some ( versioned_value) ) => {
222
+ log_trace ! (
223
+ mutiny_logger,
224
+ "Got versioned value: {}" ,
225
+ versioned_value. version
226
+ ) ;
216
227
// new encoding is in hex
217
228
let hex: String = serde_json:: from_value ( versioned_value. value . clone ( ) ) ?;
218
229
let bytes = FromHex :: from_hex ( & hex) ?;
@@ -222,19 +233,22 @@ impl<S: MutinyStorage> MutinyNodePersister<S> {
222
233
chain_monitor,
223
234
mutiny_chain,
224
235
fee_estimator,
225
- mutiny_logger,
236
+ mutiny_logger. clone ( ) ,
226
237
keys_manager,
227
238
router,
228
239
channel_monitors,
229
240
) ?;
230
241
242
+ log_trace ! ( mutiny_logger, "parsed channel manager, swapping it" ) ;
243
+
231
244
self . manager_version
232
245
. swap ( versioned_value. version , Ordering :: SeqCst ) ;
233
246
234
247
Ok ( res)
235
248
}
236
249
Ok ( None ) => {
237
250
// no key manager stored, start a new one
251
+ log_debug ! ( mutiny_logger, "Creating a new channel manager" ) ;
238
252
239
253
Self :: create_new_channel_manager (
240
254
network,
@@ -252,6 +266,11 @@ impl<S: MutinyStorage> MutinyNodePersister<S> {
252
266
}
253
267
Err ( _) => {
254
268
// old encoding with no version number and as an array of numbers
269
+ log_warn ! (
270
+ mutiny_logger,
271
+ "A very old encoding of channel manager with no version number, parsing it"
272
+ ) ;
273
+
255
274
let bytes = self . read_value ( CHANNEL_MANAGER_KEY ) ?;
256
275
Self :: parse_channel_manager (
257
276
bytes,
@@ -280,6 +299,8 @@ impl<S: MutinyStorage> MutinyNodePersister<S> {
280
299
router : Arc < Router > ,
281
300
mut channel_monitors : Vec < ( BlockHash , ChannelMonitor < InMemorySigner > ) > ,
282
301
) -> Result < ReadChannelManager < S > , MutinyError > {
302
+ log_debug ! ( mutiny_logger, "Parsing channel manager" ) ;
303
+
283
304
let mut channel_monitor_mut_references = Vec :: new ( ) ;
284
305
for ( _, channel_monitor) in channel_monitors. iter_mut ( ) {
285
306
channel_monitor_mut_references. push ( channel_monitor) ;
@@ -292,18 +313,23 @@ impl<S: MutinyStorage> MutinyNodePersister<S> {
292
313
chain_monitor,
293
314
mutiny_chain,
294
315
router,
295
- mutiny_logger,
316
+ mutiny_logger. clone ( ) ,
296
317
default_user_config ( accept_underpaying_htlcs) ,
297
318
channel_monitor_mut_references,
298
319
) ;
320
+
321
+ log_trace ! ( mutiny_logger, "Read channel manager arguments" ) ;
299
322
let mut readable_kv_value = Cursor :: new ( bytes) ;
300
323
let Ok ( ( _, channel_manager) ) =
301
324
<( BlockHash , PhantomChannelManager < S > ) >:: read ( & mut readable_kv_value, read_args)
302
325
else {
326
+ log_error ! ( mutiny_logger, "Could not read channel manager" ) ;
303
327
return Err ( MutinyError :: ReadError {
304
328
source : MutinyStorageError :: Other ( anyhow ! ( "could not read manager" ) ) ,
305
329
} ) ;
306
330
} ;
331
+
332
+ log_debug ! ( mutiny_logger, "Read channel manager okay" ) ;
307
333
Ok ( ReadChannelManager {
308
334
channel_manager,
309
335
is_restarting : true ,
0 commit comments