Merge PR #3546: Min Self Delegation

This commit is contained in:
Sunny Aggarwal
2019-02-08 12:44:19 -08:00
committed by Jack Zampolin
parent ba63eb1801
commit cff985ffc5
31 changed files with 337 additions and 125 deletions
+29
View File
@@ -35,6 +35,35 @@ func TestCannotUnjailUnlessJailed(t *testing.T) {
require.EqualValues(t, DefaultCodespace, got.Codespace)
}
func TestCannotUnjailUnlessMeetMinSelfDelegation(t *testing.T) {
// initial setup
ctx, ck, sk, _, keeper := createTestInput(t, DefaultParams())
slh := NewHandler(keeper)
amtInt := int64(100)
addr, val, amt := addrs[0], pks[0], types.TokensFromTendermintPower(amtInt)
msg := NewTestMsgCreateValidator(addr, val, amt)
msg.MinSelfDelegation = amt
got := staking.NewHandler(sk)(ctx, msg)
require.True(t, got.IsOK())
staking.EndBlocker(ctx, sk)
require.Equal(
t, ck.GetCoins(ctx, sdk.AccAddress(addr)),
sdk.Coins{sdk.NewCoin(sk.GetParams(ctx).BondDenom, initCoins.Sub(amt))},
)
undelegateMsg := staking.NewMsgUndelegate(sdk.AccAddress(addr), addr, sdk.OneDec())
got = staking.NewHandler(sk)(ctx, undelegateMsg)
require.True(t, sk.Validator(ctx, addr).GetJailed())
// assert non-jailed validator can't be unjailed
got = slh(ctx, NewMsgUnjail(addr))
require.False(t, got.IsOK(), "allowed unjail of validator with less than MinSelfDelegation")
require.EqualValues(t, CodeValidatorNotJailed, got.Code)
require.EqualValues(t, DefaultCodespace, got.Codespace)
}
func TestJailedValidatorDelegations(t *testing.T) {
ctx, _, stakingKeeper, _, slashingKeeper := createTestInput(t, DefaultParams())