add ValidatorSetKeeper, move Validator from stake to types
This commit is contained in:
parent
b3b8790793
commit
6d742d6829
|
@ -171,7 +171,7 @@ func (k Keeper) setCandidate(ctx sdk.Context, candidate Candidate) {
|
|||
setAcc = true
|
||||
}
|
||||
if setAcc {
|
||||
bz, err = k.cdc.MarshalBinary(validator.abciValidator(k.cdc))
|
||||
bz, err = k.cdc.MarshalBinary(validator.ABCIValidator(k.cdc))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
@ -200,7 +200,7 @@ func (k Keeper) removeCandidate(ctx sdk.Context, address sdk.Address) {
|
|||
if store.Get(GetRecentValidatorKey(address)) == nil {
|
||||
return
|
||||
}
|
||||
bz, err := k.cdc.MarshalBinary(candidate.validator().abciValidatorZero(k.cdc))
|
||||
bz, err := k.cdc.MarshalBinary(candidate.validator().ABCIValidatorZero(k.cdc))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
@ -216,7 +216,7 @@ func (k Keeper) removeCandidate(ctx sdk.Context, address sdk.Address) {
|
|||
// records are updated in store with the RecentValidatorsKey. This store is
|
||||
// used to determine if a candidate is a validator without needing to iterate
|
||||
// over the subspace as we do in GetValidators
|
||||
func (k Keeper) GetValidators(ctx sdk.Context) (validators []Validator) {
|
||||
func (k Keeper) GetValidators(ctx sdk.Context) (validators []sdk.Validator) {
|
||||
store := ctx.KVStore(k.storeKey)
|
||||
|
||||
// clear the recent validators store, add to the ToKickOut Temp store
|
||||
|
@ -233,7 +233,7 @@ func (k Keeper) GetValidators(ctx sdk.Context) (validators []Validator) {
|
|||
// add the actual validator power sorted store
|
||||
maxValidators := k.GetParams(ctx).MaxValidators
|
||||
iterator = store.ReverseIterator(subspace(ValidatorsKey)) // largest to smallest
|
||||
validators = make([]Validator, maxValidators)
|
||||
validators = make([]sdk.Validator, maxValidators)
|
||||
i := 0
|
||||
for ; ; i++ {
|
||||
if !iterator.Valid() || i > int(maxValidators-1) {
|
||||
|
@ -241,7 +241,7 @@ func (k Keeper) GetValidators(ctx sdk.Context) (validators []Validator) {
|
|||
break
|
||||
}
|
||||
bz := iterator.Value()
|
||||
var validator Validator
|
||||
var validator sdk.Validator
|
||||
err := k.cdc.UnmarshalBinary(bz, &validator)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
@ -265,12 +265,12 @@ func (k Keeper) GetValidators(ctx sdk.Context) (validators []Validator) {
|
|||
|
||||
// get the zero abci validator from the ToKickOut iterator value
|
||||
bz := iterator.Value()
|
||||
var validator Validator
|
||||
var validator sdk.Validator
|
||||
err := k.cdc.UnmarshalBinary(bz, &validator)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
bz, err = k.cdc.MarshalBinary(validator.abciValidatorZero(k.cdc))
|
||||
bz, err = k.cdc.MarshalBinary(validator.ABCIValidatorZero(k.cdc))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
@ -296,7 +296,7 @@ func (k Keeper) isNewValidator(ctx sdk.Context, store sdk.KVStore, address sdk.A
|
|||
break
|
||||
}
|
||||
bz := iterator.Value()
|
||||
var val Validator
|
||||
var val sdk.Validator
|
||||
err := k.cdc.UnmarshalBinary(bz, &val)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
|
|
@ -474,7 +474,7 @@ func TestGetAccUpdateValidators(t *testing.T) {
|
|||
assert.True(t, candidates[0].Assets.Equal(sdk.NewRat(600)))
|
||||
acc = keeper.getAccUpdateValidators(ctx)
|
||||
require.Equal(t, 1, len(acc))
|
||||
assert.Equal(t, candidates[0].validator().abciValidator(keeper.cdc), acc[0])
|
||||
assert.Equal(t, candidates[0].validator().ABCIValidator(keeper.cdc), acc[0])
|
||||
|
||||
// test multiple value change
|
||||
// candidate set: {c1, c3} -> {c1', c3'}
|
||||
|
@ -492,8 +492,8 @@ func TestGetAccUpdateValidators(t *testing.T) {
|
|||
require.Equal(t, 2, len(acc))
|
||||
candidates = keeper.GetCandidates(ctx, 5)
|
||||
require.Equal(t, 2, len(candidates))
|
||||
require.Equal(t, candidates[0].validator().abciValidator(keeper.cdc), acc[0])
|
||||
require.Equal(t, candidates[1].validator().abciValidator(keeper.cdc), acc[1])
|
||||
require.Equal(t, candidates[0].validator().ABCIValidator(keeper.cdc), acc[0])
|
||||
require.Equal(t, candidates[1].validator().ABCIValidator(keeper.cdc), acc[1])
|
||||
|
||||
// test validtor added at the beginning
|
||||
// candidate set: {c1, c3} -> {c0, c1, c3}
|
||||
|
@ -507,7 +507,7 @@ func TestGetAccUpdateValidators(t *testing.T) {
|
|||
require.Equal(t, 1, len(acc))
|
||||
candidates = keeper.GetCandidates(ctx, 5)
|
||||
require.Equal(t, 3, len(candidates))
|
||||
assert.Equal(t, candidates[0].validator().abciValidator(keeper.cdc), acc[0])
|
||||
assert.Equal(t, candidates[0].validator().ABCIValidator(keeper.cdc), acc[0])
|
||||
|
||||
// test validator added at the middle
|
||||
// candidate set: {c0, c1, c3} -> {c0, c1, c2, c3]
|
||||
|
@ -521,7 +521,7 @@ func TestGetAccUpdateValidators(t *testing.T) {
|
|||
require.Equal(t, 1, len(acc))
|
||||
candidates = keeper.GetCandidates(ctx, 5)
|
||||
require.Equal(t, 4, len(candidates))
|
||||
assert.Equal(t, candidates[2].validator().abciValidator(keeper.cdc), acc[0])
|
||||
assert.Equal(t, candidates[2].validator().ABCIValidator(keeper.cdc), acc[0])
|
||||
|
||||
// test candidate added at the end but not inserted in the valset
|
||||
// candidate set: {c0, c1, c2, c3} -> {c0, c1, c2, c3, c4}
|
||||
|
@ -580,7 +580,7 @@ func TestGetAccUpdateValidators(t *testing.T) {
|
|||
|
||||
assert.Equal(t, candidatesIn[0].PubKey.Bytes(), acc[0].PubKey)
|
||||
assert.Equal(t, int64(0), acc[0].Power)
|
||||
assert.Equal(t, vals[0].abciValidator(keeper.cdc), acc[1])
|
||||
assert.Equal(t, vals[0].ABCIValidator(keeper.cdc), acc[1])
|
||||
|
||||
// test from something to nothing
|
||||
// candidate set: {c0, c1, c2, c3, c4} -> {}
|
||||
|
|
|
@ -134,8 +134,8 @@ func (c Candidate) delegatorShareExRate() sdk.Rat {
|
|||
|
||||
// Validator returns a copy of the Candidate as a Validator.
|
||||
// Should only be called when the Candidate qualifies as a validator.
|
||||
func (c Candidate) validator() Validator {
|
||||
return Validator{
|
||||
func (c Candidate) validator() sdk.Validator {
|
||||
return sdk.Validator{
|
||||
Address: c.Address,
|
||||
PubKey: c.PubKey,
|
||||
Power: c.Assets,
|
||||
|
|
Loading…
Reference in New Issue