From 5ed82db2f9254020b33df1193de467a0af12d1b3 Mon Sep 17 00:00:00 2001 From: "Jinseong.Cho" Date: Tue, 18 Oct 2022 17:00:43 +0900 Subject: [PATCH] fix typo in val_state_change.go (#728) * fix: typo in val_state_change.go * test: add test for panic in UnbondingToUnbonded function * chore: add changelog * test: change test code to check both cases check unbonding to unbonded from unbonded status and bonded status * test: delete duplicated update validator * chore: fix typo in changelog * chore: change logic to use range * chore: change pr number --- CHANGELOG.md | 1 + x/staking/keeper/val_state_change.go | 2 +- x/staking/keeper/val_state_change_test.go | 30 +++++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 x/staking/keeper/val_state_change_test.go diff --git a/CHANGELOG.md b/CHANGELOG.md index a6521f6edf..65cebf1935 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -106,6 +106,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (x/foundation) [\#712](https://github.com/line/lbm-sdk/pull/712) fix x/foundation EndBlocker * (baseapp) [\#724](https://github.com/line/lbm-sdk/pull/724) add checking pubkey type from validator params * (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 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) 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..5abed36e23 --- /dev/null +++ b/x/staking/keeper/val_state_change_test.go @@ -0,0 +1,30 @@ +package keeper_test + +import ( + "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, _, _, validators := initValidators(t, 100, 2, []int64{0, 100}) + + 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) + + // unbond validator which is in unbonded status + require.Panics(t, func() { + app.StakingKeeper.UnbondingToUnbonded(ctx, validators[0]) + }) + + // unbond validator which is in bonded status + require.Panics(t, func() { + app.StakingKeeper.UnbondingToUnbonded(ctx, validators[1]) + }) +}