pub enum ExecError {
Show 47 variants
Interpreter(String),
Storage(Error),
BytesRepr(Error),
NamedKeyNotFound(String),
KeyNotFound(Key),
AccountNotFound(Key),
TypeMismatch(StoredValueTypeMismatch),
InvalidAccess {
required: AccessRights,
},
ForgedReference(URef),
URefNotFound(URef),
FunctionNotFound(String),
ParityWasm(Error),
WasmOptimizer,
GasLimit,
Ret(Vec<URef>),
Resolver(ResolverError),
Revert(ApiError),
AddKeyFailure(AddKeyFailure),
RemoveKeyFailure(RemoveKeyFailure),
UpdateKeyFailure(UpdateKeyFailure),
SetThresholdFailure(SetThresholdFailure),
SystemContract(Error),
DeploymentAuthorizationFailure,
ExpectedReturnValue,
UnexpectedReturnValue,
InvalidContext,
IncompatibleProtocolMajorVersion {
expected: u32,
actual: u32,
},
CLValue(CLValueError),
HostBufferEmpty,
UnsupportedWasmStart,
NoActiveContractVersions(ContractPackageHash),
InvalidContractVersion(ContractVersionKey),
NoSuchMethod(String),
WasmPreprocessing(PreprocessingError),
KeyIsNotAURef(Key),
UnexpectedStoredValueVariant,
LockedContract(ContractPackageHash),
InvalidContractPackage(ContractPackageHash),
InvalidContract(ContractHash),
InvalidContractWasm(ContractWasmHash),
MissingArgument {
name: String,
},
DictionaryItemKeyExceedsLength,
MissingSystemContractRegistry,
MissingSystemContractHash(String),
RuntimeStackOverflow,
ValueTooLarge,
MissingRuntimeStack,
}
Expand description
Possible execution errors.
Variants
Interpreter(String)
WASM interpreter error.
Storage(Error)
Storage error.
BytesRepr(Error)
Failed to (de)serialize bytes.
NamedKeyNotFound(String)
Unable to find named key.
KeyNotFound(Key)
Unable to find a key.
AccountNotFound(Key)
Unable to find an account.
TypeMismatch(StoredValueTypeMismatch)
Type mismatch error.
InvalidAccess
Fields
required: AccessRights
Required access rights of the operation.
Invalid access.
ForgedReference(URef)
Forged reference error.
URefNotFound(URef)
Unable to find a URef
.
FunctionNotFound(String)
Unable to find a function.
ParityWasm(Error)
Parity WASM error.
WasmOptimizer
Error optimizing WASM.
GasLimit
Execution exceeded the gas limit.
Ret(Vec<URef>)
A stored smart contract incorrectly called a ret function.
Resolver(ResolverError)
Error using WASM host function resolver.
Revert(ApiError)
Reverts execution with a provided status
AddKeyFailure(AddKeyFailure)
Error adding an associated key.
RemoveKeyFailure(RemoveKeyFailure)
Error removing an associated key.
UpdateKeyFailure(UpdateKeyFailure)
Error updating an associated key.
SetThresholdFailure(SetThresholdFailure)
Error setting threshold on associated key.
SystemContract(Error)
Error executing system contract.
DeploymentAuthorizationFailure
Weight of all used associated keys does not meet account’s deploy threshold.
ExpectedReturnValue
Host buffer expected a value to be present.
UnexpectedReturnValue
Host buffer was not expected to contain a value.
InvalidContext
Error calling a host function in a wrong context.
IncompatibleProtocolMajorVersion
Unable to execute a deploy with invalid major protocol version.
CLValue(CLValueError)
Error converting a CLValue.
HostBufferEmpty
Unable to access host buffer.
UnsupportedWasmStart
WASM bytes contains an unsupported “start” section.
NoActiveContractVersions(ContractPackageHash)
Contract package has no active contract versions.
InvalidContractVersion(ContractVersionKey)
Invalid contract version supplied.
NoSuchMethod(String)
Contract does not have specified entry point.
WasmPreprocessing(PreprocessingError)
Error processing WASM bytes.
KeyIsNotAURef(Key)
UnexpectedStoredValueVariant
Unexpected variant of a stored value.
LockedContract(ContractPackageHash)
Error upgrading a locked contract package.
InvalidContractPackage(ContractPackageHash)
Unable to find a contract package by a specified hash address.
InvalidContract(ContractHash)
Unable to find a contract by a specified hash address.
InvalidContractWasm(ContractWasmHash)
Unable to find the WASM bytes specified by a hash address.
MissingArgument
Fields
name: String
Name of the required argument.
Error calling a smart contract with a missing argument.
DictionaryItemKeyExceedsLength
Error writing a dictionary item key which exceeded maximum allowed length.
MissingSystemContractRegistry
Missing system contract registry.
MissingSystemContractHash(String)
Missing system contract hash.
RuntimeStackOverflow
An attempt to push to the runtime stack which is already at the maximum height.
ValueTooLarge
An attempt to write a value to global state where its serialized size is too large.
MissingRuntimeStack
The runtime stack is None
.
Implementations
Trait Implementations
sourceimpl Error for Error
impl Error for Error
1.30.0 · sourcefn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more
sourcefn backtrace(&self) -> Option<&Backtrace>
fn backtrace(&self) -> Option<&Backtrace>
backtrace
)Returns a stack backtrace, if available, of where this error occurred. Read more
1.0.0 · sourcefn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
sourceimpl From<AddKeyFailure> for Error
impl From<AddKeyFailure> for Error
sourcefn from(err: AddKeyFailure) -> Self
fn from(err: AddKeyFailure) -> Self
Converts to this type from the input type.
sourceimpl From<CLValueError> for Error
impl From<CLValueError> for Error
sourcefn from(e: CLValueError) -> Self
fn from(e: CLValueError) -> Self
Converts to this type from the input type.
sourceimpl From<Error> for Error
impl From<Error> for Error
sourcefn from(_optimizer_error: OptimizerError) -> Self
fn from(_optimizer_error: OptimizerError) -> Self
Converts to this type from the input type.
sourceimpl From<PreprocessingError> for Error
impl From<PreprocessingError> for Error
sourcefn from(error: PreprocessingError) -> Self
fn from(error: PreprocessingError) -> Self
Converts to this type from the input type.
sourceimpl From<RemoveKeyFailure> for Error
impl From<RemoveKeyFailure> for Error
sourcefn from(err: RemoveKeyFailure) -> Self
fn from(err: RemoveKeyFailure) -> Self
Converts to this type from the input type.
sourceimpl From<ResolverError> for Error
impl From<ResolverError> for Error
sourcefn from(err: ResolverError) -> Self
fn from(err: ResolverError) -> Self
Converts to this type from the input type.
sourceimpl From<RuntimeStackOverflow> for Error
impl From<RuntimeStackOverflow> for Error
sourcefn from(_: RuntimeStackOverflow) -> Self
fn from(_: RuntimeStackOverflow) -> Self
Converts to this type from the input type.
sourceimpl From<SetThresholdFailure> for Error
impl From<SetThresholdFailure> for Error
sourcefn from(err: SetThresholdFailure) -> Self
fn from(err: SetThresholdFailure) -> Self
Converts to this type from the input type.
sourceimpl From<UpdateKeyFailure> for Error
impl From<UpdateKeyFailure> for Error
sourcefn from(err: UpdateKeyFailure) -> Self
fn from(err: UpdateKeyFailure) -> Self
Converts to this type from the input type.
impl HostError for Error
Auto Trait Implementations
impl RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl UnwindSafe for Error
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
impl<T> FmtForward for T
impl<T> FmtForward for T
fn fmt_binary(self) -> FmtBinary<Self> where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self> where
Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.
fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
Causes self
to use its Display
implementation when
Debug
-formatted. Read more
fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
Causes self
to use its LowerExp
implementation when
Debug
-formatted. Read more
fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
Causes self
to use its LowerHex
implementation when
Debug
-formatted. Read more
fn fmt_octal(self) -> FmtOctal<Self> where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self> where
Self: Octal,
Causes self
to use its Octal
implementation when Debug
-formatted.
fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
Causes self
to use its Pointer
implementation when
Debug
-formatted. Read more
fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
Causes self
to use its UpperExp
implementation when
Debug
-formatted. Read more
fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
Causes self
to use its UpperHex
implementation when
Debug
-formatted. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> PipeAsRef for T
impl<T> PipeAsRef for T
fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more
fn pipe_as_mut<'a, T, R>(&'a mut self, func: impl FnOnce(&'a mut T) -> R) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
fn pipe_as_mut<'a, T, R>(&'a mut self, func: impl FnOnce(&'a mut T) -> R) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
Pipes a trait mutable borrow into a function that cannot normally be called in suffix position. Read more
impl<T> PipeBorrow for T
impl<T> PipeBorrow for T
fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more
fn pipe_borrow_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
fn pipe_borrow_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
Pipes a trait mutable borrow into a function that cannot normally be called in suffix position. Read more
impl<T> PipeDeref for T
impl<T> PipeDeref for T
fn pipe_deref<'a, R>(&'a self, func: impl FnOnce(&'a Self::Target) -> R) -> R where
Self: Deref,
R: 'a,
fn pipe_deref<'a, R>(&'a self, func: impl FnOnce(&'a Self::Target) -> R) -> R where
Self: Deref,
R: 'a,
Pipes a dereference into a function that cannot normally be called in suffix position. Read more
fn pipe_deref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
fn pipe_deref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
Pipes a mutable dereference into a function that cannot normally be called in suffix position. Read more
impl<T> PipeRef for T
impl<T> PipeRef for T
impl<T> Tap for T
impl<T> Tap for T
fn tap<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
fn tap<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
Provides immutable access for inspection. Read more
fn tap_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
fn tap_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
Calls tap
in debug builds, and does nothing in release builds.
fn tap_mut<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
fn tap_mut<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
Provides mutable access for modification. Read more
fn tap_mut_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
fn tap_mut_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
Calls tap_mut
in debug builds, and does nothing in release builds.
impl<T, U> TapAsRef<U> for T where
U: ?Sized,
impl<T, U> TapAsRef<U> for T where
U: ?Sized,
fn tap_ref<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
fn tap_ref<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Provides immutable access to the reference for inspection.
fn tap_ref_dbg<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
fn tap_ref_dbg<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Calls tap_ref
in debug builds, and does nothing in release builds.
fn tap_ref_mut<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_ref_mut<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Provides mutable access to the reference for modification.
fn tap_ref_mut_dbg<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_ref_mut_dbg<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Calls tap_ref_mut
in debug builds, and does nothing in release builds.
impl<T, U> TapBorrow<U> for T where
U: ?Sized,
impl<T, U> TapBorrow<U> for T where
U: ?Sized,
fn tap_borrow<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
fn tap_borrow<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Provides immutable access to the borrow for inspection. Read more
fn tap_borrow_dbg<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
fn tap_borrow_dbg<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Calls tap_borrow
in debug builds, and does nothing in release builds.
fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Provides mutable access to the borrow for modification.
fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Calls tap_borrow_mut
in debug builds, and does nothing in release
builds. Read more
impl<T> TapDeref for T
impl<T> TapDeref for T
fn tap_deref<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
fn tap_deref<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Immutably dereferences self
for inspection.
fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Calls tap_deref
in debug builds, and does nothing in release builds.
fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Mutably dereferences self
for modification.
fn tap_deref_mut_dbg<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
fn tap_deref_mut_dbg<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Calls tap_deref_mut
in debug builds, and does nothing in release
builds. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more