use super::*; #[derive(Serialize, Deserialize)] pub struct Output { pub mnemonic: Mnemonic, pub passphrase: Option, } #[derive(Debug, Parser)] pub(crate) struct Create { #[arg( long, default_value = "", help = "Use to derive wallet seed." )] pub(crate) passphrase: String, } impl Create { pub(crate) fn run(self, options: Options) -> SubcommandResult { let mut entropy = [0; 16]; rand::thread_rng().fill_bytes(&mut entropy); let mnemonic = Mnemonic::from_entropy(&entropy)?; initialize_wallet(&options, mnemonic.to_seed(self.passphrase.clone()))?; Ok(Box::new(Output { mnemonic, passphrase: Some(self.passphrase), })) } }