mirror of
https://github.com/aljazceru/cdk.git
synced 2026-01-28 01:06:18 +01:00
36 lines
859 B
Rust
36 lines
859 B
Rust
use anyhow::Result;
|
|
use cdk::mint_url::MintUrl;
|
|
use cdk::wallet::MultiMintWallet;
|
|
use clap::Args;
|
|
|
|
#[derive(Args)]
|
|
pub struct RestoreSubCommand {
|
|
/// Mint Url
|
|
mint_url: MintUrl,
|
|
}
|
|
|
|
pub async fn restore(
|
|
multi_mint_wallet: &MultiMintWallet,
|
|
sub_command_args: &RestoreSubCommand,
|
|
) -> Result<()> {
|
|
let mint_url = sub_command_args.mint_url.clone();
|
|
|
|
let wallet = match multi_mint_wallet.get_wallet(&mint_url).await {
|
|
Some(wallet) => wallet.clone(),
|
|
None => {
|
|
multi_mint_wallet.add_mint(mint_url.clone(), None).await?;
|
|
multi_mint_wallet
|
|
.get_wallet(&mint_url)
|
|
.await
|
|
.expect("Wallet should exist after adding mint")
|
|
.clone()
|
|
}
|
|
};
|
|
|
|
let amount = wallet.restore().await?;
|
|
|
|
println!("Restored {amount}");
|
|
|
|
Ok(())
|
|
}
|