123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- use frame_support::StorageMap;
- use sp_std::marker::PhantomData;
- use crate::{ContentDirectoryWorkingGroupInstance, StorageWorkingGroupInstance};
- use stake::{BalanceOf, NegativeImbalance};
- pub struct ContentDirectoryWGStakingEventsHandler<T> {
- pub marker: PhantomData<T>,
- }
- impl<T: stake::Trait + working_group::Trait<ContentDirectoryWorkingGroupInstance>>
- stake::StakingEventsHandler<T> for ContentDirectoryWGStakingEventsHandler<T>
- {
- /// Unstake remaining sum back to the source_account_id
- fn unstaked(
- stake_id: &<T as stake::Trait>::StakeId,
- _unstaked_amount: BalanceOf<T>,
- remaining_imbalance: NegativeImbalance<T>,
- ) -> NegativeImbalance<T> {
- // Stake not related to a staked role managed by the hiring module.
- if !hiring::ApplicationIdByStakingId::<T>::contains_key(*stake_id) {
- return remaining_imbalance;
- }
- let hiring_application_id = hiring::ApplicationIdByStakingId::<T>::get(*stake_id);
- if working_group::MemberIdByHiringApplicationId::<T, ContentDirectoryWorkingGroupInstance>::contains_key(
- hiring_application_id,
- ) {
- return <working_group::Module<T, ContentDirectoryWorkingGroupInstance>>::refund_working_group_stake(
- *stake_id,
- remaining_imbalance,
- );
- }
- remaining_imbalance
- }
- /// Empty handler for the slashing.
- fn slashed(
- _: &<T as stake::Trait>::StakeId,
- _: Option<<T as stake::Trait>::SlashId>,
- _: BalanceOf<T>,
- _: BalanceOf<T>,
- remaining_imbalance: NegativeImbalance<T>,
- ) -> NegativeImbalance<T> {
- remaining_imbalance
- }
- }
- pub struct StorageWgStakingEventsHandler<T> {
- pub marker: PhantomData<T>,
- }
- impl<T: stake::Trait + working_group::Trait<StorageWorkingGroupInstance>>
- stake::StakingEventsHandler<T> for StorageWgStakingEventsHandler<T>
- {
- /// Unstake remaining sum back to the source_account_id
- fn unstaked(
- stake_id: &<T as stake::Trait>::StakeId,
- _unstaked_amount: BalanceOf<T>,
- remaining_imbalance: NegativeImbalance<T>,
- ) -> NegativeImbalance<T> {
- // Stake not related to a staked role managed by the hiring module.
- if !hiring::ApplicationIdByStakingId::<T>::contains_key(*stake_id) {
- return remaining_imbalance;
- }
- let hiring_application_id = hiring::ApplicationIdByStakingId::<T>::get(*stake_id);
- if working_group::MemberIdByHiringApplicationId::<T, StorageWorkingGroupInstance>::contains_key(
- hiring_application_id,
- ) {
- return <working_group::Module<T, StorageWorkingGroupInstance>>::refund_working_group_stake(
- *stake_id,
- remaining_imbalance,
- );
- }
- remaining_imbalance
- }
- /// Empty handler for the slashing.
- fn slashed(
- _: &<T as stake::Trait>::StakeId,
- _: Option<<T as stake::Trait>::SlashId>,
- _: BalanceOf<T>,
- _: BalanceOf<T>,
- remaining_imbalance: NegativeImbalance<T>,
- ) -> NegativeImbalance<T> {
- remaining_imbalance
- }
- }
|