Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate Async ICQ #4207

Merged
merged 4 commits into from
Feb 3, 2023
Merged

Integrate Async ICQ #4207

merged 4 commits into from
Feb 3, 2023

Conversation

nicolaslara
Copy link
Contributor

Closes: #4147

What is the purpose of the change

Integrates Async ICQ into osmosis (https://github.com/strangelove-ventures/async-icq)

Brief Changelog

  • Integrates async ICQ into osmosis

Testing and Verifying

All tests pass

Documentation and Release Note

  • Does this pull request introduce a new feature or user-facing behavior changes? (yes / no)
  • Is a relevant changelog entry added to the Unreleased section in CHANGELOG.md? (yes / no)
  • How is the feature or change documented? (not applicable / specification (x/<module>/spec/) / Osmosis docs repo / not documented)

@nicolaslara nicolaslara changed the title initial icq integration Integrate Async ICQ Feb 2, 2023
@github-actions github-actions bot added the C:app-wiring Changes to the app folder label Feb 2, 2023
@nicolaslara nicolaslara added the V:state/breaking State machine breaking PR label Feb 2, 2023
@nicolaslara nicolaslara marked this pull request as ready for review February 2, 2023 11:34
Comment on lines +270 to +271
appKeepers.IBCKeeper.ChannelKeeper, // may be replaced with middleware
appKeepers.IBCKeeper.ChannelKeeper,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add a comment for what these args are supposed to be? (Confused why theres two)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Passing it twice is common on IBC modules where you want one with the default implementation and one that is being used to actually route packages through (if there's a middleware, you want to route packets through the middleware but may still need access to the default IBC implementation).

In this case, I don't think the second one is being used. So not sure why it's needed. And the first one is only being used to return the correct app version when implementing GetAppVersion (which is required by the interface)

Copy link
Member

@ValarDragon ValarDragon Feb 2, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I see, I imagine this API / standard could be improved, but for another day (and potentially requires IBC changes). SGTM!

appKeepers.IBCKeeper.ChannelKeeper,
&appKeepers.IBCKeeper.PortKeeper,
appKeepers.ScopedICQKeeper,
bApp,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Uhhhh, why does this take in baseApp -- we may have to audit this and all dep updates carefully then. Its not safe to just give base app access to modules.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it needs a Querier. I was wondering if there was a something more restrictive that we could pass there.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The interface ensures only Query(abci.RequestQuery) abci.ResponseQuery can be called on it, but nothing prevents the code from casting it to a baseApp. An option here would be for us to build a wrapper that only exposes that (though maybe that should exist in the async_icq code)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gotcha, I think its worth making a wrapper struct on our side for now then

@@ -26,6 +26,8 @@ require (
github.com/spf13/cobra v1.6.1
github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.15.0
// Async ICQ branch: ibc-v4
github.com/strangelove-ventures/async-icq v0.0.0-20230116084035-5609e84dd443
Copy link
Member

@ValarDragon ValarDragon Feb 3, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, can we add a release blocking TODO / issue for this to be replaced with a tag?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added #4218. I'll ping them to add a tag

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also, how do I make a ticket release blocking?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can add it to the tracker issue for now

Copy link
Member

@ValarDragon ValarDragon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Just needs changelog (and other issue made)

@nicolaslara nicolaslara merged commit 79fc4b8 into main Feb 3, 2023
@nicolaslara nicolaslara deleted the nicolas/async-icq branch February 3, 2023 10:17
@github-actions github-actions bot mentioned this pull request Feb 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C:app-wiring Changes to the app folder V:state/breaking State machine breaking PR
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Support Async ICQ (Interchain Queries)
2 participants