From 966e26d23ddc62553fa46155036cc2d4d25f14ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?colin=20axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Mon, 23 Nov 2020 16:10:25 +0100 Subject: [PATCH] Fix tendermint misbehaviour trusted consensus state age check (#8006) * use TrustingPeriod instead of UnbondingPeriod when verifying the age of the trusted consensus state * update comment --- .../07-tendermint/types/misbehaviour_handle.go | 10 +++++----- .../07-tendermint/types/misbehaviour_handle_test.go | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/x/ibc/light-clients/07-tendermint/types/misbehaviour_handle.go b/x/ibc/light-clients/07-tendermint/types/misbehaviour_handle.go index b27cc06a45..1f1a6943ce 100644 --- a/x/ibc/light-clients/07-tendermint/types/misbehaviour_handle.go +++ b/x/ibc/light-clients/07-tendermint/types/misbehaviour_handle.go @@ -92,12 +92,12 @@ func checkMisbehaviourHeader( return err } - // assert that the timestamp is not from more than an unbonding period ago - if currentTimestamp.Sub(consState.Timestamp) >= clientState.UnbondingPeriod { + // assert that the age of the trusted consensus state is not older than the trusting period + if currentTimestamp.Sub(consState.Timestamp) >= clientState.TrustingPeriod { return sdkerrors.Wrapf( - ErrUnbondingPeriodExpired, - "current timestamp minus the latest consensus state timestamp is greater than or equal to the unbonding period (%d >= %d)", - currentTimestamp.Sub(consState.Timestamp), clientState.UnbondingPeriod, + ErrTrustingPeriodExpired, + "current timestamp minus the latest consensus state timestamp is greater than or equal to the trusting period (%d >= %d)", + currentTimestamp.Sub(consState.Timestamp), clientState.TrustingPeriod, ) } diff --git a/x/ibc/light-clients/07-tendermint/types/misbehaviour_handle_test.go b/x/ibc/light-clients/07-tendermint/types/misbehaviour_handle_test.go index 6d8cd5e32a..65ec7163d8 100644 --- a/x/ibc/light-clients/07-tendermint/types/misbehaviour_handle_test.go +++ b/x/ibc/light-clients/07-tendermint/types/misbehaviour_handle_test.go @@ -256,7 +256,7 @@ func (suite *TendermintTestSuite) TestCheckMisbehaviourAndUpdateState() { false, }, { - "unbonding period expired", + "trusting period expired", types.NewClientState(chainID, types.DefaultTrustLevel, trustingPeriod, ubdPeriod, maxClockDrift, height, commitmenttypes.GetSDKSpecs(), upgradePath, false, false), types.NewConsensusState(time.Time{}, commitmenttypes.NewMerkleRoot(tmhash.Sum([]byte("app_hash"))), bothValsHash), heightMinus1, @@ -267,7 +267,7 @@ func (suite *TendermintTestSuite) TestCheckMisbehaviourAndUpdateState() { Header2: suite.chainA.CreateTMClientHeader(chainID, int64(height.VersionHeight), height, suite.now.Add(time.Minute), bothValSet, bothValSet, bothSigners), ClientId: chainID, }, - suite.now.Add(ubdPeriod), + suite.now.Add(trustingPeriod), false, }, {