rustywallet_address/
error.rs

1//! Error types for address operations.
2
3use thiserror::Error;
4
5/// Errors that can occur during address operations.
6#[derive(Debug, Clone, PartialEq, Eq, Error)]
7pub enum AddressError {
8    /// Invalid public key provided.
9    #[error("Invalid public key: {0}")]
10    InvalidPublicKey(String),
11
12    /// Invalid address format.
13    #[error("Invalid address format: {0}")]
14    InvalidFormat(String),
15
16    /// Checksum verification failed.
17    #[error("Checksum mismatch")]
18    ChecksumMismatch,
19
20    /// Unsupported address type.
21    #[error("Unsupported address type: {0}")]
22    UnsupportedAddressType(String),
23
24    /// Network mismatch.
25    #[error("Network mismatch: expected {expected}, got {actual}")]
26    NetworkMismatch { expected: String, actual: String },
27
28    /// SegWit requires compressed public key.
29    #[error("SegWit requires compressed public key")]
30    UncompressedKeyForSegWit,
31
32    /// Invalid Bech32 encoding.
33    #[error("Invalid Bech32 encoding: {0}")]
34    InvalidBech32(String),
35
36    /// Invalid Base58 encoding.
37    #[error("Invalid Base58 encoding: {0}")]
38    InvalidBase58(String),
39}