feat: sig all cannot be used in melt

This commit is contained in:
thesimplekid
2024-07-15 13:28:45 +01:00
parent b4db736eeb
commit 59ba5a2276
3 changed files with 19 additions and 5 deletions

View File

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

View File

@@ -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),

View File

@@ -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();