From 81e4a9797bccd4b7b036e9159d16c04919be0ec0 Mon Sep 17 00:00:00 2001 From: rigelrozanski Date: Wed, 30 May 2018 18:28:02 -0700 Subject: [PATCH] genesis validator index setting --- x/stake/genesis.go | 8 ++++++-- x/stake/keeper.go | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/x/stake/genesis.go b/x/stake/genesis.go index cd1c0f995..4887a6002 100644 --- a/x/stake/genesis.go +++ b/x/stake/genesis.go @@ -33,9 +33,13 @@ func InitGenesis(ctx sdk.Context, k Keeper, data GenesisState) { k.setPool(ctx, data.Pool) k.setNewParams(ctx, data.Params) for _, validator := range data.Validators { - k.updateValidator(ctx, validator) + + // set validator + k.setValidator(ctx, validator) + + // manually set indexes for the first time k.setValidatorByPubKeyIndex(ctx, validator) - // manually set validator to bonded if necessary + k.setValidatorByPowerIndex(ctx, validator, data.Pool) if validator.Status() == sdk.Bonded { store.Set(GetValidatorsBondedKey(validator.PubKey), validator.Owner) } diff --git a/x/stake/keeper.go b/x/stake/keeper.go index b94f392a6..9fd902053 100644 --- a/x/stake/keeper.go +++ b/x/stake/keeper.go @@ -73,6 +73,11 @@ func (k Keeper) setValidatorByPubKeyIndex(ctx sdk.Context, validator Validator) store.Set(GetValidatorByPubKeyIndexKey(validator.PubKey), validator.Owner) } +func (k Keeper) setValidatorByPowerIndex(ctx sdk.Context, validator Validator, pool Pool) { + store := ctx.KVStore(k.storeKey) + store.Set(GetValidatorsByPowerKey(validator, pool), validator.Owner) +} + // Get the set of all validators with no limits, used during genesis dump func (k Keeper) getAllValidators(ctx sdk.Context) (validators Validators) { store := ctx.KVStore(k.storeKey)