From 6d742d68292c20caa2c4bbc097006bd8e9be7f32 Mon Sep 17 00:00:00 2001 From: mossid Date: Tue, 17 Apr 2018 22:45:07 +0200 Subject: [PATCH] add ValidatorSetKeeper, move Validator from stake to types --- x/stake/keeper.go | 16 ++++++++-------- x/stake/keeper_test.go | 12 ++++++------ x/stake/types.go | 4 ++-- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/x/stake/keeper.go b/x/stake/keeper.go index a7f94f9d4c..f453e42c60 100644 --- a/x/stake/keeper.go +++ b/x/stake/keeper.go @@ -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) diff --git a/x/stake/keeper_test.go b/x/stake/keeper_test.go index 76e69de58f..2298c7fae3 100644 --- a/x/stake/keeper_test.go +++ b/x/stake/keeper_test.go @@ -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} -> {} diff --git a/x/stake/types.go b/x/stake/types.go index ffe2ca4fb4..e7668a14f3 100644 --- a/x/stake/types.go +++ b/x/stake/types.go @@ -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,