#[repr(u16)]pub enum ExecutionError {
Show 40 variants
UnwrapError = 1,
UnexpectedError = 2,
AdditionOverflow = 100,
SubtractionOverflow = 101,
NonPayable = 102,
TransferToContract = 103,
ReentrantCall = 104,
CannotOverrideKeys = 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,
MainPurseError = 125,
ConversionError = 126,
ContractDeploymentError = 127,
CannotExtractCallerInfo = 128,
ContractNotInstalled = 129,
UpgradingWithoutPreviousVersion = 130,
UpgradingNotAContract = 131,
SchemaMismatch = 132,
CannotDisablePreviousVersion = 133,
CannotUpgradeWithoutUpgrade = 134,
MaxUserError = 64_535,
UserErrorTooHigh = 64_536,
User(UserError),
}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
CannotOverrideKeys = 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
MainPurseError = 125
MainPurse error
ConversionError = 126
Conversion error
ContractDeploymentError = 127
Couldn’t deploy the contract
CannotExtractCallerInfo = 128
Couldn’t extract caller info
ContractNotInstalled = 129
Upgrading a contract that is not installed.
UpgradingWithoutPreviousVersion = 130
Upgrading a contract without previous version
UpgradingNotAContract = 131
Upgrading not a contract
SchemaMismatch = 132
Upgrading a contract with a schema that does not match the previous version.
CannotDisablePreviousVersion = 133
Cannot disable a previous version of a contract.
CannotUpgradeWithoutUpgrade = 134
Cannot upgrade a contract without an upgrade function.
MaxUserError = 64_535
Maximum code for user errors
UserErrorTooHigh = 64_536
User error too high. The code should be in range 0..32767.
User(UserError)
User error
Implementations§
Trait Implementations§
Source§impl Clone for ExecutionError
impl Clone for ExecutionError
Source§fn clone(&self) -> ExecutionError
fn clone(&self) -> ExecutionError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ExecutionError
impl Debug for ExecutionError
Source§impl From<AddressError> for ExecutionError
impl From<AddressError> for ExecutionError
Source§fn from(error: AddressError) -> Self
fn from(error: AddressError) -> Self
Source§impl From<ArithmeticsError> for ExecutionError
impl From<ArithmeticsError> for ExecutionError
Source§fn from(error: ArithmeticsError) -> Self
fn from(error: ArithmeticsError) -> Self
Source§impl From<CollectionError> for ExecutionError
impl From<CollectionError> for ExecutionError
Source§fn from(error: CollectionError) -> Self
fn from(error: CollectionError) -> Self
Source§impl From<Error> for ExecutionError
impl From<Error> for ExecutionError
Source§impl From<ExecutionError> for OdraError
impl From<ExecutionError> for OdraError
Source§fn from(error: ExecutionError) -> Self
fn from(error: ExecutionError) -> Self
Source§impl PartialEq for ExecutionError
impl PartialEq for ExecutionError
impl StructuralPartialEq for ExecutionError
Auto Trait Implementations§
impl Freeze for ExecutionError
impl RefUnwindSafe for ExecutionError
impl Send for ExecutionError
impl Sync for ExecutionError
impl Unpin for ExecutionError
impl UnwindSafe for ExecutionError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more