-
Notifications
You must be signed in to change notification settings - Fork 382
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
Something confusing about ICS03, ICS18 #960
Comments
Hi @michwqy. It is possible that both chains are in state The check I hope this makes sense. If it does and you don't any follow-up questions, please feel free to close the issue. :) |
Thanks @crodriguezvega. The question is when |
Thanks for further explaining, @michwqy! I see your point, and I think you're right. This code was probably not modified after the support for crossing hellos was removed. I can open a PR to fix this. Please note that ICS 18 is seriously underworked and, as you can see, there's many errors, inconsistencies. It's in our plans to improve it, but it will still take some time. |
As
function pendingDatagrams
in ICS18Relayer relays
ConnOpenTry
to B whenlocalEnd.state == INIT
in A andremoteEnd == null || remoteEnd.state == INIT
in B. But I think it is impossible that both connectionEnd equalINIT
.As
function connOpenInit
in ICS03There is no
counterpartyConnectionIdentifier
when a connectionEnd in A is "INIT". Acoording to ICS03, if a connectionEnd in A and connectionEnd in B are both "INIT",function connOpenTry
should be relayed to both chain and each chain will create a new connectionEnd inTRYOPEN
to complete the handshake.So I don't quite understand this
if (localEnd.state === INIT && (remoteEnd === null || remoteEnd.state === INIT))
, is there any special use for it that I don't think of?The text was updated successfully, but these errors were encountered: