pub trait Error: Error {
    // Required methods
    fn module_name(&self) -> &str;
    fn code(&self) -> u32;

    // Provided methods
    fn into_call_result(self) -> CallResult
       where Self: Sized { ... }
    fn into_abort(self) -> Result<Error, Self>
       where Self: Sized { ... }
}
Expand description

A runtime error that gets propagated to the caller.

It extends std::error::Error with module name and error code so that errors can be easily serialized and transferred between different processes.

This trait can be derived:

const MODULE_NAME: &str = "my-module";
#[derive(Clone, Debug, Error, thiserror::Error)]
#[sdk_error(autonumber)] // `module_name` meta is required if `MODULE_NAME` isn't in scope
enum Error {
   #[error("invalid argument")]
   InvalidArgument,          // autonumbered to 0

   #[error("forbidden")]
   #[sdk_error(code = 401)]  // manually numbered to 403 (`code` or autonumbering is required)
   Forbidden,
}

Required Methods§

source

fn module_name(&self) -> &str

Name of the module that emitted the error.

source

fn code(&self) -> u32

Error code uniquely identifying the error.

Provided Methods§

source

fn into_call_result(self) -> CallResult
where Self: Sized,

Converts the error into a call result.

source

fn into_abort(self) -> Result<Error, Self>
where Self: Sized,

Consumes self and returns either Ok(err) (where err is a dispatcher error) when batch should abort or Err(self) when this is just a regular error.

Implementations on Foreign Types§

source§

impl Error for Infallible

source§

fn module_name(&self) -> &str

source§

fn code(&self) -> u32

Implementors§

source§

impl Error for oasis_runtime_sdk::dispatcher::Error

source§

impl Error for oasis_runtime_sdk::history::Error

source§

impl Error for oasis_runtime_sdk::modules::accounts::Error

source§

impl Error for oasis_runtime_sdk::modules::consensus::Error

source§

impl Error for oasis_runtime_sdk::modules::consensus_accounts::Error

source§

impl Error for oasis_runtime_sdk::modules::core::Error

source§

impl Error for oasis_runtime_sdk::modules::rewards::Error

source§

impl Error for oasis_runtime_sdk::schedule_control::Error

source§

impl Error for TxSimulationFailure