Jelajahi Sumber

feat: send specific proofs

thesimplekid 9 bulan lalu
induk
melakukan
d324907547
1 mengubah file dengan 13 tambahan dan 7 penghapusan
  1. 13 7
      crates/cdk/src/wallet/mod.rs

+ 13 - 7
crates/cdk/src/wallet/mod.rs

@@ -963,6 +963,18 @@ impl Wallet {
         .ok_or(Error::InsufficientFunds)
     }
 
+    /// Send specific proofs
+    #[instrument(skip(self))]
+    pub async fn send_proofs(&self, memo: Option<String>, proofs: Proofs) -> Result<String, Error> {
+        for proof in proofs.iter() {
+            self.localstore
+                .set_proof_state(proof.y()?, State::Reserved)
+                .await?;
+        }
+
+        Ok(Token::new(self.mint_url.clone(), proofs, memo, Some(self.unit)).to_string())
+    }
+
     /// Send
     #[instrument(skip(self))]
     pub async fn send(
@@ -1102,13 +1114,7 @@ impl Wallet {
             }
         };
 
-        for proof in send_proofs.iter() {
-            self.localstore
-                .set_proof_state(proof.y()?, State::Reserved)
-                .await?;
-        }
-
-        Ok(Token::new(mint_url.clone(), send_proofs, memo, Some(*unit)).to_string())
+        self.send_proofs(memo, send_proofs).await
     }
 
     /// Melt Quote