ibc-go icon indicating copy to clipboard operation
ibc-go copied to clipboard

Support SDK dependency injection for v2 apps

Open alpe opened this issue 2 years ago • 5 comments
trafficstars

Summary

SDK 47 ships with the new dependency-injection framework used in app_v2.

As wasmd has a dependency to the ibc (core and other) keepers, we can not update our module to be used with the dependency-injection framework. There is no workaround AFAIK

Proposal

Please make the modules compatible to work with app v1 + v2.


For Admin Use

  • [ ] Not duplicate issue
  • [ ] Appropriate labels applied
  • [ ] Appropriate contributors tagged/assigned

alpe avatar May 04 '23 13:05 alpe

Thank you, @alpe, for opening this issue. How pressing is your need to have ibc-go compatible with app v2? Having also app v1 is blocking any urges development on your side?

crodriguezvega avatar May 12 '23 19:05 crodriguezvega

The v1 app is working with our sdk v47 integration. But as v2 had become the "preferred" setup (in build tags) we were eager to provide a fully compatible module with our official release. This is not possible due to our dependency on ibc-go in the wasmd module. We set the new goal for v2 support in the v0.41 release. Therefore it is not super urgent but blocking the integration work on our side.

alpe avatar May 15 '23 06:05 alpe

Thanks for the information, @alpe. What is your timeline for v0.41?

And If I understand correctly, then you would like to have this available in the v7 release line, right?

crodriguezvega avatar May 15 '23 08:05 crodriguezvega

v7.x would be nice to have a small change set only. We don't have a strict release schedule for v0.41 but target middle of April. As the work on our side had started already, it would be great to not have this pending for too long.

In https://github.com/CosmWasm/wasmd/pull/1287 we have a mixed v2 with v1 legacy module setup in /app. That could be some template for your test setup before adding full v2 support to the module.

alpe avatar May 19 '23 07:05 alpe

  • [x] Add buf pulsar generation (https://github.com/cosmos/ibc-go/pull/5968).
  • [x] Add depinject support to core module (https://github.com/cosmos/ibc-go/pull/5976)
  • [x] Add depinject support to transfer module (https://github.com/cosmos/ibc-go/pull/5977).
  • [x] Add depinject support to 29-fee module (https://github.com/cosmos/ibc-go/pull/6154).
  • [x] Add depinject support to 27-interchain-accounts module (https://github.com/cosmos/ibc-go/pull/6155).
  • [x] Add depinject support to 06-solomachine module (https://github.com/cosmos/ibc-go/pull/6156).
  • [x] Add depinject support to 07-tendermint module (https://github.com/cosmos/ibc-go/pull/6157).
  • [x] Add depinject support to 08-wasm module (https://github.com/cosmos/ibc-go/pull/6188).
  • [x] Add depinject support to capability (https://github.com/cosmos/ibc-go/pull/6158).
  • [ ] Setup simapp to use depinject (https://github.com/cosmos/ibc-go/pull/6216).

All the branches to add support to a module will need to branch off carlos/add-buf-gen-pulsar (at least until this branch is merged into feat/depinject).

Do we need also to add support in the mock module?

crodriguezvega avatar Mar 04 '24 09:03 crodriguezvega