use crate::*; /// define universal dividends subcommands #[derive(Clone, Default, Debug, clap::Parser)] pub enum Subcommand { #[default] /// Claim uds Claim, } /// handle ud commands pub async fn handle_command(data: Data, command: Subcommand) -> anyhow::Result<()> { // build indexer because it is needed for all subcommands let mut data = data.build_client().await?; // match subcommand match command { Subcommand::Claim => { data = data.build_keypair(); claim_ud(data).await?; } }; Ok(()) } /// claim universal dividend pub async fn claim_ud(data: Data) -> Result<(), anyhow::Error> { let progress = data .client() .tx() .sign_and_submit_then_watch( &runtime::tx().universal_dividend().claim_uds(), &PairSigner::new(data.keypair()), BaseExtrinsicParamsBuilder::new(), ) .await?; let events = track_progress(progress).await?; if let Some(e) = events.find_first::<runtime::universal_dividend::events::UdsClaimed>()? { println!("{e:?}"); } Ok(()) }