use algonaut::{crypto::mnemonic, Kmd};
use dotenv::dotenv;
use std::env;
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
dotenv().ok();
let kmd = Kmd::new()
.bind(env::var("KMD_URL")?.as_ref())
.auth(env::var("KMD_TOKEN")?.as_ref())
.client_v1()?;
let list_response = kmd.list_wallets()?;
let wallet_id = match list_response
.wallets
.into_iter()
.find(|wallet| wallet.name == "testwallet")
{
Some(wallet) => wallet.id,
None => return Err("Wallet not found".into()),
};
let init_response = kmd.init_wallet_handle(&wallet_id, "testpassword")?;
let wallet_handle_token = init_response.wallet_handle_token;
let export_response = kmd.export_master_derivation_key(&wallet_handle_token, "testpassword")?;
let mdk = export_response.master_derivation_key;
let string_to_save = mnemonic::from_key(&mdk.0)?;
println!("Backup phrase: {}", string_to_save);
Ok(())
}