hermes
hermes copied to clipboard
ICS29 Fee Middleware Support
Description
This is a work in progress to support ICS29 fee middleware. This branch tracks the changes made in https://github.com/cosmos/ibc-go/pull/276, which is not yet merged.
Tasks:
- [x] #1968
- [x] #1964
PR author checklist:
- [ ] Added changelog entry, using
unclog
. - [ ] Added tests: integration (for Hermes) or unit/mock tests (for modules).
- [ ] Linked to GitHub issue.
- [ ] Updated code comments and documentation (e.g.,
docs/
).
Reviewer checklist:
- [ ] Reviewed
Files changed
in the GitHub PR explorer. - [ ] Manually tested (in case integration/unit/mock tests are absent).
Does work in this PR depend on https://github.com/cosmos/ibc-go/issues/1566 ?
It does not depend on it, but it keeps track of the main
branch in ibc-go.
Merged master into this branch in 9b138b8. The merge was a bit complicated by #2642 but was mostly syntactic changes (moving files around).
@ljoss17 raised the question on how this PR should be merged once the modules/relayer split goes through.
If this PR ensures compatibility with IBC-go v4, we should update the version requirements for IBC-go module.
https://github.com/informalsystems/hermes/blob/be9e846c64dcf8aaef3dcc0cd70015ec939b275e/crates/relayer/src/chain/cosmos/compatibility.rs#L23
The same for SDK, but unclear which SDK version was used to generate the proto files here.
Context
Relayer operators are currently flagging that Hermes issues warning when trying to communicate with latest Osmosis binary. Example:
2022-10-01T21:16:03.333163Z WARN ThreadId(50) Health checkup for chain 'osmosis-1' failed 2022-10-01T21:16:03.333184Z WARN ThreadId(50) Reason: Hermes health check failed while verifying the application compatibility for chain osmosis-1:http://localhost:6687/; caused by: SDK module at version '0.46.1' does not meet compatibility requirements >=0.41, <0.46 2022-10-01T21:16:03.333191Z WARN ThreadId(50) Some Hermes features may not work in this mode! 2022-10-01T21:16:03.333245Z WARN ThreadId(01) chain is unhealthy: Hermes health check failed while verifying the application compatibility for chain osmosis-1:http://localhost:6687/; caused by: SDK module at version '0.46.1' does not meet compatibility requirements >=0.41, <0.46 chain=osmosis-1
I will merge master
here next week.
@ljoss17 I just found a detailed tutorial by the IBC-go team on fee-enabled ft-transfers. Hope it proves useful in reviewing or understanding ICS29!
https://github.com/cosmos/ibc-go/wiki/Fee-enabled-fungible-token-transfers
@ljoss17 I just found a detailed tutorial by the IBC-go team on fee-enabled ft-transfers. Hope it proves useful in reviewing or understanding ICS29!
https://github.com/cosmos/ibc-go/wiki/Fee-enabled-fungible-token-transfers
Awesome, thank you! I'll try it out!