Push Chain.SendMsgs in ibctesting to instead be an interface or passed in function #3123
Closed
3 tasks
Labels
testing
Testing package and unit/integration tests
type: refactor
Architecture, code or CI improvements that may or may not tackle technical debt.
Milestone
Summary
In Osmosis, governance has decided it needs to have a consensus minimum fee. An issue with doing so comes from ibctesting! (Txs failing due to 0 fee) Working on a quick hack to avoid this (at expense of test quality), but right now ibctesting assumes it can handle the
[]sdk.Msg -> Tx
conversion entirely on its own. This is done in this method: https://github.com/cosmos/ibc-go/blob/main/testing/chain.go#L313-L347 .SendMsgs is called in
coordinator.Setup(suite.path)
, so we can't really avoid this call happening. And its sensible for ibctesting to generally just need this method to work, in order to make the guarantees it needs to. I also suspect theres more guarantees / areas the caller could want to test (e.g. on a Network with no Secp keys, or who wants to have default path ensure threshold encryption accuracy)Proposal
I suggest we allow TestChain to have as a field, which we can set, to be an overrideable method to call for SendMsgs.
So this would look like:
An alternate option would be to make chain an interface (which is likely long term better), but that seems like a higher code lift.
For Admin Use
The text was updated successfully, but these errors were encountered: