balance.rs 851 B

12345678910111213141516171819202122232425262728
  1. use std::collections::BTreeMap;
  2. use anyhow::Result;
  3. use cdk::mint_url::MintUrl;
  4. use cdk::nuts::CurrencyUnit;
  5. use cdk::wallet::multi_mint_wallet::MultiMintWallet;
  6. use cdk::Amount;
  7. pub async fn balance(multi_mint_wallet: &MultiMintWallet) -> Result<()> {
  8. mint_balances(multi_mint_wallet, &CurrencyUnit::Sat).await?;
  9. Ok(())
  10. }
  11. pub async fn mint_balances(
  12. multi_mint_wallet: &MultiMintWallet,
  13. unit: &CurrencyUnit,
  14. ) -> Result<Vec<(MintUrl, Amount)>> {
  15. let wallets: BTreeMap<MintUrl, Amount> = multi_mint_wallet.get_balances(unit).await?;
  16. let mut wallets_vec = Vec::with_capacity(wallets.len());
  17. for (i, (mint_url, amount)) in wallets.iter().enumerate() {
  18. let mint_url = mint_url.clone();
  19. println!("{i}: {mint_url} {amount} {unit}");
  20. wallets_vec.push((mint_url, *amount))
  21. }
  22. Ok(wallets_vec)
  23. }