@@ -41,7 +41,7 @@ use kvdb_rocksdb::{Database, DatabaseConfig};
4141use parking_lot:: { Condvar , Mutex } ;
4242
4343use crate :: config:: { self , load_config} ;
44- use crate :: constants:: DEFAULT_KEYS_PATH ;
44+ use crate :: constants:: { DEFAULT_DB_PATH , DEFAULT_KEYS_PATH } ;
4545use crate :: dummy_network_service:: DummyNetworkService ;
4646use crate :: json:: PasswordFile ;
4747use crate :: rpc:: { rpc_http_start, rpc_ipc_start, rpc_ws_start} ;
@@ -202,8 +202,9 @@ fn unlock_accounts(ap: &AccountProvider, pf: &PasswordFile) -> Result<(), String
202202}
203203
204204pub fn open_db ( cfg : & config:: Operating , client_config : & ClientConfig ) -> Result < Arc < KeyValueDB > , String > {
205- let db_path = cfg. db_path . as_ref ( ) . map ( String :: as_str) . unwrap ( ) ;
206- let client_path = Path :: new ( db_path) ;
205+ let base_path = cfg. base_path . as_ref ( ) . unwrap ( ) . clone ( ) ;
206+ let db_path = cfg. db_path . as_ref ( ) . map ( String :: clone) . unwrap_or_else ( || base_path + "/" + DEFAULT_DB_PATH ) ;
207+ let client_path = Path :: new ( & db_path) ;
207208 let mut db_config = DatabaseConfig :: with_columns ( NUM_COLUMNS ) ;
208209
209210 db_config. memory_budget = client_config. db_cache_size ;
@@ -251,11 +252,10 @@ pub fn run_node(matches: &ArgMatches) -> Result<(), String> {
251252 clogger:: init ( & LoggerConfig :: new ( instance_id) ) . expect ( "Logger must be successfully initialized" ) ;
252253
253254 let pf = load_password_file ( & config. operating . password_path ) ?;
254- let keys_path = match config. operating . keys_path {
255- Some ( ref keys_path) => keys_path,
256- None => DEFAULT_KEYS_PATH ,
257- } ;
258- let ap = prepare_account_provider ( keys_path) ?;
255+ let base_path = config. operating . base_path . as_ref ( ) . unwrap ( ) . clone ( ) ;
256+ let keys_path =
257+ config. operating . keys_path . as_ref ( ) . map ( String :: clone) . unwrap_or_else ( || base_path + "/" + DEFAULT_KEYS_PATH ) ;
258+ let ap = prepare_account_provider ( & keys_path) ?;
259259 unlock_accounts ( & * ap, & pf) ?;
260260
261261 let client_config: ClientConfig = Default :: default ( ) ;
0 commit comments