2025-08-12 22:35:07 -03:00
|
|
|
use std::io;
|
|
|
|
|
|
2025-08-09 19:49:07 -03:00
|
|
|
use thiserror::Error;
|
|
|
|
|
|
|
|
|
|
#[derive(Error, Debug)]
|
|
|
|
|
pub enum NssaError {
|
|
|
|
|
#[error("Invalid input: {0}")]
|
|
|
|
|
InvalidInput(String),
|
|
|
|
|
|
|
|
|
|
#[error("Program violated execution rules")]
|
|
|
|
|
InvalidProgramBehavior,
|
2025-08-10 18:51:55 -03:00
|
|
|
|
|
|
|
|
#[error("Serialization error: {0}")]
|
2025-08-11 12:07:30 -03:00
|
|
|
InstructionSerializationError(String),
|
2025-08-11 19:14:12 -03:00
|
|
|
|
|
|
|
|
#[error("Invalid private key")]
|
|
|
|
|
InvalidPrivateKey,
|
2025-08-12 22:35:07 -03:00
|
|
|
|
|
|
|
|
#[error("IO error: {0}")]
|
|
|
|
|
Io(#[from] io::Error),
|
2025-08-13 01:33:11 -03:00
|
|
|
|
|
|
|
|
#[error("Invalid Public Key")]
|
|
|
|
|
InvalidPublicKey,
|
2025-08-14 13:28:23 -03:00
|
|
|
|
|
|
|
|
#[error("Risc0 error: {0}")]
|
|
|
|
|
ProgramWriteInputFailed(String),
|
|
|
|
|
|
|
|
|
|
#[error("Risc0 error: {0}")]
|
|
|
|
|
ProgramExecutionFailed(String),
|
|
|
|
|
|
|
|
|
|
#[error("Risc0 error: {0}")]
|
|
|
|
|
ProgramProveFailed(String),
|
|
|
|
|
|
2025-08-18 14:28:26 -03:00
|
|
|
#[error("Invalid transaction: {0}")]
|
|
|
|
|
TransactionDeserializationError(String),
|
|
|
|
|
|
|
|
|
|
#[error("Core error")]
|
|
|
|
|
Core(#[from] nssa_core::error::NssaCoreError),
|
2025-08-18 19:57:21 -03:00
|
|
|
|
|
|
|
|
#[error("Program output deserialization error: {0}")]
|
|
|
|
|
ProgramOutputDeserializationError(String),
|
|
|
|
|
|
|
|
|
|
#[error("Circuit output deserialization error: {0}")]
|
|
|
|
|
CircuitOutputDeserializationError(String),
|
2025-08-19 12:52:52 -03:00
|
|
|
|
|
|
|
|
#[error("Invalid privacy preserving execution circuit proof")]
|
|
|
|
|
InvalidPrivacyPreservingProof,
|
2025-09-02 12:38:31 -03:00
|
|
|
|
|
|
|
|
#[error("Circuit proving error")]
|
|
|
|
|
CircuitProvingError(String),
|
2025-10-15 17:25:26 -03:00
|
|
|
|
|
|
|
|
#[error("Invalid program bytecode")]
|
|
|
|
|
InvalidProgramBytecode,
|
|
|
|
|
|
|
|
|
|
#[error("Program already exists")]
|
|
|
|
|
ProgramAlreadyExists,
|
2025-11-12 19:55:02 -03:00
|
|
|
|
2025-11-27 09:56:52 -03:00
|
|
|
#[error("Chain of calls is too long")]
|
2025-11-12 19:55:02 -03:00
|
|
|
MaxChainedCallsDepthExceeded,
|
2025-08-09 19:49:07 -03:00
|
|
|
}
|