use clap::Parser;
use eq_sdk::{EqClient, JobId};
use tonic::transport::Endpoint;
#[derive(Parser, Debug)]
#[command(author, version)]
#[command(disable_help_flag(true))]
struct Args {
#[arg(short, long, env = "EQ_SOCKET")]
socket: String,
#[arg(short = 'h', long)]
height: u64,
#[arg(short, long)]
namespace: String,
#[arg(short, long)]
commitment: String,
#[arg(short, long)]
l2_chain_id: String,
#[arg(short, long)]
batch_number: String,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let args = Args::parse();
let url = if args.socket.starts_with("http") {
args.socket.clone()
} else {
format!("http://{}", args.socket)
};
let channel = Endpoint::from_shared(url)?
.connect()
.await
.map_err(|e| format!("gRPC connect error: {e}"))?;
let client = EqClient::new(channel);
let job_str = format!(
"{}:{}:{}:{}:{}",
args.height, args.namespace, args.commitment, args.l2_chain_id, args.batch_number
);
let job_id: JobId = job_str.parse()?;
let resp = client.get_zk_stack(&job_id).await?;
println!("{:#?}", resp);
Ok(())
}