use thiserror::Error;
#[derive(Debug, Error)]
pub enum Groth16Error {
#[error("Proof verification failed")]
ProofVerificationFailed,
#[error("Process verifying key failed")]
ProcessVerifyingKeyFailed,
#[error("Prepare inputs failed")]
PrepareInputsFailed,
#[error("General error: {0}")]
GeneralError(#[from] crate::error::Error),
#[error("Groth16 vkey hash mismatch")]
Groth16VkeyHashMismatch,
#[error("Vkey Root Mismatch")]
VkeyRootMismatch,
#[error("Exit code mismatch")]
ExitCodeMismatch,
}