connect to substrate using ws (#417)

This commit is contained in:
Svyatoslav Nikolsky
2020-10-14 08:19:39 +03:00
committed by Bastian Köcher
parent ede0ff8656
commit 55d22a0d1e
6 changed files with 23 additions and 13 deletions
+12 -2
View File
@@ -17,6 +17,7 @@
//! Substrate node RPC errors.
use jsonrpsee::client::RequestError;
use jsonrpsee::transport::ws::WsNewDnsError;
use relay_utils::MaybeConnectionError;
/// Result type used by Substrate client.
@@ -26,13 +27,21 @@ pub type Result<T> = std::result::Result<T, Error>;
/// a Substrate node through RPC.
#[derive(Debug)]
pub enum Error {
/// Web socket connection error.
WsConnectionError(WsNewDnsError),
/// An error that can occur when making an HTTP request to
/// an JSON-RPC client.
/// an JSON-RPC server.
Request(RequestError),
/// The response from the client could not be SCALE decoded.
/// The response from the server could not be SCALE decoded.
ResponseParseFailed(codec::Error),
}
impl From<WsNewDnsError> for Error {
fn from(error: WsNewDnsError) -> Self {
Error::WsConnectionError(error)
}
}
impl From<RequestError> for Error {
fn from(error: RequestError) -> Self {
Error::Request(error)
@@ -54,6 +63,7 @@ impl From<Error> for String {
impl ToString for Error {
fn to_string(&self) -> String {
match self {
Self::WsConnectionError(e) => e.to_string(),
Self::Request(e) => e.to_string(),
Self::ResponseParseFailed(e) => e.what().to_string(),
}