use bft_json_crdt::keypair::Ed25519KeyPair; use bft_json_crdt::{json_crdt::BaseCrdt, keypair::make_keypair}; use cli::{parse_args, Commands}; use types::ListExample; pub(crate) mod cli; pub(crate) mod init; pub(crate) mod types; pub(crate) mod websocket; #[tokio::main] async fn main() { let args = parse_args(); match &args.command { Some(Commands::Init {}) => { init::init(); } Some(Commands::Run {}) => { let (mut bft_crdt, keys) = setup_crdt(); websocket::start(keys, &mut bft_crdt).await.unwrap(); } None => println!("No command provided. Exiting. See --help for more information."), } } fn setup_crdt() -> (BaseCrdt, Ed25519KeyPair) { let keys = make_keypair(); let bft_crdt = BaseCrdt::::new(&keys); (bft_crdt, keys) }