Expunge error-chain (feat. tomaka) (#2662)

* Remove error_chain

* Expunge error-chain from rpc and service.

* Expunge from transaction pool.

* Expunge from node/cli

* Expunge from keystore.

* Remove some boilerplate.

* Fix remaining stuff.

* Improve on deprecation message.

* Fix issues.

* Fix trnsaction pool tests.

* Fix the rest.

* Fix borked merge.

* Update lock
This commit is contained in:
Tomasz Drwięga
2019-05-24 11:35:31 +02:00
committed by Gavin Wood
parent 69ffec5822
commit c162fc5ff1
68 changed files with 951 additions and 1158 deletions
+1 -1
View File
@@ -7,8 +7,8 @@ edition = "2018"
[dependencies]
clap = "~2.32"
derive_more = "0.14.0"
env_logger = "0.6"
error-chain = "0.12"
log = "0.4"
atty = "0.2"
regex = "1"
+30 -18
View File
@@ -16,26 +16,38 @@
//! Initialization errors.
// Silence: `use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting`
// https://github.com/paritytech/substrate/issues/1547
#![allow(deprecated)]
use client;
use error_chain::{error_chain, error_chain_processing, impl_error_chain_processed,
impl_extract_backtrace, impl_error_chain_kind};
error_chain! {
foreign_links {
Io(::std::io::Error) #[doc="IO error"];
Cli(::clap::Error) #[doc="CLI error"];
Service(::service::Error) #[doc="Substrate service error"];
Client(client::error::Error) #[doc="Client error"];
}
errors {
/// Input error.
Input(m: String) {
description("Invalid input"),
display("{}", m),
/// Result type alias for the CLI.
pub type Result<T> = std::result::Result<T, Error>;
/// Error type for the CLI.
#[derive(Debug, derive_more::Display, derive_more::From)]
pub enum Error {
/// Io error
Io(std::io::Error),
/// Cli error
Cli(clap::Error),
/// Service error
Service(service::Error),
/// Client error
Client(client::error::Error),
/// Input error
Input(String),
/// Invalid listen multiaddress
#[display(fmt="Invalid listen multiaddress")]
InvalidListenMultiaddress
}
impl std::error::Error for Error {
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
match self {
Error::Io(ref err) => Some(err),
Error::Cli(ref err) => Some(err),
Error::Service(ref err) => Some(err),
Error::Client(ref err) => Some(err),
Error::Input(_) => None,
Error::InvalidListenMultiaddress => None,
}
}
}
+10 -15
View File
@@ -55,7 +55,6 @@ use params::{
pub use params::{NoCustom, CoreParams};
pub use traits::{GetLogFilter, AugmentClap};
use app_dirs::{AppInfo, AppDataType};
use error_chain::bail;
use log::info;
use lazy_static::lazy_static;
@@ -145,10 +144,6 @@ fn base_path(cli: &SharedParams, version: &VersionInfo) -> PathBuf {
)
}
fn input_err<T: Into<String>>(msg: T) -> error::Error {
error::ErrorKind::Input(msg.into()).into()
}
/// Check whether a node name is considered as valid
fn is_node_name_valid(_name: &str) -> Result<(), &str> {
let name = _name.to_string();
@@ -278,7 +273,7 @@ where
/// Create an error caused by an invalid node key argument.
fn invalid_node_key(e: impl std::fmt::Display) -> error::Error {
input_err(format!("Invalid node key: {}", e))
error::Error::Input(format!("Invalid node key: {}", e))
}
/// Parse a Secp256k1 secret key from a hex string into a `network::Secret`.
@@ -334,7 +329,7 @@ fn fill_network_configuration(
}
for addr in cli.listen_addr.iter() {
let addr = addr.parse().map_err(|_| "Invalid listen multiaddress")?;
let addr = addr.parse().ok().ok_or(error::Error::InvalidListenMultiaddress)?;
config.listen_addresses.push(addr);
}
@@ -392,14 +387,14 @@ where
};
match is_node_name_valid(&config.name) {
Ok(_) => (),
Err(msg) => bail!(
input_err(
Err(msg) => Err(
error::Error::Input(
format!("Invalid node name '{}'. Reason: {}. If unsure, use none.",
config.name,
msg
)
)
)
)?
}
let base_path = base_path(&cli.shared_params, version);
@@ -417,7 +412,7 @@ where
Some(ref s) if s == "archive" => PruningMode::ArchiveAll,
None => PruningMode::default(),
Some(s) => PruningMode::keep_blocks(
s.parse().map_err(|_| input_err("Invalid pruning mode specified"))?
s.parse().map_err(|_| error::Error::Input("Invalid pruning mode specified".to_string()))?
),
};
@@ -851,7 +846,7 @@ mod tests {
NodeKeyConfig::Ed25519(network::Secret::Input(ref ski))
if node_key_type == NodeKeyType::Ed25519 &&
&sk[..] == ski.as_ref() => Ok(()),
_ => Err(input_err("Unexpected node key config"))
_ => Err(error::Error::Input("Unexpected node key config".into()))
})
})
}
@@ -877,7 +872,7 @@ mod tests {
if node_key_type == NodeKeyType::Secp256k1 && f == &file => Ok(()),
NodeKeyConfig::Ed25519(network::Secret::File(ref f))
if node_key_type == NodeKeyType::Ed25519 && f == &file => Ok(()),
_ => Err(input_err("Unexpected node key config"))
_ => Err(error::Error::Input("Unexpected node key config".into()))
})
})
}
@@ -911,7 +906,7 @@ mod tests {
if typ == NodeKeyType::Secp256k1 => Ok(()),
NodeKeyConfig::Ed25519(network::Secret::New)
if typ == NodeKeyType::Ed25519 => Ok(()),
_ => Err(input_err("Unexpected node key config"))
_ => Err(error::Error::Input("Unexpected node key config".into()))
})
})
}
@@ -928,7 +923,7 @@ mod tests {
NodeKeyConfig::Ed25519(network::Secret::File(ref f))
if typ == NodeKeyType::Ed25519 &&
f == &dir.join(NODE_KEY_ED25519_FILE) => Ok(()),
_ => Err(input_err("Unexpected node key config"))
_ => Err(error::Error::Input("Unexpected node key config".into()))
})
})
}