use soroban_sdk::contracterror;
#[contracterror]
#[derive(Copy, Clone, Debug, PartialEq)]
pub enum Error {
InvalidSignatureCount = 1,
SystemNotEnabled = 2,
RecipientZeroAddress = 3,
FeeNotPaid = 4,
TransactionAlreadyProcessed = 5,
RelayerNotAuthorized = 6,
CallerNotRelayer = 7,
GasRefundFailed = 8,
InvalidKey = 9,
DuplicateSignerDetected = 10,
InsufficientProjectSignatures = 11,
InsufficientChainSignatures = 12,
InsufficientVIASignatures = 13,
POSValidationFailed = 14,
ChainsEndpointsMislength = 15,
MissingMessageGateway = 16,
MissingChainEndpoint = 17,
CallerNotGateway = 18,
GasAmountExceedsMaxGasAmount = 19,
GasAmountNotAuthorized = 20,
InsufficientBalance = 21,
GasTokenContractNotSet = 22,
MaxFeeExceededMaxFeeAmount = 23,
FeeTokenContractNotSet = 24,
FeeAmountNotAuthorized = 25,
InvalidRecipient = 26,
InvalidAmount = 27,
AmountOverflow = 28,
SenderLengthMismatch = 29,
InvalidChainSender = 30,
}