helium-api 3.3.1

An async library for the Helium blockchain REST API
Documentation
use crate::*;

pub async fn get(client: &Client) -> Result<serde_json::Map<String, serde_json::Value>> {
    let result: serde_json::Value = client.fetch("/vars", NO_QUERY).await?;
    result
        .as_object()
        .cloned()
        .ok_or_else(|| Error::value(result))
}

pub async fn get_named(
    client: &Client,
    keys: &[&str],
) -> Result<serde_json::Map<String, serde_json::Value>> {
    let param = keys.join(",");
    let result: serde_json::Value = client.fetch("/vars", &[("keys", param)]).await?;
    result
        .as_object()
        .cloned()
        .ok_or_else(|| Error::value(result))
}

#[cfg(test)]
mod test {
    use super::*;
    use tokio::test;

    #[test]
    async fn named() {
        let client = get_test_client();
        let vars = vars::get_named(&client, &["txn_fees"])
            .await
            .expect("named vars");
        assert_eq!(
            true,
            vars.get("txn_fees")
                .expect("txn_fees")
                .as_bool()
                .expect("bool")
        );
    }
}