1#[derive(Debug, Clone)]
4#[non_exhaustive]
5pub enum ValidationError {
6 TxAndProtParamsDiffer,
7 PParamsByronDoesntNeedAccountState,
8 EnvMissingAccountState,
9 UnknownProtParams,
10 Byron(ByronError),
11 ShelleyMA(ShelleyMAError),
12 Alonzo(AlonzoError),
13 Babbage(BabbageError),
14}
15
16#[derive(Debug, Clone)]
17#[non_exhaustive]
18pub enum ByronError {
19 TxInsEmpty,
20 TxOutsEmpty,
21 InputNotInUTxO,
22 OutputWithoutLovelace,
23 UnknownTxSize,
24 UnableToComputeFees,
25 FeesBelowMin,
26 MaxTxSizeExceeded,
27 UnableToProcessWitness,
28 MissingWitness,
29 WrongSignature,
30}
31
32#[derive(Debug, Clone)]
33#[non_exhaustive]
34pub enum ShelleyMAError {
35 TxInsEmpty,
36 InputNotInUTxO,
37 TTLExceeded,
38 AlonzoCompNotShelley,
39 UnknownTxSize,
40 MaxTxSizeExceeded,
41 ValueNotShelley,
42 MinLovelaceUnreached,
43 PreservationOfValue,
44 NegativeValue,
45 FeesBelowMin,
46 WrongEraOutput,
47 AddressDecoding,
48 WrongNetworkID,
49 MetadataHash,
50 MissingVKWitness,
51 MissingScriptWitness,
52 WrongSignature,
53 MintingLacksPolicy,
54 KeyAlreadyRegistered,
55 KeyNotRegistered,
56 PointerInUse,
57 RewardsNotNull,
58 PoolAlreadyRegistered,
59 PoolNotRegistered,
60 PoolCostBelowMin,
61 DuplicateGenesisDelegate,
62 DuplicateGenesisVRF,
63 GenesisKeyNotInMapping,
64 InsufficientForInstantaneousRewards,
65 MIRCertificateTooLateinEpoch,
66 ScriptDenial,
67}
68
69#[derive(Debug, Clone)]
70#[non_exhaustive]
71pub enum AlonzoError {
72 UnknownTxSize,
73 TxInsEmpty,
74 InputNotInUTxO,
75 CollateralNotInUTxO,
76 BlockExceedsValInt,
77 BlockPrecedesValInt,
78 ValIntUpperBoundMissing,
79 FeeBelowMin,
80 CollateralMissing,
81 TooManyCollaterals,
82 CollateralNotVKeyLocked,
83 AddressDecoding,
84 CollateralMinLovelace,
85 NonLovelaceCollateral,
86 NegativeValue,
87 PreservationOfValue,
88 MinLovelaceUnreached,
89 MaxValSizeExceeded,
90 OutputWrongNetworkID,
91 TxWrongNetworkID,
92 RedeemerMissing,
93 TxExUnitsExceeded,
94 MaxTxSizeExceeded,
95 VKWitnessMissing,
96 VKWrongSignature,
97 ReqSignerMissing,
98 ReqSignerWrongSig,
99 ScriptWitnessMissing,
100 MintingLacksPolicy,
101 InputDecoding,
102 UnneededNativeScript,
103 UnneededPlutusScript,
104 UnneededRedeemer,
105 DatumMissing,
106 UnneededDatum,
107 MetadataHash,
108 ScriptIntegrityHash,
109}
110
111#[derive(Debug, Clone)]
112#[non_exhaustive]
113pub enum BabbageError {
114 UnknownTxSize,
115 TxInsEmpty,
116 InputNotInUTxO,
117 CollateralNotInUTxO,
118 ReferenceInputNotInUTxO,
119 RefInputNotInUTxO,
120 BlockPrecedesValInt,
121 BlockExceedsValInt,
122 FeeBelowMin,
123 CollateralMissing,
124 TooManyCollaterals,
125 InputDecoding,
126 CollateralNotVKeyLocked,
127 CollateralMinLovelace,
128 NonLovelaceCollateral,
129 CollateralWrongAssets,
130 NegativeValue,
131 CollateralAnnotation,
132 PreservationOfValue,
133 MinLovelaceUnreached,
134 MaxValSizeExceeded,
135 AddressDecoding,
136 OutputWrongNetworkID,
137 TxWrongNetworkID,
138 TxExUnitsExceeded,
139 RedeemerMissing,
140 UnneededRedeemer,
141 MaxTxSizeExceeded,
142 MintingLacksPolicy,
143 MetadataHash,
144 DatumMissing,
145 UnneededDatum,
146 ScriptWitnessMissing,
147 UnneededNativeScript,
148 UnneededPlutusV1Script,
149 UnneededPlutusV2Script,
150 ReqSignerMissing,
151 ReqSignerWrongSig,
152 VKWitnessMissing,
153 VKWrongSignature,
154 UnsupportedPlutusLanguage,
155 ScriptIntegrityHash,
156}
157
158pub type ValidationResult = Result<(), ValidationError>;