refactor: is_p2pk

This commit is contained in:
thesimplekid
2024-03-01 21:34:30 +00:00
parent e6802a1357
commit ca7a5f1d7d
2 changed files with 19 additions and 2 deletions

View File

@@ -309,11 +309,12 @@ impl TryFrom<Secret> for P2PKConditions {
impl Proof {
pub fn verify_p2pk(&self) -> Result<(), Error> {
let secret: Secret = (&self.secret).try_into()?;
if secret.kind.ne(&super::nut10::Kind::P2PK) {
if !self.secret.is_p2pk() {
return Err(Error::IncorrectSecretKind);
}
let secret: Secret = self.secret.clone().try_into()?;
let spending_conditions: P2PKConditions = secret.clone().try_into()?;
let mut valid_sigs = 0;

View File

@@ -73,6 +73,22 @@ impl Secret {
Err(_) => Ok(hex::decode(&self.0)?),
}
}
#[cfg(feature = "nut11")]
pub fn is_p2pk(&self) -> bool {
use crate::nuts::Kind;
let secret: Result<crate::nuts::nut10::Secret, serde_json::Error> =
serde_json::from_str(&self.0);
if let Ok(secret) = secret {
if secret.kind.eq(&Kind::P2PK) {
return true;
}
}
false
}
}
impl FromStr for Secret {