fuel_tx/transaction/validity/
error.rs1use crate::UtxoId;
2use fuel_types::{
3 AssetId,
4 ContractId,
5 MessageId,
6};
7
8#[derive(
10 Debug,
11 Clone,
12 PartialEq,
13 Eq,
14 Hash,
15 derive_more::Display,
16 serde::Serialize,
17 serde::Deserialize,
18)]
19#[non_exhaustive]
20pub enum ValidityError {
21 TransactionMetadataMismatch,
23 NoSpendableInput,
25 InputWitnessIndexBounds {
26 index: usize,
27 },
28 InputPredicateEmpty {
29 index: usize,
30 },
31 InputPredicateLength {
32 index: usize,
33 },
34 InputPredicateDataLength {
35 index: usize,
36 },
37 InputPredicateOwner {
38 index: usize,
39 },
40 InputInvalidSignature {
41 index: usize,
42 },
43 InputContractAssociatedOutputContract {
44 index: usize,
45 },
46 InputMessageDataLength {
47 index: usize,
48 },
49 DuplicateInputUtxoId {
50 utxo_id: UtxoId,
51 },
52 DuplicateMessageInputId {
53 message_id: MessageId,
54 },
55 DuplicateInputContractId {
56 contract_id: ContractId,
57 },
58 OutputContractInputIndex {
59 index: usize,
60 },
61 TransactionInputContainsNonBaseAssetId {
63 index: usize,
64 },
65 TransactionInputContainsContract {
67 index: usize,
68 },
69 TransactionInputContainsMessageData {
71 index: usize,
72 },
73 TransactionOutputContainsContract {
75 index: usize,
76 },
77 TransactionOutputContainsVariable {
79 index: usize,
80 },
81 TransactionChangeChangeUsesNotBaseAsset {
83 index: usize,
84 },
85 TransactionCreateOutputContractCreatedDoesntMatch {
86 index: usize,
87 },
88 TransactionCreateOutputContractCreatedMultiple {
89 index: usize,
90 },
91 TransactionCreateBytecodeLen,
92 TransactionCreateBytecodeWitnessIndex,
93 TransactionCreateStorageSlotMax,
94 TransactionCreateStorageSlotOrder,
95 TransactionScriptLength,
96 TransactionScriptDataLength,
97 TransactionOutputContainsContractCreated {
99 index: usize,
100 },
101 TransactionMintIncorrectBlockHeight,
104 TransactionMintIncorrectOutputIndex,
106 TransactionMintNonBaseAsset,
108 TransactionUpgradeNoPrivilegedAddress,
111 TransactionUpgradeConsensusParametersChecksumMismatch,
114 TransactionUpgradeConsensusParametersSerialization,
116 TransactionUpgradeConsensusParametersDeserialization,
118 TransactionUploadRootVerificationFailed,
120 TransactionUploadTooManyBytecodeSubsections,
123 TransactionSizeLimitExceeded,
125 TransactionMaxGasExceeded,
127 TransactionWitnessLimitExceeded,
128 TransactionPoliciesAreInvalid,
129 TransactionNoGasPricePolicy,
130 TransactionMaturity,
131 TransactionExpiration,
132 TransactionMaxFeeNotSet,
133 TransactionInputsMax,
134 TransactionOutputsMax,
135 TransactionWitnessesMax,
136 TransactionOutputChangeAssetIdDuplicated(AssetId),
137 TransactionOutputChangeAssetIdNotFound(AssetId),
138 TransactionOutputCoinAssetIdNotFound(AssetId),
141 #[display(
144 "Insufficient fee amount: expected {}, provided {}",
145 expected,
146 provided
147 )]
148 InsufficientFeeAmount {
149 expected: u64,
151 provided: u64,
153 },
154 #[display(
157 "Insufficient input amount: asset {}, expected {}, provided {}",
158 asset,
159 expected,
160 provided
161 )]
162 InsufficientInputAmount {
163 asset: AssetId,
165 expected: u64,
167 provided: u64,
169 },
170 BalanceOverflow,
172 GasCostsCoinsOverflow,
174 SerializedInputTooLarge {
176 index: usize,
177 },
178 SerializedOutputTooLarge {
180 index: usize,
181 },
182 SerializedWitnessTooLarge {
184 index: usize,
185 },
186 TransactionOutputDoesntContainContractCreated,
188 TransactionBlobIdVerificationFailed,
190}