github.com/cosmos/cosmos-sdk@v0.50.10/x/slashing/keeper/genesis_test.go (about) 1 package keeper_test 2 3 import ( 4 "time" 5 6 "github.com/golang/mock/gomock" 7 8 sdk "github.com/cosmos/cosmos-sdk/types" 9 "github.com/cosmos/cosmos-sdk/x/slashing/testutil" 10 "github.com/cosmos/cosmos-sdk/x/slashing/types" 11 ) 12 13 func (s *KeeperTestSuite) TestExportAndInitGenesis() { 14 ctx, keeper := s.ctx, s.slashingKeeper 15 require := s.Require() 16 17 keeper.SetParams(ctx, testutil.TestParams()) 18 19 consAddr1 := sdk.ConsAddress(sdk.AccAddress([]byte("addr1_______________"))) 20 consAddr2 := sdk.ConsAddress(sdk.AccAddress([]byte("addr2_______________"))) 21 22 info1 := types.NewValidatorSigningInfo(consAddr1, int64(4), int64(3), 23 time.Now().UTC().Add(100000000000), false, int64(10)) 24 info2 := types.NewValidatorSigningInfo(consAddr2, int64(5), int64(4), 25 time.Now().UTC().Add(10000000000), false, int64(10)) 26 27 keeper.SetValidatorSigningInfo(ctx, consAddr1, info1) 28 keeper.SetValidatorSigningInfo(ctx, consAddr2, info2) 29 genesisState := keeper.ExportGenesis(ctx) 30 31 require.Equal(genesisState.Params, testutil.TestParams()) 32 require.Len(genesisState.SigningInfos, 2) 33 require.Equal(genesisState.SigningInfos[0].ValidatorSigningInfo, info1) 34 35 // Tombstone validators after genesis shouldn't effect genesis state 36 err := keeper.Tombstone(ctx, consAddr1) 37 require.NoError(err) 38 err = keeper.Tombstone(ctx, consAddr2) 39 require.NoError(err) 40 41 ok := keeper.IsTombstoned(ctx, consAddr1) 42 require.True(ok) 43 44 newInfo1, _ := keeper.GetValidatorSigningInfo(ctx, consAddr1) 45 require.NotEqual(info1, newInfo1) 46 47 // Initialize genesis with genesis state before tombstone 48 s.stakingKeeper.EXPECT().IterateValidators(ctx, gomock.Any()).Return(nil) 49 keeper.InitGenesis(ctx, s.stakingKeeper, genesisState) 50 51 // Validator isTombstoned should return false as GenesisState is initialized 52 ok = keeper.IsTombstoned(ctx, consAddr1) 53 require.False(ok) 54 55 newInfo1, _ = keeper.GetValidatorSigningInfo(ctx, consAddr1) 56 newInfo2, _ := keeper.GetValidatorSigningInfo(ctx, consAddr2) 57 require.Equal(info1, newInfo1) 58 require.Equal(info2, newInfo2) 59 }