fvm_shared/address/
errors.rs1use std::{io, num};
6
7use data_encoding::DecodeError;
8use thiserror::Error;
9use unsigned_varint::decode::Error as VarintError;
10
11use super::{BLS_PUB_LEN, SECP_PUB_LEN};
12
13#[derive(Debug, PartialEq, Eq, Error)]
15pub enum Error {
16 #[error("Unknown address network")]
17 UnknownNetwork,
18 #[error("Unknown address protocol")]
19 UnknownProtocol,
20 #[error("Invalid address payload")]
21 InvalidPayload,
22 #[error("Invalid address length")]
23 InvalidLength,
24 #[error("Invalid payload length: {0}")]
25 InvalidPayloadLength(usize),
26 #[error("Invalid BLS pub key length, wanted: {exp} got: {0}", exp=BLS_PUB_LEN)]
27 InvalidBLSLength(usize),
28 #[error("Invalid SECP pub key length, wanted: {exp} got: {0}", exp=SECP_PUB_LEN)]
29 InvalidSECPLength(usize),
30 #[error("Invalid address checksum")]
31 InvalidChecksum,
32 #[error("Decoding for address failed: {0}")]
33 Base32Decoding(#[from] DecodeError),
34 #[error("Cannot get id from non id address")]
35 NonIDAddress,
36 #[error("Cannot get delegated address from non delegate address")]
37 NonDelegatedAddress,
38}
39
40impl From<num::ParseIntError> for Error {
41 fn from(_: num::ParseIntError) -> Error {
42 Error::InvalidPayload
43 }
44}
45
46impl From<io::Error> for Error {
47 fn from(_: io::Error) -> Error {
48 Error::InvalidPayload
49 }
50}
51impl From<VarintError> for Error {
52 fn from(_: VarintError) -> Error {
53 Error::InvalidPayload
54 }
55}