use thiserror::Error;
pub type Result<T, E = Error> = std::result::Result<T, E>;
#[derive(Debug, Error)]
pub enum Error {
#[error("Transfer error {0}")]
CreateTransfer(#[from] crate::client_transfers::Error),
#[error("Could not build storage payment reason for content: {0}")]
StoragePaymentReason(String),
#[error("Failed to send tokens due to {0}")]
CouldNotSendTokens(String),
#[error("Failed to verify transfer validity in the network {0}")]
CouldNotVerifyTransfer(String),
#[error("Failed to parse bls key")]
FailedToParseBlsKey,
#[error("Could not decode hex string to key.")]
FailedToDecodeHexToKey,
#[error("Could not serialize main key to hex: {0}")]
FailedToHexEncodeKey(String),
#[error("Dbc error: {0}")]
Dbc(#[from] Box<sn_dbc::Error>),
#[error("Bls error: {0}")]
Bls(#[from] bls::error::Error),
#[error("Bincode error:: {0}")]
Bincode(#[from] bincode::Error),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
}