Skip to content
Snippets Groups Projects
Verified Commit d3df09f2 authored by Pascal Engélibert's avatar Pascal Engélibert :bicyclist:
Browse files

feat: command tech-members

parent bb913abb
No related branches found
No related tags found
No related merge requests found
pub mod collective;
pub mod expire;
pub mod identity;
pub mod net_test;
......
use crate::{gdev, indexer::*, Args, Client};
use anyhow::Result;
pub async fn technical_committee_members(client: Client, args: &Args) -> Result<()> {
let parent_hash = client
.storage()
.fetch(&gdev::storage().system().parent_hash(), None)
.await?
.unwrap();
let gql_client = reqwest::Client::builder()
.user_agent("gcli/0.1.0")
.build()?;
let indexer = if args.no_indexer {
None
} else {
Some(Indexer {
gql_client,
gql_url: &args.indexer,
})
};
for account_id in client
.storage()
.fetch(
&gdev::storage().technical_committee().members(),
Some(parent_hash),
)
.await?
.unwrap_or_default()
{
println!(
"{}",
if let Some(indexer) = &indexer {
indexer
.username_by_pubkey(&account_id.to_string())
.await
.ok()
.flatten()
} else {
client
.storage()
.fetch(
&gdev::storage().identity().identity_index_of(&account_id),
Some(parent_hash),
)
.await
.ok()
.flatten()
.map(|identity_id| format!("{identity_id}"))
}
.unwrap_or_else(|| account_id.to_string(),)
);
}
Ok(())
}
......@@ -140,6 +140,8 @@ pub enum Subcommand {
SudoSetKey {
new_key: sp_core::crypto::AccountId32,
},
/// List members of the technical committee
TechMembers,
Transfer {
/// Amount to transfer
amount: u64,
......@@ -311,6 +313,9 @@ async fn main() -> Result<()> {
)
.await?
}
Subcommand::TechMembers => {
commands::collective::technical_committee_members(client, &args).await?
}
Subcommand::Transfer {
amount,
dest,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment