use crate::util::{domain_style, secret_style};
use clap::Args;
use rand::rngs::OsRng;
use willow25::entry::randomly_generate_subspace;
#[derive(Args)]
pub struct DomainArgs {}
pub fn generate_domain(_args: &DomainArgs) {
let mut csprng = OsRng;
let (subspace_id, subspace_secret) = randomly_generate_subspace(&mut csprng);
let b16_id = base16::encode_lower(subspace_id.as_bytes());
let b16_secret = base16::encode_lower(subspace_secret.as_bytes());
println!("Domain: {}", domain_style(&b16_id));
println!("Secret: {}", secret_style(&b16_secret));
println!(
"{} It is the password for publishing to this domain.",
secret_style("Keep this secret somewhere safe."),
);
}