use std::fs::File;
use anyhow::Result;
use clap::Parser;
use sp1_sdk::HashableKey;
use sp1_sdk::ProverClient;
use std::io::Read;
#[derive(Parser)]
#[command(name = "vkey", about = "View the verification key hash for a program.")]
pub struct VkeyCmd {
#[arg(long, required = true)]
elf: String,
}
impl VkeyCmd {
pub fn run(&self) -> Result<()> {
let mut file = File::open(self.elf.clone()).unwrap();
let mut elf = Vec::new();
file.read_to_end(&mut elf).unwrap();
let prover = ProverClient::new();
let (_, vk) = prover.setup(&elf);
println!("Verification Key Hash:\n{}", vk.vk.bytes32());
Ok(())
}
}