Getting Total Supply of Group Tokens Available
Read-only example to fetch group token balances/supply from RPC tables.
use circles_rpc::{QueryMethods, RpcClient};
use circles_types::{OrderBy, QueryParams};
use reqwest::Url;
#[derive(Debug, Clone, serde::Deserialize)]
struct GroupSupplyRow {
owner: String,
token: String,
balance: String, // or U256 if parsing as number
}
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let client = RpcClient::http(Url::parse("https://rpc.aboutcircles.com/")?);
let queries = QueryMethods::new(client);
let rows: Vec<GroupSupplyRow> = queries
.circles_query(QueryParams {
namespace: "circles".into(),
table: "tokenBalances".into(),
columns: vec!["owner".into(), "token".into(), "balance".into()],
filter: vec![FilterPredicate::equals("owner".into(), "0xGroupAddressHere").into()],
order: vec![OrderBy::desc("balance".into())],
limit: Some(50),
})
.await?;
for row in rows.iter().take(5) {
println!("group {} token {} balance {}", row.owner, row.token, row.balance);
}
Ok(())
}