mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2025-08-06 21:44:49 -04:00
Remove config and fs from the lib
The settings module has to be part of the lib because settings are used in the test as well. Config is only used in main, thus it should not leak into the lib. Note that this allows to remove the dead_code allowance in fs.
This commit is contained in:
parent
9be6449e49
commit
eb34adc45d
5 changed files with 19 additions and 20 deletions
|
@ -1,4 +1,4 @@
|
||||||
use crate::fs::ensure_directory_exists;
|
use crate::{fs::ensure_directory_exists, settings::Settings};
|
||||||
use anyhow::{Context, Result};
|
use anyhow::{Context, Result};
|
||||||
use config::{Config, ConfigError};
|
use config::{Config, ConfigError};
|
||||||
use dialoguer::{theme::ColorfulTheme, Input};
|
use dialoguer::{theme::ColorfulTheme, Input};
|
||||||
|
@ -17,7 +17,6 @@ const DEFAULT_BITCOIND_TESTNET_URL: &str = "http://127.0.0.1:18332";
|
||||||
const DEFAULT_MONERO_WALLET_RPC_TESTNET_URL: &str = "http://127.0.0.1:38083/json_rpc";
|
const DEFAULT_MONERO_WALLET_RPC_TESTNET_URL: &str = "http://127.0.0.1:38083/json_rpc";
|
||||||
|
|
||||||
#[derive(Clone, Debug, serde::Serialize, serde::Deserialize, PartialEq)]
|
#[derive(Clone, Debug, serde::Serialize, serde::Deserialize, PartialEq)]
|
||||||
#[serde(deny_unknown_fields)]
|
|
||||||
pub struct File {
|
pub struct File {
|
||||||
pub bitcoin: Bitcoin,
|
pub bitcoin: Bitcoin,
|
||||||
pub monero: Monero,
|
pub monero: Monero,
|
||||||
|
@ -117,6 +116,14 @@ pub fn query_user_for_initial_testnet_config() -> Result<File> {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn settings_from_config_file_and_defaults(config: File) -> Settings {
|
||||||
|
Settings::testnet(
|
||||||
|
config.bitcoin.bitcoind_url,
|
||||||
|
config.bitcoin.wallet_name,
|
||||||
|
config.monero.wallet_rpc_url,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
|
@ -5,12 +5,10 @@ use std::path::{Path, PathBuf};
|
||||||
/// This is to store the configuration and seed files
|
/// This is to store the configuration and seed files
|
||||||
// Linux: /home/<user>/.config/xmr-btc-swap/
|
// Linux: /home/<user>/.config/xmr-btc-swap/
|
||||||
// OSX: /Users/<user>/Library/Preferences/xmr-btc-swap/
|
// OSX: /Users/<user>/Library/Preferences/xmr-btc-swap/
|
||||||
#[allow(dead_code)]
|
|
||||||
fn default_config_dir() -> Option<PathBuf> {
|
fn default_config_dir() -> Option<PathBuf> {
|
||||||
ProjectDirs::from("", "", "xmr-btc-swap").map(|proj_dirs| proj_dirs.config_dir().to_path_buf())
|
ProjectDirs::from("", "", "xmr-btc-swap").map(|proj_dirs| proj_dirs.config_dir().to_path_buf())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(dead_code)]
|
|
||||||
pub fn default_config_path() -> anyhow::Result<PathBuf> {
|
pub fn default_config_path() -> anyhow::Result<PathBuf> {
|
||||||
default_config_dir()
|
default_config_dir()
|
||||||
.map(|dir| Path::join(&dir, "config.toml"))
|
.map(|dir| Path::join(&dir, "config.toml"))
|
||||||
|
@ -20,7 +18,6 @@ pub fn default_config_path() -> anyhow::Result<PathBuf> {
|
||||||
/// This is to store the DB
|
/// This is to store the DB
|
||||||
// Linux: /home/<user>/.local/share/nectar/
|
// Linux: /home/<user>/.local/share/nectar/
|
||||||
// OSX: /Users/<user>/Library/Application Support/nectar/
|
// OSX: /Users/<user>/Library/Application Support/nectar/
|
||||||
#[allow(dead_code)]
|
|
||||||
pub fn default_data_dir() -> Option<std::path::PathBuf> {
|
pub fn default_data_dir() -> Option<std::path::PathBuf> {
|
||||||
ProjectDirs::from("", "", "nectar").map(|proj_dirs| proj_dirs.data_dir().to_path_buf())
|
ProjectDirs::from("", "", "nectar").map(|proj_dirs| proj_dirs.data_dir().to_path_buf())
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
)]
|
)]
|
||||||
|
|
||||||
pub mod bitcoin;
|
pub mod bitcoin;
|
||||||
pub mod config;
|
|
||||||
pub mod database;
|
pub mod database;
|
||||||
pub mod monero;
|
pub mod monero;
|
||||||
pub mod network;
|
pub mod network;
|
||||||
|
@ -26,5 +25,4 @@ pub mod seed;
|
||||||
pub mod settings;
|
pub mod settings;
|
||||||
pub mod trace;
|
pub mod trace;
|
||||||
|
|
||||||
mod fs;
|
|
||||||
mod serde_peer_id;
|
mod serde_peer_id;
|
||||||
|
|
|
@ -15,15 +15,16 @@
|
||||||
use crate::{
|
use crate::{
|
||||||
cli::{Command, Options, Resume},
|
cli::{Command, Options, Resume},
|
||||||
config::{
|
config::{
|
||||||
initial_setup, query_user_for_initial_testnet_config, read_config, ConfigNotInitialized,
|
initial_setup, query_user_for_initial_testnet_config, read_config,
|
||||||
|
settings_from_config_file_and_defaults, ConfigNotInitialized,
|
||||||
},
|
},
|
||||||
|
settings::Settings,
|
||||||
};
|
};
|
||||||
use anyhow::{Context, Result};
|
use anyhow::{Context, Result};
|
||||||
use database::Database;
|
use database::Database;
|
||||||
use fs::{default_config_path, default_data_dir};
|
use fs::{default_config_path, default_data_dir};
|
||||||
use prettytable::{row, Table};
|
use prettytable::{row, Table};
|
||||||
use protocol::{alice, bob, bob::Builder, SwapAmounts};
|
use protocol::{alice, bob, bob::Builder, SwapAmounts};
|
||||||
use settings::Settings;
|
|
||||||
use std::{path::PathBuf, sync::Arc};
|
use std::{path::PathBuf, sync::Arc};
|
||||||
use structopt::StructOpt;
|
use structopt::StructOpt;
|
||||||
use trace::init_tracing;
|
use trace::init_tracing;
|
||||||
|
@ -229,7 +230,7 @@ fn init_settings(config_path: Option<PathBuf>) -> Result<Settings> {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let settings = Settings::from_config_file_and_defaults(config);
|
let settings = settings_from_config_file_and_defaults(config);
|
||||||
|
|
||||||
Ok(settings)
|
Ok(settings)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use crate::{bitcoin::Timelock, config::File};
|
use crate::bitcoin::Timelock;
|
||||||
use conquer_once::Lazy;
|
use conquer_once::Lazy;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
@ -9,15 +9,11 @@ pub struct Settings {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Settings {
|
impl Settings {
|
||||||
pub fn from_config_file_and_defaults(config: File) -> Self {
|
pub fn testnet(
|
||||||
Settings::testnet(
|
bitcoind_url: Url,
|
||||||
config.bitcoin.bitcoind_url,
|
bitcoin_wallet_name: String,
|
||||||
config.bitcoin.wallet_name,
|
monero_wallet_rpc_url: Url,
|
||||||
config.monero.wallet_rpc_url,
|
) -> Self {
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn testnet(bitcoind_url: Url, bitcoin_wallet_name: String, monero_wallet_rpc_url: Url) -> Self {
|
|
||||||
Self {
|
Self {
|
||||||
wallets: Wallets::testnet(bitcoind_url, bitcoin_wallet_name, monero_wallet_rpc_url),
|
wallets: Wallets::testnet(bitcoind_url, bitcoin_wallet_name, monero_wallet_rpc_url),
|
||||||
protocol: Protocol::testnet(),
|
protocol: Protocol::testnet(),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue