Skip to main content

quartz_contract_core/
error.rs

1use cosmwasm_std::StdError;
2use k256::ecdsa::Error as K256Error;
3use quartz_tee_ra::Error as RaVerificationError;
4use thiserror::Error;
5
6#[derive(Error, Debug)]
7pub enum Error {
8    #[error("{0}")]
9    Std(#[from] StdError),
10    #[error("{0}")]
11    RaVerification(#[from] RaVerificationError),
12    #[error("Signature verification error: {0}")]
13    SignatureVerification(String),
14    #[error("Not Secp256K1")]
15    K256(K256Error),
16    #[error("invalid session nonce or attempt to reset pub_key")]
17    BadSessionTransition,
18    #[error("Invalid FMSPC: {0}")]
19    InvalidFmspc(String),
20    #[error("TCB Info query error: {0}")]
21    TcbInfoQueryError(String),
22    #[error("DCAP verification query error: {0}")]
23    DcapVerificationQueryError(String),
24    #[error("contract address mismatch")]
25    ContractAddrMismatch,
26}
27
28impl From<K256Error> for Error {
29    fn from(e: K256Error) -> Self {
30        Self::K256(e)
31    }
32}