kaspa_txscript/zk_precompiles/risc0/
error.rs1use kaspa_txscript_errors::TxScriptError;
2use risc0_zkp::verify::VerificationError;
3use thiserror::Error;
4
5use crate::zk_precompiles::risc0::rcpt::HashFnId;
6
7#[derive(Debug, Error)]
8pub enum R0Error {
9 #[error("Std io error: {0}")]
10 Io(#[from] std::io::Error),
11 #[error("R0: {0}")]
12 R0(#[from] VerificationError),
13 #[error("Txscript error: {0}")]
14 TxScript(#[from] TxScriptError),
15 #[error("Invalid digest length: {0}")]
16 InvalidDigestLength(usize),
17 #[error("Invalid seal length: {0}")]
18 InvalidSealLength(usize),
19 #[error("Invalid digest list length: {0}")]
20 InvalidDigestListLength(usize),
21 #[error("Control inclusion proof length {actual} exceeds maximum {max}")]
22 ControlInclusionProofTooLong { actual: usize, max: usize },
23 #[error("Invalid merkle index length: {0}")]
24 InvalidMerkleIndexLength(usize),
25 #[error("Invalid hash function encoding length: {0}")]
26 InvalidHashFnEncoding(usize),
27 #[error("Invalid hash function id: {0}")]
28 InvalidHashFnId(u8),
29 #[error("Unsupported hash function: {0:?}")]
30 UnsupportedHashFn(HashFnId),
31 #[error("Verification failed")]
32 VerificationFailed,
33 #[error("Merkle proof verification failed")]
34 Merkle,
35}