anychain_core/
network.rs

1use {
2    crate::no_std::{
3        fmt::{Debug, Display},
4        hash::Hash,
5        FromStr, String,
6    },
7    thiserror::Error,
8};
9
10/// The interface for a generic network.
11pub trait Network:
12    Copy + Clone + Debug + Display + FromStr + Send + Sync + 'static + Eq + Ord + Sized + Hash
13{
14    const NAME: &'static str;
15}
16
17#[derive(Debug, Error)]
18pub enum NetworkError {
19    #[error("invalid extended private key prefix: {0}")]
20    InvalidExtendedPrivateKeyPrefix(String),
21
22    #[error("invalid extended public key prefix: {0}")]
23    InvalidExtendedPublicKeyPrefix(String),
24
25    #[error("invalid network: {0}")]
26    InvalidNetwork(String),
27}