dpp/errors/consensus/state/
state_error.rs1use crate::errors::ProtocolError;
2use bincode::{Decode, Encode};
3use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize};
4use thiserror::Error;
5
6use crate::consensus::state::address_funds::{AddressDoesNotExistError, AddressInvalidNonceError, AddressNotEnoughFundsError, AddressesNotEnoughFundsError};
7use crate::consensus::state::shielded::insufficient_pool_notes_error::InsufficientPoolNotesError;
8use crate::consensus::state::shielded::insufficient_shielded_fee_error::InsufficientShieldedFeeError;
9use crate::consensus::state::shielded::invalid_anchor_error::InvalidAnchorError;
10use crate::consensus::state::shielded::invalid_shielded_proof_error::InvalidShieldedProofError;
11use crate::consensus::state::shielded::nullifier_already_spent_error::NullifierAlreadySpentError;
12use crate::consensus::state::data_contract::data_contract_already_present_error::DataContractAlreadyPresentError;
13use crate::consensus::state::data_contract::data_contract_config_update_error::DataContractConfigUpdateError;
14use crate::consensus::state::data_contract::data_contract_is_readonly_error::DataContractIsReadonlyError;
15use crate::consensus::state::data_trigger::DataTriggerError;
16use crate::consensus::state::document::document_already_present_error::DocumentAlreadyPresentError;
17use crate::consensus::state::document::document_not_found_error::DocumentNotFoundError;
18use crate::consensus::state::document::document_owner_id_mismatch_error::DocumentOwnerIdMismatchError;
19use crate::consensus::state::document::document_timestamp_window_violation_error::DocumentTimestampWindowViolationError;
20use crate::consensus::state::document::document_timestamps_mismatch_error::DocumentTimestampsMismatchError;
21use crate::consensus::state::document::duplicate_unique_index_error::DuplicateUniqueIndexError;
22use crate::consensus::state::document::invalid_document_revision_error::InvalidDocumentRevisionError;
23use crate::consensus::state::identity::duplicated_identity_public_key_id_state_error::DuplicatedIdentityPublicKeyIdStateError;
24use crate::consensus::state::identity::duplicated_identity_public_key_state_error::DuplicatedIdentityPublicKeyStateError;
25use crate::consensus::state::identity::identity_public_key_is_disabled_error::IdentityPublicKeyIsDisabledError;
26use crate::consensus::state::identity::identity_public_key_is_read_only_error::IdentityPublicKeyIsReadOnlyError;
27use crate::consensus::state::identity::invalid_identity_public_key_id_error::InvalidIdentityPublicKeyIdError;
28use crate::consensus::state::identity::invalid_identity_revision_error::InvalidIdentityRevisionError;
29use crate::consensus::state::identity::max_identity_public_key_limit_reached_error::MaxIdentityPublicKeyLimitReachedError;
30use crate::consensus::state::identity::missing_identity_public_key_ids_error::MissingIdentityPublicKeyIdsError;
31use crate::consensus::state::identity::{IdentityAlreadyExistsError, IdentityInsufficientBalanceError, RecipientIdentityDoesNotExistError};
32use crate::consensus::ConsensusError;
33use crate::consensus::state::data_contract::data_contract_not_found_error::DataContractNotFoundError;
34use crate::consensus::state::data_contract::data_contract_update_action_not_allowed_error::DataContractUpdateActionNotAllowedError;
35use crate::consensus::state::data_contract::data_contract_update_permission_error::DataContractUpdatePermissionError;
36use crate::consensus::state::data_contract::document_type_update_error::DocumentTypeUpdateError;
37use crate::consensus::state::document::document_contest_currently_locked_error::DocumentContestCurrentlyLockedError;
38use crate::consensus::state::document::document_contest_document_with_same_id_already_present_error::DocumentContestDocumentWithSameIdAlreadyPresentError;
39use crate::consensus::state::document::document_contest_identity_already_contestant::DocumentContestIdentityAlreadyContestantError;
40use crate::consensus::state::document::document_contest_not_joinable_error::DocumentContestNotJoinableError;
41use crate::consensus::state::document::document_contest_not_paid_for_error::DocumentContestNotPaidForError;
42use crate::consensus::state::document::document_incorrect_purchase_price_error::DocumentIncorrectPurchasePriceError;
43use crate::consensus::state::document::document_not_for_sale_error::DocumentNotForSaleError;
44use crate::consensus::state::group::{GroupActionAlreadyCompletedError, GroupActionAlreadySignedByIdentityError, GroupActionDoesNotExistError, IdentityMemberOfGroupNotFoundError, IdentityNotMemberOfGroupError, ModificationOfGroupActionMainParametersNotPermittedError};
45use crate::consensus::state::identity::identity_for_token_configuration_not_found_error::IdentityInTokenConfigurationNotFoundError;
46use crate::consensus::state::identity::identity_public_key_already_exists_for_unique_contract_bounds_error::IdentityPublicKeyAlreadyExistsForUniqueContractBoundsError;
47use crate::consensus::state::identity::identity_to_freeze_does_not_exist_error::IdentityToFreezeDoesNotExistError;
48use crate::consensus::state::identity::invalid_identity_contract_nonce_error::InvalidIdentityNonceError;
49use crate::consensus::state::identity::missing_transfer_key_error::MissingTransferKeyError;
50use crate::consensus::state::identity::no_transfer_key_for_core_withdrawal_available_error::NoTransferKeyForCoreWithdrawalAvailableError;
51use crate::consensus::state::prefunded_specialized_balances::prefunded_specialized_balance_insufficient_error::PrefundedSpecializedBalanceInsufficientError;
52use crate::consensus::state::prefunded_specialized_balances::prefunded_specialized_balance_not_found_error::PrefundedSpecializedBalanceNotFoundError;
53use crate::consensus::state::token::{IdentityDoesNotHaveEnoughTokenBalanceError, IdentityTokenAccountFrozenError, IdentityTokenAccountNotFrozenError, InvalidGroupPositionError, NewAuthorizedActionTakerGroupDoesNotExistError, NewAuthorizedActionTakerIdentityDoesNotExistError, NewAuthorizedActionTakerMainGroupNotSetError, NewTokensDestinationIdentityDoesNotExistError, TokenMintPastMaxSupplyError, TokenSettingMaxSupplyToLessThanCurrentSupplyError, UnauthorizedTokenActionError, IdentityTokenAccountAlreadyFrozenError, TokenAlreadyPausedError, TokenIsPausedError, TokenNotPausedError, InvalidTokenClaimPropertyMismatch, InvalidTokenClaimNoCurrentRewards, InvalidTokenClaimWrongClaimant, PreProgrammedDistributionTimestampInPastError, TokenTransferRecipientIdentityNotExistError, IdentityHasNotAgreedToPayRequiredTokenAmountError, RequiredTokenPaymentInfoNotSetError, IdentityTryingToPayWithWrongTokenError, TokenDirectPurchaseUserPriceTooLow, TokenAmountUnderMinimumSaleAmount, TokenNotForDirectSale, InvalidTokenPositionStateError};
54use crate::consensus::state::voting::masternode_incorrect_voter_identity_id_error::MasternodeIncorrectVoterIdentityIdError;
55use crate::consensus::state::voting::masternode_incorrect_voting_address_error::MasternodeIncorrectVotingAddressError;
56use crate::consensus::state::voting::masternode_not_found_error::MasternodeNotFoundError;
57use crate::consensus::state::voting::masternode_vote_already_present_error::MasternodeVoteAlreadyPresentError;
58use crate::consensus::state::voting::masternode_voted_too_many_times::MasternodeVotedTooManyTimesError;
59use crate::consensus::state::voting::vote_poll_not_available_for_voting_error::VotePollNotAvailableForVotingError;
60use crate::consensus::state::voting::vote_poll_not_found_error::VotePollNotFoundError;
61
62use super::document::document_timestamps_are_equal_error::DocumentTimestampsAreEqualError;
63
64#[derive(
65 Error, Debug, PartialEq, Encode, Decode, PlatformSerialize, PlatformDeserialize, Clone,
66)]
67pub enum StateError {
68 #[error(transparent)]
74 DataContractAlreadyPresentError(DataContractAlreadyPresentError),
75
76 #[error(transparent)]
77 DataTriggerError(DataTriggerError),
78
79 #[error(transparent)]
80 DocumentAlreadyPresentError(DocumentAlreadyPresentError),
81
82 #[error(transparent)]
83 DocumentContestCurrentlyLockedError(DocumentContestCurrentlyLockedError),
84
85 #[error(transparent)]
86 DocumentContestNotJoinableError(DocumentContestNotJoinableError),
87
88 #[error(transparent)]
89 DocumentContestIdentityAlreadyContestantError(DocumentContestIdentityAlreadyContestantError),
90
91 #[error(transparent)]
92 DocumentContestNotPaidForError(DocumentContestNotPaidForError),
93
94 #[error(transparent)]
95 DocumentContestDocumentWithSameIdAlreadyPresentError(
96 DocumentContestDocumentWithSameIdAlreadyPresentError,
97 ),
98
99 #[error(transparent)]
100 DocumentNotFoundError(DocumentNotFoundError),
101
102 #[error(transparent)]
103 DocumentNotForSaleError(DocumentNotForSaleError),
104
105 #[error(transparent)]
106 DocumentIncorrectPurchasePriceError(DocumentIncorrectPurchasePriceError),
107
108 #[error(transparent)]
109 DocumentOwnerIdMismatchError(DocumentOwnerIdMismatchError),
110
111 #[error(transparent)]
112 DocumentTimestampsMismatchError(DocumentTimestampsMismatchError),
113
114 #[error(transparent)]
115 DocumentTimestampWindowViolationError(DocumentTimestampWindowViolationError),
116
117 #[error(transparent)]
118 DuplicateUniqueIndexError(DuplicateUniqueIndexError),
119
120 #[error(transparent)]
121 InvalidDocumentRevisionError(InvalidDocumentRevisionError),
122
123 #[error(transparent)]
124 IdentityAlreadyExistsError(IdentityAlreadyExistsError),
125
126 #[error(transparent)]
127 IdentityPublicKeyAlreadyExistsForUniqueContractBoundsError(
128 IdentityPublicKeyAlreadyExistsForUniqueContractBoundsError,
129 ),
130
131 #[error(transparent)]
132 IdentityPublicKeyIsReadOnlyError(IdentityPublicKeyIsReadOnlyError),
133
134 #[error(transparent)]
135 MissingIdentityPublicKeyIdsError(MissingIdentityPublicKeyIdsError),
136
137 #[error(transparent)]
138 MissingTransferKeyError(MissingTransferKeyError),
139
140 #[error(transparent)]
141 NoTransferKeyForCoreWithdrawalAvailableError(NoTransferKeyForCoreWithdrawalAvailableError),
142
143 #[error(transparent)]
144 InvalidIdentityPublicKeyIdError(InvalidIdentityPublicKeyIdError),
145
146 #[error(transparent)]
147 InvalidIdentityRevisionError(InvalidIdentityRevisionError),
148
149 #[error(transparent)]
150 InvalidIdentityNonceError(InvalidIdentityNonceError),
151
152 #[error(transparent)]
153 MaxIdentityPublicKeyLimitReachedError(MaxIdentityPublicKeyLimitReachedError),
154
155 #[error(transparent)]
156 DuplicatedIdentityPublicKeyStateError(DuplicatedIdentityPublicKeyStateError),
157
158 #[error(transparent)]
159 DuplicatedIdentityPublicKeyIdStateError(DuplicatedIdentityPublicKeyIdStateError),
160
161 #[error(transparent)]
162 IdentityPublicKeyIsDisabledError(IdentityPublicKeyIsDisabledError),
163
164 #[error(transparent)]
165 IdentityInsufficientBalanceError(IdentityInsufficientBalanceError),
166
167 #[error(transparent)]
168 DocumentTimestampsAreEqualError(DocumentTimestampsAreEqualError),
169
170 #[error(transparent)]
171 DataContractIsReadonlyError(DataContractIsReadonlyError),
172
173 #[error(transparent)]
174 DataContractConfigUpdateError(DataContractConfigUpdateError),
175
176 #[error(transparent)]
177 DocumentTypeUpdateError(DocumentTypeUpdateError),
178
179 #[error(transparent)]
180 PrefundedSpecializedBalanceInsufficientError(PrefundedSpecializedBalanceInsufficientError),
181
182 #[error(transparent)]
183 PrefundedSpecializedBalanceNotFoundError(PrefundedSpecializedBalanceNotFoundError),
184
185 #[error(transparent)]
186 DataContractUpdatePermissionError(DataContractUpdatePermissionError),
187
188 #[error(transparent)]
189 MasternodeNotFoundError(MasternodeNotFoundError),
190
191 #[error(transparent)]
192 MasternodeIncorrectVoterIdentityIdError(MasternodeIncorrectVoterIdentityIdError),
193
194 #[error(transparent)]
195 MasternodeIncorrectVotingAddressError(MasternodeIncorrectVotingAddressError),
196
197 #[error(transparent)]
198 VotePollNotFoundError(VotePollNotFoundError),
199
200 #[error(transparent)]
201 VotePollNotAvailableForVotingError(VotePollNotAvailableForVotingError),
202
203 #[error(transparent)]
204 MasternodeVotedTooManyTimesError(MasternodeVotedTooManyTimesError),
205
206 #[error(transparent)]
207 MasternodeVoteAlreadyPresentError(MasternodeVoteAlreadyPresentError),
208
209 #[error(transparent)]
210 RecipientIdentityDoesNotExistError(RecipientIdentityDoesNotExistError),
211
212 #[error(transparent)]
213 IdentityDoesNotHaveEnoughTokenBalanceError(IdentityDoesNotHaveEnoughTokenBalanceError),
214
215 #[error(transparent)]
216 UnauthorizedTokenActionError(UnauthorizedTokenActionError),
217
218 #[error(transparent)]
219 IdentityTokenAccountFrozenError(IdentityTokenAccountFrozenError),
220
221 #[error(transparent)]
222 IdentityTokenAccountNotFrozenError(IdentityTokenAccountNotFrozenError),
223
224 #[error(transparent)]
225 IdentityNotMemberOfGroupError(IdentityNotMemberOfGroupError),
226
227 #[error(transparent)]
228 GroupActionDoesNotExistError(GroupActionDoesNotExistError),
229
230 #[error(transparent)]
231 GroupActionAlreadyCompletedError(GroupActionAlreadyCompletedError),
232
233 #[error(transparent)]
234 GroupActionAlreadySignedByIdentityError(GroupActionAlreadySignedByIdentityError),
235
236 #[error(transparent)]
237 DataContractUpdateActionNotAllowedError(DataContractUpdateActionNotAllowedError),
238
239 #[error(transparent)]
240 TokenSettingMaxSupplyToLessThanCurrentSupplyError(
241 TokenSettingMaxSupplyToLessThanCurrentSupplyError,
242 ),
243
244 #[error(transparent)]
245 TokenMintPastMaxSupplyError(TokenMintPastMaxSupplyError),
246
247 #[error(transparent)]
248 InvalidTokenClaimPropertyMismatch(InvalidTokenClaimPropertyMismatch),
249
250 #[error(transparent)]
251 InvalidTokenClaimNoCurrentRewards(InvalidTokenClaimNoCurrentRewards),
252
253 #[error(transparent)]
254 InvalidTokenClaimWrongClaimant(InvalidTokenClaimWrongClaimant),
255
256 #[error(transparent)]
257 NewTokensDestinationIdentityDoesNotExistError(NewTokensDestinationIdentityDoesNotExistError),
258
259 #[error(transparent)]
260 NewAuthorizedActionTakerIdentityDoesNotExistError(
261 NewAuthorizedActionTakerIdentityDoesNotExistError,
262 ),
263
264 #[error(transparent)]
265 NewAuthorizedActionTakerGroupDoesNotExistError(NewAuthorizedActionTakerGroupDoesNotExistError),
266
267 #[error(transparent)]
268 NewAuthorizedActionTakerMainGroupNotSetError(NewAuthorizedActionTakerMainGroupNotSetError),
269
270 #[error(transparent)]
271 InvalidGroupPositionError(InvalidGroupPositionError),
272
273 #[error(transparent)]
274 TokenIsPausedError(TokenIsPausedError),
275
276 #[error(transparent)]
277 IdentityTokenAccountAlreadyFrozenError(IdentityTokenAccountAlreadyFrozenError),
278
279 #[error(transparent)]
280 TokenAlreadyPausedError(TokenAlreadyPausedError),
281
282 #[error(transparent)]
283 TokenNotPausedError(TokenNotPausedError),
284
285 #[error(transparent)]
286 TokenTransferRecipientIdentityNotExistError(TokenTransferRecipientIdentityNotExistError),
287
288 #[error(transparent)]
289 PreProgrammedDistributionTimestampInPastError(PreProgrammedDistributionTimestampInPastError),
290
291 #[error(transparent)]
292 IdentityHasNotAgreedToPayRequiredTokenAmountError(
293 IdentityHasNotAgreedToPayRequiredTokenAmountError,
294 ),
295
296 #[error(transparent)]
297 RequiredTokenPaymentInfoNotSetError(RequiredTokenPaymentInfoNotSetError),
298
299 #[error(transparent)]
300 IdentityTryingToPayWithWrongTokenError(IdentityTryingToPayWithWrongTokenError),
301
302 #[error(transparent)]
303 TokenDirectPurchaseUserPriceTooLow(TokenDirectPurchaseUserPriceTooLow),
304
305 #[error(transparent)]
306 TokenAmountUnderMinimumSaleAmount(TokenAmountUnderMinimumSaleAmount),
307
308 #[error(transparent)]
309 TokenNotForDirectSale(TokenNotForDirectSale),
310
311 #[error(transparent)]
312 IdentityInTokenConfigurationNotFoundError(IdentityInTokenConfigurationNotFoundError),
313
314 #[error(transparent)]
315 IdentityMemberOfGroupNotFoundError(IdentityMemberOfGroupNotFoundError),
316
317 #[error(transparent)]
318 ModificationOfGroupActionMainParametersNotPermittedError(
319 ModificationOfGroupActionMainParametersNotPermittedError,
320 ),
321
322 #[error(transparent)]
323 IdentityToFreezeDoesNotExistError(IdentityToFreezeDoesNotExistError),
324
325 #[error(transparent)]
326 DataContractNotFoundError(DataContractNotFoundError),
327
328 #[error(transparent)]
329 InvalidTokenPositionStateError(InvalidTokenPositionStateError),
330
331 #[error(transparent)]
332 AddressDoesNotExistError(AddressDoesNotExistError),
333
334 #[error(transparent)]
335 AddressNotEnoughFundsError(AddressNotEnoughFundsError),
336
337 #[error(transparent)]
338 AddressesNotEnoughFundsError(AddressesNotEnoughFundsError),
339
340 #[error(transparent)]
341 AddressInvalidNonceError(AddressInvalidNonceError),
342
343 #[error(transparent)]
344 InvalidAnchorError(InvalidAnchorError),
345
346 #[error(transparent)]
347 NullifierAlreadySpentError(NullifierAlreadySpentError),
348
349 #[error(transparent)]
350 InvalidShieldedProofError(InvalidShieldedProofError),
351
352 #[error(transparent)]
353 InsufficientPoolNotesError(InsufficientPoolNotesError),
354
355 #[error(transparent)]
356 InsufficientShieldedFeeError(InsufficientShieldedFeeError),
357}
358
359impl From<StateError> for ConsensusError {
360 fn from(error: StateError) -> Self {
361 Self::StateError(error)
362 }
363}