use crate::rpc::mining::MiningRpc;
use anyhow::Result;
use serde_json::{json, Value};
pub async fn get_mining_info(mining: &MiningRpc) -> Result<Value> {
let info = mining.get_mining_info().await?;
Ok(info)
}
pub async fn get_block_template(
mining: &MiningRpc,
rules: Option<Vec<&str>>,
capabilities: Option<Vec<&str>>,
) -> Result<Value> {
let mut params = json!([]);
if let Some(r) = rules {
params.as_array_mut().unwrap().push(json!(r));
}
if let Some(c) = capabilities {
params.as_array_mut().unwrap().push(json!(c));
}
let template = mining.get_block_template(¶ms).await?;
Ok(template)
}
pub async fn submit_block(mining: &MiningRpc, hex: &str) -> Result<Value> {
let params = json!([hex]);
let result = mining.submit_block(¶ms).await?;
Ok(result)
}