/
staking_hook_types.go
92 lines (82 loc) · 2.93 KB
/
staking_hook_types.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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package keeper
import (
sdk "github.com/cosmos/cosmos-sdk/types"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
)
type Validator struct {
Moniker string `json:"moniker"`
ValidatorAddress string `json:"validator_address"`
Commission string `json:"commission"`
ValidatorTokens string `json:"validator_tokens"`
BondedTokens string `json:"bonded_tokens"`
BondStatus string `json:"bond_status"`
}
func NewValidator(val stakingtypes.ValidatorI) *Validator {
return &Validator{
Moniker: val.GetMoniker(),
ValidatorAddress: val.GetOperator().String(),
Commission: val.GetCommission().String(),
ValidatorTokens: val.GetTokens().String(),
BondedTokens: val.GetBondedTokens().String(),
BondStatus: val.GetStatus().String(),
}
}
type ValidatorSlashed struct {
Moniker string `json:"moniker"`
ValidatorAddress string `json:"validator_address"`
SlashedAmount string `json:"slashed_amount"`
}
func NewValidatorSlashed(val stakingtypes.ValidatorI, fraction sdk.Dec) *ValidatorSlashed {
return &ValidatorSlashed{
Moniker: val.GetMoniker(),
ValidatorAddress: val.GetOperator().String(),
SlashedAmount: fraction.String(),
}
}
type Delegation struct {
ValidatorAddress string `json:"validator_address"`
DelegatorAddress string `json:"delegator_address"`
Shares string `json:"shares"`
}
func NewDelegation(del stakingtypes.DelegationI) *Delegation {
return &Delegation{
ValidatorAddress: del.GetValidatorAddr().String(),
DelegatorAddress: del.GetDelegatorAddr().String(),
Shares: del.GetShares().String(),
}
}
// Validators
type SudoMsgAfterValidatorCreated struct {
AfterValidatorCreated *Validator `json:"after_validator_created"`
}
type SudoMsgAfterValidatorRemoved struct {
AfterValidatorRemoved *Validator `json:"after_validator_removed"`
}
type SudoMsgBeforeValidatorModified struct {
BeforeValidatorModified *Validator `json:"before_validator_modified"`
}
type SudoMsgAfterValidatorModified struct {
AfterValidatorModified *Validator `json:"after_validator_modified"`
}
type SudoMsgAfterValidatorBonded struct {
AfterValidatorBonded *Validator `json:"after_validator_bonded"`
}
type SudoMsgAfterValidatorBeginUnbonding struct {
AfterValidatorBeginUnbonding *Validator `json:"after_validator_begin_unbonding"`
}
type SudoMsgBeforeValidatorSlashed struct {
BeforeValidatorSlashed *ValidatorSlashed `json:"before_validator_slashed"`
}
// Delegations
type SudoMsgBeforeDelegationCreated struct {
BeforeDelegationCreated *Delegation `json:"before_delegation_created"`
}
type SudoMsgBeforeDelegationSharesModified struct {
BeforeDelegationSharesModified *Delegation `json:"before_delegation_shares_modified"`
}
type SudoMsgAfterDelegationModified struct {
AfterDelegationModified *Delegation `json:"after_delegation_modified"`
}
type SudoMsgBeforeDelegationRemoved struct {
BeforeDelegationRemoved *Delegation `json:"before_delegation_removed"`
}