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

Support forwarding transfer packets across protocol versions #7618

Open
AdityaSripal opened this issue Dec 3, 2024 · 0 comments
Open

Support forwarding transfer packets across protocol versions #7618

AdityaSripal opened this issue Dec 3, 2024 · 0 comments

Comments

@AdityaSripal
Copy link
Member

AdityaSripal commented Dec 3, 2024

In #7588 , the v2 packet forwarding logic creates a new v2 packet to forward onto the next hop. This transfer may fail if the other side does not support v1. In order to support transfer forwarding across protocol versions, the transfer module v2 must check the channel of the next hop and decide whether to send a IBC v1 packet or IBC v2 packet.

With the aliasing approach, we optimistically create a v2 channel with the same channelID as an existing v1 channel. This is created even if the other side doesn't support IBC v2, thus a packet sent might time out because it is unsupported by the receiving side. Thus we cannot rely on the existence of a v2 channel, to say that the other side supports V2.

Thus, in the v2 transfer module we should do the following:

  1. Check if the v1 channel keeper has a V1 channel stored for the given channel ID
  2. If a v1 channel is stored, then send an IBC v1 packet. Check the channel version and send ics20-v1 or ics20-v2 packet accordingly.
  3. If a v1 channel is not stored, then send an IBC v2 packet with ics20-v2 packet data.

Blocked by #7588

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Backlog
Development

No branches or pull requests

1 participant