check_pending.rs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  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. //
  11. let pending_proofs = wallet.get_pending_proofs().await?;
  12. if pending_proofs.is_empty() {
  13. println!("No pending proofs found");
  14. continue;
  15. }
  16. println!(
  17. "Found {} pending proofs with {} {}",
  18. pending_proofs.len(),
  19. pending_proofs.total_amount()?,
  20. wallet.unit
  21. );
  22. // Try to reclaim any proofs that are no longer pending
  23. match wallet.reclaim_unspent(pending_proofs).await {
  24. Ok(()) => println!("Successfully reclaimed pending proofs"),
  25. Err(e) => println!("Error reclaimed pending proofs: {e}"),
  26. }
  27. }
  28. Ok(())
  29. }