use crate::rpc::blockchain::BlockchainRpc;
use anyhow::Result;
use serde_json::{json, Value};
pub async fn get_address_balance(blockchain: &BlockchainRpc, address: &str) -> Result<Value> {
let params = json!([address]);
let balance = blockchain
.getaddressbalance(¶ms)
.await
.map_err(|e| anyhow::anyhow!("Failed to get address balance: {}", e))?;
Ok(balance)
}
pub async fn get_address_transactions(blockchain: &BlockchainRpc, address: &str) -> Result<Value> {
let params = json!([address]);
let txids = blockchain
.getaddresstxids(¶ms)
.await
.map_err(|e| anyhow::anyhow!("Failed to get address transactions: {}", e))?;
Ok(txids)
}
pub async fn get_address_utxos(blockchain: &BlockchainRpc, address: &str) -> Result<Value> {
let params = json!([address]);
let info = blockchain.get_address_info(¶ms).await?;
Ok(json!({
"address": address,
"balance": info.get("balance"),
"utxo_count": info.get("utxo_count"),
"tx_count": info.get("tx_count")
}))
}