pub trait OnOffenceHandler<Reporter, Offender, Res> {
    // Required method
    fn on_offence(
        offenders: &[OffenceDetails<Reporter, Offender>],
        slash_fraction: &[Perbill],
        session: SessionIndex,
        disable_strategy: DisableStrategy
    ) -> Res;
}
Expand description

A trait to take action on an offence.

Used to decouple the module that handles offences and the one that should punish for those offences.

Required Methods§

source

fn on_offence( offenders: &[OffenceDetails<Reporter, Offender>], slash_fraction: &[Perbill], session: SessionIndex, disable_strategy: DisableStrategy ) -> Res

A handler for an offence of a particular kind.

Note that this contains a list of all previous offenders as well. The implementer should cater for a case, where the same authorities were reported for the same offence in the past (see OffenceCount).

The vector of slash_fraction contains Perbills the authorities should be slashed and is computed according to the OffenceCount already. This is of the same length as offenders. Zero is a valid value for a fraction.

The session parameter is the session index of the offence.

The disable_strategy parameter decides if the offenders need to be disabled immediately.

The receiver might decide to not accept this offence. In this case, the call site is responsible for queuing the report and re-submitting again.

Implementations on Foreign Types§

source§

impl<Reporter, Offender, Res: Default> OnOffenceHandler<Reporter, Offender, Res> for ()

source§

fn on_offence( _offenders: &[OffenceDetails<Reporter, Offender>], _slash_fraction: &[Perbill], _session: SessionIndex, _disable_strategy: DisableStrategy ) -> Res

Implementors§