use thiserror::Error;
#[derive(Error, Debug, Clone)]
pub enum Error {
#[error("Invalid CAIP-2 Chain ID: {0}")]
InvalidChainId(String),
#[error("Invalid namespace: {0}")]
InvalidNamespace(String),
#[error("Invalid reference: {0}")]
InvalidReference(String),
#[error("Invalid CAIP-10 Account ID: {0}")]
InvalidAccountId(String),
#[error("Invalid address format for chain {0}: {1}")]
InvalidAddressFormat(String, String),
#[error("Invalid CAIP-19 Asset ID: {0}")]
InvalidAssetId(String),
#[error("Invalid asset namespace: {0}")]
InvalidAssetNamespace(String),
#[error("Invalid asset reference: {0}")]
InvalidAssetReference(String),
#[error("Unrecognized CAIP format: {0}")]
UnrecognizedFormat(String),
#[error("Invalid Ethereum address: {0}")]
InvalidEthereumAddress(String),
#[error("Invalid Bitcoin address: {0}")]
InvalidBitcoinAddress(String),
}