/
slashing.go
32 lines (28 loc) · 1.06 KB
/
slashing.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package emitter
import (
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/slashing"
"github.com/bandprotocol/chain/hooks/common"
)
// handleEventSlash implements emitter handler for Slashing event.
func (h *Hook) handleEventSlash(ctx sdk.Context, event common.EvMap) {
if raw, ok := event[slashing.EventTypeSlash+"."+slashing.AttributeKeyJailed]; ok && len(raw) == 1 {
consAddress, _ := sdk.ConsAddressFromBech32(raw[0])
validator, _ := h.stakingKeeper.GetValidatorByConsAddr(ctx, consAddress)
h.Write("UPDATE_VALIDATOR", common.JsDict{
"operator_address": validator.OperatorAddress.String(),
"tokens": validator.Tokens.Uint64(),
"jailed": validator.Jailed,
})
}
}
// handleMsgUnjail implements emitter handler for MsgUnjail.
func (h *Hook) handleMsgUnjail(
ctx sdk.Context, msg slashing.MsgUnjail,
) {
validator, _ := h.stakingKeeper.GetValidator(ctx, msg.ValidatorAddr)
h.Write("UPDATE_VALIDATOR", common.JsDict{
"operator_address": msg.ValidatorAddr.String(),
"jailed": validator.Jailed,
})
}