Philippe Laferrière

Results 97 issues of Philippe Laferrière

We need to define a testing strategy that will identify *what needs to be tested* along with *how to test it*. For example, some questions to answer include - Currently...

O: testing
O: exploratory

It was nice if we could enforce this requirement through the trait bounds, so any implementation of the `ConsensusState` would observe it. Particularly given that there is only a single...

Specifically [this line](https://github.com/cosmos/ibc-rs/blob/da6653e0716350311d15e6acca08cad625f2d9ff/crates/ibc/src/core/ics03_connection/handler/verify.rs#L168). Our check is: ```rust if claimed_height > ctx.host_current_height() { fail } ``` whereas ibc-go [does](https://github.com/cosmos/ibc-go/blob/c8e2ebcf2eaa6b487ca52499063c7c3db4253398/modules/core/03-connection/keeper/handshake.go#L78) ```go if consensusHeight.GTE(selfHeight) { fail } ``` That is, `>` vs `>=`....

A: bug
A: low-priority

If we were able to offer a socket-based API (similar to CometBFT's ABCI), then non-Rust chains could still use ibc-rs. Notably, this could enable non-Cosmos SDK chains written in Go...

O: usability
O: exploratory

We use both terms interchangeably to designate an "IBC application" such as token transfer (e.g. [Module use](https://github.com/cosmos/ibc-rs/blob/dc5464010bc972dec8ee528d7b523d9d1125050d/crates/ibc/src/events.rs#L198), [application use](https://github.com/cosmos/ibc-rs/blob/dc5464010bc972dec8ee528d7b523d9d1125050d/crates/ibc/src/lib.rs#L48)). We should choose one and stick to it throughout the codebase....

O: usability
A: low-priority

[Here](https://github.com/cosmos/ibc-rs/blob/dc5464010bc972dec8ee528d7b523d9d1125050d/crates/ibc/src/applications/transfer/coin.rs#L17-L20) Those are not used in the core implementation, and should be removed

O: usability
A: low-priority

They should be private functions instead. It does not make sense to have them in `ValidationContext` since we don't want users to reimplement them. + `get_compatible_versions`: the supported versions is...

A: low-priority

It is only used in tests. I believe we can just remove it from `ClientState`.

Comes out of a comment by @Farhad-Shabani and ensuing sync discussion. We still need to figure out the details, but a main point of confusion was that `validate()` was in...

A: breaking

[`Module`](https://github.com/cosmos/ibc-rs/blob/eea4f0e7a1887f2f1cb18a550d08bb805a08240a/crates/ibc/src/core/ics26_routing/context.rs#L72) should be split into 2 different traits: + `ModuleValidation` which contains all `*_validate()` methods + `ModuleExecution` which contains all `*_execute()` methods Modifications to [`Router`](https://github.com/cosmos/ibc-rs/blob/eea4f0e7a1887f2f1cb18a550d08bb805a08240a/crates/ibc/src/core/context.rs#L123): + `Router::get_route_validation() -> Option` +...

A: breaking
O: exploratory