Skip to content

Scan remaining democracy lock #1662

@aurexav

Description

@aurexav
// 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(())
}

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions