Skip to main content

kaspa_txscript/zk_precompiles/risc0/
error.rs

1use 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}