chore: set up IBCTestStakingKeeper interface #2028
Conversation
colin-axner
left a comment
There was a problem hiding this comment.
LGTM, you'll need to update the GetStakingKeeper function in simapp/app.go as well. The readme needs to be updated too. Left a few comments
testing/README.md
Outdated
| // ibc-go additions | ||
| GetBaseApp() *baseapp.BaseApp | ||
| GetStakingKeeper() stakingkeeper.Keeper | ||
| GetIBCTestStakingKeeper() ibctestingtypes.StakingKeeper |
There was a problem hiding this comment.
I honestly liked the name GetStakingKeeper, since the name of the type already indicates that this is for testing, so I consider that is redundant to add Test in the name of the function... But no problem if we decide to rename it.
There was a problem hiding this comment.
i renamed on request from @ValarDragon in the issue, i don't have a particularly strong opinion either way tho. I can see the value add in being explicit, but it is true that the type is also quite informative.
There was a problem hiding this comment.
I think now that the interface returns the ibctestingtypes.StakingKeeper it can be redundant. I do agree GetStakingKeeper is cleaner, but I understand this function will be implemented in app.go for a production chain.
@ValarDragon do you still prefer GetIBCTestStakingKeeper given the new return value
crodriguezvega
left a comment
There was a problem hiding this comment.
Thanks for picking this up, @charleenfei!
| require.True(t, ok) | ||
|
|
||
| val := chainA.App.GetStakingKeeper().GetValidators(chainA.GetContext(), 4) | ||
| val := chainA.GetSimApp().StakingKeeper.GetValidators(chainA.GetContext(), 4) |
There was a problem hiding this comment.
Is it not possible to keep using App.GetIBCTestStakingKeeper() and add GetValidators and Delegate to the StakingKeeper interface?
There was a problem hiding this comment.
i think the idea is that in our simApp, we would continue using the staking module's staking keeper so we don't actually need to add these two methods as they are already there.
it's just that in the testing chain and testing app setup, we would like to enable osmosis to swap out their customised interfluid staking keeper so they can use our testing setup. this is why we only need to add that one method which is used in the testing/chain.go file to the new interface.
There was a problem hiding this comment.
I actually requested those functions to not be added. I think we should keep our interfaces as small as possible (ideally we wouldn't even need the staking keeper interface)
colin-axner
left a comment
There was a problem hiding this comment.
LGTM. Could you add a changelog entry?
I'm also okay leaving the GetStakingKeeper name as is and doing in a followup pr if it is still desired. I don't have strong preferences though
Codecov Report
@@ Coverage Diff @@
## main #2028 +/- ##
=======================================
Coverage 80.03% 80.03%
=======================================
Files 167 167
Lines 11784 11784
=======================================
Hits 9431 9431
Misses 1936 1936
Partials 417 417
|
* initial interface definition * update simapp * update godocs (cherry picked from commit 4d4dbcf)
|
We should probably add a note about the API change in the migration docs. Maybe link the simapp change we have as well? |
* initial interface definition * update simapp * update godocs (cherry picked from commit 4d4dbcf) Co-authored-by: Charly <[email protected]> Co-authored-by: Damian Nolan <[email protected]>
* initial interface definition * update simapp * update godocs (cherry picked from commit 4d4dbcf) # Conflicts: # CHANGELOG.md # testing/app.go # testing/simapp/app.go
* chore: set up IBCTestStakingKeeper interface (#2028) * initial interface definition * update simapp * update godocs (cherry picked from commit 4d4dbcf) # Conflicts: # CHANGELOG.md # testing/app.go # testing/simapp/app.go * resolving conflicts Co-authored-by: Charly <[email protected]> Co-authored-by: Damian Nolan <[email protected]> Co-authored-by: Carlos Rodriguez <[email protected]>
Description
closes: #1971
Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.
docs/) or specification (x/<module>/spec/)godoccomments.Unreleasedsection inCHANGELOG.mdFiles changedin the Github PR explorerCodecov Reportin the comment section below once CI passes