@@ -9,14 +9,26 @@ import (
9
9
"github.com/cosmos/cosmos-sdk/x/slashing/types"
10
10
)
11
11
12
- func (k Keeper ) AfterValidatorBonded (ctx sdk.Context , address sdk.ConsAddress , _ sdk.ValAddress ) error {
13
- // Update the signing info start height or create a new signing info
14
- signingInfo , found := k .GetValidatorSigningInfo (ctx , address )
12
+ var _ types.StakingHooks = Hooks {}
13
+
14
+ // Hooks wrapper struct for slashing keeper
15
+ type Hooks struct {
16
+ k Keeper
17
+ }
18
+
19
+ // Return the slashing hooks
20
+ func (k Keeper ) Hooks () Hooks {
21
+ return Hooks {k }
22
+ }
23
+
24
+ // AfterValidatorBonded updates the signing info start height or create a new signing info
25
+ func (h Hooks ) AfterValidatorBonded (ctx sdk.Context , consAddr sdk.ConsAddress , valAddr sdk.ValAddress ) error {
26
+ signingInfo , found := h .k .GetValidatorSigningInfo (ctx , consAddr )
15
27
if found {
16
28
signingInfo .StartHeight = ctx .BlockHeight ()
17
29
} else {
18
30
signingInfo = types .NewValidatorSigningInfo (
19
- address ,
31
+ consAddr ,
20
32
ctx .BlockHeight (),
21
33
0 ,
22
34
time .Unix (0 , 0 ),
@@ -25,53 +37,26 @@ func (k Keeper) AfterValidatorBonded(ctx sdk.Context, address sdk.ConsAddress, _
25
37
)
26
38
}
27
39
28
- k .SetValidatorSigningInfo (ctx , address , signingInfo )
40
+ h . k .SetValidatorSigningInfo (ctx , consAddr , signingInfo )
29
41
30
42
return nil
31
43
}
32
44
45
+ // AfterValidatorRemoved deletes the address-pubkey relation when a validator is removed,
46
+ func (h Hooks ) AfterValidatorRemoved (ctx sdk.Context , consAddr sdk.ConsAddress , _ sdk.ValAddress ) error {
47
+ h .k .deleteAddrPubkeyRelation (ctx , crypto .Address (consAddr ))
48
+ return nil
49
+ }
50
+
33
51
// AfterValidatorCreated adds the address-pubkey relation when a validator is created.
34
- func (k Keeper ) AfterValidatorCreated (ctx sdk.Context , valAddr sdk.ValAddress ) error {
35
- validator := k .sk .Validator (ctx , valAddr )
52
+ func (h Hooks ) AfterValidatorCreated (ctx sdk.Context , valAddr sdk.ValAddress ) error {
53
+ validator := h . k .sk .Validator (ctx , valAddr )
36
54
consPk , err := validator .ConsPubKey ()
37
55
if err != nil {
38
56
return err
39
57
}
40
58
41
- return k .AddPubkey (ctx , consPk )
42
- }
43
-
44
- // AfterValidatorRemoved deletes the address-pubkey relation when a validator is removed,
45
- func (k Keeper ) AfterValidatorRemoved (ctx sdk.Context , address sdk.ConsAddress ) error {
46
- k .deleteAddrPubkeyRelation (ctx , crypto .Address (address ))
47
- return nil
48
- }
49
-
50
- // Hooks wrapper struct for slashing keeper
51
- type Hooks struct {
52
- k Keeper
53
- }
54
-
55
- var _ types.StakingHooks = Hooks {}
56
-
57
- // Return the wrapper struct
58
- func (k Keeper ) Hooks () Hooks {
59
- return Hooks {k }
60
- }
61
-
62
- // Implements sdk.ValidatorHooks
63
- func (h Hooks ) AfterValidatorBonded (ctx sdk.Context , consAddr sdk.ConsAddress , valAddr sdk.ValAddress ) error {
64
- return h .k .AfterValidatorBonded (ctx , consAddr , valAddr )
65
- }
66
-
67
- // Implements sdk.ValidatorHooks
68
- func (h Hooks ) AfterValidatorRemoved (ctx sdk.Context , consAddr sdk.ConsAddress , _ sdk.ValAddress ) error {
69
- return h .k .AfterValidatorRemoved (ctx , consAddr )
70
- }
71
-
72
- // Implements sdk.ValidatorHooks
73
- func (h Hooks ) AfterValidatorCreated (ctx sdk.Context , valAddr sdk.ValAddress ) error {
74
- return h .k .AfterValidatorCreated (ctx , valAddr )
59
+ return h .k .AddPubkey (ctx , consPk )
75
60
}
76
61
77
62
func (h Hooks ) AfterValidatorBeginUnbonding (_ sdk.Context , _ sdk.ConsAddress , _ sdk.ValAddress ) error {
0 commit comments