uckb_key/address/
error.rs

1// Copyright (C) 2019-2020 Boyu Yang
2//
3// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
4// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
5// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
6// option. This file may not be copied, modified, or distributed
7// except according to those terms.
8
9use thiserror::Error;
10
11#[derive(Debug, Error)]
12pub enum Error {
13    #[error("internal error: should be unreachable, {0}")]
14    Unreachable(String),
15
16    #[error("bech32 error: {0}")]
17    Bech32(bech32::Error),
18
19    #[error("unknown network: {0}")]
20    UnknownNetwork(String),
21    #[error("unknown payload format: {0}")]
22    UnknownPayloadFormat(u8),
23    #[error("unknown code hash index: {0}")]
24    UnknownCodeHashIndex(u8),
25    #[error("invalid data since offset {0}")]
26    InvalidDataSince(usize),
27    #[error("unsupported bech32 variant: {0:?}")]
28    UnsupportedBech32Variant(bech32::Variant),
29
30    #[error("args error: Secp256k1Blake160")]
31    Secp256k1Blake160Args,
32    #[error("args error: ShortFormatArgs")]
33    ShortFormatArgs,
34    #[error("args error: MultiSig")]
35    MultiSigArgs,
36}
37
38pub type Result<T> = ::std::result::Result<T, Error>;