diff --git a/zebra-state/src/service/finalized_state.rs b/zebra-state/src/service/finalized_state.rs index 57834622..a684a720 100644 --- a/zebra-state/src/service/finalized_state.rs +++ b/zebra-state/src/service/finalized_state.rs @@ -5,7 +5,7 @@ mod disk_format; #[cfg(test)] mod tests; -use std::{collections::HashMap, convert::TryInto, sync::Arc}; +use std::{collections::HashMap, convert::TryInto, path::Path, sync::Arc}; use zebra_chain::transparent; use zebra_chain::{ @@ -73,6 +73,10 @@ impl FinalizedState { debug_stop_at_height: config.debug_stop_at_height.map(block::Height), }; + // Make sure the database returned from the `db_config()` is always the same + // as the one returned by the `path()` method of the FinalizedState. + assert_eq!(new_state.path(), path); + if let Some(tip_height) = new_state.finalized_tip_height() { if new_state.is_at_stop_height(tip_height) { let debug_stop_at_height = new_state @@ -398,6 +402,11 @@ impl FinalizedState { let _res = std::fs::remove_dir_all(path); } } + + /// Returns the `Path` where the files used by this database are located. + pub fn path(&self) -> &Path { + self.db.path() + } } // Drop isn't guaranteed to run, such as when we panic, or if someone stored