pub struct DetectedSlash {
pub slash_id: U256,
pub offense_type: u8,
pub amount: U256,
pub evidence_hash: B256,
pub block_number: Option<u64>,
pub appeal_window_close: Option<u64>,
}Expand description
One slash detected against this node’s operator.
Fields§
§slash_id: U256Globally-monotonic on-chain slashId (CapacityBond.slash).
offense_type: u8Offense taxonomy index (ADR 014): 0=RateManipulation, 1=Blacklist.
amount: U256Bond amount slashed, in TOKEN base units.
evidence_hash: B256keccak256 evidence digest, from the CapacityBond slash record.
block_number: Option<u64>Block the SlashRecorded log was mined in — Some for a slash seen live
on the tail, None for one recovered by the boot/resync enumeration
(which reads records, not logs).
appeal_window_close: Option<u64>Effective appeal-window close the contract enforces: the record’s base
appealWindowClose plus the global pausedTotal snapshot, so protocol-pause
extensions are reflected. Always Some because the deadline comes off the
record, not a best-effort block read.
Trait Implementations§
Source§impl Clone for DetectedSlash
impl Clone for DetectedSlash
Auto Trait Implementations§
impl Freeze for DetectedSlash
impl RefUnwindSafe for DetectedSlash
impl Send for DetectedSlash
impl Sync for DetectedSlash
impl Unpin for DetectedSlash
impl UnsafeUnpin for DetectedSlash
impl UnwindSafe for DetectedSlash
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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> ⓘ
Converts
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> ⓘ
Converts
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestCreates a shared type from an unshared type.