1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum TransactionError {
8 #[error("I/O error: {0}")]
9 Io(#[from] std::io::Error),
10
11 #[error("invalid format: {0}")]
12 InvalidFormat(String),
13
14 #[error("missing source transaction")]
15 MissingSourceTransaction,
16
17 #[error("missing unlocking script")]
18 MissingUnlockingScript,
19
20 #[error("missing locking script")]
21 MissingLockingScript,
22
23 #[error("invalid sighash: {0}")]
24 InvalidSighash(String),
25
26 #[error("signing failed: {0}")]
27 SigningFailed(String),
28
29 #[error("fee calculation failed: {0}")]
30 FeeCalculationFailed(String),
31
32 #[error("merkle path verification failed: {0}")]
33 MerklePathVerificationFailed(String),
34
35 #[error("BEEF error: {0}")]
36 BeefError(String),
37
38 #[error("broadcast failed: {0}")]
39 BroadcastFailed(String),
40
41 #[error("script error: {0}")]
42 Script(#[from] crate::script::error::ScriptError),
43
44 #[error("primitives error: {0}")]
45 Primitives(#[from] crate::primitives::error::PrimitivesError),
46}