From a2b56e89a3e1e5aa963dac159f8a9b5b83fc8923 Mon Sep 17 00:00:00 2001 From: "jinseong.cho" Date: Wed, 12 Oct 2022 14:51:30 +0900 Subject: [PATCH 1/8] fix: typo in val_state_change.go --- x/staking/keeper/val_state_change.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/staking/keeper/val_state_change.go b/x/staking/keeper/val_state_change.go index bc8b6cbcb6..1a6ced8914 100644 --- a/x/staking/keeper/val_state_change.go +++ b/x/staking/keeper/val_state_change.go @@ -249,7 +249,7 @@ func (k Keeper) unbondedToBonded(ctx sdk.Context, validator types.Validator) (ty // UnbondingToUnbonded switches a validator from unbonding state to unbonded state func (k Keeper) UnbondingToUnbonded(ctx sdk.Context, validator types.Validator) types.Validator { if !validator.IsUnbonding() { - panic(fmt.Sprintf("bad state transition unbondingToBonded, validator: %v\n", validator)) + panic(fmt.Sprintf("bad state transition unbondingToUnbonded, validator: %v\n", validator)) } return k.completeUnbondingValidator(ctx, validator) From 848efd7280052eda4c15c11d0b1a612a2373a38d Mon Sep 17 00:00:00 2001 From: "jinseong.cho" Date: Thu, 13 Oct 2022 16:49:31 +0900 Subject: [PATCH 2/8] test: add test for panic in UnbondingToUnbonded function --- x/staking/keeper/val_state_change_test.go | 25 +++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 x/staking/keeper/val_state_change_test.go diff --git a/x/staking/keeper/val_state_change_test.go b/x/staking/keeper/val_state_change_test.go new file mode 100644 index 0000000000..87bb00cdf8 --- /dev/null +++ b/x/staking/keeper/val_state_change_test.go @@ -0,0 +1,25 @@ +package keeper_test + +import ( + "github.com/line/lbm-sdk/simapp" + sdk "github.com/line/lbm-sdk/types" + "github.com/line/lbm-sdk/x/staking/teststaking" + "github.com/stretchr/testify/require" + "testing" +) + +func TestUnbondingToUnbondedPanic(t *testing.T) { + _, app, ctx := createTestInput() + + //create a validator + addrDels := simapp.AddTestAddrs(app, ctx, 1, sdk.NewInt(0)) + addrVals := simapp.ConvertAddrsToValAddrs(addrDels) + + validator := teststaking.NewValidator(t, addrVals[0], PKs[0]) + app.StakingKeeper.SetValidatorByConsAddr(ctx, validator) + + // unbond the validator + require.Panics(t, func() { + app.StakingKeeper.UnbondingToUnbonded(ctx, validator) + }) +} From 55ce9a3e0d00a96284110b26183c6d916e30da9c Mon Sep 17 00:00:00 2001 From: "jinseong.cho" Date: Thu, 13 Oct 2022 17:15:26 +0900 Subject: [PATCH 3/8] chore: add changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index be30f71e56..42e3f036c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -96,6 +96,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (x/foundation) [\#687](https://github.com/line/lbm-sdk/pull/687) fix bugs on aborting x/foundation proposals * (global) [\#694](https://github.com/line/lbm-sdk/pull/694) replace deprecated functions since go 1.16 or 1.17 * (x/bankplus) [\#705](https://github.com/line/lbm-sdk/pull/705) add missing blockedAddr checking in bankplus +* (x/staking) [\#707](https://github.com/line/lbm-sdk/pull/707) fix typo in unbondingToUnbonded() painc ### Breaking Changes * (proto) [\#564](https://github.com/line/lbm-sdk/pull/564) change gRPC path to original cosmos path From f50250678a50c155c8a0037c365e8eaff3b6bc89 Mon Sep 17 00:00:00 2001 From: "jinseong.cho" Date: Fri, 14 Oct 2022 01:55:12 +0900 Subject: [PATCH 4/8] test: change test code to check both cases check unbonding to unbonded from unbonded status and bonded status --- x/staking/keeper/val_state_change_test.go | 27 ++++++++++++++--------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/x/staking/keeper/val_state_change_test.go b/x/staking/keeper/val_state_change_test.go index 87bb00cdf8..dbae1aa188 100644 --- a/x/staking/keeper/val_state_change_test.go +++ b/x/staking/keeper/val_state_change_test.go @@ -1,25 +1,30 @@ package keeper_test import ( - "github.com/line/lbm-sdk/simapp" - sdk "github.com/line/lbm-sdk/types" - "github.com/line/lbm-sdk/x/staking/teststaking" + "github.com/line/lbm-sdk/x/staking/keeper" + "github.com/line/lbm-sdk/x/staking/types" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "testing" ) func TestUnbondingToUnbondedPanic(t *testing.T) { - _, app, ctx := createTestInput() + app, ctx, _, _, validators := initValidators(t, 100, 2, []int64{0, 100}) - //create a validator - addrDels := simapp.AddTestAddrs(app, ctx, 1, sdk.NewInt(0)) - addrVals := simapp.ConvertAddrsToValAddrs(addrDels) + validators[0] = keeper.TestingUpdateValidator(app.StakingKeeper, ctx, validators[0], false) + validators[1] = keeper.TestingUpdateValidator(app.StakingKeeper, ctx, validators[1], false) + applyValidatorSetUpdates(t, ctx, app.StakingKeeper, 1) - validator := teststaking.NewValidator(t, addrVals[0], PKs[0]) - app.StakingKeeper.SetValidatorByConsAddr(ctx, validator) + assert.Equal(t, validators[0].Status, types.Unbonded) + assert.Equal(t, validators[1].Status, types.Bonded) - // unbond the validator + // unbond validator which is in unbonded status require.Panics(t, func() { - app.StakingKeeper.UnbondingToUnbonded(ctx, validator) + app.StakingKeeper.UnbondingToUnbonded(ctx, validators[0]) + }) + + // unbond validator which is in bonded status + require.Panics(t, func() { + app.StakingKeeper.UnbondingToUnbonded(ctx, validators[1]) }) } From 0db7dc99fa849a784d57ae0132fad7db72ac32c4 Mon Sep 17 00:00:00 2001 From: "jinseong.cho" Date: Fri, 14 Oct 2022 11:33:48 +0900 Subject: [PATCH 5/8] test: delete duplicated update validator --- x/staking/keeper/val_state_change_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/x/staking/keeper/val_state_change_test.go b/x/staking/keeper/val_state_change_test.go index dbae1aa188..ca6349d638 100644 --- a/x/staking/keeper/val_state_change_test.go +++ b/x/staking/keeper/val_state_change_test.go @@ -13,7 +13,6 @@ func TestUnbondingToUnbondedPanic(t *testing.T) { validators[0] = keeper.TestingUpdateValidator(app.StakingKeeper, ctx, validators[0], false) validators[1] = keeper.TestingUpdateValidator(app.StakingKeeper, ctx, validators[1], false) - applyValidatorSetUpdates(t, ctx, app.StakingKeeper, 1) assert.Equal(t, validators[0].Status, types.Unbonded) assert.Equal(t, validators[1].Status, types.Bonded) From 21f6667bca312b9d094bcb0ee998b2ac20a43d3c Mon Sep 17 00:00:00 2001 From: "jinseong.cho" Date: Mon, 17 Oct 2022 12:45:26 +0900 Subject: [PATCH 6/8] chore: fix typo in changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42e3f036c3..d49107d7d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -96,7 +96,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (x/foundation) [\#687](https://github.com/line/lbm-sdk/pull/687) fix bugs on aborting x/foundation proposals * (global) [\#694](https://github.com/line/lbm-sdk/pull/694) replace deprecated functions since go 1.16 or 1.17 * (x/bankplus) [\#705](https://github.com/line/lbm-sdk/pull/705) add missing blockedAddr checking in bankplus -* (x/staking) [\#707](https://github.com/line/lbm-sdk/pull/707) fix typo in unbondingToUnbonded() painc +* (x/staking) [\#707](https://github.com/line/lbm-sdk/pull/707) fix typo in unbondingToUnbonded() panic ### Breaking Changes * (proto) [\#564](https://github.com/line/lbm-sdk/pull/564) change gRPC path to original cosmos path From 1b67bc13f2300db054386568283101d8b6db1923 Mon Sep 17 00:00:00 2001 From: "jinseong.cho" Date: Mon, 17 Oct 2022 13:03:27 +0900 Subject: [PATCH 7/8] chore: change logic to use range --- x/staking/keeper/val_state_change_test.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/x/staking/keeper/val_state_change_test.go b/x/staking/keeper/val_state_change_test.go index ca6349d638..5abed36e23 100644 --- a/x/staking/keeper/val_state_change_test.go +++ b/x/staking/keeper/val_state_change_test.go @@ -11,8 +11,9 @@ import ( func TestUnbondingToUnbondedPanic(t *testing.T) { app, ctx, _, _, validators := initValidators(t, 100, 2, []int64{0, 100}) - validators[0] = keeper.TestingUpdateValidator(app.StakingKeeper, ctx, validators[0], false) - validators[1] = keeper.TestingUpdateValidator(app.StakingKeeper, ctx, validators[1], false) + for i, validator := range validators { + validators[i] = keeper.TestingUpdateValidator(app.StakingKeeper, ctx, validator, false) + } assert.Equal(t, validators[0].Status, types.Unbonded) assert.Equal(t, validators[1].Status, types.Bonded) From 1a6cfed51989e911545e36159d42f3c0d1514eb1 Mon Sep 17 00:00:00 2001 From: "jinseong.cho" Date: Tue, 18 Oct 2022 13:58:41 +0900 Subject: [PATCH 8/8] chore: change pr number --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 356e4a8599..85828afc8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -102,9 +102,9 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (x/foundation) [\#687](https://github.com/line/lbm-sdk/pull/687) fix bugs on aborting x/foundation proposals * (global) [\#694](https://github.com/line/lbm-sdk/pull/694) replace deprecated functions since go 1.16 or 1.17 * (x/bankplus) [\#705](https://github.com/line/lbm-sdk/pull/705) add missing blockedAddr checking in bankplus -* (x/staking) [\#707](https://github.com/line/lbm-sdk/pull/707) fix typo in unbondingToUnbonded() panic * (x/foundation) [\#712](https://github.com/line/lbm-sdk/pull/712) fix x/foundation EndBlocker * (x/staking) [\#726](https://github.com/line/lbm-sdk/pull/726) check allowedList size in StakeAuthorization.Accept() +* (x/staking) [\#728](https://github.com/line/lbm-sdk/pull/728) fix typo in unbondingToUnbonded() panic ### Breaking Changes * (proto) [\#564](https://github.com/line/lbm-sdk/pull/564) change gRPC path to original cosmos path