Skip to content

Commit 53c7a1a

Browse files
colin-axnerDimitrisJim
andauthoredFeb 15, 2024
refactor: rename GetValsAtHeight to GetTrustedValidators (cosmos#5831)
* refactor: rename GetValsAtHeight to GetTrustedValidators * add migration doc entry * Update testing/chain.go * lint: make lint-fix to the rescue. --------- Co-authored-by: DimitrisJim <[email protected]>

File tree

4 files changed

+121
-120
lines changed

4 files changed

+121
-120
lines changed
 

‎docs/docs/05-migrations/13-v8-to-v9.md

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ Please use the new functions `path.Setup`, `path.SetupClients`, `path.SetupConne
4343

4444
- The `mock.PV` type has been removed in favour of [`cmttypes.MockPV`](https://github.com/cometbft/cometbft/blob/v0.38.5/types/priv_validator.go#L50) ([#5709](https://github.com/cosmos/ibc-go/pull/5709)).
4545
- Functions `ConstructUpdateTMClientHeader` and `ConstructUpdateTMClientHeaderWithTrustedHeight` of `TestChain` type have been replaced with `IBCClientHeader`. This function will construct a `07-tendermint` header to update the light client on the counterparty chain. The trusted height must be passed in as a non-zero height.
46+
- `GetValsAtHeight` has been renamed to `GetTrustedValidators`
4647

4748
## Relayers
4849

‎modules/light-clients/07-tendermint/misbehaviour_handle_test.go

+76-76
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
4141
"valid fork misbehaviour", func() {
4242
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
4343

44-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
45-
suite.Require().True(found)
44+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
45+
suite.Require().NoError(err)
4646

47-
err := path.EndpointA.UpdateClient()
47+
err = path.EndpointA.UpdateClient()
4848
suite.Require().NoError(err)
4949

5050
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -60,8 +60,8 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
6060
"valid time misbehaviour", func() {
6161
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
6262

63-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
64-
suite.Require().True(found)
63+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
64+
suite.Require().NoError(err)
6565

6666
misbehaviour = &ibctm.Misbehaviour{
6767
Header1: suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height+3, trustedHeight, suite.chainB.ProposedHeader.Time, suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers),
@@ -74,8 +74,8 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
7474
"valid time misbehaviour, header 1 time strictly less than header 2 time", func() {
7575
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
7676

77-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
78-
suite.Require().True(found)
77+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
78+
suite.Require().NoError(err)
7979

8080
misbehaviour = &ibctm.Misbehaviour{
8181
Header1: suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height+3, trustedHeight, suite.chainB.ProposedHeader.Time, suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers),
@@ -88,8 +88,8 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
8888
"valid misbehavior at height greater than last consensusState", func() {
8989
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
9090

91-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
92-
suite.Require().True(found)
91+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
92+
suite.Require().NoError(err)
9393

9494
misbehaviour = &ibctm.Misbehaviour{
9595
Header1: suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height+1, trustedHeight, suite.chainB.ProposedHeader.Time, suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers),
@@ -101,16 +101,16 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
101101
"valid misbehaviour with different trusted heights", func() {
102102
trustedHeight1 := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
103103

104-
trustedVals1, found := suite.chainB.GetValsAtHeight(int64(trustedHeight1.RevisionHeight))
105-
suite.Require().True(found)
104+
trustedVals1, err := suite.chainB.GetTrustedValidators(int64(trustedHeight1.RevisionHeight))
105+
suite.Require().NoError(err)
106106

107-
err := path.EndpointA.UpdateClient()
107+
err = path.EndpointA.UpdateClient()
108108
suite.Require().NoError(err)
109109

110110
trustedHeight2 := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
111111

112-
trustedVals2, found := suite.chainB.GetValsAtHeight(int64(trustedHeight2.RevisionHeight))
113-
suite.Require().True(found)
112+
trustedVals2, err := suite.chainB.GetTrustedValidators(int64(trustedHeight2.RevisionHeight))
113+
suite.Require().NoError(err)
114114

115115
misbehaviour = &ibctm.Misbehaviour{
116116
Header1: suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height, trustedHeight1, suite.chainB.ProposedHeader.Time.Add(time.Minute), suite.chainB.Vals, suite.chainB.NextVals, trustedVals1, suite.chainB.Signers),
@@ -123,10 +123,10 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
123123
"valid misbehaviour at a previous revision", func() {
124124
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
125125

126-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
127-
suite.Require().True(found)
126+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
127+
suite.Require().NoError(err)
128128

129-
err := path.EndpointA.UpdateClient()
129+
err = path.EndpointA.UpdateClient()
130130
suite.Require().NoError(err)
131131

132132
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -146,8 +146,8 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
146146
"valid misbehaviour at a future revision", func() {
147147
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
148148

149-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
150-
suite.Require().True(found)
149+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
150+
suite.Require().NoError(err)
151151

152152
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
153153

@@ -164,8 +164,8 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
164164
"valid misbehaviour with trusted heights at a previous revision", func() {
165165
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
166166

167-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
168-
suite.Require().True(found)
167+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
168+
suite.Require().NoError(err)
169169

170170
// increment revision of chainID
171171
err = path.EndpointB.UpgradeChain()
@@ -184,10 +184,10 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
184184
"consensus state's valset hash different from misbehaviour should still pass", func() {
185185
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
186186

187-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
188-
suite.Require().True(found)
187+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
188+
suite.Require().NoError(err)
189189

190-
err := path.EndpointA.UpdateClient()
190+
err = path.EndpointA.UpdateClient()
191191
suite.Require().NoError(err)
192192

193193
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -207,10 +207,10 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
207207
"invalid misbehaviour: misbehaviour from different chain", func() {
208208
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
209209

210-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
211-
suite.Require().True(found)
210+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
211+
suite.Require().NoError(err)
212212

213-
err := path.EndpointA.UpdateClient()
213+
err = path.EndpointA.UpdateClient()
214214
suite.Require().NoError(err)
215215

216216
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -240,8 +240,8 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
240240
"trusted consensus state does not exist", func() {
241241
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
242242

243-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
244-
suite.Require().True(found)
243+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
244+
suite.Require().NoError(err)
245245

246246
misbehaviour = &ibctm.Misbehaviour{
247247
Header1: suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height, trustedHeight.Increment().(clienttypes.Height), suite.chainB.ProposedHeader.Time.Add(time.Minute), suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers),
@@ -258,10 +258,10 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
258258
"trusting period expired", func() {
259259
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
260260

261-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
262-
suite.Require().True(found)
261+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
262+
suite.Require().NoError(err)
263263

264-
err := path.EndpointA.UpdateClient()
264+
err = path.EndpointA.UpdateClient()
265265
suite.Require().NoError(err)
266266

267267
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -278,10 +278,10 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
278278
"header 1 valset has too much change", func() {
279279
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
280280

281-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
282-
suite.Require().True(found)
281+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
282+
suite.Require().NoError(err)
283283

284-
err := path.EndpointA.UpdateClient()
284+
err = path.EndpointA.UpdateClient()
285285
suite.Require().NoError(err)
286286

287287
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -296,10 +296,10 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
296296
"header 2 valset has too much change", func() {
297297
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
298298

299-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
300-
suite.Require().True(found)
299+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
300+
suite.Require().NoError(err)
301301

302-
err := path.EndpointA.UpdateClient()
302+
err = path.EndpointA.UpdateClient()
303303
suite.Require().NoError(err)
304304

305305
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -314,10 +314,10 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
314314
"both header 1 and header 2 valsets have too much change", func() {
315315
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
316316

317-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
318-
suite.Require().True(found)
317+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
318+
suite.Require().NoError(err)
319319

320-
err := path.EndpointA.UpdateClient()
320+
err = path.EndpointA.UpdateClient()
321321
suite.Require().NoError(err)
322322

323323
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -389,10 +389,10 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
389389
"valid fork misbehaviour", func() {
390390
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
391391

392-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
393-
suite.Require().True(found)
392+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
393+
suite.Require().NoError(err)
394394

395-
err := path.EndpointA.UpdateClient()
395+
err = path.EndpointA.UpdateClient()
396396
suite.Require().NoError(err)
397397

398398
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -408,8 +408,8 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
408408
"valid time misbehaviour", func() {
409409
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
410410

411-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
412-
suite.Require().True(found)
411+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
412+
suite.Require().NoError(err)
413413

414414
misbehaviour = &ibctm.Misbehaviour{
415415
Header1: suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height+3, trustedHeight, suite.chainB.ProposedHeader.Time, suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers),
@@ -422,8 +422,8 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
422422
"valid time misbehaviour, header 1 time strictly less than header 2 time", func() {
423423
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
424424

425-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
426-
suite.Require().True(found)
425+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
426+
suite.Require().NoError(err)
427427

428428
misbehaviour = &ibctm.Misbehaviour{
429429
Header1: suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height+3, trustedHeight, suite.chainB.ProposedHeader.Time, suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers),
@@ -436,8 +436,8 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
436436
"valid misbehavior at height greater than last consensusState", func() {
437437
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
438438

439-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
440-
suite.Require().True(found)
439+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
440+
suite.Require().NoError(err)
441441

442442
misbehaviour = &ibctm.Misbehaviour{
443443
Header1: suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height+1, trustedHeight, suite.chainB.ProposedHeader.Time, suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers),
@@ -449,16 +449,16 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
449449
"valid misbehaviour with different trusted heights", func() {
450450
trustedHeight1 := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
451451

452-
trustedVals1, found := suite.chainB.GetValsAtHeight(int64(trustedHeight1.RevisionHeight))
453-
suite.Require().True(found)
452+
trustedVals1, err := suite.chainB.GetTrustedValidators(int64(trustedHeight1.RevisionHeight))
453+
suite.Require().NoError(err)
454454

455-
err := path.EndpointA.UpdateClient()
455+
err = path.EndpointA.UpdateClient()
456456
suite.Require().NoError(err)
457457

458458
trustedHeight2 := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
459459

460-
trustedVals2, found := suite.chainB.GetValsAtHeight(int64(trustedHeight2.RevisionHeight))
461-
suite.Require().True(found)
460+
trustedVals2, err := suite.chainB.GetTrustedValidators(int64(trustedHeight2.RevisionHeight))
461+
suite.Require().NoError(err)
462462

463463
misbehaviour = &ibctm.Misbehaviour{
464464
Header1: suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height, trustedHeight1, suite.chainB.ProposedHeader.Time.Add(time.Minute), suite.chainB.Vals, suite.chainB.NextVals, trustedVals1, suite.chainB.Signers),
@@ -471,10 +471,10 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
471471
"consensus state's valset hash different from misbehaviour should still pass", func() {
472472
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
473473

474-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
475-
suite.Require().True(found)
474+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
475+
suite.Require().NoError(err)
476476

477-
err := path.EndpointA.UpdateClient()
477+
err = path.EndpointA.UpdateClient()
478478
suite.Require().NoError(err)
479479

480480
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -494,10 +494,10 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
494494
"invalid misbehaviour: misbehaviour from different chain", func() {
495495
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
496496

497-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
498-
suite.Require().True(found)
497+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
498+
suite.Require().NoError(err)
499499

500-
err := path.EndpointA.UpdateClient()
500+
err = path.EndpointA.UpdateClient()
501501
suite.Require().NoError(err)
502502

503503
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -512,7 +512,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
512512
"misbehaviour trusted validators does not match validator hash in trusted consensus state", func() {
513513
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
514514

515-
err := path.EndpointA.UpdateClient()
515+
err = path.EndpointA.UpdateClient()
516516
suite.Require().NoError(err)
517517

518518
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -527,8 +527,8 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
527527
"trusted consensus state does not exist", func() {
528528
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
529529

530-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
531-
suite.Require().True(found)
530+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
531+
suite.Require().NoError(err)
532532

533533
misbehaviour = &ibctm.Misbehaviour{
534534
Header1: suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height, trustedHeight.Increment().(clienttypes.Height), suite.chainB.ProposedHeader.Time.Add(time.Minute), suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers),
@@ -545,10 +545,10 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
545545
"trusting period expired", func() {
546546
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
547547

548-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
549-
suite.Require().True(found)
548+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
549+
suite.Require().NoError(err)
550550

551-
err := path.EndpointA.UpdateClient()
551+
err = path.EndpointA.UpdateClient()
552552
suite.Require().NoError(err)
553553

554554
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -565,10 +565,10 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
565565
"header 1 valset has too much change", func() {
566566
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
567567

568-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
569-
suite.Require().True(found)
568+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
569+
suite.Require().NoError(err)
570570

571-
err := path.EndpointA.UpdateClient()
571+
err = path.EndpointA.UpdateClient()
572572
suite.Require().NoError(err)
573573

574574
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -583,10 +583,10 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
583583
"header 2 valset has too much change", func() {
584584
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
585585

586-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
587-
suite.Require().True(found)
586+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
587+
suite.Require().NoError(err)
588588

589-
err := path.EndpointA.UpdateClient()
589+
err = path.EndpointA.UpdateClient()
590590
suite.Require().NoError(err)
591591

592592
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -601,10 +601,10 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
601601
"both header 1 and header 2 valsets have too much change", func() {
602602
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
603603

604-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
605-
suite.Require().True(found)
604+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
605+
suite.Require().NoError(err)
606606

607-
err := path.EndpointA.UpdateClient()
607+
err = path.EndpointA.UpdateClient()
608608
suite.Require().NoError(err)
609609

610610
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)

‎modules/light-clients/07-tendermint/update_test.go

+35-35
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ func (suite *TendermintTestSuite) TestVerifyHeader() {
4949
malleate: func() {
5050
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
5151

52-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
53-
suite.Require().True(found)
52+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight) + 1)
53+
suite.Require().NoError(err)
5454

5555
// passing the ProposedHeader.Height as the block height as it will become a previous height once we commit N blocks
5656
header = suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height, trustedHeight, suite.chainB.ProposedHeader.Time, suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers)
@@ -68,8 +68,8 @@ func (suite *TendermintTestSuite) TestVerifyHeader() {
6868
malleate: func() {
6969
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
7070

71-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
72-
suite.Require().True(found)
71+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight) + 1)
72+
suite.Require().NoError(err)
7373

7474
// Create bothValSet with both suite validator and altVal
7575
bothValSet := cmttypes.NewValidatorSet(append(suite.chainB.Vals.Validators, altVal))
@@ -85,8 +85,8 @@ func (suite *TendermintTestSuite) TestVerifyHeader() {
8585
malleate: func() {
8686
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
8787

88-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
89-
suite.Require().True(found)
88+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight) + 1)
89+
suite.Require().NoError(err)
9090

9191
// Create bothValSet with both suite validator and altVal
9292
bothValSet := cmttypes.NewValidatorSet(append(suite.chainB.Vals.Validators, altVal))
@@ -116,8 +116,8 @@ func (suite *TendermintTestSuite) TestVerifyHeader() {
116116
malleate: func() {
117117
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
118118

119-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
120-
suite.Require().True(found)
119+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight) + 1)
120+
suite.Require().NoError(err)
121121

122122
// this will err as altValSet.Hash() != consState.NextValidatorsHash
123123
header = suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height+1, trustedHeight, suite.chainB.ProposedHeader.Time, altValSet, altValSet, trustedVals, altSigners)
@@ -129,8 +129,8 @@ func (suite *TendermintTestSuite) TestVerifyHeader() {
129129
malleate: func() {
130130
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
131131

132-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
133-
suite.Require().True(found)
132+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight) + 1)
133+
suite.Require().NoError(err)
134134

135135
header = suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height+1, trustedHeight, suite.chainB.ProposedHeader.Time, altValSet, altValSet, trustedVals, altSigners)
136136
},
@@ -140,8 +140,8 @@ func (suite *TendermintTestSuite) TestVerifyHeader() {
140140
name: "unsuccessful verify header: header height revision and trusted height revision mismatch",
141141
malleate: func() {
142142
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
143-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
144-
suite.Require().True(found)
143+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight) + 1)
144+
suite.Require().NoError(err)
145145

146146
header = suite.chainB.CreateTMClientHeader(chainIDRevision1, 3, trustedHeight, suite.chainB.ProposedHeader.Time, suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers)
147147
},
@@ -152,8 +152,8 @@ func (suite *TendermintTestSuite) TestVerifyHeader() {
152152
malleate: func() {
153153
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
154154

155-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
156-
suite.Require().True(found)
155+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight) + 1)
156+
suite.Require().NoError(err)
157157

158158
heightMinus1 := clienttypes.NewHeight(trustedHeight.RevisionNumber, trustedHeight.RevisionHeight-1)
159159

@@ -175,8 +175,8 @@ func (suite *TendermintTestSuite) TestVerifyHeader() {
175175
malleate: func() {
176176
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
177177

178-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
179-
suite.Require().True(found)
178+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
179+
suite.Require().NoError(err)
180180

181181
header = suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height+1, trustedHeight, suite.chainB.ProposedHeader.Time.Add(-time.Minute), suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers)
182182
},
@@ -187,8 +187,8 @@ func (suite *TendermintTestSuite) TestVerifyHeader() {
187187
malleate: func() {
188188
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
189189

190-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
191-
suite.Require().True(found)
190+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
191+
suite.Require().NoError(err)
192192

193193
header = suite.chainB.CreateTMClientHeader(chainID, suite.chainB.ProposedHeader.Height+1, trustedHeight, suite.chainB.ProposedHeader.Time, suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers)
194194
},
@@ -199,8 +199,8 @@ func (suite *TendermintTestSuite) TestVerifyHeader() {
199199
malleate: func() {
200200
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
201201

202-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
203-
suite.Require().True(found)
202+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
203+
suite.Require().NoError(err)
204204

205205
header = suite.chainA.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height+1, trustedHeight, suite.chainB.ProposedHeader.Time, suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers)
206206

@@ -213,8 +213,8 @@ func (suite *TendermintTestSuite) TestVerifyHeader() {
213213
malleate: func() {
214214
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
215215

216-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
217-
suite.Require().True(found)
216+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight) + 1)
217+
suite.Require().NoError(err)
218218

219219
// passing the ProposedHeader.Height as the block height as it will become an update to previous revision once we upgrade the client
220220
header = suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height, trustedHeight, suite.chainB.ProposedHeader.Time, suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers)
@@ -230,8 +230,8 @@ func (suite *TendermintTestSuite) TestVerifyHeader() {
230230
malleate: func() {
231231
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
232232

233-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
234-
suite.Require().True(found)
233+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight) + 1)
234+
suite.Require().NoError(err)
235235

236236
// passing the ProposedHeader.Height as the block height as it will become a previous height once we commit N blocks
237237
header = suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height, trustedHeight, suite.chainB.ProposedHeader.Time, suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers)
@@ -248,8 +248,8 @@ func (suite *TendermintTestSuite) TestVerifyHeader() {
248248
malleate: func() {
249249
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
250250

251-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
252-
suite.Require().True(found)
251+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight) + 1)
252+
suite.Require().NoError(err)
253253

254254
header = suite.chainB.CreateTMClientHeader(suite.chainB.ChainID+"-1", suite.chainB.ProposedHeader.Height+5, trustedHeight, suite.chainB.ProposedHeader.Time, suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers)
255255
},
@@ -261,8 +261,8 @@ func (suite *TendermintTestSuite) TestVerifyHeader() {
261261
malleate: func() {
262262
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
263263

264-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
265-
suite.Require().True(found)
264+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight) + 1)
265+
suite.Require().NoError(err)
266266

267267
// increment the revision of the chain
268268
err = path.EndpointB.UpgradeChain()
@@ -646,10 +646,10 @@ func (suite *TendermintTestSuite) TestCheckForMisbehaviour() {
646646
"invalid fork misbehaviour: identical headers", func() {
647647
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
648648

649-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
650-
suite.Require().True(found)
649+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight) + 1)
650+
suite.Require().NoError(err)
651651

652-
err := path.EndpointA.UpdateClient()
652+
err = path.EndpointA.UpdateClient()
653653
suite.Require().NoError(err)
654654

655655
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -665,8 +665,8 @@ func (suite *TendermintTestSuite) TestCheckForMisbehaviour() {
665665
"invalid time misbehaviour: monotonically increasing time", func() {
666666
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
667667

668-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
669-
suite.Require().True(found)
668+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight) + 1)
669+
suite.Require().NoError(err)
670670

671671
clientMessage = &ibctm.Misbehaviour{
672672
Header1: suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height+3, trustedHeight, suite.chainB.ProposedHeader.Time.Add(time.Minute), suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers),
@@ -750,8 +750,8 @@ func (suite *TendermintTestSuite) TestCheckForMisbehaviour() {
750750
"valid time misbehaviour: not monotonically increasing time", func() {
751751
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
752752

753-
trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
754-
suite.Require().True(found)
753+
trustedVals, err := suite.chainB.GetTrustedValidators(int64(trustedHeight.RevisionHeight) + 1)
754+
suite.Require().NoError(err)
755755

756756
clientMessage = &ibctm.Misbehaviour{
757757
Header2: suite.chainB.CreateTMClientHeader(suite.chainB.ChainID, suite.chainB.ProposedHeader.Height+3, trustedHeight, suite.chainB.ProposedHeader.Time.Add(time.Minute), suite.chainB.Vals, suite.chainB.NextVals, trustedVals, suite.chainB.Signers),

‎testing/chain.go

+9-9
Original file line numberDiff line numberDiff line change
@@ -399,9 +399,9 @@ func (chain *TestChain) GetConsensusState(clientID string, height exported.Heigh
399399
return chain.App.GetIBCKeeper().ClientKeeper.GetClientConsensusState(chain.GetContext(), clientID, height)
400400
}
401401

402-
// GetValsAtHeight will return the trusted validator set of the chain for the given trusted height. It will return
403-
// a success boolean depending on if the validator set exists or not at that height.
404-
func (chain *TestChain) GetValsAtHeight(trustedHeight int64) (*cmttypes.ValidatorSet, bool) {
402+
// GetTrustedValidators will return the trusted validator set of the chain for the given trusted height. Otherwise
403+
// it will return an error.
404+
func (chain *TestChain) GetTrustedValidators(trustedHeight int64) (*cmttypes.ValidatorSet, error) {
405405
// historical information does not store the validator set which committed the header at
406406
// height h. During BeginBlock, it stores the last updated validator set. This is equivalent to
407407
// the next validator set at height h. This is because cometbft processes the validator set
@@ -418,7 +418,7 @@ func (chain *TestChain) GetValsAtHeight(trustedHeight int64) (*cmttypes.Validato
418418
// for height h, we can simply query using the trusted height.
419419
histInfo, err := chain.App.GetStakingKeeper().GetHistoricalInfo(chain.GetContext(), trustedHeight)
420420
if err != nil {
421-
return nil, false
421+
return nil, err
422422
}
423423

424424
valSet := stakingtypes.Validators{
@@ -427,9 +427,9 @@ func (chain *TestChain) GetValsAtHeight(trustedHeight int64) (*cmttypes.Validato
427427

428428
tmValidators, err := testutil.ToCmtValidators(valSet, sdk.DefaultPowerReduction)
429429
if err != nil {
430-
panic(err)
430+
return nil, err
431431
}
432-
return cmttypes.NewValidatorSet(tmValidators), true
432+
return cmttypes.NewValidatorSet(tmValidators), nil
433433
}
434434

435435
// GetAcknowledgement retrieves an acknowledgement for the provided packet. If the
@@ -633,9 +633,9 @@ func (chain *TestChain) IBCClientHeader(header *ibctm.Header, trustedHeight clie
633633
return nil, errorsmod.Wrap(ibctm.ErrInvalidHeaderHeight, "trustedHeight must be a non-zero height")
634634
}
635635

636-
cmtTrustedVals, ok := chain.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
637-
if !ok {
638-
return nil, errorsmod.Wrapf(ibctm.ErrInvalidHeaderHeight, "could not retrieve trusted validators at trustedHeight: %d", trustedHeight)
636+
cmtTrustedVals, err := chain.GetTrustedValidators(int64(trustedHeight.RevisionHeight))
637+
if err != nil {
638+
return nil, err
639639
}
640640

641641
trustedVals, err := cmtTrustedVals.ToProto()

0 commit comments

Comments
 (0)
Please sign in to comment.