1pub mod code;
2pub mod merkle;
3pub mod pcs;
4pub mod pcs_transcript;
5pub mod utils;
6
7use crypto_primitives::FieldError;
8use thiserror::Error;
9use zinc_transcript::TranscriptError;
10
11#[derive(Clone, Debug, PartialEq, Error)]
12pub enum ZipError {
13 #[error("Invalid PCS param: {0}")]
14 InvalidPcsParam(String),
15 #[error("Invalid commitment opening: {0}")]
16 InvalidPcsOpen(String),
17 #[error("Bad Snark: {0}")]
18 InvalidSnark(String),
19 #[error("Serialization Error: {0}")]
20 Serialization(String),
21 #[error("Transcript failure: {0}")]
22 Transcript(#[from] TranscriptError),
23 #[error("Error during polynomial evaluation: {0}")]
24 PolynomialEvaluationError(zinc_poly::EvaluationError),
25 #[error("Error during inner product computation: {0}")]
26 InnerProductError(zinc_utils::inner_product::InnerProductError),
27}
28
29impl From<zinc_poly::EvaluationError> for ZipError {
30 fn from(err: zinc_poly::EvaluationError) -> Self {
31 ZipError::PolynomialEvaluationError(err)
32 }
33}
34
35impl From<FieldError> for ZipError {
36 fn from(err: FieldError) -> Self {
37 ZipError::InvalidSnark(format!("Field error: {err}"))
38 }
39}
40
41impl From<zinc_utils::inner_product::InnerProductError> for ZipError {
42 fn from(err: zinc_utils::inner_product::InnerProductError) -> Self {
43 ZipError::InnerProductError(err)
44 }
45}