cosmos-grpc-client 0.2.1

Cosmos grpc client with wallet integration
use cosmwasm_std::{StdError, StdResult};
use protobuf::ProtobufResult;

pub trait IntoStdError {
    fn into_std_error(self) -> StdError;
}

impl IntoStdError for tonic::transport::Error {
    fn into_std_error(self) -> StdError {
        StdError::generic_err(self.to_string())
    }
}

pub trait IntoStdResult<T> {
    fn into_std_result(self) -> StdResult<T>;
}

impl<T> IntoStdResult<T> for Result<T, tonic::Status> {
    fn into_std_result(self) -> StdResult<T> {
        self.map_err(|err| StdError::generic_err(err.to_string()))
    }
}

impl<T> IntoStdResult<T> for Result<T, tonic::transport::Error> {
    fn into_std_result(self) -> StdResult<T> {
        self.map_err(|err| StdError::generic_err(err.to_string()))
    }
}

impl<T> IntoStdResult<T> for Result<T, bip32::Error> {
    fn into_std_result(self) -> StdResult<T> {
        self.map_err(|err| StdError::generic_err(err.to_string()))
    }
}

impl<T> IntoStdResult<T> for Result<T, bip39::Error> {
    fn into_std_result(self) -> StdResult<T> {
        self.map_err(|err| StdError::generic_err(err.to_string()))
    }
}

impl<T> IntoStdResult<T> for ProtobufResult<T> {
    fn into_std_result(self) -> StdResult<T> {
        self.map_err(|err| StdError::generic_err(err.to_string()))
    }
}