use mina_sdk::MinaClient;
use serde_json::json;
#[tokio::main]
async fn main() -> mina_sdk::Result<()> {
let client = MinaClient::default();
let data = client.query("query { version }").send().await?;
println!("Node version: {}", data["version"]);
let data = client
.query(
r#"query {
genesisConstants {
coinbase
accountCreationFee
genesisTimestamp
}
}"#,
)
.name("genesis_constants")
.send()
.await?;
let genesis = &data["genesisConstants"];
println!("Genesis timestamp: {}", genesis["genesisTimestamp"]);
println!("Coinbase (nanomina): {}", genesis["coinbase"]);
println!("Account fee (nanomina): {}", genesis["accountCreationFee"]);
let key = std::env::var("MINA_TEST_SENDER_KEY")
.unwrap_or_else(|_| "B62qjVQLxt9nYMWGn45mkgwYfcz8e8jvjNCBo11VKJb7vxDNwv5QLPS".into());
let data = client
.query(
r#"query ($key: PublicKey!) {
pooledUserCommands(publicKey: $key) { hash }
}"#,
)
.variables(json!({ "key": key }))
.name("pooled_for_key")
.send()
.await?;
let pool_size = data["pooledUserCommands"]
.as_array()
.map(|a| a.len())
.unwrap_or(0);
println!(
"Pending txns for {}: {}",
&key[..20.min(key.len())],
pool_size
);
Ok(())
}