github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/slashing/internal/keeper/hooks.go (about) 1 // nolint 2 package keeper 3 4 import ( 5 "time" 6 7 "github.com/fibonacci-chain/fbc/libs/tendermint/crypto" 8 9 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 10 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/slashing/internal/types" 11 ) 12 13 func (k Keeper) AfterValidatorBonded(ctx sdk.Context, address sdk.ConsAddress, _ sdk.ValAddress) { 14 // Update the signing info start height or create a new signing info 15 _, found := k.GetValidatorSigningInfo(ctx, address) 16 if !found { 17 signingInfo := types.NewValidatorSigningInfo( 18 address, 19 ctx.BlockHeight(), 20 0, 21 time.Unix(0, 0), 22 false, 23 0, 24 ) 25 k.SetValidatorSigningInfo(ctx, address, signingInfo) 26 } 27 } 28 29 // When a validator is created, add the address-pubkey relation. 30 func (k Keeper) AfterValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { 31 validator := k.sk.Validator(ctx, valAddr) 32 k.AddPubkey(ctx, validator.GetConsPubKey()) 33 } 34 35 // When a validator is removed, delete the address-pubkey relation. 36 func (k Keeper) AfterValidatorRemoved(ctx sdk.Context, address sdk.ConsAddress) { 37 k.deleteAddrPubkeyRelation(ctx, crypto.Address(address)) 38 } 39 40 //_________________________________________________________________________________________ 41 42 // Hooks wrapper struct for slashing keeper 43 type Hooks struct { 44 k Keeper 45 } 46 47 var _ types.StakingHooks = Hooks{} 48 49 // Return the wrapper struct 50 func (k Keeper) Hooks() Hooks { 51 return Hooks{k} 52 } 53 54 // Implements sdk.ValidatorHooks 55 func (h Hooks) AfterValidatorBonded(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { 56 h.k.AfterValidatorBonded(ctx, consAddr, valAddr) 57 } 58 59 // Implements sdk.ValidatorHooks 60 func (h Hooks) AfterValidatorRemoved(ctx sdk.Context, consAddr sdk.ConsAddress, _ sdk.ValAddress) { 61 h.k.AfterValidatorRemoved(ctx, consAddr) 62 } 63 64 // Implements sdk.ValidatorHooks 65 func (h Hooks) AfterValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { 66 h.k.AfterValidatorCreated(ctx, valAddr) 67 } 68 69 // nolint - unused hooks 70 func (h Hooks) AfterValidatorBeginUnbonding(_ sdk.Context, _ sdk.ConsAddress, _ sdk.ValAddress) {} 71 func (h Hooks) BeforeValidatorModified(_ sdk.Context, _ sdk.ValAddress) {} 72 func (h Hooks) BeforeDelegationCreated(_ sdk.Context, _ sdk.AccAddress, _ sdk.ValAddress) {} 73 func (h Hooks) BeforeDelegationSharesModified(_ sdk.Context, _ sdk.AccAddress, _ sdk.ValAddress) {} 74 func (h Hooks) BeforeDelegationRemoved(_ sdk.Context, _ sdk.AccAddress, _ sdk.ValAddress) {} 75 func (h Hooks) AfterDelegationModified(_ sdk.Context, _ sdk.AccAddress, _ sdk.ValAddress) {} 76 func (h Hooks) BeforeValidatorSlashed(_ sdk.Context, _ sdk.ValAddress, _ sdk.Dec) {}