From 2e8f35436791e023f1b452d2be1951b2314ad345 Mon Sep 17 00:00:00 2001 From: Christopher Goes Date: Fri, 19 Oct 2018 22:26:28 +0200 Subject: [PATCH] Fixup stake hooks (hopefully...) --- x/stake/handler.go | 7 ++----- x/stake/keeper/delegation.go | 9 ++++++++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/x/stake/handler.go b/x/stake/handler.go index a75c30055b..81b5050398 100644 --- a/x/stake/handler.go +++ b/x/stake/handler.go @@ -114,8 +114,6 @@ func handleMsgCreateValidator(ctx sdk.Context, msg types.MsgCreateValidator, k k } k.OnValidatorCreated(ctx, validator.OperatorAddr) - accAddr := sdk.AccAddress(validator.OperatorAddr) - k.OnDelegationCreated(ctx, accAddr, validator.OperatorAddr) tags := sdk.NewTags( tags.Action, tags.ActionCreateValidator, @@ -150,6 +148,8 @@ func handleMsgEditValidator(ctx sdk.Context, msg types.MsgEditValidator, k keepe return err.Result() } validator.Commission = commission + // call the hook if present + k.OnValidatorCommissionChange(ctx, msg.ValidatorAddr) } k.SetValidator(ctx, validator) @@ -185,9 +185,6 @@ func handleMsgDelegate(ctx sdk.Context, msg types.MsgDelegate, k keeper.Keeper) return err.Result() } - // call the hook if present - k.OnDelegationCreated(ctx, msg.DelegatorAddr, validator.OperatorAddr) - tags := sdk.NewTags( tags.Action, tags.ActionDelegate, tags.Delegator, []byte(msg.DelegatorAddr.String()), diff --git a/x/stake/keeper/delegation.go b/x/stake/keeper/delegation.go index 1afbb341ca..a5d08d4892 100644 --- a/x/stake/keeper/delegation.go +++ b/x/stake/keeper/delegation.go @@ -359,6 +359,13 @@ 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) + } else { + k.OnDelegationCreated(ctx, delAddr, validator.OperatorAddr) + } + if subtractAccount { // Account new shares, save _, _, err = k.bankKeeper.SubtractCoins(ctx, delegation.DelegatorAddr, sdk.Coins{bondAmt}) @@ -373,6 +380,7 @@ func (k Keeper) Delegate(ctx sdk.Context, delAddr sdk.AccAddress, bondAmt sdk.Co delegation.Shares = delegation.Shares.Add(newShares) delegation.Height = ctx.BlockHeight() k.SetDelegation(ctx, delegation) + return newShares, nil } @@ -567,7 +575,6 @@ func (k Keeper) BeginRedelegation(ctx sdk.Context, delAddr sdk.AccAddress, if err != nil { return types.Redelegation{}, err } - k.OnDelegationCreated(ctx, delAddr, valDstAddr) // create the unbonding delegation minTime, height, completeNow := k.getBeginInfo(ctx, valSrcAddr)