diff --git a/swap/src/bitcoin.rs b/swap/src/bitcoin.rs index 95bcf036..b55e917c 100644 --- a/swap/src/bitcoin.rs +++ b/swap/src/bitcoin.rs @@ -10,7 +10,7 @@ pub use ::bitcoin::{util::amount::Amount, Address, Network, Transaction, Txid}; pub use ecdsa_fun::{adaptor::EncryptedSignature, fun::Scalar, Signature}; pub use wallet::Wallet; -use crate::{bitcoin::timelocks::BlockHeight, config::ExecutionParams}; +use crate::{bitcoin::timelocks::BlockHeight, execution_params::ExecutionParams}; use ::bitcoin::{ hashes::{hex::ToHex, Hash}, secp256k1, diff --git a/swap/src/bitcoin/wallet.rs b/swap/src/bitcoin/wallet.rs index 38271436..793394ae 100644 --- a/swap/src/bitcoin/wallet.rs +++ b/swap/src/bitcoin/wallet.rs @@ -4,7 +4,7 @@ use crate::{ GetBlockHeight, GetNetwork, GetRawTransaction, SignTxLock, Transaction, TransactionBlockHeight, TxLock, WaitForTransactionFinality, WatchForRawTransaction, }, - config::ExecutionParams, + execution_params::ExecutionParams, }; use ::bitcoin::{util::psbt::PartiallySignedTransaction, Txid}; use anyhow::{Context, Result}; diff --git a/swap/src/config.rs b/swap/src/config.rs index d73f8683..11049581 100644 --- a/swap/src/config.rs +++ b/swap/src/config.rs @@ -1,117 +1,145 @@ -use crate::bitcoin::Timelock; -use conquer_once::Lazy; -use std::time::Duration; +use crate::fs::ensure_directory_exists; +use anyhow::{Context, Result}; +use config::{Config, ConfigError}; +use dialoguer::{theme::ColorfulTheme, Input}; +use serde::{Deserialize, Serialize}; +use std::{ + ffi::OsStr, + fs, + path::{Path, PathBuf}, +}; +use tracing::info; +use url::Url; -#[derive(Debug, Copy, Clone)] -pub struct ExecutionParams { - pub bob_time_to_act: Duration, - pub bitcoin_finality_confirmations: u32, - pub bitcoin_avg_block_time: Duration, - pub monero_finality_confirmations: u32, - pub bitcoin_cancel_timelock: Timelock, - pub bitcoin_punish_timelock: Timelock, +pub mod seed; + +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"; + +#[derive(Clone, Debug, serde::Serialize, serde::Deserialize, PartialEq)] +pub struct File { + pub bitcoin: Bitcoin, + pub monero: Monero, } -pub trait GetExecutionParams { - fn get_execution_params() -> ExecutionParams; -} +impl File { + pub fn read(config_file: D) -> Result + where + D: AsRef, + { + let config_file = Path::new(&config_file); -#[derive(Clone, Copy)] -pub struct Mainnet; - -#[derive(Clone, Copy)] -pub struct Testnet; - -#[derive(Clone, Copy)] -pub struct Regtest; - -impl GetExecutionParams for Mainnet { - fn get_execution_params() -> ExecutionParams { - ExecutionParams { - bob_time_to_act: *mainnet::BOB_TIME_TO_ACT, - bitcoin_finality_confirmations: mainnet::BITCOIN_FINALITY_CONFIRMATIONS, - bitcoin_avg_block_time: *mainnet::BITCOIN_AVG_BLOCK_TIME, - monero_finality_confirmations: mainnet::MONERO_FINALITY_CONFIRMATIONS, - bitcoin_cancel_timelock: mainnet::BITCOIN_CANCEL_TIMELOCK, - bitcoin_punish_timelock: mainnet::BITCOIN_PUNISH_TIMELOCK, - } + let mut config = Config::new(); + config.merge(config::File::from(config_file))?; + config.try_into() } } -impl GetExecutionParams for Testnet { - fn get_execution_params() -> ExecutionParams { - ExecutionParams { - bob_time_to_act: *testnet::BOB_TIME_TO_ACT, - bitcoin_finality_confirmations: testnet::BITCOIN_FINALITY_CONFIRMATIONS, - bitcoin_avg_block_time: *testnet::BITCOIN_AVG_BLOCK_TIME, - monero_finality_confirmations: testnet::MONERO_FINALITY_CONFIRMATIONS, - bitcoin_cancel_timelock: testnet::BITCOIN_CANCEL_TIMELOCK, - bitcoin_punish_timelock: testnet::BITCOIN_PUNISH_TIMELOCK, - } +#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)] +#[serde(deny_unknown_fields)] +pub struct Bitcoin { + pub bitcoind_url: Url, + pub wallet_name: String, +} + +#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)] +#[serde(deny_unknown_fields)] +pub struct Monero { + pub wallet_rpc_url: Url, +} + +#[derive(thiserror::Error, Debug, Clone, Copy)] +#[error("config not initialized")] +pub struct ConfigNotInitialized {} + +pub fn read_config(config_path: PathBuf) -> Result> { + if config_path.exists() { + info!( + "Using config file at default path: {}", + config_path.display() + ); + } else { + return Ok(Err(ConfigNotInitialized {})); + } + + let file = File::read(&config_path) + .with_context(|| format!("failed to read config file {}", config_path.display()))?; + + Ok(Ok(file)) +} + +pub fn initial_setup(config_path: PathBuf, config_file: F) -> Result<()> +where + F: Fn() -> Result, +{ + info!("Config file not found, running initial setup..."); + ensure_directory_exists(config_path.as_path())?; + let initial_config = config_file()?; + + let toml = toml::to_string(&initial_config)?; + fs::write(&config_path, toml)?; + + info!( + "Initial setup complete, config file created at {} ", + config_path.as_path().display() + ); + Ok(()) +} + +pub fn query_user_for_initial_testnet_config() -> Result { + println!(); + let bitcoind_url: String = Input::with_theme(&ColorfulTheme::default()) + .with_prompt("Enter Bitcoind URL (including username and password if applicable) or hit return to use default") + .default(DEFAULT_BITCOIND_TESTNET_URL.to_owned()) + .interact_text()?; + let bitcoind_url = Url::parse(bitcoind_url.as_str())?; + + let bitcoin_wallet_name: String = Input::with_theme(&ColorfulTheme::default()) + .with_prompt("Enter Bitcoind wallet name") + .interact_text()?; + + let monero_wallet_rpc_url: String = Input::with_theme(&ColorfulTheme::default()) + .with_prompt("Enter Monero Wallet RPC URL or hit enter to use default") + .default(DEFAULT_MONERO_WALLET_RPC_TESTNET_URL.to_owned()) + .interact_text()?; + let monero_wallet_rpc_url = Url::parse(monero_wallet_rpc_url.as_str())?; + println!(); + + Ok(File { + bitcoin: Bitcoin { + bitcoind_url, + wallet_name: bitcoin_wallet_name, + }, + monero: Monero { + wallet_rpc_url: monero_wallet_rpc_url, + }, + }) +} + +#[cfg(test)] +mod tests { + use super::*; + use std::str::FromStr; + use tempfile::tempdir; + + #[test] + fn config_roundtrip() { + let temp_dir = tempdir().unwrap().path().to_path_buf(); + let config_path = Path::join(&temp_dir, "config.toml"); + + let expected = File { + bitcoin: Bitcoin { + bitcoind_url: Url::from_str("http://127.0.0.1:18332").unwrap(), + wallet_name: "alice".to_string(), + }, + monero: Monero { + wallet_rpc_url: Url::from_str("http://127.0.0.1:38083/json_rpc").unwrap(), + }, + }; + + initial_setup(config_path.clone(), || Ok(expected.clone())).unwrap(); + let actual = read_config(config_path).unwrap().unwrap(); + + assert_eq!(expected, actual); } } - -impl GetExecutionParams for Regtest { - fn get_execution_params() -> ExecutionParams { - ExecutionParams { - bob_time_to_act: *regtest::BOB_TIME_TO_ACT, - bitcoin_finality_confirmations: regtest::BITCOIN_FINALITY_CONFIRMATIONS, - bitcoin_avg_block_time: *regtest::BITCOIN_AVG_BLOCK_TIME, - monero_finality_confirmations: regtest::MONERO_FINALITY_CONFIRMATIONS, - bitcoin_cancel_timelock: regtest::BITCOIN_CANCEL_TIMELOCK, - bitcoin_punish_timelock: regtest::BITCOIN_PUNISH_TIMELOCK, - } - } -} - -mod mainnet { - use crate::config::*; - - // For each step, we are giving Bob 10 minutes to act. - pub static BOB_TIME_TO_ACT: Lazy = Lazy::new(|| Duration::from_secs(10 * 60)); - - pub static BITCOIN_FINALITY_CONFIRMATIONS: u32 = 3; - - pub static BITCOIN_AVG_BLOCK_TIME: Lazy = Lazy::new(|| Duration::from_secs(10 * 60)); - - pub static MONERO_FINALITY_CONFIRMATIONS: u32 = 15; - - // Set to 12 hours, arbitrary value to be reviewed properly - pub static BITCOIN_CANCEL_TIMELOCK: Timelock = Timelock::new(72); - pub static BITCOIN_PUNISH_TIMELOCK: Timelock = Timelock::new(72); -} - -mod testnet { - use crate::config::*; - - pub static BOB_TIME_TO_ACT: Lazy = Lazy::new(|| Duration::from_secs(60 * 60)); - - // This does not reflect recommended values for mainnet! - pub static BITCOIN_FINALITY_CONFIRMATIONS: u32 = 1; - - pub static BITCOIN_AVG_BLOCK_TIME: Lazy = Lazy::new(|| Duration::from_secs(5 * 60)); - - // This does not reflect recommended values for mainnet! - pub static MONERO_FINALITY_CONFIRMATIONS: u32 = 5; - - // This does not reflect recommended values for mainnet! - pub static BITCOIN_CANCEL_TIMELOCK: Timelock = Timelock::new(12); - pub static BITCOIN_PUNISH_TIMELOCK: Timelock = Timelock::new(6); -} - -mod regtest { - use crate::config::*; - - // In test, we set a shorter time to fail fast - pub static BOB_TIME_TO_ACT: Lazy = Lazy::new(|| Duration::from_secs(30)); - - pub static BITCOIN_FINALITY_CONFIRMATIONS: u32 = 1; - - pub static BITCOIN_AVG_BLOCK_TIME: Lazy = Lazy::new(|| Duration::from_secs(5)); - - pub static MONERO_FINALITY_CONFIRMATIONS: u32 = 1; - - pub static BITCOIN_CANCEL_TIMELOCK: Timelock = Timelock::new(100); - - pub static BITCOIN_PUNISH_TIMELOCK: Timelock = Timelock::new(50); -} diff --git a/swap/src/configuration/seed.rs b/swap/src/config/seed.rs similarity index 100% rename from swap/src/configuration/seed.rs rename to swap/src/config/seed.rs diff --git a/swap/src/configuration.rs b/swap/src/configuration.rs deleted file mode 100644 index 11049581..00000000 --- a/swap/src/configuration.rs +++ /dev/null @@ -1,145 +0,0 @@ -use crate::fs::ensure_directory_exists; -use anyhow::{Context, Result}; -use config::{Config, ConfigError}; -use dialoguer::{theme::ColorfulTheme, Input}; -use serde::{Deserialize, Serialize}; -use std::{ - ffi::OsStr, - fs, - path::{Path, PathBuf}, -}; -use tracing::info; -use url::Url; - -pub mod seed; - -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"; - -#[derive(Clone, Debug, serde::Serialize, serde::Deserialize, PartialEq)] -pub struct File { - pub bitcoin: Bitcoin, - pub monero: Monero, -} - -impl File { - pub fn read(config_file: D) -> Result - where - D: AsRef, - { - let config_file = Path::new(&config_file); - - let mut config = Config::new(); - config.merge(config::File::from(config_file))?; - config.try_into() - } -} - -#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)] -#[serde(deny_unknown_fields)] -pub struct Bitcoin { - pub bitcoind_url: Url, - pub wallet_name: String, -} - -#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)] -#[serde(deny_unknown_fields)] -pub struct Monero { - pub wallet_rpc_url: Url, -} - -#[derive(thiserror::Error, Debug, Clone, Copy)] -#[error("config not initialized")] -pub struct ConfigNotInitialized {} - -pub fn read_config(config_path: PathBuf) -> Result> { - if config_path.exists() { - info!( - "Using config file at default path: {}", - config_path.display() - ); - } else { - return Ok(Err(ConfigNotInitialized {})); - } - - let file = File::read(&config_path) - .with_context(|| format!("failed to read config file {}", config_path.display()))?; - - Ok(Ok(file)) -} - -pub fn initial_setup(config_path: PathBuf, config_file: F) -> Result<()> -where - F: Fn() -> Result, -{ - info!("Config file not found, running initial setup..."); - ensure_directory_exists(config_path.as_path())?; - let initial_config = config_file()?; - - let toml = toml::to_string(&initial_config)?; - fs::write(&config_path, toml)?; - - info!( - "Initial setup complete, config file created at {} ", - config_path.as_path().display() - ); - Ok(()) -} - -pub fn query_user_for_initial_testnet_config() -> Result { - println!(); - let bitcoind_url: String = Input::with_theme(&ColorfulTheme::default()) - .with_prompt("Enter Bitcoind URL (including username and password if applicable) or hit return to use default") - .default(DEFAULT_BITCOIND_TESTNET_URL.to_owned()) - .interact_text()?; - let bitcoind_url = Url::parse(bitcoind_url.as_str())?; - - let bitcoin_wallet_name: String = Input::with_theme(&ColorfulTheme::default()) - .with_prompt("Enter Bitcoind wallet name") - .interact_text()?; - - let monero_wallet_rpc_url: String = Input::with_theme(&ColorfulTheme::default()) - .with_prompt("Enter Monero Wallet RPC URL or hit enter to use default") - .default(DEFAULT_MONERO_WALLET_RPC_TESTNET_URL.to_owned()) - .interact_text()?; - let monero_wallet_rpc_url = Url::parse(monero_wallet_rpc_url.as_str())?; - println!(); - - Ok(File { - bitcoin: Bitcoin { - bitcoind_url, - wallet_name: bitcoin_wallet_name, - }, - monero: Monero { - wallet_rpc_url: monero_wallet_rpc_url, - }, - }) -} - -#[cfg(test)] -mod tests { - use super::*; - use std::str::FromStr; - use tempfile::tempdir; - - #[test] - fn config_roundtrip() { - let temp_dir = tempdir().unwrap().path().to_path_buf(); - let config_path = Path::join(&temp_dir, "config.toml"); - - let expected = File { - bitcoin: Bitcoin { - bitcoind_url: Url::from_str("http://127.0.0.1:18332").unwrap(), - wallet_name: "alice".to_string(), - }, - monero: Monero { - wallet_rpc_url: Url::from_str("http://127.0.0.1:38083/json_rpc").unwrap(), - }, - }; - - initial_setup(config_path.clone(), || Ok(expected.clone())).unwrap(); - let actual = read_config(config_path).unwrap().unwrap(); - - assert_eq!(expected, actual); - } -} diff --git a/swap/src/execution_params.rs b/swap/src/execution_params.rs new file mode 100644 index 00000000..836a580d --- /dev/null +++ b/swap/src/execution_params.rs @@ -0,0 +1,117 @@ +use crate::bitcoin::Timelock; +use conquer_once::Lazy; +use std::time::Duration; + +#[derive(Debug, Copy, Clone)] +pub struct ExecutionParams { + pub bob_time_to_act: Duration, + pub bitcoin_finality_confirmations: u32, + pub bitcoin_avg_block_time: Duration, + pub monero_finality_confirmations: u32, + pub bitcoin_cancel_timelock: Timelock, + pub bitcoin_punish_timelock: Timelock, +} + +pub trait GetExecutionParams { + fn get_execution_params() -> ExecutionParams; +} + +#[derive(Clone, Copy)] +pub struct Mainnet; + +#[derive(Clone, Copy)] +pub struct Testnet; + +#[derive(Clone, Copy)] +pub struct Regtest; + +impl GetExecutionParams for Mainnet { + fn get_execution_params() -> ExecutionParams { + ExecutionParams { + bob_time_to_act: *mainnet::BOB_TIME_TO_ACT, + bitcoin_finality_confirmations: mainnet::BITCOIN_FINALITY_CONFIRMATIONS, + bitcoin_avg_block_time: *mainnet::BITCOIN_AVG_BLOCK_TIME, + monero_finality_confirmations: mainnet::MONERO_FINALITY_CONFIRMATIONS, + bitcoin_cancel_timelock: mainnet::BITCOIN_CANCEL_TIMELOCK, + bitcoin_punish_timelock: mainnet::BITCOIN_PUNISH_TIMELOCK, + } + } +} + +impl GetExecutionParams for Testnet { + fn get_execution_params() -> ExecutionParams { + ExecutionParams { + bob_time_to_act: *testnet::BOB_TIME_TO_ACT, + bitcoin_finality_confirmations: testnet::BITCOIN_FINALITY_CONFIRMATIONS, + bitcoin_avg_block_time: *testnet::BITCOIN_AVG_BLOCK_TIME, + monero_finality_confirmations: testnet::MONERO_FINALITY_CONFIRMATIONS, + bitcoin_cancel_timelock: testnet::BITCOIN_CANCEL_TIMELOCK, + bitcoin_punish_timelock: testnet::BITCOIN_PUNISH_TIMELOCK, + } + } +} + +impl GetExecutionParams for Regtest { + fn get_execution_params() -> ExecutionParams { + ExecutionParams { + bob_time_to_act: *regtest::BOB_TIME_TO_ACT, + bitcoin_finality_confirmations: regtest::BITCOIN_FINALITY_CONFIRMATIONS, + bitcoin_avg_block_time: *regtest::BITCOIN_AVG_BLOCK_TIME, + monero_finality_confirmations: regtest::MONERO_FINALITY_CONFIRMATIONS, + bitcoin_cancel_timelock: regtest::BITCOIN_CANCEL_TIMELOCK, + bitcoin_punish_timelock: regtest::BITCOIN_PUNISH_TIMELOCK, + } + } +} + +mod mainnet { + use crate::execution_params::*; + + // For each step, we are giving Bob 10 minutes to act. + pub static BOB_TIME_TO_ACT: Lazy = Lazy::new(|| Duration::from_secs(10 * 60)); + + pub static BITCOIN_FINALITY_CONFIRMATIONS: u32 = 3; + + pub static BITCOIN_AVG_BLOCK_TIME: Lazy = Lazy::new(|| Duration::from_secs(10 * 60)); + + pub static MONERO_FINALITY_CONFIRMATIONS: u32 = 15; + + // Set to 12 hours, arbitrary value to be reviewed properly + pub static BITCOIN_CANCEL_TIMELOCK: Timelock = Timelock::new(72); + pub static BITCOIN_PUNISH_TIMELOCK: Timelock = Timelock::new(72); +} + +mod testnet { + use crate::execution_params::*; + + pub static BOB_TIME_TO_ACT: Lazy = Lazy::new(|| Duration::from_secs(60 * 60)); + + // This does not reflect recommended values for mainnet! + pub static BITCOIN_FINALITY_CONFIRMATIONS: u32 = 1; + + pub static BITCOIN_AVG_BLOCK_TIME: Lazy = Lazy::new(|| Duration::from_secs(5 * 60)); + + // This does not reflect recommended values for mainnet! + pub static MONERO_FINALITY_CONFIRMATIONS: u32 = 5; + + // This does not reflect recommended values for mainnet! + pub static BITCOIN_CANCEL_TIMELOCK: Timelock = Timelock::new(12); + pub static BITCOIN_PUNISH_TIMELOCK: Timelock = Timelock::new(6); +} + +mod regtest { + use crate::execution_params::*; + + // In test, we set a shorter time to fail fast + pub static BOB_TIME_TO_ACT: Lazy = Lazy::new(|| Duration::from_secs(30)); + + pub static BITCOIN_FINALITY_CONFIRMATIONS: u32 = 1; + + pub static BITCOIN_AVG_BLOCK_TIME: Lazy = Lazy::new(|| Duration::from_secs(5)); + + pub static MONERO_FINALITY_CONFIRMATIONS: u32 = 1; + + pub static BITCOIN_CANCEL_TIMELOCK: Timelock = Timelock::new(100); + + pub static BITCOIN_PUNISH_TIMELOCK: Timelock = Timelock::new(50); +} diff --git a/swap/src/lib.rs b/swap/src/lib.rs index ce734445..72c81012 100644 --- a/swap/src/lib.rs +++ b/swap/src/lib.rs @@ -17,8 +17,8 @@ )] pub mod bitcoin; -pub mod config; pub mod database; +pub mod execution_params; pub mod monero; pub mod network; pub mod protocol; diff --git a/swap/src/main.rs b/swap/src/main.rs index 2d62d1e9..450fd4dc 100644 --- a/swap/src/main.rs +++ b/swap/src/main.rs @@ -14,10 +14,10 @@ use crate::{ cli::{Command, Options, Resume}, - config::GetExecutionParams, - configuration::{ + config::{ initial_setup, query_user_for_initial_testnet_config, read_config, ConfigNotInitialized, }, + execution_params::GetExecutionParams, }; use anyhow::{Context, Result}; use database::Database; @@ -33,8 +33,8 @@ use uuid::Uuid; pub mod bitcoin; pub mod config; -pub mod configuration; pub mod database; +pub mod execution_params; pub mod monero; pub mod network; pub mod protocol; @@ -66,14 +66,14 @@ async fn main() -> Result<()> { ); let db_path = data_dir.join("database"); - let seed = configuration::seed::Seed::from_file_or_generate(&data_dir) + let seed = config::seed::Seed::from_file_or_generate(&data_dir) .expect("Could not retrieve/initialize seed") .into(); // hardcode to testnet/stagenet let bitcoin_network = bitcoin::Network::Testnet; let monero_network = monero::Network::Stagenet; - let execution_params = config::Testnet::get_execution_params(); + let execution_params = execution_params::Testnet::get_execution_params(); match opt.cmd { Command::SellXmr { diff --git a/swap/src/protocol/alice.rs b/swap/src/protocol/alice.rs index c1bbdfdd..20bf002f 100644 --- a/swap/src/protocol/alice.rs +++ b/swap/src/protocol/alice.rs @@ -10,10 +10,9 @@ pub use self::{ transfer_proof::TransferProof, }; use crate::{ - bitcoin, - config::ExecutionParams, - database, + bitcoin, database, database::Database, + execution_params::ExecutionParams, monero, network::{ peer_tracker::{self, PeerTracker}, diff --git a/swap/src/protocol/alice/steps.rs b/swap/src/protocol/alice/steps.rs index b3850ca3..86b96b5c 100644 --- a/swap/src/protocol/alice/steps.rs +++ b/swap/src/protocol/alice/steps.rs @@ -7,7 +7,7 @@ use crate::{ TransactionBlockHeight, TxCancel, TxLock, TxRefund, WaitForTransactionFinality, WatchForRawTransaction, }, - config::ExecutionParams, + execution_params::ExecutionParams, monero, monero::Transfer, protocol::{ diff --git a/swap/src/protocol/alice/swap.rs b/swap/src/protocol/alice/swap.rs index 641aac72..0cbcac28 100644 --- a/swap/src/protocol/alice/swap.rs +++ b/swap/src/protocol/alice/swap.rs @@ -6,9 +6,9 @@ use crate::{ timelocks::ExpiredTimelocks, TransactionBlockHeight, WaitForTransactionFinality, WatchForRawTransaction, }, - config::ExecutionParams, database, database::Database, + execution_params::ExecutionParams, monero, monero::CreateWalletForOutput, protocol::{ diff --git a/swap/src/protocol/bob.rs b/swap/src/protocol/bob.rs index 16d31568..810af8c2 100644 --- a/swap/src/protocol/bob.rs +++ b/swap/src/protocol/bob.rs @@ -28,7 +28,7 @@ pub use self::{ swap::{run, run_until}, swap_request::*, }; -use crate::{config::ExecutionParams, protocol::alice::TransferProof}; +use crate::{execution_params::ExecutionParams, protocol::alice::TransferProof}; mod encrypted_signature; pub mod event_loop; diff --git a/swap/src/protocol/bob/state.rs b/swap/src/protocol/bob/state.rs index 9b453f6e..f727291a 100644 --- a/swap/src/protocol/bob/state.rs +++ b/swap/src/protocol/bob/state.rs @@ -6,7 +6,7 @@ use crate::{ GetBlockHeight, GetNetwork, GetRawTransaction, Transaction, TransactionBlockHeight, TxCancel, Txid, WatchForRawTransaction, }, - config::ExecutionParams, + execution_params::ExecutionParams, monero, monero::{monero_private_key, TransferProof}, protocol::{alice, bob, bob::EncryptedSignature, SwapAmounts}, diff --git a/swap/src/protocol/bob/swap.rs b/swap/src/protocol/bob/swap.rs index 8bbabe6d..ced72266 100644 --- a/swap/src/protocol/bob/swap.rs +++ b/swap/src/protocol/bob/swap.rs @@ -1,8 +1,8 @@ use crate::{ bitcoin, bitcoin::timelocks::ExpiredTimelocks, - config::ExecutionParams, database::{Database, Swap}, + execution_params::ExecutionParams, monero, protocol::{ bob::{self, event_loop::EventLoopHandle, state::*, SwapRequest}, diff --git a/swap/tests/refund_restart_alice_cancelled.rs b/swap/tests/refund_restart_alice_cancelled.rs index 7c47c171..116c1fd4 100644 --- a/swap/tests/refund_restart_alice_cancelled.rs +++ b/swap/tests/refund_restart_alice_cancelled.rs @@ -1,7 +1,7 @@ pub mod testutils; use swap::{ - config, + execution_params, protocol::{alice, alice::AliceState, bob}, }; use testutils::alice_run_until::is_encsig_learned; @@ -11,7 +11,7 @@ use testutils::alice_run_until::is_encsig_learned; /// redeem had the timelock not expired. #[tokio::test] async fn given_alice_restarts_after_enc_sig_learned_and_bob_already_cancelled_refund_swap() { - testutils::setup_test(config::Regtest, |mut ctx| async move { + testutils::setup_test(execution_params::Regtest, |mut ctx| async move { let (alice_swap, alice_join_handle) = ctx.new_swap_as_alice().await; let (bob_swap, _) = ctx.new_swap_as_bob().await; diff --git a/swap/tests/testutils/mod.rs b/swap/tests/testutils/mod.rs index 9ddccbe1..1d435958 100644 --- a/swap/tests/testutils/mod.rs +++ b/swap/tests/testutils/mod.rs @@ -8,8 +8,8 @@ use std::{path::PathBuf, sync::Arc}; use swap::{ bitcoin, bitcoin::Timelock, - config, - config::{ExecutionParams, GetExecutionParams}, + execution_params, + execution_params::{ExecutionParams, GetExecutionParams}, monero, protocol::{alice, alice::AliceState, bob, bob::BobState, SwapAmounts}, seed::Seed, @@ -518,7 +518,7 @@ impl GetExecutionParams for SlowCancelConfig { fn get_execution_params() -> ExecutionParams { ExecutionParams { bitcoin_cancel_timelock: Timelock::new(180), - ..config::Regtest::get_execution_params() + ..execution_params::Regtest::get_execution_params() } } } @@ -529,7 +529,7 @@ impl GetExecutionParams for FastCancelConfig { fn get_execution_params() -> ExecutionParams { ExecutionParams { bitcoin_cancel_timelock: Timelock::new(1), - ..config::Regtest::get_execution_params() + ..execution_params::Regtest::get_execution_params() } } } @@ -541,7 +541,7 @@ impl GetExecutionParams for FastPunishConfig { ExecutionParams { bitcoin_cancel_timelock: Timelock::new(1), bitcoin_punish_timelock: Timelock::new(1), - ..config::Regtest::get_execution_params() + ..execution_params::Regtest::get_execution_params() } } }