#[non_exhaustive]#[repr(u8)]pub enum ClientPanicReason {
Show 37 variants
UnknownPanicReason = 0,
Revert = 1,
OutOfGas = 2,
TransactionValidity = 3,
MemoryOverflow = 4,
ArithmeticOverflow = 5,
ContractNotFound = 6,
MemoryOwnership = 7,
NotEnoughBalance = 8,
ExpectedInternalContext = 9,
AssetIdNotFound = 10,
InputNotFound = 11,
OutputNotFound = 12,
WitnessNotFound = 13,
TransactionMaturity = 14,
InvalidMetadataIdentifier = 15,
MalformedCallStructure = 16,
ReservedRegisterNotWritable = 17,
ErrorFlag = 18,
InvalidImmediateValue = 19,
ExpectedCoinInput = 20,
MaxMemoryAccess = 21,
MemoryWriteOverlap = 22,
ContractNotInInputs = 23,
InternalBalanceOverflow = 24,
ContractMaxSize = 25,
ExpectedUnallocatedStack = 26,
MaxStaticContractsReached = 27,
TransferAmountCannotBeZero = 28,
ExpectedOutputVariable = 29,
ExpectedParentInternalContext = 30,
IllegalJump = 31,
ContractIdAlreadyDeployed = 32,
ContractMismatch = 33,
MessageDataTooLong = 34,
ArithmeticError = 35,
ContractInstructionNotAllowed = 36,
}
Expand description
Panic reason representation for the interpreter.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
UnknownPanicReason = 0
The byte can’t be mapped to any known PanicReason
.
Revert = 1
Found RVRT
instruction.
OutOfGas = 2
Execution ran out of gas.
TransactionValidity = 3
The transaction validity is violated.
MemoryOverflow = 4
Attempt to write outside interpreter memory boundaries.
ArithmeticOverflow = 5
Overflow while executing arithmetic operation. These errors are ignored using the WRAPPING flag.
ContractNotFound = 6
Designed contract was not found in the storage.
MemoryOwnership = 7
Memory ownership rules are violated.
NotEnoughBalance = 8
The asset ID balance isn’t enough for the instruction.
ExpectedInternalContext = 9
The interpreter is expected to be in internal context.
AssetIdNotFound = 10
The queried asset ID was not found in the state.
InputNotFound = 11
The provided input is not found in the transaction.
OutputNotFound = 12
The provided output is not found in the transaction.
WitnessNotFound = 13
The provided witness is not found in the transaction.
TransactionMaturity = 14
The transaction maturity is not valid for this request.
InvalidMetadataIdentifier = 15
The metadata identifier is invalid.
MalformedCallStructure = 16
The call structure is not valid.
ReservedRegisterNotWritable = 17
The provided register does not allow write operations.
ErrorFlag = 18
The execution resulted in an erroneous state of the interpreter.
InvalidImmediateValue = 19
The provided immediate value is not valid for this instruction.
ExpectedCoinInput = 20
The provided transaction input is not of type Coin
.
MaxMemoryAccess = 21
The requested memory access exceeds the limits of the interpreter.
MemoryWriteOverlap = 22
Two segments of the interpreter memory should not intersect for write operations.
ContractNotInInputs = 23
The requested contract is not listed in the transaction inputs.
InternalBalanceOverflow = 24
The internal asset ID balance overflowed with the provided instruction.
ContractMaxSize = 25
The maximum allowed contract size is violated.
ExpectedUnallocatedStack = 26
This instruction expects the stack area to be unallocated for this call.
MaxStaticContractsReached = 27
The maximum allowed number of static contracts was reached for this transaction.
TransferAmountCannotBeZero = 28
The requested transfer amount cannot be zero.
ExpectedOutputVariable = 29
The provided transaction output should be of type Variable
.
ExpectedParentInternalContext = 30
The expected context of the stack parent is internal.
IllegalJump = 31
The jump instruction cannot move backwards in predicate verification.
ContractIdAlreadyDeployed = 32
The contract ID is already deployed and can’t be overwritten.
ContractMismatch = 33
The loaded contract mismatch expectations.
MessageDataTooLong = 34
Attempting to send message data longer than MAX_MESSAGE_DATA_LENGTH
ArithmeticError = 35
Mathimatically invalid arguments where given to an arithmetic instruction. For instance, division by zero produces this. These errors are ignored using the UNSAFEMATH flag.
ContractInstructionNotAllowed = 36
The contract instruction is not allowed in predicates.
Trait Implementations§
§impl Clone for PanicReason
impl Clone for PanicReason
§fn clone(&self) -> PanicReason
fn clone(&self) -> PanicReason
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for PanicReason
impl Debug for PanicReason
§impl<'de> Deserialize<'de> for PanicReason
impl<'de> Deserialize<'de> for PanicReason
§fn deserialize<__D>(
__deserializer: __D
) -> Result<PanicReason, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<PanicReason, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl Display for PanicReason
impl Display for PanicReason
§impl Error for PanicReason
impl Error for PanicReason
§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
§impl From<Infallible> for PanicReason
impl From<Infallible> for PanicReason
§fn from(_e: Infallible) -> PanicReason
fn from(_e: Infallible) -> PanicReason
§impl From<TryFromSliceError> for PanicReason
impl From<TryFromSliceError> for PanicReason
§fn from(_: TryFromSliceError) -> PanicReason
fn from(_: TryFromSliceError) -> PanicReason
§impl From<u8> for PanicReason
impl From<u8> for PanicReason
§fn from(v: u8) -> PanicReason
fn from(v: u8) -> PanicReason
§impl Hash for PanicReason
impl Hash for PanicReason
§impl PartialEq for PanicReason
impl PartialEq for PanicReason
§fn eq(&self, other: &PanicReason) -> bool
fn eq(&self, other: &PanicReason) -> bool
self
and other
values to be equal, and is used
by ==
.§impl Serialize for PanicReason
impl Serialize for PanicReason
§fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Copy for PanicReason
impl Eq for PanicReason
impl StructuralEq for PanicReason
impl StructuralPartialEq for PanicReason
Auto Trait Implementations§
impl RefUnwindSafe for PanicReason
impl Send for PanicReason
impl Sync for PanicReason
impl Unpin for PanicReason
impl UnwindSafe for PanicReason
Blanket Implementations§
§impl<T> AnyDebug for T
impl<T> AnyDebug for T
§fn as_any_ref(&self) -> &(dyn Any + 'static)
fn as_any_ref(&self) -> &(dyn Any + 'static)
Any
.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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§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.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§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,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> StorageAsMut for T
impl<T> StorageAsMut for T
fn storage<Type>(&mut self) -> StorageMut<'_, Self, Type>where
Type: Mappable,
fn storage_as_mut<Type>(&mut self) -> StorageMut<'_, Self, Type>where
Type: Mappable,
§impl<T> StorageAsRef for T
impl<T> StorageAsRef for T
fn storage<Type>(&self) -> StorageRef<'_, Self, Type>where
Type: Mappable,
fn storage_as_ref<Type>(&self) -> StorageRef<'_, Self, Type>where
Type: Mappable,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.