helium_api/
vars.rs

1use crate::*;
2
3pub async fn get(client: &Client) -> Result<serde_json::Map<String, serde_json::Value>> {
4    let result: serde_json::Value = client.fetch("/vars", NO_QUERY).await?;
5    result
6        .as_object()
7        .cloned()
8        .ok_or_else(|| Error::value(result))
9}
10
11pub async fn get_named(
12    client: &Client,
13    keys: &[&str],
14) -> Result<serde_json::Map<String, serde_json::Value>> {
15    let param = keys.join(",");
16    let result: serde_json::Value = client.fetch("/vars", &[("keys", param)]).await?;
17    result
18        .as_object()
19        .cloned()
20        .ok_or_else(|| Error::value(result))
21}
22
23#[cfg(test)]
24mod test {
25    use super::*;
26    use tokio::test;
27
28    #[test]
29    async fn named() {
30        let client = get_test_client();
31        let vars = vars::get_named(&client, &["txn_fees"])
32            .await
33            .expect("named vars");
34        assert_eq!(
35            true,
36            vars.get("txn_fees")
37                .expect("txn_fees")
38                .as_bool()
39                .expect("bool")
40        );
41    }
42}