refactor TestUnbondingFromUnbondingValidator and TestRedelegationPeriod
This commit is contained in:
parent
eb26b478b4
commit
c58ec7f7b7
|
@ -870,119 +870,119 @@ func TestUnbondingPeriod(t *testing.T) {
|
||||||
require.False(t, found, "should have unbonded")
|
require.False(t, found, "should have unbonded")
|
||||||
}
|
}
|
||||||
|
|
||||||
//func TestUnbondingFromUnbondingValidator(t *testing.T) {
|
func TestUnbondingFromUnbondingValidator(t *testing.T) {
|
||||||
// ctx, _, _, keeper, _ := CreateTestInput(t, false, 1000)
|
app, ctx, delAddrs, valAddrs := bootstrapHandlerGenesisTest(t, 1000, 2, 1000000000)
|
||||||
// handler := NewHandler(keeper)
|
handler := staking.NewHandler(app.StakingKeeper)
|
||||||
// validatorAddr, delegatorAddr := sdk.ValAddress(Addrs[0]), Addrs[1]
|
validatorAddr, delegatorAddr := valAddrs[0], delAddrs[1]
|
||||||
//
|
|
||||||
// // create the validator
|
// create the validator
|
||||||
// msgCreateValidator := NewTestMsgCreateValidator(validatorAddr, PKs[0], sdk.NewInt(10))
|
msgCreateValidator := NewTestMsgCreateValidator(validatorAddr, PKs[0], sdk.NewInt(10))
|
||||||
// res, err := handler(ctx, msgCreateValidator)
|
res, err := handler(ctx, msgCreateValidator)
|
||||||
// require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// require.NotNil(t, res)
|
require.NotNil(t, res)
|
||||||
//
|
|
||||||
// // bond a delegator
|
// bond a delegator
|
||||||
// msgDelegate := NewTestMsgDelegate(delegatorAddr, validatorAddr, sdk.NewInt(10))
|
msgDelegate := NewTestMsgDelegate(delegatorAddr, validatorAddr, sdk.NewInt(10))
|
||||||
// res, err = handler(ctx, msgDelegate)
|
res, err = handler(ctx, msgDelegate)
|
||||||
// require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// require.NotNil(t, res)
|
require.NotNil(t, res)
|
||||||
//
|
|
||||||
// // unbond the validators bond portion
|
// unbond the validators bond portion
|
||||||
// unbondAmt := sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))
|
unbondAmt := sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))
|
||||||
// msgUndelegateValidator := NewMsgUndelegate(sdk.AccAddress(validatorAddr), validatorAddr, unbondAmt)
|
msgUndelegateValidator := types.NewMsgUndelegate(sdk.AccAddress(validatorAddr), validatorAddr, unbondAmt)
|
||||||
// res, err = handler(ctx, msgUndelegateValidator)
|
res, err = handler(ctx, msgUndelegateValidator)
|
||||||
// require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// require.NotNil(t, res)
|
require.NotNil(t, res)
|
||||||
//
|
|
||||||
// // change the ctx to Block Time one second before the validator would have unbonded
|
// change the ctx to Block Time one second before the validator would have unbonded
|
||||||
// ts := &gogotypes.Timestamp{}
|
ts := &gogotypes.Timestamp{}
|
||||||
// types.ModuleCdc.MustUnmarshalBinaryLengthPrefixed(res.Data, ts)
|
types.ModuleCdc.MustUnmarshalBinaryLengthPrefixed(res.Data, ts)
|
||||||
//
|
|
||||||
// finishTime, err := gogotypes.TimestampFromProto(ts)
|
finishTime, err := gogotypes.TimestampFromProto(ts)
|
||||||
// require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
//
|
|
||||||
// ctx = ctx.WithBlockTime(finishTime.Add(time.Second * -1))
|
ctx = ctx.WithBlockTime(finishTime.Add(time.Second * -1))
|
||||||
//
|
|
||||||
// // unbond the delegator from the validator
|
// unbond the delegator from the validator
|
||||||
// msgUndelegateDelegator := NewMsgUndelegate(delegatorAddr, validatorAddr, unbondAmt)
|
msgUndelegateDelegator := types.NewMsgUndelegate(delegatorAddr, validatorAddr, unbondAmt)
|
||||||
// res, err = handler(ctx, msgUndelegateDelegator)
|
res, err = handler(ctx, msgUndelegateDelegator)
|
||||||
// require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// require.NotNil(t, res)
|
require.NotNil(t, res)
|
||||||
//
|
|
||||||
// ctx = ctx.WithBlockTime(ctx.BlockHeader().Time.Add(keeper.UnbondingTime(ctx)))
|
ctx = ctx.WithBlockTime(ctx.BlockHeader().Time.Add(app.StakingKeeper.UnbondingTime(ctx)))
|
||||||
//
|
|
||||||
// // Run the EndBlocker
|
// Run the EndBlocker
|
||||||
// EndBlocker(ctx, keeper)
|
staking.EndBlocker(ctx, app.StakingKeeper)
|
||||||
//
|
|
||||||
// // Check to make sure that the unbonding delegation is no longer in state
|
// Check to make sure that the unbonding delegation is no longer in state
|
||||||
// // (meaning it was deleted in the above EndBlocker)
|
// (meaning it was deleted in the above EndBlocker)
|
||||||
// _, found := keeper.GetUnbondingDelegation(ctx, delegatorAddr, validatorAddr)
|
_, found := app.StakingKeeper.GetUnbondingDelegation(ctx, delegatorAddr, validatorAddr)
|
||||||
// require.False(t, found, "should be removed from state")
|
require.False(t, found, "should be removed from state")
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//func TestRedelegationPeriod(t *testing.T) {
|
func TestRedelegationPeriod(t *testing.T) {
|
||||||
// ctx, _, bk, keeper, _ := CreateTestInput(t, false, 1000)
|
app, ctx, _, valAddrs := bootstrapHandlerGenesisTest(t, 1000, 2, 1000000000)
|
||||||
// handler := NewHandler(keeper)
|
handler := staking.NewHandler(app.StakingKeeper)
|
||||||
// validatorAddr, validatorAddr2 := sdk.ValAddress(Addrs[0]), sdk.ValAddress(Addrs[1])
|
validatorAddr, validatorAddr2 := valAddrs[0], valAddrs[1]
|
||||||
// denom := keeper.GetParams(ctx).BondDenom
|
denom := app.StakingKeeper.GetParams(ctx).BondDenom
|
||||||
//
|
|
||||||
// // set the unbonding time
|
// set the unbonding time
|
||||||
// params := keeper.GetParams(ctx)
|
params := app.StakingKeeper.GetParams(ctx)
|
||||||
// params.UnbondingTime = 7 * time.Second
|
params.UnbondingTime = 7 * time.Second
|
||||||
// keeper.SetParams(ctx, params)
|
app.StakingKeeper.SetParams(ctx, params)
|
||||||
//
|
|
||||||
// // create the validators
|
// create the validators
|
||||||
// msgCreateValidator := NewTestMsgCreateValidator(validatorAddr, PKs[0], sdk.NewInt(10))
|
msgCreateValidator := NewTestMsgCreateValidator(validatorAddr, PKs[0], sdk.NewInt(10))
|
||||||
//
|
|
||||||
// // initial balance
|
// initial balance
|
||||||
// amt1 := bk.GetBalance(ctx, sdk.AccAddress(validatorAddr), denom).Amount
|
amt1 := app.BankKeeper.GetBalance(ctx, sdk.AccAddress(validatorAddr), denom).Amount
|
||||||
//
|
|
||||||
// res, err := handler(ctx, msgCreateValidator)
|
res, err := handler(ctx, msgCreateValidator)
|
||||||
// require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// require.NotNil(t, res)
|
require.NotNil(t, res)
|
||||||
//
|
|
||||||
// // balance should have been subtracted after creation
|
// balance should have been subtracted after creation
|
||||||
// amt2 := bk.GetBalance(ctx, sdk.AccAddress(validatorAddr), denom).Amount
|
amt2 := app.BankKeeper.GetBalance(ctx, sdk.AccAddress(validatorAddr), denom).Amount
|
||||||
// require.Equal(t, amt1.Sub(sdk.NewInt(10)).Int64(), amt2.Int64(), "expected coins to be subtracted")
|
require.Equal(t, amt1.Sub(sdk.NewInt(10)).Int64(), amt2.Int64(), "expected coins to be subtracted")
|
||||||
//
|
|
||||||
// msgCreateValidator = NewTestMsgCreateValidator(validatorAddr2, PKs[1], sdk.NewInt(10))
|
msgCreateValidator = NewTestMsgCreateValidator(validatorAddr2, PKs[1], sdk.NewInt(10))
|
||||||
// res, err = handler(ctx, msgCreateValidator)
|
res, err = handler(ctx, msgCreateValidator)
|
||||||
// require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// require.NotNil(t, res)
|
require.NotNil(t, res)
|
||||||
//
|
|
||||||
// bal1 := bk.GetAllBalances(ctx, sdk.AccAddress(validatorAddr))
|
bal1 := app.BankKeeper.GetAllBalances(ctx, sdk.AccAddress(validatorAddr))
|
||||||
//
|
|
||||||
// // begin redelegate
|
// begin redelegate
|
||||||
// redAmt := sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))
|
redAmt := sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))
|
||||||
// msgBeginRedelegate := NewMsgBeginRedelegate(sdk.AccAddress(validatorAddr), validatorAddr, validatorAddr2, redAmt)
|
msgBeginRedelegate := types.NewMsgBeginRedelegate(sdk.AccAddress(validatorAddr), validatorAddr, validatorAddr2, redAmt)
|
||||||
// res, err = handler(ctx, msgBeginRedelegate)
|
res, err = handler(ctx, msgBeginRedelegate)
|
||||||
// require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// require.NotNil(t, res)
|
require.NotNil(t, res)
|
||||||
//
|
|
||||||
// // origin account should not lose tokens as with a regular delegation
|
// origin account should not lose tokens as with a regular delegation
|
||||||
// bal2 := bk.GetAllBalances(ctx, sdk.AccAddress(validatorAddr))
|
bal2 := app.BankKeeper.GetAllBalances(ctx, sdk.AccAddress(validatorAddr))
|
||||||
// require.Equal(t, bal1, bal2)
|
require.Equal(t, bal1, bal2)
|
||||||
//
|
|
||||||
// origHeader := ctx.BlockHeader()
|
origHeader := ctx.BlockHeader()
|
||||||
//
|
|
||||||
// // cannot complete redelegation at same time
|
// cannot complete redelegation at same time
|
||||||
// EndBlocker(ctx, keeper)
|
staking.EndBlocker(ctx, app.StakingKeeper)
|
||||||
// _, found := keeper.GetRedelegation(ctx, sdk.AccAddress(validatorAddr), validatorAddr, validatorAddr2)
|
_, found := app.StakingKeeper.GetRedelegation(ctx, sdk.AccAddress(validatorAddr), validatorAddr, validatorAddr2)
|
||||||
// require.True(t, found, "should not have unbonded")
|
require.True(t, found, "should not have unbonded")
|
||||||
//
|
|
||||||
// // cannot complete redelegation at time 6 seconds later
|
// cannot complete redelegation at time 6 seconds later
|
||||||
// ctx = ctx.WithBlockTime(origHeader.Time.Add(time.Second * 6))
|
ctx = ctx.WithBlockTime(origHeader.Time.Add(time.Second * 6))
|
||||||
// EndBlocker(ctx, keeper)
|
staking.EndBlocker(ctx, app.StakingKeeper)
|
||||||
// _, found = keeper.GetRedelegation(ctx, sdk.AccAddress(validatorAddr), validatorAddr, validatorAddr2)
|
_, found = app.StakingKeeper.GetRedelegation(ctx, sdk.AccAddress(validatorAddr), validatorAddr, validatorAddr2)
|
||||||
// require.True(t, found, "should not have unbonded")
|
require.True(t, found, "should not have unbonded")
|
||||||
//
|
|
||||||
// // can complete redelegation at time 7 seconds later
|
// can complete redelegation at time 7 seconds later
|
||||||
// ctx = ctx.WithBlockTime(origHeader.Time.Add(time.Second * 7))
|
ctx = ctx.WithBlockTime(origHeader.Time.Add(time.Second * 7))
|
||||||
// EndBlocker(ctx, keeper)
|
staking.EndBlocker(ctx, app.StakingKeeper)
|
||||||
// _, found = keeper.GetRedelegation(ctx, sdk.AccAddress(validatorAddr), validatorAddr, validatorAddr2)
|
_, found = app.StakingKeeper.GetRedelegation(ctx, sdk.AccAddress(validatorAddr), validatorAddr, validatorAddr2)
|
||||||
// require.False(t, found, "should have unbonded")
|
require.False(t, found, "should have unbonded")
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//func TestTransitiveRedelegation(t *testing.T) {
|
//func TestTransitiveRedelegation(t *testing.T) {
|
||||||
// ctx, _, _, keeper, _ := CreateTestInput(t, false, 1000)
|
// ctx, _, _, keeper, _ := CreateTestInput(t, false, 1000)
|
||||||
// handler := NewHandler(keeper)
|
// handler := NewHandler(keeper)
|
||||||
|
|
Loading…
Reference in New Issue