light_circuitlib_rs/
errors.rs1use ark_relations::r1cs::SynthesisError;
2use ark_serialize::SerializationError;
3use color_eyre::Report;
4use groth16_solana::errors::Groth16Error;
5use thiserror::Error;
6
7#[derive(Debug, Error)]
8pub enum CircuitsError {
9 #[error("Error: {0}")]
10 GenericError(String),
11
12 #[error("Arkworks prover error: {0}")]
13 ArkworksProverError(String),
14
15 #[error("Arkworks serialization error: {0}")]
16 ArkworksSerializationError(String),
17
18 #[error("Groth16-Solana Error: {0}")]
19 Groth16SolanaError(Groth16Error),
20
21 #[error("Cannot change endianness")]
22 ChangeEndiannessError,
23
24 #[error("Cannot parse inputs")]
25 InputsParsingError,
26
27 #[error("Wrong number of UTXO's")]
28 WrongNumberOfUtxos,
29}
30
31impl From<SerializationError> for CircuitsError {
32 fn from(error: SerializationError) -> Self {
33 CircuitsError::ArkworksSerializationError(error.to_string())
34 }
35}
36
37impl From<SynthesisError> for CircuitsError {
38 fn from(error: SynthesisError) -> Self {
39 CircuitsError::ArkworksProverError(error.to_string())
40 }
41}
42
43impl From<Report> for CircuitsError {
44 fn from(error: Report) -> Self {
45 CircuitsError::GenericError(error.to_string())
46 }
47}
48
49impl From<Groth16Error> for CircuitsError {
50 fn from(error: Groth16Error) -> Self {
51 CircuitsError::Groth16SolanaError(error)
52 }
53}