From e0b5118fce6726250e6ccd830bea6041fd509093 Mon Sep 17 00:00:00 2001 From: Christopher Goes Date: Thu, 31 May 2018 03:00:11 +0200 Subject: [PATCH] Staking InitGenesis fixes --- x/stake/genesis.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/x/stake/genesis.go b/x/stake/genesis.go index a2cd58bdb5..cd1c0f9959 100644 --- a/x/stake/genesis.go +++ b/x/stake/genesis.go @@ -29,19 +29,20 @@ func DefaultGenesisState() GenesisState { // InitGenesis - store genesis parameters func InitGenesis(ctx sdk.Context, k Keeper, data GenesisState) { + store := ctx.KVStore(k.storeKey) k.setPool(ctx, data.Pool) k.setNewParams(ctx, data.Params) for _, validator := range data.Validators { - // Staking assumes bonded validators are already stored, need to force update - validator.PoolShares.Status = sdk.Unbonded - k.setValidator(ctx, validator) - k.setValidatorByPubKeyIndex(ctx, validator) k.updateValidator(ctx, validator) + k.setValidatorByPubKeyIndex(ctx, validator) + // manually set validator to bonded if necessary + if validator.Status() == sdk.Bonded { + store.Set(GetValidatorsBondedKey(validator.PubKey), validator.Owner) + } } for _, bond := range data.Bonds { k.setDelegation(ctx, bond) } - store := ctx.KVStore(k.storeKey) k.updateBondedValidatorsFull(ctx, store) }