Skip to main content

bsv/transaction/
error.rs

1//! Error types for the transaction module.
2
3use thiserror::Error;
4
5/// Unified error type for all transaction operations.
6#[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}