-
Notifications
You must be signed in to change notification settings - Fork 49
Description
// std
use std::error::Error;
// crates.io
use array_bytes::Hexify;
use pallet_balances::BalanceLock;
use parity_scale_codec::Decode;
use subxt::{
dynamic::{self, Value},
OnlineClient, SubstrateConfig,
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let api = OnlineClient::<SubstrateConfig>::from_url("wss://rpc.darwinia.network").await?;
let query = dynamic::storage("Balances", "Locks", <Vec<Value>>::new());
let mut results = api.storage().at_latest().await?.iter(query).await?;
while let Some(Ok(kv)) = results.next().await {
let k = kv.key_bytes[kv.key_bytes.len() - 20..].hexify_prefixed();
let encoded = kv.value.encoded();
let locks = <Vec<BalanceLock<u128>>>::decode(&mut &*encoded)?;
for lock in locks {
let id = lock.id.iter().map(|b| *b as char).collect::<String>();
println!("{k}, {id}, {lock:?}");
}
}
Ok(())
}Reactions are currently unavailable