mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2025-08-10 15:30:14 -04:00
Allow external addr to be specified in ASB CLI param
This commit is contained in:
parent
92e77d1b71
commit
fa4cc82de0
2 changed files with 40 additions and 13 deletions
|
@ -4,6 +4,7 @@ use crate::env;
|
|||
use crate::env::GetConfig;
|
||||
use anyhow::{bail, Result};
|
||||
use bitcoin::Address;
|
||||
use libp2p::Multiaddr;
|
||||
use serde::Serialize;
|
||||
use std::ffi::OsString;
|
||||
use std::path::PathBuf;
|
||||
|
@ -24,12 +25,18 @@ where
|
|||
let command: RawCommand = args.cmd;
|
||||
|
||||
let arguments = match command {
|
||||
RawCommand::Start { resume_only } => Arguments {
|
||||
RawCommand::Start {
|
||||
resume_only,
|
||||
external_addr,
|
||||
} => Arguments {
|
||||
testnet: is_testnet,
|
||||
json: is_json,
|
||||
config_path: config_path(config, is_testnet)?,
|
||||
env_config: env_config(is_testnet),
|
||||
cmd: Command::Start { resume_only },
|
||||
cmd: Command::Start {
|
||||
resume_only,
|
||||
external_addr,
|
||||
},
|
||||
},
|
||||
RawCommand::History => Arguments {
|
||||
testnet: is_testnet,
|
||||
|
@ -167,6 +174,7 @@ pub struct Arguments {
|
|||
pub enum Command {
|
||||
Start {
|
||||
resume_only: bool,
|
||||
external_addr: Option<Multiaddr>,
|
||||
},
|
||||
History,
|
||||
WithdrawBtc {
|
||||
|
@ -234,6 +242,11 @@ pub enum RawCommand {
|
|||
help = "For maintenance only. When set, no new swap requests will be accepted, but existing unfinished swaps will be resumed."
|
||||
)]
|
||||
resume_only: bool,
|
||||
#[structopt(
|
||||
long = "external-addr",
|
||||
help = "Our external address to be used when registering our service with a rendezvous node"
|
||||
)]
|
||||
external_addr: Option<Multiaddr>,
|
||||
},
|
||||
#[structopt(about = "Prints swap-id and the state of each swap ever made.")]
|
||||
History,
|
||||
|
@ -338,7 +351,10 @@ mod tests {
|
|||
json: false,
|
||||
config_path: default_mainnet_conf_path.clone(),
|
||||
env_config: mainnet_env_config,
|
||||
cmd: Command::Start { resume_only: false },
|
||||
cmd: Command::Start {
|
||||
resume_only: false,
|
||||
external_addr: None,
|
||||
},
|
||||
};
|
||||
let args = parse_args(raw_ars).unwrap();
|
||||
assert_eq!(expected_args, args);
|
||||
|
@ -475,7 +491,10 @@ mod tests {
|
|||
json: false,
|
||||
config_path: default_testnet_conf_path.clone(),
|
||||
env_config: testnet_env_config,
|
||||
cmd: Command::Start { resume_only: false },
|
||||
cmd: Command::Start {
|
||||
resume_only: false,
|
||||
external_addr: None,
|
||||
},
|
||||
};
|
||||
let args = parse_args(raw_ars).unwrap();
|
||||
assert_eq!(expected_args, args);
|
||||
|
|
|
@ -107,7 +107,10 @@ async fn main() -> Result<()> {
|
|||
Seed::from_file_or_generate(&config.data.dir).expect("Could not retrieve/initialize seed");
|
||||
|
||||
match cmd {
|
||||
Command::Start { resume_only } => {
|
||||
Command::Start {
|
||||
resume_only,
|
||||
external_addr,
|
||||
} => {
|
||||
let bitcoin_wallet = init_bitcoin_wallet(&config, &seed, env_config).await?;
|
||||
|
||||
let monero_wallet = init_monero_wallet(&config, env_config).await?;
|
||||
|
@ -163,14 +166,19 @@ async fn main() -> Result<()> {
|
|||
|
||||
tracing::info!(peer_id = %swarm.local_peer_id(), "Network layer initialized");
|
||||
|
||||
Swarm::dial_addr(&mut swarm, config.rendezvous_node.addr.clone()).with_context(
|
||||
|| {
|
||||
format!(
|
||||
"Failed to dial rendezvous node addr {}",
|
||||
config.rendezvous_node.addr
|
||||
)
|
||||
},
|
||||
)?;
|
||||
// todo: Option<Multiaddr> is being used as a rendezvous feature toggle.
|
||||
// The fact that rendezvous is an optional feature could be expressed better.
|
||||
if let Some(addr) = external_addr {
|
||||
let _ = Swarm::add_external_address(&mut swarm, addr, AddressScore::Infinite);
|
||||
Swarm::dial_addr(&mut swarm, config.rendezvous_node.addr.clone()).with_context(
|
||||
|| {
|
||||
format!(
|
||||
"Failed to dial rendezvous node addr {}",
|
||||
config.rendezvous_node.addr
|
||||
)
|
||||
},
|
||||
)?;
|
||||
}
|
||||
|
||||
let namespace = if testnet {
|
||||
XmrBtcNamespace::Testnet
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue