#![deny(missing_docs, unsafe_code)]
use std::net;
use std::path::PathBuf;
pub use nakamoto_client::{Client, Config, Error, Network};
pub use nakamoto_client::{Domain, LoadingHandler};
pub mod logger;
type Reactor = nakamoto_net_poll::Reactor<net::TcpStream>;
pub fn run(
connect: &[net::SocketAddr],
listen: &[net::SocketAddr],
root: Option<PathBuf>,
domains: &[Domain],
network: Network,
) -> Result<(), Error> {
let mut cfg = Config {
network,
connect: connect.to_vec(),
domains: domains.to_vec(),
listen: if listen.is_empty() {
vec![([0, 0, 0, 0], 0).into()]
} else {
listen.to_vec()
},
..Config::default()
};
if let Some(path) = root {
cfg.root = path;
}
if !connect.is_empty() {
cfg.limits.max_outbound_peers = connect.len();
}
Client::<Reactor>::new()?.run(cfg)
}