//! id dedicated to the staking pallet, and delegators can call an extrinsic to transfer their rewards
//! to their own account (but as reserved). Keeping funds reserved in user accounts allow them to
/// Value of the counter at the last time the delegator claimed its rewards or changed its amount of shares
/// The difference between the checkpoint and the counter is the amount of claimable reward per share for
/// When leaving delegating funds are placed in the leaving pool until the leaving period is elapsed.
RuntimeDebug, PartialEq, Eq, Encode, Decode, Copy, Clone, TypeInfo, Serialize, Deserialize,
RuntimeDebug, PartialEq, Eq, Encode, Decode, Copy, Clone, TypeInfo, Serialize, Deserialize,
/// could fall out of this list if they have less stake than the top `EligibleCandidatesBufferSize`
/// eligible candidates. One of this top candidates leaving will then not bring the dropped candidate
/// Execute pending operations can incur in claim manual rewards per operation, we simply add the worst case
#[pallet::weight(T::WeightInfo::execute_pending_operations(operations.len() as u32).saturating_add(T::WeightInfo::claim_manual_rewards(operations.len() as u32)))]
/// Request undelegate can incur in either claim manual rewards or hold rebalances, we simply add the worst case
#[pallet::weight(T::WeightInfo::request_undelegate().saturating_add(T::WeightInfo::claim_manual_rewards(1).max(T::WeightInfo::rebalance_hold())))]