use clap::Parser;
mod cmd;
mod common;
mod hasher;
pub mod replay;
pub mod run;
pub mod tx;
pub use cmd::*;
pub use common::*;
#[tokio::main]
async fn main() -> std::result::Result<(), Error> {
set_thread_panic_hook();
MainCmd::parse().run().await.inspect_err(|e| println!("{e:?}"))
}
fn set_thread_panic_hook() {
use std::{
backtrace::Backtrace,
panic::{set_hook, take_hook},
process::exit,
};
let orig_hook = take_hook();
set_hook(Box::new(move |panic_info| {
println!("Custom backtrace: {}", Backtrace::capture());
orig_hook(panic_info);
exit(1);
}));
}