1#[derive(Debug, thiserror::Error)]
6pub enum ScriptError {
7 #[error("invalid script: {0}")]
9 InvalidScript(String),
10
11 #[error("invalid opcode: {0}")]
13 InvalidOpcode(u8),
14
15 #[error("invalid opcode data")]
17 InvalidOpcodeData,
18
19 #[error("use append_push_data for push data funcs: {0}")]
21 InvalidOpcodeType(String),
22
23 #[error("invalid address: {0}")]
25 InvalidAddress(String),
26
27 #[error("invalid address length for '{0}'")]
29 InvalidAddressLength(String),
30
31 #[error("address not supported {0}")]
33 UnsupportedAddress(String),
34
35 #[error("script too large: {0} bytes")]
37 ScriptTooLarge(usize),
38
39 #[error("invalid hex: {0}")]
41 InvalidHex(String),
42
43 #[error("hex decode error: {0}")]
45 HexDecode(#[from] hex::FromHexError),
46
47 #[error("script is empty")]
49 EmptyScript,
50
51 #[error("not a P2PKH")]
53 NotP2PKH,
54
55 #[error("not enough data")]
57 DataTooSmall,
58
59 #[error("data too big")]
61 DataTooBig,
62
63 #[error("part too big '{0}'")]
65 PartTooBig(usize),
66
67 #[error("script index out of range")]
69 IndexOutOfRange,
70
71 #[error("bad char")]
73 EncodingBadChar,
74
75 #[error("too long")]
77 EncodingTooLong,
78
79 #[error("not version 0 or 6f")]
81 EncodingInvalidVersion,
82
83 #[error("checksum failed")]
85 EncodingChecksumFailed,
86
87 #[error("interpreter error: {0}")]
89 InterpreterError(String),
90
91 #[error("primitives error: {0}")]
93 Primitives(#[from] bsv_primitives::PrimitivesError),
94}