Enum odra_core::ExecutionError

source ·
#[repr(u16)]
pub enum ExecutionError {
Show 30 variants UnwrapError = 1, UnexpectedError = 2, AdditionOverflow = 100, SubtractionOverflow = 101, NonPayable = 102, TransferToContract = 103, ReentrantCall = 104, ContractAlreadyInstalled = 105, UnknownConstructor = 106, NativeTransferError = 107, IndexOutOfBounds = 108, ZeroAddress = 109, AddressCreationFailed = 110, EarlyEndOfStream = 111, Formatting = 112, LeftOverBytes = 113, OutOfMemory = 114, NotRepresentable = 115, ExceededRecursionDepth = 116, KeyNotFound = 117, CouldNotDeserializeSignature = 118, TypeMismatch = 119, CouldNotSignMessage = 120, EmptyDictionaryName = 121, MissingArg = 122, MissingAddress = 123, OutOfGas = 124, MaxUserError = 64_535, UserErrorTooHigh = 64_536, User(u16),
}
Expand description

An error that can occur during smart contract execution

It is represented by an error code and a human-readable message.

Errors codes 0..32767 are available for the user to define custom error in smart contracts. 32768 code is a special code representing a violation of the custom error code space.

The rest of codes 32769..u16::MAX, are used internally by the framework.

Variants§

§

UnwrapError = 1

Unwrap error.

§

UnexpectedError = 2

Something unexpected happened.

§

AdditionOverflow = 100

Addition overflow

§

SubtractionOverflow = 101

Subtraction overflow

§

NonPayable = 102

Method does not accept deposit

§

TransferToContract = 103

Can’t transfer tokens to contract.

§

ReentrantCall = 104

Reentrant call detected

§

ContractAlreadyInstalled = 105

Contract already installed

§

UnknownConstructor = 106

Unknown constructor

§

NativeTransferError = 107

Native transfer error

§

IndexOutOfBounds = 108

Index out of bounds

§

ZeroAddress = 109

Tried to construct a zero address.

§

AddressCreationFailed = 110

Address creation failed

§

EarlyEndOfStream = 111

Early end of stream - deserialization error

§

Formatting = 112

Formatting error - deserialization error

§

LeftOverBytes = 113

Left over bytes - deserialization error

§

OutOfMemory = 114

Out of memory

§

NotRepresentable = 115

Not representable

§

ExceededRecursionDepth = 116

Exceeded recursion depth

§

KeyNotFound = 117

Key not found

§

CouldNotDeserializeSignature = 118

Could not deserialize signature

§

TypeMismatch = 119

Type mismatch

§

CouldNotSignMessage = 120

Could not sign message

§

EmptyDictionaryName = 121

Empty dictionary name

§

MissingArg = 122

Calling a contract with missing entrypoint arguments.

§

MissingAddress = 123

Reading the address from the storage failed.

§

OutOfGas = 124

Out of gas error

§

MaxUserError = 64_535

Maximum code for user errors

§

UserErrorTooHigh = 64_536

User error too high. The code should be in range 0..32767.

§

User(u16)

User error

Implementations§

source§

impl ExecutionError

source

pub fn code(&self) -> u16

Returns the error code.

Trait Implementations§

source§

impl Clone for ExecutionError

source§

fn clone(&self) -> ExecutionError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ExecutionError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<AddressError> for ExecutionError

source§

fn from(error: AddressError) -> Self

Converts to this type from the input type.
source§

impl From<ArithmeticsError> for ExecutionError

source§

fn from(error: ArithmeticsError) -> Self

Converts to this type from the input type.
source§

impl From<CollectionError> for ExecutionError

source§

fn from(error: CollectionError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for ExecutionError

source§

fn from(error: Error) -> Self

Converts to this type from the input type.
source§

impl From<ExecutionError> for OdraError

source§

fn from(error: ExecutionError) -> Self

Converts to this type from the input type.
source§

impl PartialEq for ExecutionError

source§

fn eq(&self, other: &ExecutionError) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for ExecutionError

source§

impl StructuralPartialEq for ExecutionError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> CloneToUninit for T
where T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.