Skip to main content

prova_agent_sdk/
errors.rs

1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum ProvaError {
5    #[error("Agent not found: {0}")]
6    AgentNotFound(String),
7
8    #[error("Agent has been revoked: {0}")]
9    AgentRevoked(String),
10
11    #[error("Attestation not found: {0}")]
12    AttestationNotFound(String),
13
14    #[error("Invalid cryptographic signature")]
15    InvalidSignature,
16
17    #[error("Batch size exceeds limit of {0}")]
18    BatchLimitExceeded(usize),
19
20    #[error("Unauthorized: {0}")]
21    Unauthorized(String),
22
23    #[error("RPC error: {0}")]
24    RpcError(String),
25
26    #[error("Serialization error: {0}")]
27    SerializationError(#[from] serde_json::Error),
28
29    #[error("Transaction error: {0}")]
30    TransactionError(String),
31
32    #[error("Invalid input: {0}")]
33    InvalidInput(String),
34
35    #[error("Account deserialization error: {0}")]
36    AccountError(String),
37}
38
39impl From<solana_client::client_error::ClientError> for ProvaError {
40    fn from(e: solana_client::client_error::ClientError) -> Self {
41        ProvaError::RpcError(e.to_string())
42    }
43}
44
45impl From<solana_sdk::signer::SignerError> for ProvaError {
46    fn from(e: solana_sdk::signer::SignerError) -> Self {
47        ProvaError::TransactionError(e.to_string())
48    }
49}