use steel::*;
#[derive(Debug, Error, Clone, Copy, PartialEq, Eq, IntoPrimitive)]
#[repr(u32)]
pub enum HookError {
#[error("Unauthorized")]
Unauthorized = 0,
#[error("Config already initialized")]
AlreadyInitialized = 1,
#[error("Config not initialized")]
NotInitialized = 2,
#[error("Invalid cluster")]
InvalidCluster = 3,
#[error("Invalid KYC policy")]
InvalidKycPolicy = 4,
#[error("Invalid offering id")]
InvalidOfferingId = 5,
#[error("KYC record already exists")]
KycRecordAlreadyExists = 6,
#[error("KYC record not found")]
KycRecordNotFound = 7,
#[error("Recipient not KYC verified")]
RecipientNotKycVerified = 8,
#[error("Invalid KYC registry account for recipient")]
InvalidKycRegistryAccount = 9,
#[error("Mint config already exists")]
MintConfigAlreadyExists = 10,
#[error("Mint config not found")]
MintConfigNotFound = 11,
#[error("Invalid token account owner")]
InvalidTokenAccountOwner = 12,
#[error("Transfer hook account resolution failed")]
TransferHookAccountResolution = 13,
#[error("Invalid issuer id")]
InvalidIssuerId = 14,
#[error("Issuer already exists")]
IssuerAlreadyExists = 15,
#[error("Issuer not found")]
IssuerNotFound = 16,
#[error("Issuer not active")]
IssuerNotActive = 17,
#[error("Platform paused")]
PlatformPaused = 18,
#[error("Invalid registration mode")]
InvalidRegistrationMode = 19,
#[error("Registration not allowed")]
RegistrationNotAllowed = 20,
#[error("Issuer id mismatch")]
IssuerMismatch = 21,
#[error("Invalid issuer status")]
InvalidIssuerStatus = 22,
#[error("Insufficient registration fee")]
InsufficientRegistrationFee = 23,
#[error("New platform admin must differ from current")]
PlatformAdminUnchanged = 24,
#[error("Authority transfer timelock not elapsed")]
AuthorityTransferTooEarly = 25,
#[error("No pending platform admin proposal")]
NoPendingAuthorityTransfer = 26,
}
error!(HookError);