starkli 0.1.6

Starkli (/ˈstɑːrklaɪ/), a blazing fast CLI tool for Starknet powered by starknet-rs
use anyhow::{anyhow, Result};
use clap::Parser;
use starknet::core::utils::get_selector_from_name;

#[derive(Debug, Parser)]
pub struct Selector {
    #[clap(help = "Selector name")]
    name: String,
}

impl Selector {
    pub fn run(self) -> Result<()> {
        let trimmed_name = self.name.trim();

        if trimmed_name.contains('(') || trimmed_name.contains(')') {
            return Err(anyhow!(
                "parentheses and the content within should not be supplied"
            ));
        }

        let selector = get_selector_from_name(trimmed_name)?;
        println!("{selector:#064x}");

        Ok(())
    }
}