use anyhow::{anyhow, Result};
use rustywallet::keys::{network::Network as KeyNetwork, private_key::PrivateKey};
pub fn parse_private_key(input: &str) -> Result<PrivateKey> {
let input = input.trim();
if input.starts_with('5')
|| input.starts_with('K')
|| input.starts_with('L')
|| input.starts_with('c')
|| input.starts_with('9')
{
return PrivateKey::from_wif(input).map_err(|e| anyhow!("Invalid WIF: {}", e));
}
let hex_input = input.strip_prefix("0x").unwrap_or(input);
PrivateKey::from_hex(hex_input).map_err(|e| anyhow!("Invalid hex key: {}", e))
}
pub fn parse_key_network(network: &str) -> Result<KeyNetwork> {
match network {
"mainnet" => Ok(KeyNetwork::Mainnet),
"testnet" => Ok(KeyNetwork::Testnet),
_ => Err(anyhow!("Invalid network: {}", network)),
}
}