Skip to main content

dpp/errors/consensus/basic/
basic_error.rs

1use crate::errors::ProtocolError;
2use bincode::{Decode, Encode};
3use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize};
4use thiserror::Error;
5
6use crate::consensus::basic::data_contract::data_contract_max_depth_exceed_error::DataContractMaxDepthExceedError;
7use crate::consensus::basic::data_contract::{
8    ContestedUniqueIndexOnMutableDocumentTypeError, ContestedUniqueIndexWithUniqueIndexError,
9    DataContractHaveNewUniqueIndexError, DataContractImmutablePropertiesUpdateError,
10    DataContractInvalidIndexDefinitionUpdateError, DataContractTokenConfigurationUpdateError,
11    DataContractUniqueIndicesChangedError, DecimalsOverLimitError, DuplicateIndexError,
12    DuplicateIndexNameError, GroupExceedsMaxMembersError, GroupHasTooFewMembersError,
13    GroupMemberHasPowerOfZeroError, GroupMemberHasPowerOverLimitError,
14    GroupNonUnilateralMemberPowerHasLessThanRequiredPowerError, GroupPositionDoesNotExistError,
15    GroupRequiredPowerIsInvalidError, GroupTotalPowerLessThanRequiredError,
16    IncompatibleDataContractSchemaError, IncompatibleDocumentTypeSchemaError,
17    IncompatibleRe2PatternError, InvalidCompoundIndexError, InvalidDataContractIdError,
18    InvalidDataContractVersionError, InvalidDocumentTypeNameError,
19    InvalidDocumentTypeRequiredSecurityLevelError, InvalidIndexPropertyTypeError,
20    InvalidIndexedPropertyConstraintError, InvalidKeywordCharacterError,
21    InvalidTokenBaseSupplyError, InvalidTokenDistributionFunctionDivideByZeroError,
22    InvalidTokenDistributionFunctionIncoherenceError,
23    InvalidTokenDistributionFunctionInvalidParameterError,
24    InvalidTokenDistributionFunctionInvalidParameterTupleError, InvalidTokenLanguageCodeError,
25    InvalidTokenNameCharacterError, InvalidTokenNameLengthError, MainGroupIsNotDefinedError,
26    NewTokensDestinationIdentityOptionRequiredError, NonContiguousContractGroupPositionsError,
27    NonContiguousContractTokenPositionsError, RedundantDocumentPaidForByTokenWithContractId,
28    SystemPropertyIndexAlreadyPresentError, UndefinedIndexPropertyError,
29    UniqueIndicesLimitReachedError, UnknownDocumentCreationRestrictionModeError,
30    UnknownGasFeesPaidByError, UnknownSecurityLevelError, UnknownStorageKeyRequirementsError,
31    UnknownTradeModeError, UnknownTransferableTypeError,
32};
33use crate::consensus::basic::data_contract::{
34    InvalidJsonSchemaRefError, TokenPaymentByBurningOnlyAllowedOnInternalTokenError,
35    UnknownDocumentActionTokenEffectError,
36};
37use crate::consensus::basic::decode::{
38    ProtocolVersionParsingError, SerializedObjectParsingError, VersionError,
39};
40use crate::consensus::basic::document::{
41    ContestedDocumentsTemporarilyNotAllowedError, DataContractNotPresentError,
42    DocumentCreationNotAllowedError, DocumentFieldMaxSizeExceededError,
43    DocumentTransitionsAreAbsentError, DuplicateDocumentTransitionsWithIdsError,
44    DuplicateDocumentTransitionsWithIndicesError, InconsistentCompoundIndexDataError,
45    InvalidDocumentTransitionActionError, InvalidDocumentTransitionIdError,
46    InvalidDocumentTypeError, MaxDocumentsTransitionsExceededError,
47    MissingDataContractIdBasicError, MissingDocumentTransitionActionError,
48    MissingDocumentTransitionTypeError, MissingDocumentTypeError,
49    MissingPositionsInDocumentTypePropertiesError, NonceOutOfBoundsError,
50};
51use crate::consensus::basic::identity::{
52    DataContractBoundsNotPresentError, DisablingKeyIdAlsoBeingAddedInSameTransitionError,
53    DuplicatedIdentityPublicKeyBasicError, DuplicatedIdentityPublicKeyIdBasicError,
54    IdentityAssetLockProofLockedTransactionMismatchError,
55    IdentityAssetLockStateTransitionReplayError, IdentityAssetLockTransactionIsNotFoundError,
56    IdentityAssetLockTransactionOutPointAlreadyConsumedError,
57    IdentityAssetLockTransactionOutPointNotEnoughBalanceError,
58    IdentityAssetLockTransactionOutputNotFoundError,
59    IdentityAssetLockTransactionTooManyInputsError, IdentityCreditTransferToSelfError,
60    InvalidAssetLockProofCoreChainHeightError, InvalidAssetLockProofTransactionHeightError,
61    InvalidAssetLockTransactionOutputReturnSizeError,
62    InvalidCreditWithdrawalTransitionCoreFeeError,
63    InvalidCreditWithdrawalTransitionOutputScriptError,
64    InvalidIdentityAssetLockProofChainLockValidationError,
65    InvalidIdentityAssetLockTransactionError, InvalidIdentityAssetLockTransactionOutputError,
66    InvalidIdentityCreditTransferAmountError, InvalidIdentityCreditWithdrawalTransitionAmountError,
67    InvalidIdentityKeySignatureError, InvalidIdentityPublicKeyDataError,
68    InvalidIdentityPublicKeySecurityLevelError, InvalidIdentityUpdateTransitionDisableKeysError,
69    InvalidIdentityUpdateTransitionEmptyError, InvalidInstantAssetLockProofError,
70    InvalidInstantAssetLockProofSignatureError, InvalidKeyPurposeForContractBoundsError,
71    MissingMasterPublicKeyError, NotImplementedCreditWithdrawalTransitionPoolingError,
72    TooManyMasterPublicKeyError, WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError,
73};
74use crate::consensus::basic::invalid_identifier_error::InvalidIdentifierError;
75use crate::consensus::basic::state_transition::{
76    FeeStrategyDuplicateError, FeeStrategyEmptyError, FeeStrategyIndexOutOfBoundsError,
77    FeeStrategyTooManyStepsError, InputBelowMinimumError, InputOutputBalanceMismatchError,
78    InputWitnessCountMismatchError, InputsNotLessThanOutputsError, InsufficientFundingAmountError,
79    InvalidRemainderOutputCountError, InvalidStateTransitionTypeError,
80    MissingStateTransitionTypeError, OutputAddressAlsoInputError, OutputBelowMinimumError,
81    OutputsNotGreaterThanInputsError, ShieldedEmptyProofError,
82    ShieldedEncryptedNoteSizeMismatchError, ShieldedImplicitFeeCapExceededError,
83    ShieldedInvalidDenominationError, ShieldedInvalidValueBalanceError, ShieldedNoActionsError,
84    ShieldedTooManyActionsError, ShieldedZeroAnchorError, StateTransitionMaxSizeExceededError,
85    StateTransitionNotActiveError, TransitionNoInputsError, TransitionNoOutputsError,
86    TransitionOverMaxInputsError, TransitionOverMaxOutputsError, WithdrawalBalanceMismatchError,
87    WithdrawalBelowMinAmountError,
88};
89use crate::consensus::basic::{
90    IncompatibleProtocolVersionError, UnsupportedFeatureError, UnsupportedProtocolVersionError,
91};
92use crate::consensus::ConsensusError;
93
94use super::data_contract::{
95    DuplicateKeywordsError, InvalidDescriptionLengthError, InvalidKeywordLengthError,
96    TooManyKeywordsError,
97};
98use crate::consensus::basic::group::GroupActionNotAllowedOnTransitionError;
99use crate::consensus::basic::overflow_error::OverflowError;
100use crate::consensus::basic::token::{
101    ChoosingTokenMintRecipientNotAllowedError, ContractHasNoTokensError,
102    DestinationIdentityForTokenMintingNotSetError, InvalidActionIdError, InvalidTokenAmountError,
103    InvalidTokenConfigUpdateNoChangeError, InvalidTokenDistributionBlockIntervalTooShortError,
104    InvalidTokenDistributionTimeIntervalNotMinuteAlignedError,
105    InvalidTokenDistributionTimeIntervalTooShortError, InvalidTokenIdError,
106    InvalidTokenNoteTooBigError, InvalidTokenPositionError, MissingDefaultLocalizationError,
107    TokenNoteOnlyAllowedWhenProposerError, TokenPricingScheduleEmptyError,
108    TokenTransferToOurselfError,
109};
110use crate::consensus::basic::unsupported_version_error::UnsupportedVersionError;
111use crate::consensus::basic::value_error::ValueError;
112use crate::consensus::basic::{
113    json_schema_compilation_error::JsonSchemaCompilationError, json_schema_error::JsonSchemaError,
114};
115use crate::consensus::state::identity::master_public_key_update_error::MasterPublicKeyUpdateError;
116use crate::data_contract::errors::DataContractError;
117
118#[allow(clippy::large_enum_variant)]
119#[derive(
120    Error, Debug, PlatformSerialize, PlatformDeserialize, Encode, Decode, PartialEq, Clone,
121)]
122pub enum BasicError {
123    /*
124
125    DO NOT CHANGE ORDER OF VARIANTS WITHOUT INTRODUCING OF NEW VERSION
126
127    */
128    // Decoding
129    #[error(transparent)]
130    ProtocolVersionParsingError(ProtocolVersionParsingError),
131
132    #[error(transparent)]
133    VersionError(VersionError),
134
135    #[error(transparent)]
136    ContractError(DataContractError),
137
138    #[error(transparent)]
139    UnknownSecurityLevelError(UnknownSecurityLevelError),
140
141    #[error(transparent)]
142    UnknownStorageKeyRequirementsError(UnknownStorageKeyRequirementsError),
143
144    #[error(transparent)]
145    UnknownTransferableTypeError(UnknownTransferableTypeError),
146
147    #[error(transparent)]
148    UnknownTradeModeError(UnknownTradeModeError),
149
150    #[error(transparent)]
151    UnknownDocumentCreationRestrictionModeError(UnknownDocumentCreationRestrictionModeError),
152
153    #[error(transparent)]
154    SerializedObjectParsingError(SerializedObjectParsingError),
155
156    #[error(transparent)]
157    UnsupportedProtocolVersionError(UnsupportedProtocolVersionError),
158
159    #[error(transparent)]
160    UnsupportedVersionError(UnsupportedVersionError),
161
162    #[error(transparent)]
163    IncompatibleProtocolVersionError(IncompatibleProtocolVersionError),
164
165    // Structure error
166    #[error(transparent)]
167    JsonSchemaCompilationError(JsonSchemaCompilationError),
168
169    #[error(transparent)]
170    JsonSchemaError(JsonSchemaError),
171
172    #[error(transparent)]
173    InvalidIdentifierError(InvalidIdentifierError),
174
175    #[error(transparent)]
176    ValueError(ValueError),
177
178    // DataContract
179    #[error(transparent)]
180    DataContractMaxDepthExceedError(DataContractMaxDepthExceedError),
181
182    #[error(transparent)]
183    DuplicateIndexError(DuplicateIndexError),
184
185    #[error(transparent)]
186    IncompatibleRe2PatternError(IncompatibleRe2PatternError),
187
188    #[error(transparent)]
189    InvalidCompoundIndexError(InvalidCompoundIndexError),
190
191    #[error(transparent)]
192    InvalidDataContractIdError(InvalidDataContractIdError),
193
194    #[error(transparent)]
195    InvalidIndexedPropertyConstraintError(InvalidIndexedPropertyConstraintError),
196
197    #[error(transparent)]
198    InvalidIndexPropertyTypeError(InvalidIndexPropertyTypeError),
199
200    #[error(transparent)]
201    InvalidJsonSchemaRefError(InvalidJsonSchemaRefError),
202
203    #[error(transparent)]
204    SystemPropertyIndexAlreadyPresentError(SystemPropertyIndexAlreadyPresentError),
205
206    #[error(transparent)]
207    UndefinedIndexPropertyError(UndefinedIndexPropertyError),
208
209    #[error(transparent)]
210    UniqueIndicesLimitReachedError(UniqueIndicesLimitReachedError),
211
212    #[error(transparent)]
213    DuplicateIndexNameError(DuplicateIndexNameError),
214
215    #[error(transparent)]
216    InvalidDataContractVersionError(InvalidDataContractVersionError),
217
218    #[error(transparent)]
219    IncompatibleDataContractSchemaError(IncompatibleDataContractSchemaError),
220
221    #[error(transparent)]
222    DataContractImmutablePropertiesUpdateError(DataContractImmutablePropertiesUpdateError),
223
224    #[error(transparent)]
225    DataContractUniqueIndicesChangedError(DataContractUniqueIndicesChangedError),
226
227    #[error(transparent)]
228    DataContractInvalidIndexDefinitionUpdateError(DataContractInvalidIndexDefinitionUpdateError),
229
230    #[error(transparent)]
231    DataContractHaveNewUniqueIndexError(DataContractHaveNewUniqueIndexError),
232
233    // Document
234    #[error(transparent)]
235    DataContractNotPresentError(DataContractNotPresentError),
236
237    #[error(transparent)]
238    DocumentCreationNotAllowedError(DocumentCreationNotAllowedError),
239
240    #[error(transparent)]
241    DataContractBoundsNotPresentError(DataContractBoundsNotPresentError),
242
243    #[error(transparent)]
244    DuplicateDocumentTransitionsWithIdsError(DuplicateDocumentTransitionsWithIdsError),
245
246    #[error(transparent)]
247    DuplicateDocumentTransitionsWithIndicesError(DuplicateDocumentTransitionsWithIndicesError),
248
249    #[error(transparent)]
250    NonceOutOfBoundsError(NonceOutOfBoundsError),
251
252    #[error(transparent)]
253    InconsistentCompoundIndexDataError(InconsistentCompoundIndexDataError),
254
255    #[error(transparent)]
256    InvalidDocumentTransitionActionError(InvalidDocumentTransitionActionError),
257
258    #[error(transparent)]
259    InvalidDocumentTransitionIdError(InvalidDocumentTransitionIdError),
260
261    #[error(transparent)]
262    InvalidDocumentTypeError(InvalidDocumentTypeError),
263
264    #[error(transparent)]
265    MissingPositionsInDocumentTypePropertiesError(MissingPositionsInDocumentTypePropertiesError),
266
267    #[error(transparent)]
268    MissingDataContractIdBasicError(MissingDataContractIdBasicError),
269
270    #[error(transparent)]
271    MissingDocumentTransitionActionError(MissingDocumentTransitionActionError),
272
273    #[error(transparent)]
274    MissingDocumentTransitionTypeError(MissingDocumentTransitionTypeError),
275
276    #[error(transparent)]
277    MissingDocumentTypeError(MissingDocumentTypeError),
278
279    #[error(transparent)]
280    MaxDocumentsTransitionsExceededError(MaxDocumentsTransitionsExceededError),
281
282    // Identity
283    #[error(transparent)]
284    DuplicatedIdentityPublicKeyBasicError(DuplicatedIdentityPublicKeyBasicError),
285
286    #[error(transparent)]
287    DuplicatedIdentityPublicKeyIdBasicError(DuplicatedIdentityPublicKeyIdBasicError),
288
289    #[error(transparent)]
290    DisablingKeyIdAlsoBeingAddedInSameTransitionError(
291        DisablingKeyIdAlsoBeingAddedInSameTransitionError,
292    ),
293
294    #[error(transparent)]
295    IdentityAssetLockProofLockedTransactionMismatchError(
296        IdentityAssetLockProofLockedTransactionMismatchError,
297    ),
298
299    #[error(transparent)]
300    IdentityAssetLockTransactionIsNotFoundError(IdentityAssetLockTransactionIsNotFoundError),
301
302    #[error(transparent)]
303    IdentityAssetLockTransactionOutPointAlreadyConsumedError(
304        IdentityAssetLockTransactionOutPointAlreadyConsumedError,
305    ),
306
307    #[error(transparent)]
308    IdentityAssetLockTransactionOutPointNotEnoughBalanceError(
309        IdentityAssetLockTransactionOutPointNotEnoughBalanceError,
310    ),
311
312    #[error(transparent)]
313    IdentityAssetLockStateTransitionReplayError(IdentityAssetLockStateTransitionReplayError),
314
315    #[error(transparent)]
316    IdentityAssetLockTransactionOutputNotFoundError(
317        IdentityAssetLockTransactionOutputNotFoundError,
318    ),
319
320    #[error(transparent)]
321    InvalidAssetLockProofCoreChainHeightError(InvalidAssetLockProofCoreChainHeightError),
322
323    #[error(transparent)]
324    InvalidIdentityAssetLockProofChainLockValidationError(
325        InvalidIdentityAssetLockProofChainLockValidationError,
326    ),
327
328    #[error(transparent)]
329    InvalidAssetLockProofTransactionHeightError(InvalidAssetLockProofTransactionHeightError),
330
331    #[error(transparent)]
332    InvalidAssetLockTransactionOutputReturnSizeError(
333        InvalidAssetLockTransactionOutputReturnSizeError,
334    ),
335
336    #[error(transparent)]
337    InvalidIdentityAssetLockTransactionError(InvalidIdentityAssetLockTransactionError),
338
339    #[error(transparent)]
340    InvalidIdentityAssetLockTransactionOutputError(InvalidIdentityAssetLockTransactionOutputError),
341
342    #[error(transparent)]
343    InvalidIdentityPublicKeyDataError(InvalidIdentityPublicKeyDataError),
344
345    #[error(transparent)]
346    InvalidInstantAssetLockProofError(InvalidInstantAssetLockProofError),
347
348    #[error(transparent)]
349    InvalidInstantAssetLockProofSignatureError(InvalidInstantAssetLockProofSignatureError),
350
351    #[error(transparent)]
352    MissingMasterPublicKeyError(MissingMasterPublicKeyError),
353
354    #[error(transparent)]
355    TooManyMasterPublicKeyError(TooManyMasterPublicKeyError),
356
357    #[error(transparent)]
358    MasterPublicKeyUpdateError(MasterPublicKeyUpdateError),
359
360    #[error(transparent)]
361    InvalidDocumentTypeRequiredSecurityLevelError(InvalidDocumentTypeRequiredSecurityLevelError),
362
363    #[error(transparent)]
364    InvalidIdentityPublicKeySecurityLevelError(InvalidIdentityPublicKeySecurityLevelError),
365
366    #[error(transparent)]
367    InvalidIdentityKeySignatureError(InvalidIdentityKeySignatureError),
368
369    #[error(transparent)]
370    InvalidIdentityCreditTransferAmountError(InvalidIdentityCreditTransferAmountError),
371
372    #[error(transparent)]
373    InvalidCreditWithdrawalTransitionOutputScriptError(
374        InvalidCreditWithdrawalTransitionOutputScriptError,
375    ),
376
377    #[error(transparent)]
378    WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError(
379        WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError,
380    ),
381
382    #[error(transparent)]
383    InvalidCreditWithdrawalTransitionCoreFeeError(InvalidCreditWithdrawalTransitionCoreFeeError),
384
385    #[error(transparent)]
386    InvalidIdentityCreditWithdrawalTransitionAmountError(
387        InvalidIdentityCreditWithdrawalTransitionAmountError,
388    ),
389
390    #[error(transparent)]
391    InvalidIdentityUpdateTransitionEmptyError(InvalidIdentityUpdateTransitionEmptyError),
392
393    #[error(transparent)]
394    InvalidIdentityUpdateTransitionDisableKeysError(
395        InvalidIdentityUpdateTransitionDisableKeysError,
396    ),
397
398    #[error(transparent)]
399    NotImplementedCreditWithdrawalTransitionPoolingError(
400        NotImplementedCreditWithdrawalTransitionPoolingError,
401    ),
402
403    // State Transition
404    #[error(transparent)]
405    InvalidStateTransitionTypeError(InvalidStateTransitionTypeError),
406
407    #[error(transparent)]
408    MissingStateTransitionTypeError(MissingStateTransitionTypeError),
409
410    #[error(transparent)]
411    DocumentFieldMaxSizeExceededError(DocumentFieldMaxSizeExceededError),
412
413    #[error(transparent)]
414    StateTransitionMaxSizeExceededError(StateTransitionMaxSizeExceededError),
415
416    #[error(transparent)]
417    DocumentTransitionsAreAbsentError(DocumentTransitionsAreAbsentError),
418
419    #[error(transparent)]
420    IdentityCreditTransferToSelfError(IdentityCreditTransferToSelfError),
421
422    #[error(transparent)]
423    InvalidDocumentTypeNameError(InvalidDocumentTypeNameError),
424
425    #[error(transparent)]
426    IncompatibleDocumentTypeSchemaError(IncompatibleDocumentTypeSchemaError),
427
428    #[error(transparent)]
429    ContestedUniqueIndexOnMutableDocumentTypeError(ContestedUniqueIndexOnMutableDocumentTypeError),
430
431    #[error(transparent)]
432    ContestedUniqueIndexWithUniqueIndexError(ContestedUniqueIndexWithUniqueIndexError),
433
434    #[error(transparent)]
435    OverflowError(OverflowError),
436
437    #[error(transparent)]
438    UnsupportedFeatureError(UnsupportedFeatureError),
439
440    #[error(transparent)]
441    ContestedDocumentsTemporarilyNotAllowedError(ContestedDocumentsTemporarilyNotAllowedError),
442
443    #[error(transparent)]
444    DataContractTokenConfigurationUpdateError(DataContractTokenConfigurationUpdateError),
445
446    #[error(transparent)]
447    NonContiguousContractTokenPositionsError(NonContiguousContractTokenPositionsError),
448
449    #[error(transparent)]
450    NonContiguousContractGroupPositionsError(NonContiguousContractGroupPositionsError),
451
452    #[error(transparent)]
453    InvalidTokenBaseSupplyError(InvalidTokenBaseSupplyError),
454
455    #[error(transparent)]
456    InvalidTokenIdError(InvalidTokenIdError),
457
458    #[error(transparent)]
459    InvalidTokenAmountError(InvalidTokenAmountError),
460
461    #[error(transparent)]
462    InvalidTokenPositionError(InvalidTokenPositionError),
463
464    #[error(transparent)]
465    InvalidTokenConfigUpdateNoChangeError(InvalidTokenConfigUpdateNoChangeError),
466
467    #[error(transparent)]
468    InvalidTokenDistributionFunctionDivideByZeroError(
469        InvalidTokenDistributionFunctionDivideByZeroError,
470    ),
471
472    #[error(transparent)]
473    InvalidTokenDistributionFunctionInvalidParameterError(
474        InvalidTokenDistributionFunctionInvalidParameterError,
475    ),
476
477    #[error(transparent)]
478    InvalidTokenDistributionFunctionInvalidParameterTupleError(
479        InvalidTokenDistributionFunctionInvalidParameterTupleError,
480    ),
481
482    #[error(transparent)]
483    InvalidTokenDistributionFunctionIncoherenceError(
484        InvalidTokenDistributionFunctionIncoherenceError,
485    ),
486
487    #[error(transparent)]
488    TokenTransferToOurselfError(TokenTransferToOurselfError),
489
490    #[error(transparent)]
491    InvalidTokenNoteTooBigError(InvalidTokenNoteTooBigError),
492
493    #[error(transparent)]
494    ContractHasNoTokensError(ContractHasNoTokensError),
495
496    #[error(transparent)]
497    GroupPositionDoesNotExistError(GroupPositionDoesNotExistError),
498
499    #[error(transparent)]
500    InvalidActionIdError(InvalidActionIdError),
501
502    #[error(transparent)]
503    DestinationIdentityForTokenMintingNotSetError(DestinationIdentityForTokenMintingNotSetError),
504
505    #[error(transparent)]
506    ChoosingTokenMintRecipientNotAllowedError(ChoosingTokenMintRecipientNotAllowedError),
507
508    #[error(transparent)]
509    GroupActionNotAllowedOnTransitionError(GroupActionNotAllowedOnTransitionError),
510
511    #[error(transparent)]
512    GroupExceedsMaxMembersError(GroupExceedsMaxMembersError),
513
514    #[error(transparent)]
515    GroupMemberHasPowerOfZeroError(GroupMemberHasPowerOfZeroError),
516
517    #[error(transparent)]
518    GroupMemberHasPowerOverLimitError(GroupMemberHasPowerOverLimitError),
519
520    #[error(transparent)]
521    GroupTotalPowerLessThanRequiredError(GroupTotalPowerLessThanRequiredError),
522
523    #[error(transparent)]
524    GroupNonUnilateralMemberPowerHasLessThanRequiredPowerError(
525        GroupNonUnilateralMemberPowerHasLessThanRequiredPowerError,
526    ),
527
528    #[error(transparent)]
529    MissingDefaultLocalizationError(MissingDefaultLocalizationError),
530
531    #[error(transparent)]
532    UnknownGasFeesPaidByError(UnknownGasFeesPaidByError),
533
534    #[error(transparent)]
535    UnknownDocumentActionTokenEffectError(UnknownDocumentActionTokenEffectError),
536
537    #[error(transparent)]
538    TokenPaymentByBurningOnlyAllowedOnInternalTokenError(
539        TokenPaymentByBurningOnlyAllowedOnInternalTokenError,
540    ),
541
542    #[error(transparent)]
543    TooManyKeywordsError(TooManyKeywordsError),
544
545    #[error(transparent)]
546    DuplicateKeywordsError(DuplicateKeywordsError),
547
548    #[error(transparent)]
549    InvalidKeywordLengthError(InvalidKeywordLengthError),
550
551    #[error(transparent)]
552    InvalidDescriptionLengthError(InvalidDescriptionLengthError),
553
554    #[error(transparent)]
555    NewTokensDestinationIdentityOptionRequiredError(
556        NewTokensDestinationIdentityOptionRequiredError,
557    ),
558
559    #[error(transparent)]
560    InvalidKeywordCharacterError(InvalidKeywordCharacterError),
561
562    #[error(transparent)]
563    InvalidTokenNameCharacterError(InvalidTokenNameCharacterError),
564
565    #[error(transparent)]
566    DecimalsOverLimitError(DecimalsOverLimitError),
567
568    #[error(transparent)]
569    InvalidTokenNameLengthError(InvalidTokenNameLengthError),
570
571    #[error(transparent)]
572    InvalidTokenLanguageCodeError(InvalidTokenLanguageCodeError),
573
574    #[error(transparent)]
575    MainGroupIsNotDefinedError(MainGroupIsNotDefinedError),
576
577    #[error(transparent)]
578    GroupRequiredPowerIsInvalidError(GroupRequiredPowerIsInvalidError),
579
580    #[error(transparent)]
581    TokenNoteOnlyAllowedWhenProposerError(TokenNoteOnlyAllowedWhenProposerError),
582
583    #[error(transparent)]
584    InvalidTokenDistributionBlockIntervalTooShortError(
585        InvalidTokenDistributionBlockIntervalTooShortError,
586    ),
587
588    #[error(transparent)]
589    InvalidTokenDistributionTimeIntervalTooShortError(
590        InvalidTokenDistributionTimeIntervalTooShortError,
591    ),
592
593    #[error(transparent)]
594    InvalidTokenDistributionTimeIntervalNotMinuteAlignedError(
595        InvalidTokenDistributionTimeIntervalNotMinuteAlignedError,
596    ),
597    #[error(transparent)]
598    RedundantDocumentPaidForByTokenWithContractId(RedundantDocumentPaidForByTokenWithContractId),
599
600    #[error(transparent)]
601    GroupHasTooFewMembersError(GroupHasTooFewMembersError),
602
603    #[error(transparent)]
604    InvalidKeyPurposeForContractBoundsError(InvalidKeyPurposeForContractBoundsError),
605
606    #[error(transparent)]
607    StateTransitionNotActiveError(StateTransitionNotActiveError),
608
609    #[error(transparent)]
610    TransitionOverMaxInputsError(TransitionOverMaxInputsError),
611
612    #[error(transparent)]
613    TransitionOverMaxOutputsError(TransitionOverMaxOutputsError),
614
615    #[error(transparent)]
616    InputWitnessCountMismatchError(InputWitnessCountMismatchError),
617
618    #[error(transparent)]
619    TransitionNoInputsError(TransitionNoInputsError),
620
621    #[error(transparent)]
622    TransitionNoOutputsError(TransitionNoOutputsError),
623
624    #[error(transparent)]
625    InvalidRemainderOutputCountError(InvalidRemainderOutputCountError),
626
627    #[error(transparent)]
628    FeeStrategyEmptyError(FeeStrategyEmptyError),
629
630    #[error(transparent)]
631    FeeStrategyDuplicateError(FeeStrategyDuplicateError),
632
633    #[error(transparent)]
634    FeeStrategyIndexOutOfBoundsError(FeeStrategyIndexOutOfBoundsError),
635
636    #[error(transparent)]
637    FeeStrategyTooManyStepsError(FeeStrategyTooManyStepsError),
638
639    #[error(transparent)]
640    InputBelowMinimumError(InputBelowMinimumError),
641
642    #[error(transparent)]
643    OutputBelowMinimumError(OutputBelowMinimumError),
644
645    #[error(transparent)]
646    InputOutputBalanceMismatchError(InputOutputBalanceMismatchError),
647
648    #[error(transparent)]
649    OutputsNotGreaterThanInputsError(OutputsNotGreaterThanInputsError),
650
651    #[error(transparent)]
652    WithdrawalBalanceMismatchError(WithdrawalBalanceMismatchError),
653
654    #[error(transparent)]
655    WithdrawalBelowMinAmountError(WithdrawalBelowMinAmountError),
656
657    #[error(transparent)]
658    InsufficientFundingAmountError(InsufficientFundingAmountError),
659
660    #[error(transparent)]
661    InputsNotLessThanOutputsError(InputsNotLessThanOutputsError),
662
663    #[error(transparent)]
664    OutputAddressAlsoInputError(OutputAddressAlsoInputError),
665
666    #[error(transparent)]
667    ShieldedNoActionsError(ShieldedNoActionsError),
668
669    #[error(transparent)]
670    ShieldedTooManyActionsError(ShieldedTooManyActionsError),
671
672    #[error(transparent)]
673    ShieldedEmptyProofError(ShieldedEmptyProofError),
674
675    #[error(transparent)]
676    ShieldedZeroAnchorError(ShieldedZeroAnchorError),
677
678    #[error(transparent)]
679    ShieldedInvalidValueBalanceError(ShieldedInvalidValueBalanceError),
680
681    #[error(transparent)]
682    ShieldedEncryptedNoteSizeMismatchError(ShieldedEncryptedNoteSizeMismatchError),
683
684    #[error(transparent)]
685    IdentityAssetLockTransactionTooManyInputsError(IdentityAssetLockTransactionTooManyInputsError),
686
687    // NOTE: `BasicError` is bincode-encoded positionally (no explicit discriminants), so new
688    // variants MUST be appended at the tail — inserting mid-enum would shift the wire discriminants
689    // of every following variant and mis-decode previously-encoded errors. The error-code integer
690    // (codes.rs) is independent of variant order.
691    #[error(transparent)]
692    ShieldedImplicitFeeCapExceededError(ShieldedImplicitFeeCapExceededError),
693
694    #[error(transparent)]
695    ShieldedInvalidDenominationError(ShieldedInvalidDenominationError),
696
697    #[error(transparent)]
698    TokenPricingScheduleEmptyError(TokenPricingScheduleEmptyError),
699}
700
701impl From<BasicError> for ConsensusError {
702    fn from(error: BasicError) -> Self {
703        Self::BasicError(error)
704    }
705}