pub enum Error<T, I = ()> {
Show 29 variants
XpNotFound,
XpNotDead,
InvalidXpOwner,
AlreadyXpOwner,
CannotReapLockedXp,
XpLockExists,
CannotGenerateXpKey,
CannotTransferXp,
LowPulseThreshold,
InsufficientLiquidXp,
TooManyLocks,
TooManyReserves,
XpLockNotFound,
XpReserveNotFound,
InvalidMinTimeStamp,
LowTimeStamp,
XpNotReaped,
ReputationDeriveOverflowed,
XpCapOverflowed,
XpCapUnderflowed,
XpComputationError,
CannotLockZero,
CannotReserveZero,
XpAlreadyReaped,
InsufficientReserveXp,
XpReserveCapOverflowed,
XpReserveCapUnderflowed,
XpLockCapOverflowed,
XpLockCapUnderflowed,
// some variants omitted
}Expand description
XP Pallet Errors
Variants§
XpNotFound
The specified XP key does not exist in the system.
XpNotDead
The XP entry is not considered “dead” and cannot be reaped.
InvalidXpOwner
The caller is not the owner of the XP key.
AlreadyXpOwner
The caller is already the owner of the XP key.
CannotReapLockedXp
Cannot reap an XP entry that still has active locks.
XpLockExists
A lock with the specified ID/Reason already exists for this XP key.
CannotGenerateXpKey
Failed to deterministically generate an XP key from the provided Preimage.
CannotTransferXp
Fungible Transfers are strictly forbidden in the XP system.
LowPulseThreshold
The provided threshold value is less than the per_count value, which is invalid.
InsufficientLiquidXp
Not enough liquid XP to lock the specified amount.
TooManyLocks
Maximum number of locks reached for this XP key.
TooManyReserves
Maximum number of reserves reached for this XP key.
XpLockNotFound
Lock with the specified ID/Reason was not found for this XP key.
XpReserveNotFound
Reserve with the specified Reason was not found for this XP key.
InvalidMinTimeStamp
The minimum timestamp must be less than the current block number.
LowTimeStamp
The XP entry’s timestamp is below the minimum required threshold.
XpNotReaped
The XP entry has not been reaped (finalized and removed).
ReputationDeriveOverflowed
Pulse-based reputation derivation overflowed.
Occurs when multiplying XP points by the pulse value overflows the scalar.
XpCapOverflowed
The maximum capacity of XP was exceeded due to an arithmetic operation.
XpCapUnderflowed
An arithmetic underflow occurred while subtracting XP points.
XpComputationError
An unexpected error occurred during XP computation. This is a general error for cases where XP calculations fail due to unforeseen issues in the logic or data.
CannotLockZero
Attempted to lock zero XP points (not allowed).
CannotReserveZero
Attempted to reserve zero XP points (not allowed).
XpAlreadyReaped
The XP entry has already been reaped (finalized) and cannot be reused.
InsufficientReserveXp
Not enough reserve XP is available to complete the operation.
XpReserveCapOverflowed
The maximum capacity of XP reserve was exceeded due to an arithmetic operation.
XpReserveCapUnderflowed
An arithmetic underflow occurred while subtracting reserved XP points.
XpLockCapOverflowed
The maximum capacity of XP lock was exceeded due to an arithmetic operation.
XpLockCapUnderflowed
An arithmetic underflow occurred while subtracting locked XP points.
Trait Implementations§
Source§impl<T, I> Decode for Error<T, I>
impl<T, I> Decode for Error<T, I>
Source§fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy,
) -> Result<Self, Error>
fn decode<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy, ) -> Result<Self, Error>
§fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>,
) -> Result<DecodeFinished, Error>where
I: Input,
fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>,
) -> Result<DecodeFinished, Error>where
I: Input,
§fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
§fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
Source§impl<T, I> Encode for Error<T, I>
impl<T, I> Encode for Error<T, I>
Source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
Source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy,
)
fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy, )
§fn using_encoded<R, F>(&self, f: F) -> R
fn using_encoded<R, F>(&self, f: F) -> R
§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Source§impl<T, I> PalletError for Error<T, I>
impl<T, I> PalletError for Error<T, I>
Source§const MAX_ENCODED_SIZE: usize = 1usize
const MAX_ENCODED_SIZE: usize = 1usize
Source§impl<T, I> TypeInfo for Error<T, I>where
PhantomData<(T, I)>: TypeInfo + 'static,
T: 'static,
I: 'static,
impl<T, I> TypeInfo for Error<T, I>where
PhantomData<(T, I)>: TypeInfo + 'static,
T: 'static,
I: 'static,
impl<T, I> DecodeWithMemTracking for Error<T, I>
impl<T, I> EncodeLike for Error<T, I>
Auto Trait Implementations§
impl<T, I> Freeze for Error<T, I>
impl<T, I> RefUnwindSafe for Error<T, I>where
T: RefUnwindSafe,
I: RefUnwindSafe,
impl<T, I> Send for Error<T, I>
impl<T, I> Sync for Error<T, I>
impl<T, I> Unpin for Error<T, I>
impl<T, I> UnwindSafe for Error<T, I>where
T: UnwindSafe,
I: UnwindSafe,
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> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
§impl<T> DecodeAll for Twhere
T: Decode,
impl<T> DecodeAll for Twhere
T: Decode,
§fn decode_all(input: &mut &[u8]) -> Result<T, Error>
fn decode_all(input: &mut &[u8]) -> Result<T, Error>
Self and consume all of the given input data. Read more§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere
T: Decode,
§impl<T> DecodeWithMemLimit for Twhere
T: DecodeWithMemTracking,
impl<T> DecodeWithMemLimit for Twhere
T: DecodeWithMemTracking,
§impl<T> Hashable for Twhere
T: Codec,
impl<T> Hashable for Twhere
T: Codec,
§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>
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 moreSource§impl<T, U, Tag> IntoTag<U, Tag> for Twhere
U: FromTag<T, Tag>,
Tag: DiscriminantTag,
impl<T, U, Tag> IntoTag<U, Tag> for Twhere
U: FromTag<T, Tag>,
Tag: DiscriminantTag,
§impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
fn into_tuple(self) -> Dest
§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
§impl<T> KeyedVec for Twhere
T: Codec,
impl<T> KeyedVec for Twhere
T: Codec,
Source§impl<T, Time> Logging<Time> for Twhere
Time: Time,
impl<T, Time> Logging<Time> for Twhere
Time: Time,
Source§const FALLBACK_TARGET: &'static str = "routine"
const FALLBACK_TARGET: &'static str = "routine"
Default logging target if none is provided.
Most routines, especially offchain workers or background tasks, use this target for simplicity.
It allows a consistent place to look for routine logs without requiring every call to specify a target.
Note: This target is only a conveninence and may be somewhat vague. To ensure errors can still be traced accurately, the logged messages should include additional metadata (e.g., module name, error index, or contextual info) so that the source of the error can be identified even if the target is generic.
Source§type Logger = DispatchError
type Logger = DispatchError
The type taken and returned for logging.
We simply return the same [DispatchError] that was logged,
so logging does not change control flow or error propagation.
DispatchError is used because in Substrate it encompasses all
runtime errors - including module errors, token errors, arithmetic
issues, and transactional boundaries - making it the universal
substrate-side error representation.
Source§type Level = LogLevel
type Level = LogLevel
The log level type.
We use the LogLevel enum to standardize severity levels
(Info, Warn, Error, Debug) across all routine logs.
Source§fn log(
level: <T as Logging<Time>>::Level,
err: &<T as Logging<Time>>::Logger,
timestamp: Time,
target: Option<&str>,
fmt: Option<fn(Time, &<T as Logging<Time>>::Level, &str, &str) -> String>,
) -> <T as Logging<Time>>::Logger
fn log( level: <T as Logging<Time>>::Level, err: &<T as Logging<Time>>::Logger, timestamp: Time, target: Option<&str>, fmt: Option<fn(Time, &<T as Logging<Time>>::Level, &str, &str) -> String>, ) -> <T as Logging<Time>>::Logger
Source§fn info(
err: &Self::Logger,
timestamp: Timestamp,
target: Option<&str>,
fmt: Option<fn(Timestamp, &Self::Level, &str, &str) -> String>,
) -> Self::Loggerwhere
Self: Sized,
fn info(
err: &Self::Logger,
timestamp: Timestamp,
target: Option<&str>,
fmt: Option<fn(Timestamp, &Self::Level, &str, &str) -> String>,
) -> Self::Loggerwhere
Self: Sized,
Source§fn warn(
err: &Self::Logger,
timestamp: Timestamp,
target: Option<&str>,
fmt: Option<fn(Timestamp, &Self::Level, &str, &str) -> String>,
) -> Self::Loggerwhere
Self: Sized,
fn warn(
err: &Self::Logger,
timestamp: Timestamp,
target: Option<&str>,
fmt: Option<fn(Timestamp, &Self::Level, &str, &str) -> String>,
) -> Self::Loggerwhere
Self: Sized,
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T. Read more§impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
type Error = <U as TryFromKey<T>>::Error
fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from.§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T.