-
Notifications
You must be signed in to change notification settings - Fork 411
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
Better Native ICA support #947
Comments
This has been blocked on two items:
I do believe IG is working on both of those items along with p2pvalidator. I have not followed their work the last month, but when it is ready, I am happy to look at this issue. (and add ics20 callbacks for success/failure in transfer) |
note the links above were in the host side. while wasmd adds the demo controller, all chains I have looked at have no controller enabled, which is essential to make the call |
|
I forked interchain-accounts-demo and modified IBC middleware to call x/wasm because wasm does not support the ica-controller port. For ica-controller only uses IBC methods:
IBC port format The contract can call RegisterAccount, SubmitTx using CosmosMsg::Stargate and handle IBC Ack, Timeout.
Currently the example assumes that the interchain accounts will be contracts. could this be a way? |
I have an unconfirmed hunch that this: and/ or this: get us somehow closer. @giansalex code is likely still useful, and maybe should be upstreamed into inter-tx directly. |
Put this on 0.32 milestone. Hopefully with cosmos-sdk 0.47 and ibc-go (v8?) we will have a standardised controller with proper callbacks as to whether ICA packets succeeded or failed. Until then no point to add support |
ICA has been used with ibc-go for some time now. We need ADR-8 callbacks or something similar to cover the process. I have commented on CosmWasm/cosmwasm#1652 (comment) |
Moving this to a future release. We are blocked on ibc-go providing the adr-8 standard. I did some work in #1368 to help |
It might be relevant to put this here, but it is currently possible to build a cosmwasm ica-controller that can communicate with the golang ica-host. This can handle callbacks too. I made such an implementation complete with end to end tests that run in the github ci. Does it help resolve this issue? https://github.com/srdtrk/cw-ica-controller This contract doesn't use any api to access ICA. It completes the handshake as the ica-controller. So your entire wasm chain could have ICA feature disabled but this implementation would still work. This contract uses |
Good to know @giansalex. Is there a GitHub repo so that I can compare the implementations? |
Use case: I want to write a contract that stakes an asset on a non-CosmWasm chain.
Really love implementing ICA in pure CosmWasm as with Confio's cw-ibc-demo. Unfortunately this will not work with non-CosmWasm chains like the Cosmos Hub.
Reading through the latest ICA documentation, it seems we may need to call RegisterInterchainAccount and then can call
SendTx
? Or perhaps justSendTx
is enough and it's smart enough to register the account?Would be nice if we could extend
cosmwasm_std
IbcMsg to support native ICA messages. I'm hacking a bit today on getting them working usingCosmosMsg::Stargate
, but not sure how successful that will be and that it could be a much better dev experience to just support it outright.In
cosmwasm_std
it would be ultimately nice to have something like:Realize this issue also touches the
cosmwasm
repo, but figured it would be best to start the conversation here.The text was updated successfully, but these errors were encountered: