-
Notifications
You must be signed in to change notification settings - Fork 0
/
pub.go
150 lines (127 loc) · 2.5 KB
/
pub.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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package types
import (
"github.com/cosmos/cosmos-sdk/pubsub"
sdk "github.com/cosmos/cosmos-sdk/types"
)
const (
Topic = pubsub.Topic("stake")
)
type StakeEvent struct {
IsFromTx bool
}
func (event StakeEvent) GetTopic() pubsub.Topic {
return Topic
}
func (event StakeEvent) FromTx() bool {
return event.IsFromTx
}
//----------------------------------------------------------------------------------------------------
// validator update event
type ValidatorUpdateEvent struct {
StakeEvent
Validator Validator
}
// validator removed event
type ValidatorRemovedEvent struct {
StakeEvent
Operator sdk.ValAddress
ChainId string
}
// delegation update
type DelegationUpdateEvent struct {
StakeEvent
Delegation Delegation
ChainId string
}
// delegation removed
type DelegationRemovedEvent struct {
StakeEvent
DvPair DVPair
ChainId string
}
// UBDs update
type UBDUpdateEvent struct {
StakeEvent
UBD UnbondingDelegation
ChainId string
}
// RED update
type REDUpdateEvent struct {
StakeEvent
RED Redelegation
ChainId string
}
// completed unBonding event
type CompletedUBDEvent struct {
StakeEvent
ChainId string
CompUBDs []UnbondingDelegation
}
// completed reDelegation event
type CompletedREDEvent struct {
StakeEvent
ChainId string
CompREDs []DVVTriplet
}
// chain reward distribution event after BEP128
type DistributionEvent struct {
StakeEvent
ChainId string
Data []DistributionData
}
type DistributionData struct {
Validator sdk.ValAddress
SelfDelegator sdk.AccAddress
DistributeAddr sdk.AccAddress
ValShares sdk.Dec
ValTokens sdk.Dec
TotalReward sdk.Dec
Commission sdk.Dec
Rewards []Reward
}
// delegate event
type DelegateEvent struct {
StakeEvent
Delegator sdk.AccAddress
Validator sdk.ValAddress
Amount int64
Denom string
TxHash string
CrossStake bool
}
type ChainDelegateEvent struct {
DelegateEvent
ChainId string
}
// undelegate
type UndelegateEvent struct {
StakeEvent
Delegator sdk.AccAddress
Validator sdk.ValAddress
Amount int64
Denom string
TxHash string
}
type ChainUndelegateEvent struct {
UndelegateEvent
ChainId string
}
// redelegate
type RedelegateEvent struct {
StakeEvent
Delegator sdk.AccAddress
SrcValidator sdk.ValAddress
DstValidator sdk.ValAddress
Amount int64
Denom string
TxHash string
}
type ChainRedelegateEvent struct {
RedelegateEvent
ChainId string
}
type ElectedValidatorsEvent struct {
StakeEvent
Validators []Validator
ChainId string
}