pub struct OffenceRecord<AccountId> {
pub reporter: Option<AccountId>,
pub reported_era: EraIndex,
pub exposure_page: u32,
pub slash_fraction: Perbill,
pub prior_slash_fraction: Perbill,
}Expand description
Represents an offence record within the staking system, capturing details about a slashing event.
Fields§
§reporter: Option<AccountId>The account ID of the entity that reported the offence.
reported_era: EraIndexEra at which the offence was reported.
exposure_page: u32The specific page of the validator’s exposure currently being processed.
Since a validator’s total exposure can span multiple pages, this field serves as a pointer to the current page being evaluated. The processing order starts from the last page and moves backward, decrementing this value with each processed page.
This ensures that all pages are systematically handled, and it helps track when the entire exposure has been processed.
slash_fraction: PerbillThe fraction of the validator’s stake to be slashed for this offence.
prior_slash_fraction: PerbillThe previous slash fraction of the validator’s stake before being updated. If a new, higher slash fraction is reported, this field stores the prior fraction that was overwritten. This helps in tracking changes in slashes across multiple reports for the same era.
Trait Implementations§
Source§impl<AccountId: Clone> Clone for OffenceRecord<AccountId>
impl<AccountId: Clone> Clone for OffenceRecord<AccountId>
Source§fn clone(&self) -> OffenceRecord<AccountId>
fn clone(&self) -> OffenceRecord<AccountId>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<AccountId> Debug for OffenceRecord<AccountId>where
AccountId: Debug,
impl<AccountId> Debug for OffenceRecord<AccountId>where
AccountId: Debug,
Source§impl<AccountId> Decode for OffenceRecord<AccountId>
impl<AccountId> Decode for OffenceRecord<AccountId>
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>
Source§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,
Source§impl<AccountId> Encode for OffenceRecord<AccountId>
impl<AccountId> Encode for OffenceRecord<AccountId>
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, )
Source§fn using_encoded<R, F>(&self, f: F) -> R
fn using_encoded<R, F>(&self, f: F) -> R
Source§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Source§impl<AccountId> MaxEncodedLen for OffenceRecord<AccountId>where
Option<AccountId>: MaxEncodedLen,
impl<AccountId> MaxEncodedLen for OffenceRecord<AccountId>where
Option<AccountId>: MaxEncodedLen,
Source§fn max_encoded_len() -> usize
fn max_encoded_len() -> usize
Source§impl<AccountId: PartialEq> PartialEq for OffenceRecord<AccountId>
impl<AccountId: PartialEq> PartialEq for OffenceRecord<AccountId>
Source§impl<AccountId> TypeInfo for OffenceRecord<AccountId>
impl<AccountId> TypeInfo for OffenceRecord<AccountId>
impl<AccountId> EncodeLike for OffenceRecord<AccountId>
impl<AccountId> StructuralPartialEq for OffenceRecord<AccountId>
Auto Trait Implementations§
impl<AccountId> Freeze for OffenceRecord<AccountId>where
AccountId: Freeze,
impl<AccountId> RefUnwindSafe for OffenceRecord<AccountId>where
AccountId: RefUnwindSafe,
impl<AccountId> Send for OffenceRecord<AccountId>where
AccountId: Send,
impl<AccountId> Sync for OffenceRecord<AccountId>where
AccountId: Sync,
impl<AccountId> Unpin for OffenceRecord<AccountId>where
AccountId: Unpin,
impl<AccountId> UnwindSafe for OffenceRecord<AccountId>where
AccountId: 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
Source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere
T: Decode,
Source§impl<T, U> DefensiveTruncateInto<U> for Twhere
U: DefensiveTruncateFrom<T>,
impl<T, U> DefensiveTruncateInto<U> for Twhere
U: DefensiveTruncateFrom<T>,
Source§fn defensive_truncate_into(self) -> U
fn defensive_truncate_into(self) -> U
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 moreSource§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
Source§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
Source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
Source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
Source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T. Read moreSource§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>
Source§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
Source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from.Source§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
Source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T.