1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum Error {
8 #[error("invalid base58: {0}")]
10 InvalidBase58(String),
11
12 #[error("invalid key length: expected {expected}, got {got}")]
14 InvalidKeyLength { expected: usize, got: usize },
15
16 #[error("invalid hash length: expected 32 bytes, got {0}")]
18 InvalidHashLength(usize),
19
20 #[error("invalid signature length: expected 64 bytes, got {0}")]
22 InvalidSignatureLength(usize),
23
24 #[error("invalid signature domain '{0}'; expected mainnet, testnet, or devnet")]
26 InvalidSignatureDomain(String),
27
28 #[error("invalid nonce '{0}'; expected an unsigned 64-bit decimal string")]
30 InvalidNonce(String),
31
32 #[error("signing failed: {0}")]
34 SigningFailed(String),
35
36 #[error("orders array cannot be empty")]
38 EmptyOrders,
39
40 #[error("signature count mismatch: expected {expected}, got {got}")]
42 SignatureMismatch { expected: usize, got: usize },
43
44 #[error("invalid order: {0}")]
46 InvalidOrder(String),
47
48 #[error("serialization error: {0}")]
50 SerializationError(String),
51
52 #[error("json error: {0}")]
54 JsonError(#[from] serde_json::Error),
55}
56
57pub type Result<T> = std::result::Result<T, Error>;