use {num_derive::FromPrimitive, thiserror::Error}; #[derive(Error, Debug, Clone, FromPrimitive, PartialEq, Eq)] pub enum LedgerError { #[error("Solana app not open on Ledger device")] NoAppResponse = 0x6700, #[error("Ledger sdk exception")] SdkException = 0x6801, #[error("Ledger invalid parameter")] SdkInvalidParameter = 0x6802, #[error("Ledger overflow")] SdkExceptionOverflow = 0x6803, #[error("Ledger security exception")] SdkExceptionSecurity = 0x6804, #[error("Ledger invalid CRC")] SdkInvalidCrc = 0x6805, #[error("Ledger invalid checksum")] SdkInvalidChecksum = 0x6806, #[error("Ledger invalid counter")] SdkInvalidCounter = 0x6807, #[error("Ledger operation not supported")] SdkNotSupported = 0x6808, #[error("Ledger invalid state")] SdkInvalidState = 0x6809, #[error("Ledger timeout")] SdkTimeout = 0x6810, #[error("Ledger PIC exception")] SdkExceptionPic = 0x6811, #[error("Ledger app exit exception")] SdkExceptionAppExit = 0x6812, #[error("Ledger IO overflow exception")] SdkExceptionIoOverflow = 0x6813, #[error("Ledger IO header exception")] SdkExceptionIoHeader = 0x6814, #[error("Ledger IO state exception")] SdkExceptionIoState = 0x6815, #[error("Ledger IO reset exception")] SdkExceptionIoReset = 0x6816, #[error("Ledger CX port exception")] SdkExceptionCxPort = 0x6817, #[error("Ledger system exception")] SdkExceptionSystem = 0x6818, #[error("Ledger out of space")] SdkNotEnoughSpace = 0x6819, #[error("Ledger invalid counter")] NoApduReceived = 0x6982, #[error("Ledger operation rejected by the user")] UserCancel = 0x6985, #[error("Ledger received invalid Solana message")] SolanaInvalidMessage = 0x6a80, #[error("Solana summary finalization failed on Ledger device")] SolanaSummaryFinalizeFailed = 0x6f00, #[error("Solana summary update failed on Ledger device")] SolanaSummaryUpdateFailed = 0x6f01, #[error("Ledger received unimplemented instruction")] UnimplementedInstruction = 0x6d00, #[error("Ledger received invalid CLA")] InvalidCla = 0x6e00, }