)));
let server = Server::new(state.clone());
let mut io = IoHandler::default();
io.extend_with(server.to_delegate());
let rpc_server = ServerBuilder::new(io)
.threads(1)
.start_http(&"127.0.0.1:0".parse().unwrap())
.unwrap();
let close_handle = rpc_server.close_handle();
let port = rpc_server.address().port();
thread::spawn(|| rpc_server.wait());
for i in 0.. {
match reqwest::blocking::get(format!("http://127.0.0.1:{port}/")) {
Ok(_) => break,
Err(err) => {
if i == 400 {
panic!("Server failed to start: {err}");
}
}
}
thread::sleep(Duration::from_millis(25));
}
Handle {
close_handle: Some(close_handle),
port,
state,
}
}
}
pub fn spawn() -> Handle {
builder().build()
}
#[derive(Clone)]
pub struct TransactionTemplate<'a> {
pub fee: u64,
pub inputs: &'a [(usize, usize, usize, Witness)],
pub op_return: Option<ScriptBuf>,
pub op_return_index: Option<usize>,