forked from terra-money/alliance
-
Notifications
You must be signed in to change notification settings - Fork 0
/
genesis.go
35 lines (32 loc) 路 1.27 KB
/
genesis.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
package alliance
import (
"github.com/noria-net/alliance/x/alliance/types"
)
// ValidateGenesis
func ValidateGenesis(data *types.GenesisState) error {
params := data.Params
if params.TakeRateClaimInterval <= 0 {
return types.ErrInvalidGenesisState.Wrap("reward_claim_interval has to be more than 0")
}
if len(data.Delegations) > 0 && len(data.Assets) == 0 {
return types.ErrInvalidGenesisState.Wrap("cannot have delegations without alliance assets")
}
if len(data.Delegations) > 0 && len(data.ValidatorInfos) == 0 {
return types.ErrInvalidGenesisState.Wrap("cannot have delegations without alliance validator infos")
}
if len(data.Redelegations) > 0 && len(data.Delegations) == 0 {
return types.ErrInvalidGenesisState.Wrap("cannot have redelegations without delegations")
}
return nil
}
func DefaultGenesisState() *types.GenesisState {
return &types.GenesisState{
Params: types.DefaultParams(),
Assets: []types.AllianceAsset{},
ValidatorInfos: []types.ValidatorInfoState{},
RewardWeightChangeSnaphots: []types.RewardWeightChangeSnapshotState{},
Delegations: []types.Delegation{},
Redelegations: []types.RedelegationState{},
Undelegations: []types.UndelegationState{},
}
}