update_mint_url.rs 959 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. use anyhow::{anyhow, Result};
  2. use cdk::mint_url::MintUrl;
  3. use cdk::nuts::CurrencyUnit;
  4. use cdk::wallet::types::WalletKey;
  5. use cdk::wallet::MultiMintWallet;
  6. use clap::Args;
  7. #[derive(Args)]
  8. pub struct UpdateMintUrlSubCommand {
  9. /// Old Mint Url
  10. old_mint_url: MintUrl,
  11. /// New Mint Url
  12. new_mint_url: MintUrl,
  13. }
  14. pub async fn update_mint_url(
  15. multi_mint_wallet: &MultiMintWallet,
  16. sub_command_args: &UpdateMintUrlSubCommand,
  17. ) -> Result<()> {
  18. let UpdateMintUrlSubCommand {
  19. old_mint_url,
  20. new_mint_url,
  21. } = sub_command_args;
  22. let mut wallet = multi_mint_wallet
  23. .get_wallet(&WalletKey::new(
  24. sub_command_args.old_mint_url.clone(),
  25. CurrencyUnit::Sat,
  26. ))
  27. .await
  28. .ok_or(anyhow!("Unknown mint url"))?
  29. .clone();
  30. wallet.update_mint_url(new_mint_url.clone()).await?;
  31. println!("Mint Url changed from {old_mint_url} to {new_mint_url}");
  32. Ok(())
  33. }