github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/staking/types/hooks.go (about) 1 package types 2 3 import ( 4 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 5 ) 6 7 // MultiStakingHooks combines multiple staking hooks, all hook functions are run in array sequence 8 // TODO:need to trim the staking hooks as the fbchaindesign 9 type MultiStakingHooks []StakingHooks 10 11 // NewMultiStakingHooks creates a new object of MultiStakingHooks 12 func NewMultiStakingHooks(hooks ...StakingHooks) MultiStakingHooks { 13 return hooks 14 } 15 16 // AfterValidatorCreated handles the hooks after the validator created 17 func (h MultiStakingHooks) AfterValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { 18 for i := range h { 19 h[i].AfterValidatorCreated(ctx, valAddr) 20 } 21 } 22 23 // BeforeValidatorModified handles the hooks before the validator modified 24 func (h MultiStakingHooks) BeforeValidatorModified(ctx sdk.Context, valAddr sdk.ValAddress) { 25 for i := range h { 26 h[i].BeforeValidatorModified(ctx, valAddr) 27 } 28 } 29 30 // AfterValidatorRemoved handles the hooks after the validator was removed 31 func (h MultiStakingHooks) AfterValidatorRemoved(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { 32 for i := range h { 33 h[i].AfterValidatorRemoved(ctx, consAddr, valAddr) 34 } 35 } 36 37 // AfterValidatorBonded handles the hooks after the validator was bonded 38 func (h MultiStakingHooks) AfterValidatorBonded(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { 39 for i := range h { 40 h[i].AfterValidatorBonded(ctx, consAddr, valAddr) 41 } 42 } 43 44 // AfterValidatorBeginUnbonding handles the hooks after the validator began the unbonding 45 func (h MultiStakingHooks) AfterValidatorBeginUnbonding(ctx sdk.Context, consAddr sdk.ConsAddress, 46 valAddr sdk.ValAddress) { 47 for i := range h { 48 h[i].AfterValidatorBeginUnbonding(ctx, consAddr, valAddr) 49 } 50 } 51 52 // AfterValidatorDestroyed handles the hooks after the validator was destroyed by tx 53 func (h MultiStakingHooks) AfterValidatorDestroyed(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { 54 for i := range h { 55 h[i].AfterValidatorDestroyed(ctx, consAddr, valAddr) 56 } 57 }