-
Notifications
You must be signed in to change notification settings - Fork 360
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 creating and updating ICS 08 WASM clients wrapping an ICS 07 Tendermint client #3943
Conversation
b476dcf
to
3fbeba7
Compare
3fbeba7
to
0bf4c1e
Compare
… of various types
ec57792
to
c070f89
Compare
544478d
to
291acf5
Compare
5b6ae05
to
3af6d9a
Compare
084ea13
to
7ced2f7
Compare
417ce18
to
c6ec09a
Compare
CI consistently fails with
whereas the test goes through successfully locally on macOS. I was able to reproduce the failure, though not consistently, by tweaking the Interestingly, it's only the second client (B -> A) which fails to refresh, never the first one. |
Alright, increasing the trusting period on CI fixed it, no idea why though… |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great, thanks for this!!
I left a few nits and questions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me!
Part of: #3951
Depends on: #3942
Manual testing instructions
1. Get
simd
with Wasm client supportFrom the root of the
hermes
repository, on this branch, run:❯ nix shell '.#ibc-go-v7-wasm-simapp' ❯ which simd /nix/store/3pp59wi249yd30dmr7hb49wbm9s19zci-simd-v7.3.0-wasm/bin/simd
Or build
simd
on this branch ofibc-go
: https://github.com/cosmos/ibc-go/tree/08-wasm/release/v0.1.x%2Bibc-go-v7.3.x-wasmvm-v1.5.x2. Setup two
simd
chains with Wasm supportPut this into
./gm.toml
, updategaiad_binary
to point to thesimd
binary we installed above, and update the path to thehermes
binary:3. Create the chains and update their config
Create, then stop and re-initialize the chains:
Update the config of the chain
ibc0-wasm
:Fetch the scripts from this Gist: https://gist.github.com/romac/80eddfd304ec03562badf23d9b43f892
Run
enable-was.py
:$ p3 enable-wasm.py ~/.gm/ibc0-wasm/
Or do it manually:
~/.gm/ibc0-wasm/config/config.toml
, changemax_body_bytes
to10001048576
~/.gm/ibc0-wasm/config/genesis.json
, change:max_deposit_period
to10s
voting_period
to10s
08-wasm
to the list of alloed clients inallowed_clients
4. Start the chains
5. Install the contract on chain
validator
account foribc0-wasm
❯ GM_TOML=./gm.toml gm keys ibc0-wasm - address: cosmos15culynpgfdcfupl3f2yrzmav4t8hhpfalc2eu6 name: validator pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"A4qOppP8gT3fF/671w7qKBFllT0DTlzwawwZ9b2dx926"}'
6. Create a Wasm client using Hermes
7. Update the Wasm client using Hermes
PR author checklist:
unclog
.docs/
).Reviewer checklist:
Files changed
in the GitHub PR explorer.