inherence_verifier/
error.rs1use thiserror::Error;
4
5#[derive(Debug, Error, Clone, PartialEq, Eq)]
6pub enum VerifyError {
7 #[error("schema_violation: {0}")]
8 SchemaViolation(String),
9
10 #[error("signature_invalid: {0}")]
11 SignatureInvalid(String),
12
13 #[error("wrong_signer")]
14 WrongSigner,
15
16 #[error("expired")]
17 Expired,
18
19 #[error("not_yet_valid")]
20 NotYetValid,
21
22 #[error("wrong_issuer: {0}")]
23 WrongIssuer(String),
24
25 #[error("wrong_audience: {0}")]
26 WrongAudience(String),
27
28 #[error("contract_hash_mismatch")]
29 ContractHashMismatch,
30
31 #[error("principal_signature_invalid:{0}")]
32 PrincipalSignatureInvalid(&'static str), #[error("state_invalid: {0}")]
35 StateInvalid(String),
36
37 #[error("decision_bit_mismatch")]
38 DecisionBitMismatch,
39
40 #[error("unknown_vk: {0}")]
41 UnknownVk(String),
42
43 #[error("internal_inconsistency: {0}")]
44 InternalInconsistency(String),
45
46 #[error("proof_invalid: {0}")]
47 ProofInvalid(String),
48}
49
50impl VerifyError {
51 pub fn code(&self) -> String {
55 match self {
56 VerifyError::SchemaViolation(_) => "schema_violation".into(),
57 VerifyError::SignatureInvalid(_) => "signature_invalid".into(),
58 VerifyError::WrongSigner => "wrong_signer".into(),
59 VerifyError::Expired => "expired".into(),
60 VerifyError::NotYetValid => "not_yet_valid".into(),
61 VerifyError::WrongIssuer(_) => "wrong_issuer".into(),
62 VerifyError::WrongAudience(_) => "wrong_audience".into(),
63 VerifyError::ContractHashMismatch => "internal_inconsistency".into(),
64 VerifyError::PrincipalSignatureInvalid(role) => format!("principal_signature_invalid:{}", role),
65 VerifyError::StateInvalid(_) => "state_invalid".into(),
66 VerifyError::DecisionBitMismatch => "decision_bit_mismatch".into(),
67 VerifyError::UnknownVk(_) => "unknown_vk".into(),
68 VerifyError::InternalInconsistency(_) => "internal_inconsistency".into(),
69 VerifyError::ProofInvalid(_) => "proof_invalid".into(),
70 }
71 }
72}