-
Notifications
You must be signed in to change notification settings - Fork 94
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
Investigate using "tagged identifiers" in connection/channel handshake #201
Comments
Another potential use of the typestate pattern would be to tag data as:
The goal would be to avoid at compile-time scenarios where e.g. we Further discussion is required though to see if the added complexity is worth it. |
Should there be one typestate system, or two? (Or other number?) Correct me if I wrong, please. [ |
I don't think the typestate pattern would apply to IBC's "handshake state machine", or at least with very little benefit, since only one step of the state machine is only ever executed at once (that is, per message processed).
Indeed there could be more than 2; basically anywhere we find a new use case where the pattern could be useful. |
* docs: update changelog for v0.9.1 release * Update CHANGELOG.md * Update CHANGELOG.md
We recently introduced this naming convention in the handshakes to facilitate understanding the logic. Correctness however still relies on the programmer. We could use "tagged identifiers" (see below) to let the type system tell us if we've made a mistake.
From @romac:
Also see the typestate pattern.
For Admin Use
The text was updated successfully, but these errors were encountered: