Enum casper_execution_engine::core::execution::Error
source · pub enum Error {
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
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§
source§impl Error for Error
impl Error for Error
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
source§impl From<AddKeyFailure> for Error
impl From<AddKeyFailure> for Error
source§fn from(err: AddKeyFailure) -> Self
fn from(err: AddKeyFailure) -> Self
source§impl From<CLValueError> for Error
impl From<CLValueError> for Error
source§fn from(e: CLValueError) -> Self
fn from(e: CLValueError) -> Self
source§impl From<Error> for Error
impl From<Error> for Error
source§fn from(_optimizer_error: OptimizerError) -> Self
fn from(_optimizer_error: OptimizerError) -> Self
source§impl From<PreprocessingError> for Error
impl From<PreprocessingError> for Error
source§fn from(error: PreprocessingError) -> Self
fn from(error: PreprocessingError) -> Self
source§impl From<RemoveKeyFailure> for Error
impl From<RemoveKeyFailure> for Error
source§fn from(err: RemoveKeyFailure) -> Self
fn from(err: RemoveKeyFailure) -> Self
source§impl From<ResolverError> for Error
impl From<ResolverError> for Error
source§fn from(err: ResolverError) -> Self
fn from(err: ResolverError) -> Self
source§impl From<RuntimeStackOverflow> for Error
impl From<RuntimeStackOverflow> for Error
source§fn from(_: RuntimeStackOverflow) -> Self
fn from(_: RuntimeStackOverflow) -> Self
source§impl From<SetThresholdFailure> for Error
impl From<SetThresholdFailure> for Error
source§fn from(err: SetThresholdFailure) -> Self
fn from(err: SetThresholdFailure) -> Self
source§impl From<UpdateKeyFailure> for Error
impl From<UpdateKeyFailure> for Error
source§fn from(err: UpdateKeyFailure) -> Self
fn from(err: UpdateKeyFailure) -> Self
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§
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
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere 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>
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
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§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,
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,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where Self: Octal,
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,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.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>
§impl<T> Pipe for T
impl<T> Pipe for T
§impl<T> PipeAsRef for T
impl<T> PipeAsRef for T
§impl<T> PipeBorrow for T
impl<T> PipeBorrow for T
§impl<T> PipeDeref for T
impl<T> PipeDeref for T
§impl<T> PipeRef for T
impl<T> PipeRef for T
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere R: 'a,
§fn pipe_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere R: 'a,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&Self) -> R,
fn tap<F, R>(self, func: F) -> Selfwhere F: FnOnce(&Self) -> R,
§fn tap_dbg<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&Self) -> R,
fn tap_dbg<F, R>(self, func: F) -> Selfwhere F: FnOnce(&Self) -> R,
tap
in debug builds, and does nothing in release builds.§fn tap_mut<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&mut Self) -> R,
fn tap_mut<F, R>(self, func: F) -> Selfwhere F: FnOnce(&mut Self) -> R,
§fn tap_mut_dbg<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&mut Self) -> R,
fn tap_mut_dbg<F, R>(self, func: F) -> Selfwhere F: FnOnce(&mut Self) -> R,
tap_mut
in debug builds, and does nothing in release builds.§impl<T, U> TapAsRef<U> for Twhere
U: ?Sized,
impl<T, U> TapAsRef<U> for Twhere U: ?Sized,
§fn tap_ref<F, R>(self, func: F) -> Selfwhere
Self: AsRef<T>,
F: FnOnce(&T) -> R,
fn tap_ref<F, R>(self, func: F) -> Selfwhere Self: AsRef<T>, F: FnOnce(&T) -> R,
§fn tap_ref_dbg<F, R>(self, func: F) -> Selfwhere
Self: AsRef<T>,
F: FnOnce(&T) -> R,
fn tap_ref_dbg<F, R>(self, func: F) -> Selfwhere Self: AsRef<T>, F: FnOnce(&T) -> R,
tap_ref
in debug builds, and does nothing in release builds.§fn tap_ref_mut<F, R>(self, func: F) -> Selfwhere
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_ref_mut<F, R>(self, func: F) -> Selfwhere Self: AsMut<T>, F: FnOnce(&mut T) -> R,
§fn tap_ref_mut_dbg<F, R>(self, func: F) -> Selfwhere
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_ref_mut_dbg<F, R>(self, func: F) -> Selfwhere Self: AsMut<T>, F: FnOnce(&mut T) -> R,
tap_ref_mut
in debug builds, and does nothing in release builds.§impl<T, U> TapBorrow<U> for Twhere
U: ?Sized,
impl<T, U> TapBorrow<U> for Twhere U: ?Sized,
§fn tap_borrow<F, R>(self, func: F) -> Selfwhere
Self: Borrow<T>,
F: FnOnce(&T) -> R,
fn tap_borrow<F, R>(self, func: F) -> Selfwhere Self: Borrow<T>, F: FnOnce(&T) -> R,
§fn tap_borrow_dbg<F, R>(self, func: F) -> Selfwhere
Self: Borrow<T>,
F: FnOnce(&T) -> R,
fn tap_borrow_dbg<F, R>(self, func: F) -> Selfwhere Self: Borrow<T>, F: FnOnce(&T) -> R,
tap_borrow
in debug builds, and does nothing in release builds.§fn tap_borrow_mut<F, R>(self, func: F) -> Selfwhere
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_borrow_mut<F, R>(self, func: F) -> Selfwhere Self: BorrowMut<T>, F: FnOnce(&mut T) -> R,
§fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Selfwhere
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Selfwhere Self: BorrowMut<T>, F: FnOnce(&mut T) -> R,
tap_borrow_mut
in debug builds, and does nothing in release
builds.§impl<T> TapDeref for T
impl<T> TapDeref for T
§fn tap_deref<F, R>(self, func: F) -> Selfwhere
Self: Deref,
F: FnOnce(&Self::Target) -> R,
fn tap_deref<F, R>(self, func: F) -> Selfwhere Self: Deref, F: FnOnce(&Self::Target) -> R,
self
for inspection.§fn tap_deref_dbg<F, R>(self, func: F) -> Selfwhere
Self: Deref,
F: FnOnce(&Self::Target) -> R,
fn tap_deref_dbg<F, R>(self, func: F) -> Selfwhere Self: Deref, F: FnOnce(&Self::Target) -> R,
tap_deref
in debug builds, and does nothing in release builds.§fn tap_deref_mut<F, R>(self, func: F) -> Selfwhere
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
fn tap_deref_mut<F, R>(self, func: F) -> Selfwhere Self: DerefMut, F: FnOnce(&mut Self::Target) -> R,
self
for modification.§fn tap_deref_mut_dbg<F, R>(self, func: F) -> Selfwhere
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
fn tap_deref_mut_dbg<F, R>(self, func: F) -> Selfwhere Self: DerefMut, F: FnOnce(&mut Self::Target) -> R,
tap_deref_mut
in debug builds, and does nothing in release
builds.