kaspa-txscript 2.1.0

Kaspa txscript engine library
Documentation
use kaspa_txscript_errors::TxScriptError;
use risc0_zkp::verify::VerificationError;
use thiserror::Error;

use crate::zk_precompiles::risc0::rcpt::HashFnId;

#[derive(Debug, Error)]
pub enum R0Error {
    #[error("Std io error: {0}")]
    Io(#[from] std::io::Error),
    #[error("R0: {0}")]
    R0(#[from] VerificationError),
    #[error("Txscript error: {0}")]
    TxScript(#[from] TxScriptError),
    #[error("Invalid digest length: {0}")]
    InvalidDigestLength(usize),
    #[error("Invalid seal length: {0}")]
    InvalidSealLength(usize),
    #[error("Invalid digest list length: {0}")]
    InvalidDigestListLength(usize),
    #[error("Control inclusion proof length {actual} exceeds maximum {max}")]
    ControlInclusionProofTooLong { actual: usize, max: usize },
    #[error("Invalid merkle index length: {0}")]
    InvalidMerkleIndexLength(usize),
    #[error("Invalid hash function encoding length: {0}")]
    InvalidHashFnEncoding(usize),
    #[error("Invalid hash function id: {0}")]
    InvalidHashFnId(u8),
    #[error("Unsupported hash function: {0:?}")]
    UnsupportedHashFn(HashFnId),
    #[error("Verification failed")]
    VerificationFailed,
    #[error("Merkle proof verification failed")]
    Merkle,
}