ai_agent_bitcoin_escrow/
error.rs1use thiserror::Error;
4
5#[derive(Error, Debug)]
7pub enum EscrowError {
8 #[error("Bitcoin error: {0}")]
10 Bitcoin(#[from] bitcoin::consensus::encode::Error),
11
12 #[error("Key error: {0}")]
14 Key(String),
15
16 #[error("Multisig error: {0}")]
18 Multisig(String),
19
20 #[error("Escrow contract error: {0}")]
22 Contract(String),
23
24 #[error("Condition error: {0}")]
26 Condition(String),
27
28 #[error("Oracle error: {0}")]
30 Oracle(String),
31
32 #[error("Audit error: {0}")]
34 Audit(String),
35
36 #[error("Transaction error: {0}")]
38 Transaction(String),
39
40 #[error("Signing error: {0}")]
42 Signing(String),
43
44 #[error("Descriptor error: {0}")]
46 Descriptor(String),
47
48 #[error("Invalid state: {0}")]
50 InvalidState(String),
51
52 #[error("Missing data: {0}")]
54 MissingData(String),
55
56 #[error("Serialization error: {0}")]
58 Serialization(#[from] serde_json::Error),
59
60 #[error("IO error: {0}")]
62 Io(#[from] std::io::Error),
63
64 #[error("Wallet error: {0}")]
66 Wallet(String),
67
68 #[error("{0}")]
70 Other(String),
71}
72
73pub type Result<T> = std::result::Result<T, EscrowError>;