diff --git a/cmd/gaia/app/app.go b/cmd/gaia/app/app.go index dd5371e8d6..d14a855445 100644 --- a/cmd/gaia/app/app.go +++ b/cmd/gaia/app/app.go @@ -154,7 +154,7 @@ func NewGaiaApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest b app.QueryRouter(). AddRoute(gov.QuerierRoute, gov.NewQuerier(app.govKeeper)). - AddRoute(slashing.QuerierRoute, slashing.NewQuerier(app.slashingKeeper, app.cdc)). + AddRoute(slashing.QuerierRoute, slashing.NewQuerier(app.slashingKeeper, app.cdc)). AddRoute(stake.QuerierRoute, stake.NewQuerier(app.stakeKeeper, app.cdc)) // initialize BaseApp @@ -334,39 +334,39 @@ func NewStakingHooks(dh distr.Hooks, sh slashing.Hooks) StakingHooks { } // nolint -func (h StakingHooks) OnValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { - h.dh.OnValidatorCreated(ctx, valAddr) - h.sh.OnValidatorCreated(ctx, valAddr) +func (h StakingHooks) AfterValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { + h.dh.AfterValidatorCreated(ctx, valAddr) + h.sh.AfterValidatorCreated(ctx, valAddr) } -func (h StakingHooks) OnValidatorModified(ctx sdk.Context, valAddr sdk.ValAddress) { - h.dh.OnValidatorModified(ctx, valAddr) - h.sh.OnValidatorModified(ctx, valAddr) +func (h StakingHooks) BeforeValidatorModified(ctx sdk.Context, valAddr sdk.ValAddress) { + h.dh.BeforeValidatorModified(ctx, valAddr) + h.sh.BeforeValidatorModified(ctx, valAddr) } -func (h StakingHooks) OnValidatorRemoved(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { - h.dh.OnValidatorRemoved(ctx, consAddr, valAddr) - h.sh.OnValidatorRemoved(ctx, consAddr, valAddr) +func (h StakingHooks) AfterValidatorRemoved(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { + h.dh.AfterValidatorRemoved(ctx, consAddr, valAddr) + h.sh.AfterValidatorRemoved(ctx, consAddr, valAddr) } -func (h StakingHooks) OnValidatorBonded(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { - h.dh.OnValidatorBonded(ctx, consAddr, valAddr) - h.sh.OnValidatorBonded(ctx, consAddr, valAddr) +func (h StakingHooks) AfterValidatorBonded(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { + h.dh.AfterValidatorBonded(ctx, consAddr, valAddr) + h.sh.AfterValidatorBonded(ctx, consAddr, valAddr) } -func (h StakingHooks) OnValidatorPowerDidChange(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { - h.dh.OnValidatorPowerDidChange(ctx, consAddr, valAddr) - h.sh.OnValidatorPowerDidChange(ctx, consAddr, valAddr) +func (h StakingHooks) AfterValidatorPowerDidChange(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { + h.dh.AfterValidatorPowerDidChange(ctx, consAddr, valAddr) + h.sh.AfterValidatorPowerDidChange(ctx, consAddr, valAddr) } -func (h StakingHooks) OnValidatorBeginUnbonding(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { - h.dh.OnValidatorBeginUnbonding(ctx, consAddr, valAddr) - h.sh.OnValidatorBeginUnbonding(ctx, consAddr, valAddr) +func (h StakingHooks) AfterValidatorBeginUnbonding(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { + h.dh.AfterValidatorBeginUnbonding(ctx, consAddr, valAddr) + h.sh.AfterValidatorBeginUnbonding(ctx, consAddr, valAddr) } -func (h StakingHooks) OnDelegationCreated(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { - h.dh.OnDelegationCreated(ctx, delAddr, valAddr) - h.sh.OnDelegationCreated(ctx, delAddr, valAddr) +func (h StakingHooks) BeforeDelegationCreated(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { + h.dh.BeforeDelegationCreated(ctx, delAddr, valAddr) + h.sh.BeforeDelegationCreated(ctx, delAddr, valAddr) } -func (h StakingHooks) OnDelegationSharesModified(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { - h.dh.OnDelegationSharesModified(ctx, delAddr, valAddr) - h.sh.OnDelegationSharesModified(ctx, delAddr, valAddr) +func (h StakingHooks) BeforeDelegationSharesModified(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { + h.dh.BeforeDelegationSharesModified(ctx, delAddr, valAddr) + h.sh.BeforeDelegationSharesModified(ctx, delAddr, valAddr) } -func (h StakingHooks) OnDelegationRemoved(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { - h.dh.OnDelegationRemoved(ctx, delAddr, valAddr) - h.sh.OnDelegationRemoved(ctx, delAddr, valAddr) +func (h StakingHooks) BeforeDelegationRemoved(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { + h.dh.BeforeDelegationRemoved(ctx, delAddr, valAddr) + h.sh.BeforeDelegationRemoved(ctx, delAddr, valAddr) } diff --git a/types/stake.go b/types/stake.go index aeaa52d346..f2fc3266c1 100644 --- a/types/stake.go +++ b/types/stake.go @@ -115,15 +115,15 @@ type DelegationSet interface { // event hooks for staking validator object type StakingHooks interface { - OnValidatorCreated(ctx Context, valAddr ValAddress) // Must be called when a validator is created - OnValidatorModified(ctx Context, valAddr ValAddress) // Must be called when a validator's state changes - OnValidatorRemoved(ctx Context, consAddr ConsAddress, valAddr ValAddress) // Must be called when a validator is deleted + AfterValidatorCreated(ctx Context, valAddr ValAddress) // Must be called when a validator is created + BeforeValidatorModified(ctx Context, valAddr ValAddress) // Must be called when a validator's state changes + AfterValidatorRemoved(ctx Context, consAddr ConsAddress, valAddr ValAddress) // Must be called when a validator is deleted - OnValidatorBonded(ctx Context, consAddr ConsAddress, valAddr ValAddress) // Must be called when a validator is bonded - OnValidatorBeginUnbonding(ctx Context, consAddr ConsAddress, valAddr ValAddress) // Must be called when a validator begins unbonding - OnValidatorPowerDidChange(ctx Context, consAddr ConsAddress, valAddr ValAddress) // Called at EndBlock when a validator's power did change + AfterValidatorBonded(ctx Context, consAddr ConsAddress, valAddr ValAddress) // Must be called when a validator is bonded + AfterValidatorBeginUnbonding(ctx Context, consAddr ConsAddress, valAddr ValAddress) // Must be called when a validator begins unbonding + AfterValidatorPowerDidChange(ctx Context, consAddr ConsAddress, valAddr ValAddress) // Called at EndBlock when a validator's power did change - OnDelegationCreated(ctx Context, delAddr AccAddress, valAddr ValAddress) // Must be called when a delegation is created - OnDelegationSharesModified(ctx Context, delAddr AccAddress, valAddr ValAddress) // Must be called when a delegation's shares are modified - OnDelegationRemoved(ctx Context, delAddr AccAddress, valAddr ValAddress) // Must be called when a delegation is removed + BeforeDelegationCreated(ctx Context, delAddr AccAddress, valAddr ValAddress) // Must be called when a delegation is created + BeforeDelegationSharesModified(ctx Context, delAddr AccAddress, valAddr ValAddress) // Must be called when a delegation's shares are modified + BeforeDelegationRemoved(ctx Context, delAddr AccAddress, valAddr ValAddress) // Must be called when a delegation is removed } diff --git a/x/distribution/keeper/hooks.go b/x/distribution/keeper/hooks.go index 910f6eafa2..7729e6b543 100644 --- a/x/distribution/keeper/hooks.go +++ b/x/distribution/keeper/hooks.go @@ -8,7 +8,7 @@ import ( ) // Create a new validator distribution record -func (k Keeper) onValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { +func (k Keeper) AfterValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { // defensive check for existence if k.HasValidatorDistInfo(ctx, valAddr) { @@ -27,7 +27,7 @@ func (k Keeper) onValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { } // Withdraw all validator rewards -func (k Keeper) onValidatorModified(ctx sdk.Context, valAddr sdk.ValAddress) { +func (k Keeper) BeforeValidatorModified(ctx sdk.Context, valAddr sdk.ValAddress) { // Move the validator's rewards from the global pool to the validator's pools // (dist info), but without actually withdrawing the rewards. This does not // need to happen during the genesis block. @@ -39,16 +39,16 @@ func (k Keeper) onValidatorModified(ctx sdk.Context, valAddr sdk.ValAddress) { } // Withdraw all validator rewards -func (k Keeper) onValidatorBonded(ctx sdk.Context, valAddr sdk.ValAddress) { +func (k Keeper) AfterValidatorBonded(ctx sdk.Context, valAddr sdk.ValAddress) { lastPower := k.stakeKeeper.GetLastValidatorPower(ctx, valAddr) if !lastPower.Equal(sdk.ZeroInt()) { panic("expected last power to be 0 for validator entering bonded state") } - k.onValidatorModified(ctx, valAddr) + k.BeforeValidatorModified(ctx, valAddr) } // Sanity check, very useful! -func (k Keeper) onValidatorPowerDidChange(ctx sdk.Context, valAddr sdk.ValAddress) { +func (k Keeper) AfterValidatorPowerDidChange(ctx sdk.Context, valAddr sdk.ValAddress) { vi := k.GetValidatorDistInfo(ctx, valAddr) if vi.FeePoolWithdrawalHeight != ctx.BlockHeight() { panic(fmt.Sprintf("expected validator (%v) dist info FeePoolWithdrawalHeight to be updated to %v, but was %v.", @@ -57,14 +57,14 @@ func (k Keeper) onValidatorPowerDidChange(ctx sdk.Context, valAddr sdk.ValAddres } // Withdrawal all validator distribution rewards and cleanup the distribution record -func (k Keeper) onValidatorRemoved(ctx sdk.Context, valAddr sdk.ValAddress) { +func (k Keeper) AfterValidatorRemoved(ctx sdk.Context, valAddr sdk.ValAddress) { k.RemoveValidatorDistInfo(ctx, valAddr) } //_________________________________________________________________________________________ // Create a new delegator distribution record -func (k Keeper) onDelegationCreated(ctx sdk.Context, delAddr sdk.AccAddress, +func (k Keeper) BeforeDelegationCreated(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { ddi := types.DelegationDistInfo{ @@ -76,7 +76,7 @@ func (k Keeper) onDelegationCreated(ctx sdk.Context, delAddr sdk.AccAddress, } // Withdrawal all validator rewards -func (k Keeper) onDelegationSharesModified(ctx sdk.Context, delAddr sdk.AccAddress, +func (k Keeper) BeforeDelegationSharesModified(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { if err := k.WithdrawDelegationReward(ctx, delAddr, valAddr); err != nil { @@ -85,7 +85,7 @@ func (k Keeper) onDelegationSharesModified(ctx sdk.Context, delAddr sdk.AccAddre } // Withdrawal all validator distribution rewards and cleanup the distribution record -func (k Keeper) onDelegationRemoved(ctx sdk.Context, delAddr sdk.AccAddress, +func (k Keeper) BeforeDelegationRemoved(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { // Withdraw validator commission when validator self-bond is removed. // Because we maintain the invariant that all delegations must be removed @@ -115,32 +115,32 @@ var _ sdk.StakingHooks = Hooks{} func (k Keeper) Hooks() Hooks { return Hooks{k} } // nolint -func (h Hooks) OnValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { - h.k.onValidatorCreated(ctx, valAddr) +func (h Hooks) AfterValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { + h.k.AfterValidatorCreated(ctx, valAddr) } -func (h Hooks) OnValidatorModified(ctx sdk.Context, valAddr sdk.ValAddress) { - h.k.onValidatorModified(ctx, valAddr) +func (h Hooks) BeforeValidatorModified(ctx sdk.Context, valAddr sdk.ValAddress) { + h.k.BeforeValidatorModified(ctx, valAddr) } -func (h Hooks) OnValidatorRemoved(ctx sdk.Context, _ sdk.ConsAddress, valAddr sdk.ValAddress) { - h.k.onValidatorRemoved(ctx, valAddr) +func (h Hooks) AfterValidatorRemoved(ctx sdk.Context, _ sdk.ConsAddress, valAddr sdk.ValAddress) { + h.k.AfterValidatorRemoved(ctx, valAddr) } -func (h Hooks) OnDelegationCreated(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { - h.k.onValidatorModified(ctx, valAddr) - h.k.onDelegationCreated(ctx, delAddr, valAddr) +func (h Hooks) BeforeDelegationCreated(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { + h.k.BeforeValidatorModified(ctx, valAddr) + h.k.BeforeDelegationCreated(ctx, delAddr, valAddr) } -func (h Hooks) OnDelegationSharesModified(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { - h.k.onValidatorModified(ctx, valAddr) - h.k.onDelegationSharesModified(ctx, delAddr, valAddr) +func (h Hooks) BeforeDelegationSharesModified(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { + h.k.BeforeValidatorModified(ctx, valAddr) + h.k.BeforeDelegationSharesModified(ctx, delAddr, valAddr) } -func (h Hooks) OnDelegationRemoved(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { - h.k.onDelegationRemoved(ctx, delAddr, valAddr) +func (h Hooks) BeforeDelegationRemoved(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { + h.k.BeforeDelegationRemoved(ctx, delAddr, valAddr) } -func (h Hooks) OnValidatorBeginUnbonding(ctx sdk.Context, _ sdk.ConsAddress, valAddr sdk.ValAddress) { - h.k.onValidatorModified(ctx, valAddr) +func (h Hooks) AfterValidatorBeginUnbonding(ctx sdk.Context, _ sdk.ConsAddress, valAddr sdk.ValAddress) { + h.k.BeforeValidatorModified(ctx, valAddr) } -func (h Hooks) OnValidatorBonded(ctx sdk.Context, _ sdk.ConsAddress, valAddr sdk.ValAddress) { - h.k.onValidatorBonded(ctx, valAddr) +func (h Hooks) AfterValidatorBonded(ctx sdk.Context, _ sdk.ConsAddress, valAddr sdk.ValAddress) { + h.k.AfterValidatorBonded(ctx, valAddr) } -func (h Hooks) OnValidatorPowerDidChange(ctx sdk.Context, _ sdk.ConsAddress, valAddr sdk.ValAddress) { - h.k.onValidatorPowerDidChange(ctx, valAddr) +func (h Hooks) AfterValidatorPowerDidChange(ctx sdk.Context, _ sdk.ConsAddress, valAddr sdk.ValAddress) { + h.k.AfterValidatorPowerDidChange(ctx, valAddr) } diff --git a/x/slashing/hooks.go b/x/slashing/hooks.go index 26770da49a..598de87ee3 100644 --- a/x/slashing/hooks.go +++ b/x/slashing/hooks.go @@ -1,3 +1,4 @@ +// nolint package slashing import ( @@ -8,7 +9,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" ) -func (k Keeper) onValidatorBonded(ctx sdk.Context, address sdk.ConsAddress, _ sdk.ValAddress) { +func (k Keeper) AfterValidatorBonded(ctx sdk.Context, address sdk.ConsAddress, _ sdk.ValAddress) { // Update the signing info start height or create a new signing info _, found := k.getValidatorSigningInfo(ctx, address) if !found { @@ -32,20 +33,20 @@ func (k Keeper) onValidatorBonded(ctx sdk.Context, address sdk.ConsAddress, _ sd } // Mark the slashing period as having ended when a validator begins unbonding -func (k Keeper) onValidatorBeginUnbonding(ctx sdk.Context, address sdk.ConsAddress, _ sdk.ValAddress) { +func (k Keeper) AfterValidatorBeginUnbonding(ctx sdk.Context, address sdk.ConsAddress, _ sdk.ValAddress) { slashingPeriod := k.getValidatorSlashingPeriodForHeight(ctx, address, ctx.BlockHeight()) slashingPeriod.EndHeight = ctx.BlockHeight() k.SetValidatorSlashingPeriod(ctx, slashingPeriod) } // When a validator is created, add the address-pubkey relation. -func (k Keeper) onValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { +func (k Keeper) AfterValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { validator := k.validatorSet.Validator(ctx, valAddr) k.addPubkey(ctx, validator.GetConsPubKey()) } // When a validator is removed, delete the address-pubkey relation. -func (k Keeper) onValidatorRemoved(ctx sdk.Context, address sdk.ConsAddress) { +func (k Keeper) AfterValidatorRemoved(ctx sdk.Context, address sdk.ConsAddress) { k.deleteAddrPubkeyRelation(ctx, crypto.Address(address)) } @@ -64,29 +65,29 @@ func (k Keeper) Hooks() Hooks { } // Implements sdk.ValidatorHooks -func (h Hooks) OnValidatorBonded(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { - h.k.onValidatorBonded(ctx, consAddr, valAddr) +func (h Hooks) AfterValidatorBonded(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { + h.k.AfterValidatorBonded(ctx, consAddr, valAddr) } // Implements sdk.ValidatorHooks -func (h Hooks) OnValidatorBeginUnbonding(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { - h.k.onValidatorBeginUnbonding(ctx, consAddr, valAddr) +func (h Hooks) AfterValidatorBeginUnbonding(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { + h.k.AfterValidatorBeginUnbonding(ctx, consAddr, valAddr) } // Implements sdk.ValidatorHooks -func (h Hooks) OnValidatorRemoved(ctx sdk.Context, consAddr sdk.ConsAddress, _ sdk.ValAddress) { - h.k.onValidatorRemoved(ctx, consAddr) +func (h Hooks) AfterValidatorRemoved(ctx sdk.Context, consAddr sdk.ConsAddress, _ sdk.ValAddress) { + h.k.AfterValidatorRemoved(ctx, consAddr) } // Implements sdk.ValidatorHooks -func (h Hooks) OnValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { - h.k.onValidatorCreated(ctx, valAddr) +func (h Hooks) AfterValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { + h.k.AfterValidatorCreated(ctx, valAddr) } // nolint - unused hooks -func (h Hooks) OnValidatorPowerDidChange(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { +func (h Hooks) AfterValidatorPowerDidChange(_ sdk.Context, _ sdk.ConsAddress, _ sdk.ValAddress) { } -func (h Hooks) OnValidatorModified(_ sdk.Context, _ sdk.ValAddress) {} -func (h Hooks) OnDelegationCreated(_ sdk.Context, _ sdk.AccAddress, _ sdk.ValAddress) {} -func (h Hooks) OnDelegationSharesModified(_ sdk.Context, _ sdk.AccAddress, _ sdk.ValAddress) {} -func (h Hooks) OnDelegationRemoved(_ sdk.Context, _ sdk.AccAddress, _ sdk.ValAddress) {} +func (h Hooks) BeforeValidatorModified(_ sdk.Context, _ sdk.ValAddress) {} +func (h Hooks) BeforeDelegationCreated(_ sdk.Context, _ sdk.AccAddress, _ sdk.ValAddress) {} +func (h Hooks) BeforeDelegationSharesModified(_ sdk.Context, _ sdk.AccAddress, _ sdk.ValAddress) {} +func (h Hooks) BeforeDelegationRemoved(_ sdk.Context, _ sdk.AccAddress, _ sdk.ValAddress) {} diff --git a/x/slashing/hooks_test.go b/x/slashing/hooks_test.go index eb74067647..563ede4f0d 100644 --- a/x/slashing/hooks_test.go +++ b/x/slashing/hooks_test.go @@ -11,7 +11,7 @@ import ( func TestHookOnValidatorBonded(t *testing.T) { ctx, _, _, _, keeper := createTestInput(t, DefaultParams()) addr := sdk.ConsAddress(addrs[0]) - keeper.onValidatorBonded(ctx, addr, nil) + keeper.AfterValidatorBonded(ctx, addr, nil) period := keeper.getValidatorSlashingPeriodForHeight(ctx, addr, ctx.BlockHeight()) require.Equal(t, ValidatorSlashingPeriod{addr, ctx.BlockHeight(), 0, sdk.ZeroDec()}, period) } @@ -19,8 +19,8 @@ func TestHookOnValidatorBonded(t *testing.T) { func TestHookOnValidatorBeginUnbonding(t *testing.T) { ctx, _, _, _, keeper := createTestInput(t, DefaultParams()) addr := sdk.ConsAddress(addrs[0]) - keeper.onValidatorBonded(ctx, addr, nil) - keeper.onValidatorBeginUnbonding(ctx, addr, addrs[0]) + keeper.AfterValidatorBonded(ctx, addr, nil) + keeper.AfterValidatorBeginUnbonding(ctx, addr, addrs[0]) period := keeper.getValidatorSlashingPeriodForHeight(ctx, addr, ctx.BlockHeight()) require.Equal(t, ValidatorSlashingPeriod{addr, ctx.BlockHeight(), ctx.BlockHeight(), sdk.ZeroDec()}, period) } diff --git a/x/stake/genesis.go b/x/stake/genesis.go index 744226c2c5..65998b6575 100644 --- a/x/stake/genesis.go +++ b/x/stake/genesis.go @@ -33,7 +33,7 @@ func InitGenesis(ctx sdk.Context, keeper Keeper, data types.GenesisState) (res [ // Manually set indices for the first time keeper.SetValidatorByConsAddr(ctx, validator) keeper.SetValidatorByPowerIndex(ctx, validator) - keeper.OnValidatorCreated(ctx, validator.OperatorAddr) + keeper.AfterValidatorCreated(ctx, validator.OperatorAddr) // Set timeslice if necessary if validator.Status == sdk.Unbonding { @@ -42,8 +42,8 @@ func InitGenesis(ctx sdk.Context, keeper Keeper, data types.GenesisState) (res [ } for _, delegation := range data.Bonds { + keeper.BeforeDelegationCreated(ctx, delegation.DelegatorAddr, delegation.ValidatorAddr) keeper.SetDelegation(ctx, delegation) - keeper.OnDelegationCreated(ctx, delegation.DelegatorAddr, delegation.ValidatorAddr) } sort.SliceStable(data.UnbondingDelegations[:], func(i, j int) bool { diff --git a/x/stake/handler.go b/x/stake/handler.go index 408ca52a33..4e1ced5dc0 100644 --- a/x/stake/handler.go +++ b/x/stake/handler.go @@ -128,7 +128,7 @@ func handleMsgCreateValidator(ctx sdk.Context, msg types.MsgCreateValidator, k k k.SetValidatorByConsAddr(ctx, validator) k.SetNewValidatorByPowerIndex(ctx, validator) - k.OnValidatorCreated(ctx, validator.OperatorAddr) + k.AfterValidatorCreated(ctx, validator.OperatorAddr) // move coins from the msg.Address account to a (self-delegation) delegator account // the validator account and global shares are updated within here @@ -168,8 +168,9 @@ func handleMsgEditValidator(ctx sdk.Context, msg types.MsgEditValidator, k keepe if err != nil { return err.Result() } + + k.BeforeValidatorModified(ctx, msg.ValidatorAddr) validator.Commission = commission - k.OnValidatorModified(ctx, msg.ValidatorAddr) } k.SetValidator(ctx, validator) diff --git a/x/stake/keeper/delegation.go b/x/stake/keeper/delegation.go index a1f26e3078..28009ca751 100644 --- a/x/stake/keeper/delegation.go +++ b/x/stake/keeper/delegation.go @@ -81,7 +81,7 @@ func (k Keeper) SetDelegation(ctx sdk.Context, delegation types.Delegation) { // remove a delegation from store func (k Keeper) RemoveDelegation(ctx sdk.Context, delegation types.Delegation) { - k.OnDelegationRemoved(ctx, delegation.DelegatorAddr, delegation.ValidatorAddr) + k.BeforeDelegationRemoved(ctx, delegation.DelegatorAddr, delegation.ValidatorAddr) store := ctx.KVStore(k.storeKey) store.Delete(GetDelegationKey(delegation.DelegatorAddr, delegation.ValidatorAddr)) } @@ -398,9 +398,9 @@ func (k Keeper) Delegate(ctx sdk.Context, delAddr sdk.AccAddress, bondAmt sdk.Co // call the appropriate hook if present if found { - k.OnDelegationSharesModified(ctx, delAddr, validator.OperatorAddr) + k.BeforeDelegationSharesModified(ctx, delAddr, validator.OperatorAddr) } else { - k.OnDelegationCreated(ctx, delAddr, validator.OperatorAddr) + k.BeforeDelegationCreated(ctx, delAddr, validator.OperatorAddr) } if subtractAccount { @@ -430,7 +430,7 @@ func (k Keeper) unbond(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValA return amount, types.ErrNoDelegatorForAddress(k.Codespace()) } - k.OnDelegationSharesModified(ctx, delAddr, valAddr) + k.BeforeDelegationSharesModified(ctx, delAddr, valAddr) // retrieve the amount to remove if delegation.Shares.LT(shares) { diff --git a/x/stake/keeper/hooks.go b/x/stake/keeper/hooks.go index 4ae158786e..29c1966d7d 100644 --- a/x/stake/keeper/hooks.go +++ b/x/stake/keeper/hooks.go @@ -6,56 +6,56 @@ import ( ) // Expose the hooks if present -func (k Keeper) OnValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { +func (k Keeper) AfterValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) { if k.hooks != nil { - k.hooks.OnValidatorCreated(ctx, valAddr) + k.hooks.AfterValidatorCreated(ctx, valAddr) } } -func (k Keeper) OnValidatorModified(ctx sdk.Context, valAddr sdk.ValAddress) { +func (k Keeper) BeforeValidatorModified(ctx sdk.Context, valAddr sdk.ValAddress) { if k.hooks != nil { - k.hooks.OnValidatorModified(ctx, valAddr) + k.hooks.BeforeValidatorModified(ctx, valAddr) } } -func (k Keeper) OnValidatorRemoved(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { +func (k Keeper) AfterValidatorRemoved(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { if k.hooks != nil { - k.hooks.OnValidatorRemoved(ctx, consAddr, valAddr) + k.hooks.AfterValidatorRemoved(ctx, consAddr, valAddr) } } -func (k Keeper) OnValidatorBonded(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { +func (k Keeper) AfterValidatorBonded(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { if k.hooks != nil { - k.hooks.OnValidatorBonded(ctx, consAddr, valAddr) + k.hooks.AfterValidatorBonded(ctx, consAddr, valAddr) } } -func (k Keeper) OnValidatorPowerDidChange(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { +func (k Keeper) AfterValidatorPowerDidChange(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { if k.hooks != nil { - k.hooks.OnValidatorPowerDidChange(ctx, consAddr, valAddr) + k.hooks.AfterValidatorPowerDidChange(ctx, consAddr, valAddr) } } -func (k Keeper) OnValidatorBeginUnbonding(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { +func (k Keeper) AfterValidatorBeginUnbonding(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) { if k.hooks != nil { - k.hooks.OnValidatorBeginUnbonding(ctx, consAddr, valAddr) + k.hooks.AfterValidatorBeginUnbonding(ctx, consAddr, valAddr) } } -func (k Keeper) OnDelegationCreated(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { +func (k Keeper) BeforeDelegationCreated(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { if k.hooks != nil { - k.hooks.OnDelegationCreated(ctx, delAddr, valAddr) + k.hooks.BeforeDelegationCreated(ctx, delAddr, valAddr) } } -func (k Keeper) OnDelegationSharesModified(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { +func (k Keeper) BeforeDelegationSharesModified(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { if k.hooks != nil { - k.hooks.OnDelegationSharesModified(ctx, delAddr, valAddr) + k.hooks.BeforeDelegationSharesModified(ctx, delAddr, valAddr) } } -func (k Keeper) OnDelegationRemoved(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { +func (k Keeper) BeforeDelegationRemoved(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) { if k.hooks != nil { - k.hooks.OnDelegationRemoved(ctx, delAddr, valAddr) + k.hooks.BeforeDelegationRemoved(ctx, delAddr, valAddr) } } diff --git a/x/stake/keeper/slash.go b/x/stake/keeper/slash.go index 6d22c82fc9..01fe195bd5 100644 --- a/x/stake/keeper/slash.go +++ b/x/stake/keeper/slash.go @@ -53,7 +53,7 @@ func (k Keeper) Slash(ctx sdk.Context, consAddr sdk.ConsAddress, infractionHeigh } operatorAddress := validator.GetOperator() - k.OnValidatorModified(ctx, operatorAddress) + k.BeforeValidatorModified(ctx, operatorAddress) // Track remaining slash amount for the validator // This will decrease when we slash unbondings and diff --git a/x/stake/keeper/val_state_change.go b/x/stake/keeper/val_state_change.go index 85d38c9437..55f8438d3d 100644 --- a/x/stake/keeper/val_state_change.go +++ b/x/stake/keeper/val_state_change.go @@ -80,7 +80,7 @@ func (k Keeper) ApplyAndReturnValidatorSetUpdates(ctx sdk.Context) (updates []ab // Assert that the validator had updated its ValidatorDistInfo.FeePoolWithdrawalHeight. // This hook is extremely useful, otherwise lazy accum bugs will be difficult to solve. if k.hooks != nil { - k.hooks.OnValidatorPowerDidChange(ctx, validator.ConsAddress(), valAddr) + k.hooks.AfterValidatorPowerDidChange(ctx, validator.ConsAddress(), valAddr) } // set validator power on lookup index. @@ -196,7 +196,7 @@ func (k Keeper) bondValidator(ctx sdk.Context, validator types.Validator) types. // call the bond hook if present if k.hooks != nil { - k.hooks.OnValidatorBonded(ctx, validator.ConsAddress(), validator.OperatorAddr) + k.hooks.AfterValidatorBonded(ctx, validator.ConsAddress(), validator.OperatorAddr) } return validator @@ -231,7 +231,7 @@ func (k Keeper) beginUnbondingValidator(ctx sdk.Context, validator types.Validat // call the unbond hook if present if k.hooks != nil { - k.hooks.OnValidatorBeginUnbonding(ctx, validator.ConsAddress(), validator.OperatorAddr) + k.hooks.AfterValidatorBeginUnbonding(ctx, validator.ConsAddress(), validator.OperatorAddr) } return validator diff --git a/x/stake/keeper/validator.go b/x/stake/keeper/validator.go index f5795bd4a1..50cfaf70d8 100644 --- a/x/stake/keeper/validator.go +++ b/x/stake/keeper/validator.go @@ -202,7 +202,7 @@ func (k Keeper) RemoveValidator(ctx sdk.Context, address sdk.ValAddress) { // call hook if present if k.hooks != nil { - k.hooks.OnValidatorRemoved(ctx, validator.ConsAddress(), validator.OperatorAddr) + k.hooks.AfterValidatorRemoved(ctx, validator.ConsAddress(), validator.OperatorAddr) } }