use thiserror::Error;
#[derive(Debug, Clone, PartialEq, Eq, Error)]
pub enum HdError {
#[error("Invalid seed length: expected 64 bytes, got {0}")]
InvalidSeedLength(usize),
#[error("Invalid derived key (zero or >= curve order)")]
InvalidDerivedKey,
#[error("Invalid derivation path: {0}")]
InvalidPath(String),
#[error("Hardened derivation requires private key")]
HardenedFromPublic,
#[error("Invalid extended key format")]
InvalidExtendedKey,
#[error("Invalid checksum")]
InvalidChecksum,
#[error("Invalid child number: {0}")]
InvalidChildNumber(u32),
#[error("Key derivation failed")]
DerivationFailed,
#[error("Invalid version bytes")]
InvalidVersion,
#[error("Invalid BIP85 word count: {0} (must be 12, 15, 18, 21, or 24)")]
InvalidBip85WordCount(u32),
#[error("Invalid BIP85 byte count: {0} (must be 16-64)")]
InvalidBip85ByteCount(usize),
}