essential-rest-client 0.7.0

Client for interacting with the Essential Server
Documentation
const LOCALHOST: &str = "127.0.0.1";

async fn test_listener() -> tokio::net::TcpListener {
    tokio::net::TcpListener::bind(format!("{LOCALHOST}:0"))
        .await
        .unwrap()
}

pub async fn setup_node_as_server() -> anyhow::Result<String> {
    let conf = essential_node::db::pool::Config {
        source: essential_node::db::pool::Source::Memory(uuid::Uuid::new_v4().into()),
        ..Default::default()
    };
    let db = essential_node::db::ConnectionPool::with_tables(&conf).unwrap();
    let state = essential_node_api::State {
        conn_pool: db,
        new_block: None,
    };
    let router = essential_node_api::router(state);
    let listener = test_listener().await;
    let port = listener.local_addr().unwrap().port();
    let _jh = tokio::spawn(async move {
        essential_node_api::serve(
            &router,
            &listener,
            essential_node_api::DEFAULT_CONNECTION_LIMIT,
        )
        .await
    });
    let address = format!("http://{LOCALHOST}:{port}/");
    Ok(address)
}