mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-09 20:11:09 +00:00
staking: Proportional ledger slashing (#10982)
* staking: Proportional ledger slashing * Some comment cleanup * Update frame/staking/src/pallet/mod.rs Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> * Fix benchmarks * FMT * Try fill in all staking configs * round of feedback and imp from kian * demonstrate per_thing usage * Update some tests * FMT * Test that era offset works correctly * Update mocks * Remove unnescary docs * Remove unlock_era * Update frame/staking/src/lib.rs * Adjust tests to account for only remove when < ED * Remove stale TODOs * Remove dupe test Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> Co-authored-by: kianenigma <kian@parity.io>
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
|
||||
//! A crate which contains primitives that are useful for implementation that uses staking
|
||||
//! approaches in general. Definitions related to sessions, slashing, etc go here.
|
||||
use sp_std::collections::btree_map::BTreeMap;
|
||||
|
||||
pub mod offence;
|
||||
|
||||
@@ -27,3 +28,27 @@ pub type SessionIndex = u32;
|
||||
|
||||
/// Counter for the number of eras that have passed.
|
||||
pub type EraIndex = u32;
|
||||
|
||||
/// Trait describing something that implements a hook for any operations to perform when a staker is
|
||||
/// slashed.
|
||||
pub trait OnStakerSlash<AccountId, Balance> {
|
||||
/// A hook for any operations to perform when a staker is slashed.
|
||||
///
|
||||
/// # Arguments
|
||||
///
|
||||
/// * `stash` - The stash of the staker whom the slash was applied to.
|
||||
/// * `slashed_active` - The new bonded balance of the staker after the slash was applied.
|
||||
/// * `slashed_unlocking` - a map of slashed eras, and the balance of that unlocking chunk after
|
||||
/// the slash is applied. Any era not present in the map is not affected at all.
|
||||
fn on_slash(
|
||||
stash: &AccountId,
|
||||
slashed_active: Balance,
|
||||
slashed_unlocking: &BTreeMap<EraIndex, Balance>,
|
||||
);
|
||||
}
|
||||
|
||||
impl<AccountId, Balance> OnStakerSlash<AccountId, Balance> for () {
|
||||
fn on_slash(_: &AccountId, _: Balance, _: &BTreeMap<EraIndex, Balance>) {
|
||||
// Nothing to do here
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user