diff --git a/CHANGELOG.md b/CHANGELOG.md index f003cb0023..834a822334 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https:// # [Unreleased] +### Changed + +- nym-api: an `--id` flag is now always explicitly required ([#2898]) + ### Added - dkg rerun from scratch and dkg-specific epochs ([#2839]) @@ -13,6 +17,7 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https:// [#2839]: https://github.com/nymtech/nym/pull/2839 [#2870]: https://github.com/nymtech/nym/pull/2870 [#2874]: https://github.com/nymtech/nym/pull/2874 +[#2898]: https://github.com/nymtech/nym/pull/2898 # [v1.1.7] (2023-01-24) diff --git a/clients/client-core/src/config/mod.rs b/clients/client-core/src/config/mod.rs index df1e0aa250..22b5e30e1a 100644 --- a/clients/client-core/src/config/mod.rs +++ b/clients/client-core/src/config/mod.rs @@ -541,35 +541,35 @@ impl Default for Client { impl Client { fn default_private_identity_key_file(id: &str) -> PathBuf { - T::default_data_directory(Some(id)).join("private_identity.pem") + T::default_data_directory(id).join("private_identity.pem") } fn default_public_identity_key_file(id: &str) -> PathBuf { - T::default_data_directory(Some(id)).join("public_identity.pem") + T::default_data_directory(id).join("public_identity.pem") } fn default_private_encryption_key_file(id: &str) -> PathBuf { - T::default_data_directory(Some(id)).join("private_encryption.pem") + T::default_data_directory(id).join("private_encryption.pem") } fn default_public_encryption_key_file(id: &str) -> PathBuf { - T::default_data_directory(Some(id)).join("public_encryption.pem") + T::default_data_directory(id).join("public_encryption.pem") } fn default_gateway_shared_key_file(id: &str) -> PathBuf { - T::default_data_directory(Some(id)).join("gateway_shared.pem") + T::default_data_directory(id).join("gateway_shared.pem") } fn default_ack_key_file(id: &str) -> PathBuf { - T::default_data_directory(Some(id)).join("ack_key.pem") + T::default_data_directory(id).join("ack_key.pem") } fn default_reply_surb_database_path(id: &str) -> PathBuf { - T::default_data_directory(Some(id)).join("persistent_reply_store.sqlite") + T::default_data_directory(id).join("persistent_reply_store.sqlite") } fn default_database_path(id: &str) -> PathBuf { - T::default_data_directory(Some(id)).join(DB_FILE_NAME) + T::default_data_directory(id).join(DB_FILE_NAME) } } diff --git a/clients/client-core/src/init/mod.rs b/clients/client-core/src/init/mod.rs index 9af8a7c1bc..e236bd588b 100644 --- a/clients/client-core/src/init/mod.rs +++ b/clients/client-core/src/init/mod.rs @@ -149,7 +149,7 @@ pub fn load_existing_gateway_config(id: &str) -> Result Result<(), ClientError> { let id = &args.id; - let already_init = Config::default_config_file_path(Some(id)).exists(); + let already_init = Config::default_config_file_path(id).exists(); if already_init { println!("Client \"{id}\" was already initialised before"); } diff --git a/clients/native/src/commands/run.rs b/clients/native/src/commands/run.rs index 47fd3d97e8..70a3f6b929 100644 --- a/clients/native/src/commands/run.rs +++ b/clients/native/src/commands/run.rs @@ -99,7 +99,7 @@ fn version_check(cfg: &Config) -> bool { pub(crate) async fn execute(args: &Run) -> Result<(), Box> { let id = &args.id; - let mut config = match Config::load_from_file(Some(id)) { + let mut config = match Config::load_from_file(id) { Ok(cfg) => cfg, Err(err) => { error!("Failed to load config for {}. Are you sure you have run `init` before? (Error was: {err})", id); diff --git a/clients/native/src/commands/upgrade.rs b/clients/native/src/commands/upgrade.rs index 2d4a258011..a440054aea 100644 --- a/clients/native/src/commands/upgrade.rs +++ b/clients/native/src/commands/upgrade.rs @@ -131,7 +131,7 @@ pub(crate) fn execute(args: &Upgrade) { let id = &args.id; - let existing_config = Config::load_from_file(Some(id)).unwrap_or_else(|err| { + let existing_config = Config::load_from_file(id).unwrap_or_else(|err| { eprintln!("failed to load existing config file! - {err}"); process::exit(1) }); diff --git a/clients/socks5/src/commands/init.rs b/clients/socks5/src/commands/init.rs index ebe01ad24d..a4915dde49 100644 --- a/clients/socks5/src/commands/init.rs +++ b/clients/socks5/src/commands/init.rs @@ -122,7 +122,7 @@ pub(crate) async fn execute(args: &Init) -> Result<(), Socks5ClientError> { let id = &args.id; let provider_address = &args.provider; - let already_init = Config::default_config_file_path(Some(id)).exists(); + let already_init = Config::default_config_file_path(id).exists(); if already_init { println!("SOCKS5 client \"{id}\" was already initialised before"); } diff --git a/clients/socks5/src/commands/run.rs b/clients/socks5/src/commands/run.rs index 2498ac5148..7150ddcf3e 100644 --- a/clients/socks5/src/commands/run.rs +++ b/clients/socks5/src/commands/run.rs @@ -113,7 +113,7 @@ fn version_check(cfg: &Config) -> bool { pub(crate) async fn execute(args: &Run) -> Result<(), Box> { let id = &args.id; - let mut config = match Config::load_from_file(Some(id)) { + let mut config = match Config::load_from_file(id) { Ok(cfg) => cfg, Err(err) => { error!("Failed to load config for {}. Are you sure you have run `init` before? (Error was: {err})", id); diff --git a/clients/socks5/src/commands/upgrade.rs b/clients/socks5/src/commands/upgrade.rs index db77167f34..121f045905 100644 --- a/clients/socks5/src/commands/upgrade.rs +++ b/clients/socks5/src/commands/upgrade.rs @@ -144,7 +144,7 @@ pub(crate) fn execute(args: &Upgrade) { let id = &args.id; - let existing_config = Config::load_from_file(Some(id)).unwrap_or_else(|err| { + let existing_config = Config::load_from_file(id).unwrap_or_else(|err| { eprintln!("failed to load existing config file! - {err}"); process::exit(1) }); diff --git a/common/config/src/lib.rs b/common/config/src/lib.rs index d0ebecdca3..f14b94faf2 100644 --- a/common/config/src/lib.rs +++ b/common/config/src/lib.rs @@ -30,23 +30,15 @@ pub trait NymConfig: Default + Serialize + DeserializeOwned { fn default_root_directory() -> PathBuf; // default, most probable, implementations; can be easily overridden where required - fn default_config_directory(id: Option<&str>) -> PathBuf { - if let Some(id) = id { - Self::default_root_directory().join(id).join(CONFIG_DIR) - } else { - Self::default_root_directory().join(CONFIG_DIR) - } + fn default_config_directory(id: &str) -> PathBuf { + Self::default_root_directory().join(id).join(CONFIG_DIR) } - fn default_data_directory(id: Option<&str>) -> PathBuf { - if let Some(id) = id { - Self::default_root_directory().join(id).join(DATA_DIR) - } else { - Self::default_root_directory().join(DATA_DIR) - } + fn default_data_directory(id: &str) -> PathBuf { + Self::default_root_directory().join(id).join(DATA_DIR) } - fn default_config_file_path(id: Option<&str>) -> PathBuf { + fn default_config_file_path(id: &str) -> PathBuf { Self::default_config_directory(id).join(Self::config_file_name()) } @@ -54,23 +46,15 @@ pub trait NymConfig: Default + Serialize + DeserializeOwned { fn try_default_root_directory() -> Option; - fn try_default_config_directory(id: Option<&str>) -> Option { - if let Some(id) = id { - Self::try_default_root_directory().map(|d| d.join(id).join(CONFIG_DIR)) - } else { - Self::try_default_root_directory().map(|d| d.join(CONFIG_DIR)) - } + fn try_default_config_directory(id: &str) -> Option { + Self::try_default_root_directory().map(|d| d.join(id).join(CONFIG_DIR)) } - fn try_default_data_directory(id: Option<&str>) -> Option { - if let Some(id) = id { - Self::try_default_root_directory().map(|d| d.join(id).join(DATA_DIR)) - } else { - Self::try_default_root_directory().map(|d| d.join(DATA_DIR)) - } + fn try_default_data_directory(id: &str) -> Option { + Self::try_default_root_directory().map(|d| d.join(id).join(DATA_DIR)) } - fn try_default_config_file_path(id: Option<&str>) -> Option { + fn try_default_config_file_path(id: &str) -> Option { Self::try_default_config_directory(id).map(|d| d.join(Self::config_file_name())) } @@ -113,7 +97,7 @@ pub trait NymConfig: Default + Serialize + DeserializeOwned { Ok(()) } - fn load_from_file(id: Option<&str>) -> io::Result { + fn load_from_file(id: &str) -> io::Result { let file = Self::default_config_file_path(id); log::trace!("Loading from file: {:#?}", file); let config_contents = fs::read_to_string(file)?; diff --git a/gateway/src/commands/init.rs b/gateway/src/commands/init.rs index afe180eb65..c31e55663b 100644 --- a/gateway/src/commands/init.rs +++ b/gateway/src/commands/init.rs @@ -106,7 +106,7 @@ impl From for OverrideConfig { pub async fn execute(args: Init, output: OutputFormat) -> Result<(), Box> { println!("Initialising gateway {}...", args.id); - let already_init = if Config::default_config_file_path(Some(&args.id)).exists() { + let already_init = if Config::default_config_file_path(&args.id).exists() { eprintln!( "Gateway \"{}\" was already initialised before! Config information will be \ overwritten (but keys will be kept)!", diff --git a/gateway/src/commands/upgrade.rs b/gateway/src/commands/upgrade.rs index b4ea39c493..b3eefd9ed2 100644 --- a/gateway/src/commands/upgrade.rs +++ b/gateway/src/commands/upgrade.rs @@ -139,7 +139,7 @@ fn do_upgrade(mut config: Config, args: &Upgrade, package_version: Version) { pub async fn execute(args: &Upgrade) { let package_version = parse_package_version(); - let existing_config = Config::load_from_file(Some(&args.id)).unwrap_or_else(|err| { + let existing_config = Config::load_from_file(&args.id).unwrap_or_else(|err| { eprintln!("failed to load existing config file! - {err}"); process::exit(1) }); diff --git a/gateway/src/config/mod.rs b/gateway/src/config/mod.rs index 67e4b8d8bf..4cface19d1 100644 --- a/gateway/src/config/mod.rs +++ b/gateway/src/config/mod.rs @@ -378,23 +378,23 @@ pub struct Gateway { impl Gateway { fn default_private_sphinx_key_file(id: &str) -> PathBuf { - Config::default_data_directory(Some(id)).join("private_sphinx.pem") + Config::default_data_directory(id).join("private_sphinx.pem") } fn default_public_sphinx_key_file(id: &str) -> PathBuf { - Config::default_data_directory(Some(id)).join("public_sphinx.pem") + Config::default_data_directory(id).join("public_sphinx.pem") } fn default_private_identity_key_file(id: &str) -> PathBuf { - Config::default_data_directory(Some(id)).join("private_identity.pem") + Config::default_data_directory(id).join("private_identity.pem") } fn default_public_identity_key_file(id: &str) -> PathBuf { - Config::default_data_directory(Some(id)).join("public_identity.pem") + Config::default_data_directory(id).join("public_identity.pem") } fn default_database_path(id: &str) -> PathBuf { - Config::default_data_directory(Some(id)).join("db.sqlite") + Config::default_data_directory(id).join("db.sqlite") } } diff --git a/gateway/src/support/config.rs b/gateway/src/support/config.rs index ff61d95da8..90576a4d89 100644 --- a/gateway/src/support/config.rs +++ b/gateway/src/support/config.rs @@ -11,14 +11,14 @@ pub(crate) fn build_config>( id: String, override_args: O, ) -> Result { - let config = match Config::load_from_file(Some(&id)) { + let config = match Config::load_from_file(&id) { Ok(cfg) => cfg, Err(err) => { error!( "Failed to load config for {id}. Are you sure you have run `init` before? (Error was: {err})", ); return Err(GatewayError::ConfigLoadFailure { - path: Config::default_config_file_path(Some(&id)), + path: Config::default_config_file_path(&id), id, source: err, }); diff --git a/mixnode/src/commands/describe.rs b/mixnode/src/commands/describe.rs index 5b66eb8d87..d9cecbe410 100644 --- a/mixnode/src/commands/describe.rs +++ b/mixnode/src/commands/describe.rs @@ -41,7 +41,7 @@ fn read_user_input() -> String { pub(crate) fn execute(args: Describe) { // ensure that the mixnode has in fact been initialized - match Config::load_from_file(Some(&args.id)) { + match Config::load_from_file(&args.id) { Ok(cfg) => cfg, Err(err) => { error!("Failed to load config for {}. Are you sure you have run `init` before? (Error was: {err})", &args.id); @@ -83,7 +83,7 @@ pub(crate) fn execute(args: Describe) { // save the struct NodeDescription::save_to_file( &node_description, - Config::default_config_directory(Some(&args.id)), + Config::default_config_directory(&args.id), ) .unwrap() } diff --git a/mixnode/src/commands/init.rs b/mixnode/src/commands/init.rs index d25b234ab8..fe6b18bc4f 100644 --- a/mixnode/src/commands/init.rs +++ b/mixnode/src/commands/init.rs @@ -68,7 +68,7 @@ pub(crate) fn execute(args: &Init, output: OutputFormat) { let id = &override_config_fields.id; eprintln!("Initialising mixnode {id}..."); - let already_init = if Config::default_config_file_path(Some(id)).exists() { + let already_init = if Config::default_config_file_path(id).exists() { eprintln!("Mixnode \"{id}\" was already initialised before! Config information will be overwritten (but keys will be kept)!"); true } else { diff --git a/mixnode/src/commands/node_details.rs b/mixnode/src/commands/node_details.rs index cdc0d5162a..98298cea74 100644 --- a/mixnode/src/commands/node_details.rs +++ b/mixnode/src/commands/node_details.rs @@ -15,7 +15,7 @@ pub(crate) struct NodeDetails { } pub(crate) fn execute(args: &NodeDetails, output: OutputFormat) { - let config = match Config::load_from_file(Some(&args.id)) { + let config = match Config::load_from_file(&args.id) { Ok(cfg) => cfg, Err(err) => { error!( diff --git a/mixnode/src/commands/run.rs b/mixnode/src/commands/run.rs index 910b9fc869..e578c422c1 100644 --- a/mixnode/src/commands/run.rs +++ b/mixnode/src/commands/run.rs @@ -79,7 +79,7 @@ fn special_addresses() -> Vec<&'static str> { pub(crate) async fn execute(args: &Run, output: OutputFormat) { eprintln!("Starting mixnode {}...", args.id); - let mut config = match Config::load_from_file(Some(&args.id)) { + let mut config = match Config::load_from_file(&args.id) { Ok(cfg) => cfg, Err(err) => { error!( diff --git a/mixnode/src/commands/sign.rs b/mixnode/src/commands/sign.rs index ed84cc6d3b..52360d7a03 100644 --- a/mixnode/src/commands/sign.rs +++ b/mixnode/src/commands/sign.rs @@ -71,7 +71,7 @@ fn print_signed_text(private_key: &identity::PrivateKey, text: &str) { } pub(crate) fn execute(args: &Sign) { - let config = match Config::load_from_file(Some(&args.id)) { + let config = match Config::load_from_file(&args.id) { Ok(cfg) => cfg, Err(err) => { error!( diff --git a/mixnode/src/commands/upgrade.rs b/mixnode/src/commands/upgrade.rs index 3ba4192289..46c8192312 100644 --- a/mixnode/src/commands/upgrade.rs +++ b/mixnode/src/commands/upgrade.rs @@ -125,7 +125,7 @@ fn do_upgrade(mut config: Config, args: &Upgrade, package_version: Version) { pub(crate) fn execute(args: &Upgrade) { let package_version = parse_package_version(); - let existing_config = Config::load_from_file(Some(&args.id)).unwrap_or_else(|err| { + let existing_config = Config::load_from_file(&args.id).unwrap_or_else(|err| { eprintln!("failed to load existing config file! - {err}"); process::exit(1) }); diff --git a/mixnode/src/config/mod.rs b/mixnode/src/config/mod.rs index 2b69e45725..6183ba073e 100644 --- a/mixnode/src/config/mod.rs +++ b/mixnode/src/config/mod.rs @@ -376,19 +376,19 @@ struct MixNode { impl MixNode { fn default_private_identity_key_file(id: &str) -> PathBuf { - Config::default_data_directory(Some(id)).join("private_identity.pem") + Config::default_data_directory(id).join("private_identity.pem") } fn default_public_identity_key_file(id: &str) -> PathBuf { - Config::default_data_directory(Some(id)).join("public_identity.pem") + Config::default_data_directory(id).join("public_identity.pem") } fn default_private_sphinx_key_file(id: &str) -> PathBuf { - Config::default_data_directory(Some(id)).join("private_sphinx.pem") + Config::default_data_directory(id).join("private_sphinx.pem") } fn default_public_sphinx_key_file(id: &str) -> PathBuf { - Config::default_data_directory(Some(id)).join("public_sphinx.pem") + Config::default_data_directory(id).join("public_sphinx.pem") } } diff --git a/mixnode/src/node/mod.rs b/mixnode/src/node/mod.rs index ccf4a9a3db..e581860fbd 100644 --- a/mixnode/src/node/mod.rs +++ b/mixnode/src/node/mod.rs @@ -58,7 +58,7 @@ impl MixNode { } fn load_node_description(config: &Config) -> NodeDescription { - NodeDescription::load_from_file(Config::default_config_directory(Some(&config.get_id()))) + NodeDescription::load_from_file(Config::default_config_directory(&config.get_id())) .unwrap_or_default() } diff --git a/nym-api/src/support/cli/mod.rs b/nym-api/src/support/cli/mod.rs index 264e9a66c4..ad911a0b0e 100644 --- a/nym-api/src/support/cli/mod.rs +++ b/nym-api/src/support/cli/mod.rs @@ -44,7 +44,7 @@ pub(crate) struct CliArgs { /// Id of the nym-api we want to run #[clap(long)] - pub(crate) id: Option, + pub(crate) id: String, /// Specifies whether network monitoring is enabled on this API #[clap(short = 'm', long)] @@ -104,12 +104,13 @@ pub(crate) struct CliArgs { } pub(crate) fn build_config(args: CliArgs) -> Result { + let id = args.id.clone(); + // try to load config from the file, if it doesn't exist, use default values - let id = args.id.as_deref(); - let (config_from_file, _already_initialized) = match Config::load_from_file(id) { + let (config_from_file, already_initialized) = match Config::load_from_file(&id) { Ok(cfg) => (cfg, true), Err(_) => { - let config_path = Config::default_config_file_path(id) + let config_path = Config::default_config_file_path(&id) .into_os_string() .into_string() .unwrap(); @@ -123,8 +124,13 @@ pub(crate) fn build_config(args: CliArgs) -> Result { let config = override_config(config_from_file, args); - #[cfg(feature = "coconut")] - if !_already_initialized { + if already_initialized { + fs::create_dir_all(Config::default_config_directory(&id)) + .expect("Could not create config directory"); + fs::create_dir_all(Config::default_data_directory(&id)) + .expect("Could not create data directory"); + + #[cfg(feature = "coconut")] crate::coconut::dkg::controller::init_keypair(&config)?; } @@ -132,15 +138,8 @@ pub(crate) fn build_config(args: CliArgs) -> Result { } pub(crate) fn override_config(mut config: Config, args: CliArgs) -> Config { - if let Some(id) = args.id { - fs::create_dir_all(Config::default_config_directory(Some(&id))) - .expect("Could not create config directory"); - fs::create_dir_all(Config::default_data_directory(Some(&id))) - .expect("Could not create data directory"); - config = config.with_id(&id); - } - config = config + .with_id(&args.id) .with_optional(Config::with_custom_nyxd_validator, args.nyxd_validator) .with_optional_env( Config::with_custom_mixnet_contract, diff --git a/nym-api/src/support/config/mod.rs b/nym-api/src/support/config/mod.rs index fae7d281c0..825152e79e 100644 --- a/nym-api/src/support/config/mod.rs +++ b/nym-api/src/support/config/mod.rs @@ -201,8 +201,8 @@ pub struct NetworkMonitor { impl NetworkMonitor { pub const DB_FILE: &'static str = "credentials_database.db"; - fn default_credentials_database_path() -> PathBuf { - Config::default_data_directory(None).join(Self::DB_FILE) + fn default_credentials_database_path(id: &str) -> PathBuf { + Config::default_data_directory(id).join(Self::DB_FILE) } } @@ -220,7 +220,7 @@ impl Default for NetworkMonitor { gateway_response_timeout: DEFAULT_GATEWAY_RESPONSE_TIMEOUT, gateway_connection_timeout: DEFAULT_GATEWAY_CONNECTION_TIMEOUT, packet_delivery_timeout: DEFAULT_PACKET_DELIVERY_TIMEOUT, - credentials_database_path: Self::default_credentials_database_path(), + credentials_database_path: Default::default(), test_routes: DEFAULT_TEST_ROUTES, minimum_test_routes: DEFAULT_MINIMUM_TEST_ROUTES, route_test_packets: DEFAULT_ROUTE_TEST_PACKETS, @@ -242,15 +242,15 @@ pub struct NodeStatusAPI { impl NodeStatusAPI { pub const DB_FILE: &'static str = "db.sqlite"; - fn default_database_path() -> PathBuf { - Config::default_data_directory(None).join(Self::DB_FILE) + fn default_database_path(id: &str) -> PathBuf { + Config::default_data_directory(id).join(Self::DB_FILE) } } impl Default for NodeStatusAPI { fn default() -> Self { NodeStatusAPI { - database_path: Self::default_database_path(), + database_path: Default::default(), caching_interval: DEFAULT_NODE_STATUS_CACHE_INTERVAL, } } @@ -342,24 +342,24 @@ impl CoconutSigner { pub const COCONUT_VERIFICATION_KEY_FILE: &'static str = "coconut_verification_key.pem"; pub const COCONUT_SECRET_KEY_FILE: &'static str = "coconut_secret_key.pem"; - fn default_coconut_verification_key_path() -> PathBuf { - Config::default_data_directory(None).join(Self::COCONUT_VERIFICATION_KEY_FILE) + fn default_coconut_verification_key_path(id: &str) -> PathBuf { + Config::default_data_directory(id).join(Self::COCONUT_VERIFICATION_KEY_FILE) } - fn default_coconut_secret_key_path() -> PathBuf { - Config::default_data_directory(None).join(Self::COCONUT_SECRET_KEY_FILE) + fn default_coconut_secret_key_path(id: &str) -> PathBuf { + Config::default_data_directory(id).join(Self::COCONUT_SECRET_KEY_FILE) } - fn default_dkg_persistent_state_path() -> PathBuf { - Config::default_data_directory(None).join(Self::DKG_PERSISTENT_STATE_FILE) + fn default_dkg_persistent_state_path(id: &str) -> PathBuf { + Config::default_data_directory(id).join(Self::DKG_PERSISTENT_STATE_FILE) } - fn default_dkg_decryption_key_path() -> PathBuf { - Config::default_data_directory(None).join(Self::DKG_DECRYPTION_KEY_FILE) + fn default_dkg_decryption_key_path(id: &str) -> PathBuf { + Config::default_data_directory(id).join(Self::DKG_DECRYPTION_KEY_FILE) } - fn default_dkg_public_key_with_proof_path() -> PathBuf { - Config::default_data_directory(None).join(Self::DKG_PUBLIC_KEY_WITH_PROOF_FILE) + fn default_dkg_public_key_with_proof_path(id: &str) -> PathBuf { + Config::default_data_directory(id).join(Self::DKG_PUBLIC_KEY_WITH_PROOF_FILE) } } @@ -367,11 +367,11 @@ impl Default for CoconutSigner { fn default() -> Self { Self { enabled: Default::default(), - dkg_persistent_state_path: CoconutSigner::default_dkg_persistent_state_path(), - verification_key_path: CoconutSigner::default_coconut_verification_key_path(), - secret_key_path: CoconutSigner::default_coconut_secret_key_path(), - decryption_key_path: CoconutSigner::default_dkg_decryption_key_path(), - public_key_with_proof_path: CoconutSigner::default_dkg_public_key_with_proof_path(), + dkg_persistent_state_path: Default::default(), + verification_key_path: Default::default(), + secret_key_path: Default::default(), + decryption_key_path: Default::default(), + public_key_with_proof_path: Default::default(), dkg_contract_polling_rate: DEFAULT_DKG_CONTRACT_POLLING_RATE, } } @@ -384,20 +384,18 @@ impl Config { pub fn with_id(mut self, id: &str) -> Self { self.base.id = id.to_string(); - self.node_status_api.database_path = - Config::default_data_directory(Some(id)).join(NodeStatusAPI::DB_FILE); + self.node_status_api.database_path = NodeStatusAPI::default_database_path(id); self.network_monitor.credentials_database_path = - Config::default_data_directory(Some(id)).join(NetworkMonitor::DB_FILE); + NetworkMonitor::default_credentials_database_path(id); self.coconut_signer.dkg_persistent_state_path = - Config::default_data_directory(Some(id)).join(CoconutSigner::DKG_PERSISTENT_STATE_FILE); - self.coconut_signer.verification_key_path = Config::default_data_directory(Some(id)) - .join(CoconutSigner::COCONUT_VERIFICATION_KEY_FILE); - self.coconut_signer.secret_key_path = - Config::default_data_directory(Some(id)).join(CoconutSigner::COCONUT_SECRET_KEY_FILE); + CoconutSigner::default_dkg_persistent_state_path(id); + self.coconut_signer.verification_key_path = + CoconutSigner::default_coconut_verification_key_path(id); + self.coconut_signer.secret_key_path = CoconutSigner::default_coconut_secret_key_path(id); self.coconut_signer.decryption_key_path = - Config::default_data_directory(Some(id)).join(CoconutSigner::DKG_DECRYPTION_KEY_FILE); - self.coconut_signer.public_key_with_proof_path = Config::default_data_directory(Some(id)) - .join(CoconutSigner::DKG_PUBLIC_KEY_WITH_PROOF_FILE); + CoconutSigner::default_dkg_decryption_key_path(id); + self.coconut_signer.public_key_with_proof_path = + CoconutSigner::default_dkg_public_key_with_proof_path(id); self } diff --git a/nym-connect/src-tauri/src/config/mod.rs b/nym-connect/src-tauri/src/config/mod.rs index b7fa03636b..9c51348b42 100644 --- a/nym-connect/src-tauri/src/config/mod.rs +++ b/nym-connect/src-tauri/src/config/mod.rs @@ -93,7 +93,7 @@ impl Config { } pub fn config_file_location(id: &str) -> Result { - Socks5Config::try_default_config_file_path(Some(id)) + Socks5Config::try_default_config_file_path(id) .ok_or(BackendError::CouldNotGetConfigFilename) } } diff --git a/nym-connect/src-tauri/src/state.rs b/nym-connect/src-tauri/src/state.rs index 72e16a6748..774e787cdc 100644 --- a/nym-connect/src-tauri/src/state.rs +++ b/nym-connect/src-tauri/src/state.rs @@ -85,7 +85,7 @@ impl State { pub fn load_socks5_config(&self) -> Result { let id = self.get_config_id()?; - let config = Socks5Config::load_from_file(Some(&id)) + let config = Socks5Config::load_from_file(&id) .tap_err(|_| log::warn!("Failed to load configuration file"))?; Ok(config) } diff --git a/nym-connect/src-tauri/src/tasks.rs b/nym-connect/src-tauri/src/tasks.rs index 7f1e320031..bc632c7ef3 100644 --- a/nym-connect/src-tauri/src/tasks.rs +++ b/nym-connect/src-tauri/src/tasks.rs @@ -36,7 +36,7 @@ pub fn start_nym_socks5_client( GatewayEndpointConfig, )> { log::info!("Loading config from file: {id}"); - let config = Socks5Config::load_from_file(Some(id)) + let config = Socks5Config::load_from_file(id) .tap_err(|_| log::warn!("Failed to load configuration file"))?; let used_gateway = config.get_base().get_gateway_endpoint().clone();