fn main() {
eprintln!("⚠️ You're using the deprecated starknet-contract-verifier package!");
eprintln!("📦 Please install voyager-verifier instead:");
eprintln!(" cargo uninstall starknet-contract-verifier");
eprintln!(" cargo install voyager-verifier");
eprintln!();
eprintln!("🔗 Repository: https://github.com/NethermindEth/voyager-verifier");
eprintln!();
use std::process::Command;
let args: Vec<String> = std::env::args().skip(1).collect();
let mut cmd = Command::new("voyager");
cmd.args(&args);
if CommandExtUnix::exec(&mut cmd).is_err() {
eprintln!("❌ Could not find 'voyager' binary. Please install voyager-verifier:");
eprintln!(" cargo install voyager-verifier");
std::process::exit(1);
}
}
#[cfg(unix)]
use std::os::unix::process::CommandExt;
#[cfg(unix)]
use std::process::Command;
#[cfg(unix)]
trait CommandExtUnix {
fn exec(&mut self) -> std::io::Result<()>;
}
#[cfg(unix)]
impl CommandExtUnix for Command {
fn exec(&mut self) -> std::io::Result<()> {
let _ = CommandExt::exec(self);
Ok(()) }
}
#[cfg(not(unix))]
use std::process::Command;
#[cfg(not(unix))]
trait CommandExtUnix {
fn exec(&mut self) -> std::io::Result<()>;
}
#[cfg(not(unix))]
impl CommandExtUnix for Command {
fn exec(&mut self) -> std::io::Result<()> {
let status = self.status()?;
std::process::exit(status.code().unwrap_or(1));
}
}