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 interchain accounts to select a default metadata version #1551

Closed
3 tasks
damiannolan opened this issue Jun 16, 2022 · 0 comments · Fixed by #1550
Closed
3 tasks

Allow interchain accounts to select a default metadata version #1551

damiannolan opened this issue Jun 16, 2022 · 0 comments · Fixed by #1550
Assignees
Milestone

Comments

@damiannolan
Copy link
Contributor

damiannolan commented Jun 16, 2022

Summary

With the introduction of 29-fee, the decision was made to enable relayer incentivization on newly created channels by default. This means that IBC application stacks configured with fee middleware wired in app.go will attempt to enable 29-fee within the ibc handshake protocol unless explicitly directed otherwise by means of the application version field.

Fee middleware is set to enabled upon channel handshakes that include the appropriate 29-fee Metadata struct, JSON encoded into the ibc app version field.

Below is an example 29-fee Metadata JSON for transfer:

{
    "fee_version":"ics29-1",
    "app_version":"ics20-1"
}

Alternatively, an empty string can be provided to create a default 29-fee Metadata and pass an empty string to the base application. IBC applications such as transfer has been adapted to accept an empty string and choose the default version ics20-1, returning it within the OnChanOpenInit callback handler.

Proposal

Currently, passing an empty string for the application version field in 27-interchain-accounts is not supported.

Allow the 27-interchain-accounts controller submodule to select and return a default JSON encoded version metadata by following the method outlined in this draft PR

The controller and host connection IDs can be retrieved internally via the interchain accounts controller keeper using connectionHops[0]. The alleviates the burden of authentication modules being forced to compose their keepers with the IBC core channel keeper.


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged/assigned
@damiannolan damiannolan self-assigned this Jun 16, 2022
@crodriguezvega crodriguezvega added this to the v4.0.0 milestone Jun 20, 2022
@crodriguezvega crodriguezvega moved this to In progress in ibc-go Jun 20, 2022
@damiannolan damiannolan moved this from In progress to In review in ibc-go Jun 22, 2022
Repository owner moved this from In review to Done in ibc-go Jun 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants