diff --git a/src/bitcoin/electrum/mod.rs b/src/bitcoin/electrum/mod.rs index 8b9745c7..af14c586 100644 --- a/src/bitcoin/electrum/mod.rs +++ b/src/bitcoin/electrum/mod.rs @@ -55,12 +55,13 @@ impl Electrum { pub fn new( client: client::Client, bdk_wallet: wallet::BdkWallet, + full_scan: bool, ) -> Result { Ok(Self { client, bdk_wallet, sync_count: 0, - full_scan: false, // by default, only perform full scan if wallet's local chain has height 0 + full_scan, }) } diff --git a/src/lib.rs b/src/lib.rs index b43ca31b..484cd6cd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -361,7 +361,8 @@ fn setup_electrum( receive_index, change_index, ); - let electrum = Electrum::new(client, bdk_wallet).map_err(StartupError::Electrum)?; + let full_scan = db_conn.rescan_timestamp().is_some(); + let electrum = Electrum::new(client, bdk_wallet, full_scan).map_err(StartupError::Electrum)?; electrum .sanity_checks(&genesis_hash) .map_err(StartupError::Electrum)?;