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

Channel handshake ChanOpenInit improvements #722

Closed
3 tasks
colin-axner opened this issue Jan 13, 2022 · 1 comment · Fixed by #1283
Closed
3 tasks

Channel handshake ChanOpenInit improvements #722

colin-axner opened this issue Jan 13, 2022 · 1 comment · Fixed by #1283
Assignees
Labels
core type: refactor Architecture, code or CI improvements that may or may not tackle technical debt.

Comments

@colin-axner
Copy link
Contributor

Summary

Apply spec changes. These changes have already been done for ChanOpenTry. These changes should be broken into smaller pieces if multiple parts of core IBC need to be modified. Please see the workflow I did for #640 for inspiration.


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged/assigned
@crodriguezvega crodriguezvega added core type: refactor Architecture, code or CI improvements that may or may not tackle technical debt. labels Jan 13, 2022
@colin-axner
Copy link
Contributor Author

colin-axner commented Feb 23, 2022

I think this is probably fine to do in one function since #640 help set the groundwork for these changes

Suggested ways of maybe breaking down the pr:

  • modify OnChanOpenInit API to return version string, pass version into WriteChannelState
  • ics20 - add a check if the version passed in is empty, if so return the ics20 version
  • ics27 - no code should be changed, the version passed must be non empty since it indicates specific connection choices (as well as tx and encoding type)
  • ics29 - if no version is specified it should not enable fees and pass onto underlying app
  • add a field to MsgChannelOpenInitResponse to return the selected version (probably should be done for MsgChannelOpenTry as well)

The general idea of the spec changes is that OnChanOpenInit now returns a version. If the passed in version is non empty, it should perform legacy logic (validate the version, if err != nil, return error else return version). If the passed in version is empty, the application may choose to select a default version (if possible) otherwise return error

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core type: refactor Architecture, code or CI improvements that may or may not tackle technical debt.
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants