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 for ICS 08 Wasm clients wrapping an ICS 07 Tendermint client #3958

Draft
wants to merge 23 commits into
base: master
Choose a base branch
from

Conversation

romac
Copy link
Member

@romac romac commented Apr 18, 2024

Closes: #3951

PRs


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/).
  • Tagged one reviewer who will be the one responsible for shepherding this PR.

Reviewer checklist:

  • Reviewed Files changed in the GitHub PR explorer.
  • Manually tested (in case integration/unit/mock tests are absent).

… 07 Tendermint client (#3943)

* Add skeleton for ICS 08 Wasm client

* Add support for Wasm clients wrapping an ICS 007 Tendermint client

* Introduce an enum for the underlying client of a WASM client

* Add `ibc-go-v7-wasm-simapp` to `flake.nix`

* Add Wasm option to ClientSettings

* Support building Wasm client state in Cosmos chain

* Preliminary refactor

* Change CreateOptions to an enum to eventually enable creating clients of various types

* Add Wasm client options to CreateOptions

* Add `--wasm-checksum` option to `create client`

* Update templates

* Allow creating 08-wasm clients wrapping a 07-tendermint client

* WIP: Allow updating a 08-wasm client wrapping a 07-tendermint client

* Cleanup

* Add compiled WASM client for testing purposes

* Use Python scripts to enable Wasm clients and install them

* Integration test for creating and updating 08-wasm clients

* Fix GitHub job

* Cleanup

* Fix + debug

* Remove contract data

* Remove `--gas auto` in order to use provided `fees` instead

* Remove hardcoded fees when storing contract

* Remove Python scripts and top-level Wasm blob

Get them from this gist instead: https://gist.github.com/romac/80eddfd304ec03562badf23d9b43f892

* Remove gm.toml

* Auto-detect compat mode in async_icq query

* Remove COMPAT_MODES env variable

* Remove debug statement

* Add more debug

* Only run Wasm client test in wasm job

* Fix test

* Allow clients to be force refreshed

* Increase trusting period

* Cleanup

* Update Wasm client

* Revert "Increase trusting period"

This reverts commit bff7bdf.

* Ignore Wasm contract artifacts

* Cleanup

* Add `force_refresh` method instead of `force: bool` parameter on `refresh`

* Apply suggestions from code review
* Use Nix to build the CosmWasm IBC client contract

* Cleanup
@romac romac added the E: wasm External: related to WASM and CosmWasm support label Apr 25, 2024
Copy link
Contributor

@ljoss17 ljoss17 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some small nits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
E: wasm External: related to WASM and CosmWasm support
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support ICS 08 WASM clients wrapping an ICS 07 Tendermint client
2 participants