use thiserror::Error;
#[derive(Debug, Clone, PartialEq, Eq, Error)]
pub enum AddressError {
#[error("Invalid public key: {0}")]
InvalidPublicKey(String),
#[error("Invalid address format: {0}")]
InvalidFormat(String),
#[error("Checksum mismatch")]
ChecksumMismatch,
#[error("Unsupported address type: {0}")]
UnsupportedAddressType(String),
#[error("Network mismatch: expected {expected}, got {actual}")]
NetworkMismatch { expected: String, actual: String },
#[error("SegWit requires compressed public key")]
UncompressedKeyForSegWit,
#[error("Invalid Bech32 encoding: {0}")]
InvalidBech32(String),
#[error("Invalid Base58 encoding: {0}")]
InvalidBase58(String),
}