check_pending.rs 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. use anyhow::Result;
  2. use cdk::nuts::nut00::ProofsMethods;
  3. use cdk::wallet::multi_mint_wallet::MultiMintWallet;
  4. pub async fn check_pending(multi_mint_wallet: &MultiMintWallet) -> Result<()> {
  5. let wallets = multi_mint_wallet.get_wallets().await;
  6. for (i, wallet) in wallets.iter().enumerate() {
  7. let mint_url = wallet.mint_url.clone();
  8. println!("{i}: {mint_url}");
  9. // Get all pending proofs
  10. let pending_proofs = wallet.get_pending_proofs().await?;
  11. if pending_proofs.is_empty() {
  12. println!("No pending proofs found");
  13. continue;
  14. }
  15. println!(
  16. "Found {} pending proofs with {} {}",
  17. pending_proofs.len(),
  18. pending_proofs.total_amount()?,
  19. wallet.unit
  20. );
  21. // Try to reclaim any proofs that are no longer pending
  22. match wallet.reclaim_unspent(pending_proofs).await {
  23. Ok(()) => println!("Successfully reclaimed pending proofs"),
  24. Err(e) => println!("Error reclaimed pending proofs: {e}"),
  25. }
  26. }
  27. Ok(())
  28. }