Răsfoiți Sursa

feat: return WalletKey for UnknownWallet error (#278)

David Caseria 8 luni în urmă
părinte
comite
bba1d92aec
2 a modificat fișierele cu 15 adăugiri și 13 ștergeri
  1. 5 3
      crates/cdk/src/wallet/error.rs
  2. 10 10
      crates/cdk/src/wallet/multi_mint_wallet.rs

+ 5 - 3
crates/cdk/src/wallet/error.rs

@@ -7,6 +7,8 @@ use thiserror::Error;
 use crate::cdk_database;
 use crate::error::{ErrorCode, ErrorResponse};
 
+use super::multi_mint_wallet::WalletKey;
+
 /// Wallet Error
 #[derive(Debug, Error)]
 pub enum Error {
@@ -76,9 +78,9 @@ pub enum Error {
     UnknownErrorResponse(String),
     /// Unknown Wallet
     #[error("Unknown Wallet: `{0}`")]
-    UnknownWallet(String),
-    /// Unknown Wallet
-    #[error("Unknown Wallet: `{0}`")]
+    UnknownWallet(WalletKey),
+    /// Incorrect Wallet
+    #[error("Incorrect Wallet: `{0}`")]
     IncorrectWallet(String),
     /// Max Fee Ecxeded
     #[error("Max fee exceeded")]

+ 10 - 10
crates/cdk/src/wallet/multi_mint_wallet.rs

@@ -129,7 +129,7 @@ impl MultiMintWallet {
         let wallet = self
             .get_wallet(wallet_key)
             .await
-            .ok_or(Error::UnknownWallet(wallet_key.to_string()))?;
+            .ok_or(Error::UnknownWallet(wallet_key.clone()))?;
 
         wallet
             .send(
@@ -153,7 +153,7 @@ impl MultiMintWallet {
         let wallet = self
             .get_wallet(wallet_key)
             .await
-            .ok_or(Error::UnknownWallet(wallet_key.to_string()))?;
+            .ok_or(Error::UnknownWallet(wallet_key.clone()))?;
 
         wallet.mint_quote(amount).await
     }
@@ -171,7 +171,7 @@ impl MultiMintWallet {
                 let wallet = self
                     .get_wallet(&wallet_key)
                     .await
-                    .ok_or(Error::UnknownWallet(wallet_key.to_string()))?;
+                    .ok_or(Error::UnknownWallet(wallet_key.clone()))?;
 
                 let amount = wallet.check_all_mint_quotes().await?;
                 amount_minted.insert(wallet.unit, amount);
@@ -202,7 +202,7 @@ impl MultiMintWallet {
         let wallet = self
             .get_wallet(wallet_key)
             .await
-            .ok_or(Error::UnknownWallet(wallet_key.to_string()))?;
+            .ok_or(Error::UnknownWallet(wallet_key.clone()))?;
         wallet
             .mint(quote_id, SplitTarget::default(), conditions)
             .await
@@ -228,14 +228,14 @@ impl MultiMintWallet {
         for (mint_url, proofs) in mint_proofs {
             let wallet_key = WalletKey::new(mint_url.clone(), unit);
             if !self.has(&wallet_key).await {
-                return Err(Error::UnknownWallet(wallet_key.to_string()));
+                return Err(Error::UnknownWallet(wallet_key.clone()));
             }
 
             let wallet_key = WalletKey::new(mint_url, unit);
             let wallet = self
                 .get_wallet(&wallet_key)
                 .await
-                .ok_or(Error::UnknownWallet(wallet_key.to_string()))?;
+                .ok_or(Error::UnknownWallet(wallet_key.clone()))?;
 
             let amount = wallet
                 .receive_proofs(proofs, SplitTarget::default(), p2pk_signing_keys, preimages)
@@ -258,7 +258,7 @@ impl MultiMintWallet {
         let wallet = self
             .get_wallet(wallet_key)
             .await
-            .ok_or(Error::UnknownWallet(wallet_key.to_string()))?;
+            .ok_or(Error::UnknownWallet(wallet_key.clone()))?;
 
         let quote = wallet.melt_quote(bolt11.to_string(), None).await?;
         if let Some(max_fee) = max_fee {
@@ -276,7 +276,7 @@ impl MultiMintWallet {
         let wallet = self
             .get_wallet(wallet_key)
             .await
-            .ok_or(Error::UnknownWallet(wallet_key.to_string()))?;
+            .ok_or(Error::UnknownWallet(wallet_key.clone()))?;
 
         wallet.restore().await
     }
@@ -292,7 +292,7 @@ impl MultiMintWallet {
         let wallet = self
             .get_wallet(wallet_key)
             .await
-            .ok_or(Error::UnknownWallet(wallet_key.to_string()))?;
+            .ok_or(Error::UnknownWallet(wallet_key.clone()))?;
 
         wallet.verify_token_p2pk(token, conditions)
     }
@@ -307,7 +307,7 @@ impl MultiMintWallet {
         let wallet = self
             .get_wallet(wallet_key)
             .await
-            .ok_or(Error::UnknownWallet(wallet_key.to_string()))?;
+            .ok_or(Error::UnknownWallet(wallet_key.clone()))?;
 
         wallet.verify_token_dleq(token).await
     }