quartz_contract_core/
error.rs1use 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("Not Secp256K1")]
13 K256(K256Error),
14 #[error("invalid session nonce or attempt to reset pub_key")]
15 BadSessionTransition,
16 #[error("Invalid FMSPC: {0}")]
17 InvalidFmspc(String),
18 #[error("TCB Info query error: {0}")]
19 TcbInfoQueryError(String),
20 #[error("DCAP verification query error: {0}")]
21 DcapVerificationQueryError(String),
22 #[error("contract address mismatch")]
23 ContractAddrMismatch,
24}
25
26impl From<K256Error> for Error {
27 fn from(e: K256Error) -> Self {
28 Self::K256(e)
29 }
30}