use super::*;
#[derive(Debug, clap::Subcommand)]
pub enum CommandBtc {
Addr,
Wif,
Private,
Public,
}
impl CommandBtc {
pub fn process<T: AsMut<S>, S: ToolState, W: Write>(
&self,
mut tool_state: T,
out: &mut W,
) -> Result<(), Error> {
let tool_state = tool_state.as_mut();
let secret = tool_state.current_secret()?;
match self {
CommandBtc::Addr => write!(out, "{}", secret.extract_bitcoin_v1_address_b58()?)?,
CommandBtc::Wif => write!(out, "{}", secret.extract_bitcoin_v1_wif_b58()?)?,
CommandBtc::Private => write!(
out,
"{}",
hex::encode(secret.extract_bitcoin_v1_private_key()?)
)?,
CommandBtc::Public => write!(
out,
"{}",
hex::encode(secret.extract_bitcoin_v1_public_key()?)
)?,
}
Ok(())
}
}