/
reward.go
56 lines (47 loc) · 1.34 KB
/
reward.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
package types
import (
"github.com/aximchain/axc-cosmos-sdk/codec"
sdk "github.com/aximchain/axc-cosmos-sdk/types"
)
type Sharer struct {
AccAddr sdk.AccAddress
Shares sdk.Dec
}
// reward model before BEP128 upgrade
type PreReward struct {
AccAddr sdk.AccAddress
Shares sdk.Dec
Amount int64
}
// reward model after BEP128 upgrade
type Reward struct {
ValAddr sdk.ValAddress // Validator will be published for downstream usage
AccAddr sdk.AccAddress
Tokens sdk.Dec // delegator Tokens will be published for downstream usage
Amount int64
CrossStake bool
}
type StoredValDistAddr struct {
Validator sdk.ValAddress
DistributeAddr sdk.AccAddress
}
func MustMarshalRewards(cdc *codec.Codec, rewards []Reward) []byte {
return cdc.MustMarshalBinaryLengthPrefixed(rewards)
}
func MustUnmarshalRewards(cdc *codec.Codec, value []byte) (rewards []Reward) {
err := cdc.UnmarshalBinaryLengthPrefixed(value, &rewards)
if err != nil {
panic(err)
}
return rewards
}
func MustMarshalValDistAddrs(cdc *codec.Codec, valDistAddrs []StoredValDistAddr) []byte {
return cdc.MustMarshalBinaryLengthPrefixed(valDistAddrs)
}
func MustUnmarshalValDistAddrs(cdc *codec.Codec, value []byte) (valDistAddrs []StoredValDistAddr) {
err := cdc.UnmarshalBinaryLengthPrefixed(value, &valDistAddrs)
if err != nil {
panic(err)
}
return valDistAddrs
}