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

Allow module_query_safe queries in ICA #5784

Closed
3 tasks
srdtrk opened this issue Jan 31, 2024 · 0 comments · Fixed by #5785
Closed
3 tasks

Allow module_query_safe queries in ICA #5784

srdtrk opened this issue Jan 31, 2024 · 0 comments · Fixed by #5785
Assignees
Labels
27-interchain-accounts change: state machine breaking Issues or PRs that break consensus (need to be released in at least a new minor version) needs discussion Issues that need discussion before they can be worked on type: feature New features, sub-features or integrations
Milestone

Comments

@srdtrk
Copy link
Member

srdtrk commented Jan 31, 2024

Summary

One of the most common criticism of ICA is that it doesn't provide any query API. Usually the ICA transaction a contract wants to execute depends on the state of the counterparty chain. Allowing queries (which can be safely written to IBC acknowledgements) can improve the developer UX greatly.

I'm creating this issue as a part of Interchain focus week to document my progress and what I've been working on.

Problem Definition

Many ICA users use ICA alongside ICQ which is not universally supported. This is why offering a native solution is ideal.

This proposal should not be merged without greater team consensus as it is part the focus week mentioned above.

Proposal

Simply introduce a new tx message to icahost that queries the chain (only those marked with module_query_safe) and writes their responses to it's own response

// MsgModuleQuerySafe defines the payload for Msg/ModuleQuerySafe
message MsgModuleQuerySafe {
  option (cosmos.msg.v1.signer) = "signer";

  option (gogoproto.goproto_getters) = false;

  // signer address
  string signer = 1;

  // requests defines the module safe queries to execute.
  repeated QueryRequest requests = 2;
}

// MsgModuleQuerySafeResponse defines the response for Msg/ModuleQuerySafe
message MsgModuleQuerySafeResponse {
  // protobuf encoded responses for each query
  repeated bytes responses = 1;
}

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged/assigned
@srdtrk srdtrk added needs discussion Issues that need discussion before they can be worked on 27-interchain-accounts type: feature New features, sub-features or integrations labels Jan 31, 2024
@srdtrk srdtrk added the change: state machine breaking Issues or PRs that break consensus (need to be released in at least a new minor version) label Feb 2, 2024
@crodriguezvega crodriguezvega moved this to In progress 👷 in ibc-go Mar 17, 2024
@crodriguezvega crodriguezvega added this to the v8.2.0 milestone Mar 17, 2024
@crodriguezvega crodriguezvega modified the milestones: v8.2.0, v7.4.0 Mar 26, 2024
@github-project-automation github-project-automation bot moved this from In progress 👷 to Done 🥳 in ibc-go Mar 27, 2024
@coderabbitai coderabbitai bot mentioned this issue Mar 27, 2024
10 tasks
@crodriguezvega crodriguezvega modified the milestones: v7.4.0, v8.3.0 Apr 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
27-interchain-accounts change: state machine breaking Issues or PRs that break consensus (need to be released in at least a new minor version) needs discussion Issues that need discussion before they can be worked on type: feature New features, sub-features or integrations
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants