@@ -352,12 +352,22 @@ pub async fn run(opts: Opts) -> Result<()> {
352
352
353
353
let bitcoin_network = network. bitcoin_network ( ) ;
354
354
355
- let seed: Arc < ThreadSafeSeed > = match opts. app_seed {
355
+ let wallet_seed_file = & data_dir. join ( seed:: TAKER_WALLET_SEED_FILE ) ;
356
+ let wallet_seed: Arc < ThreadSafeSeed > = match opts. app_seed {
356
357
Some ( seed_bytes) => Arc :: new ( AppSeed :: from ( seed_bytes) ) ,
357
- None => Arc :: new ( RandomSeed :: initialize ( & data_dir . join ( seed :: TAKER_WALLET_SEED_FILE ) ) . await ?) ,
358
+ None => Arc :: new ( RandomSeed :: initialize ( wallet_seed_file ) . await ?) ,
358
359
} ;
359
360
360
- let identities = seed. derive_identities ( ) ;
361
+ let identity_seed_file = & data_dir. join ( seed:: TAKER_IDENTITY_SEED_FILE ) ;
362
+ if !identity_seed_file. exists ( ) {
363
+ tracing:: info!( "Copying wallet seed file for identity seed file" ) ;
364
+ // copy wallet seed file for backwards compatibility.
365
+ tokio:: fs:: copy ( & wallet_seed_file, & identity_seed_file) . await ?;
366
+ }
367
+
368
+ // use a different seed for the libp2p identity.
369
+ let identity_seed = RandomSeed :: initialize ( identity_seed_file) . await ?;
370
+ let identities = identity_seed. derive_identities ( ) ;
361
371
362
372
let ext_priv_key = match opts. wallet_xprv {
363
373
Some ( wallet_xprv) => {
@@ -367,7 +377,7 @@ pub async fn run(opts: Opts) -> Result<()> {
367
377
}
368
378
wallet_xprv
369
379
}
370
- None => seed . derive_extended_priv_key ( bitcoin_network) ?,
380
+ None => wallet_seed . derive_extended_priv_key ( bitcoin_network) ?,
371
381
} ;
372
382
373
383
let mut tasks = Tasks :: default ( ) ;
0 commit comments