Browse Source

feat: sig all cannot be used in melt

thesimplekid 9 months ago
parent
commit
59ba5a2276
3 changed files with 19 additions and 5 deletions
  1. 14 0
      CHANGELOG.md
  2. 3 0
      crates/cdk/src/mint/error.rs
  3. 2 5
      crates/cdk/src/mint/mod.rs

+ 14 - 0
CHANGELOG.md

@@ -21,6 +21,20 @@
 
 -->
 
+
+## [Unreleased]
+
+### Summary
+
+### Changed
+
+### Added
+
+### Fixed
+- cdk(mint): `SIG_ALL` is not allowed in `melt` ([thesimplekid]).
+
+### Removed
+
 ## [v0.2.0]
 
 ### Summary

+ 3 - 0
crates/cdk/src/mint/error.rs

@@ -59,6 +59,9 @@ pub enum Error {
     /// BlindMessage is already signed
     #[error("Blinded Message is already signed")]
     BlindedMessageAlreadySigned,
+    /// Sig all cannot be used in melt
+    #[error("Sig all cannot be used in melt")]
+    SigAllUsedInMelt,
     /// Cashu Error
     #[error(transparent)]
     Cashu(#[from] crate::error::Error),

+ 2 - 5
crates/cdk/src/mint/mod.rs

@@ -819,13 +819,10 @@ impl Mint {
         }
 
         if let Some(outputs) = &melt_request.outputs {
-            let (sig_flag, pubkeys) = enforce_sig_flag(melt_request.inputs.clone());
+            let (sig_flag, _pubkeys) = enforce_sig_flag(melt_request.inputs.clone());
 
             if sig_flag.eq(&SigFlag::SigAll) {
-                let pubkeys = pubkeys.into_iter().collect();
-                for blinded_messaage in outputs {
-                    blinded_messaage.verify_p2pk(&pubkeys, 1)?;
-                }
+                return Err(Error::SigAllUsedInMelt);
             }
 
             let output_keysets_ids: HashSet<Id> = outputs.iter().map(|b| b.keyset_id).collect();