CosmWasm / CosmWasm/cw-multi-test
Implement the actual ICS20 protocol
- Dominant language
- Rust
- Stars
- 56
- Forks
- 48
- PR merge metrics
- No merged PRs in 30d
Description
I guess, you are using a simplified version of the actual ICS-20 protocol here, but I do want to note that this is not how the denom works in the actual protocol. We will have to make changes to this if we want to implement IBC Callbacks later down the road.
Here's a quick example of how it looks on chain:
If I send `ujuno` from Juno to Osmosis, the denom is `ujuno`. If I send it back from Osmosis to Juno, it is `transfer/channel-42/ujuno`.
According to the spec, it's formatted as `{ics20Port}/{ics20Channel}/{denom}` using the source port and channel (so the ones on Osmosis in my example). To detect that, we would need to check for that prefix and remove it to get the denom on the receiving chain.
Side note: On most chains this denom is also different than what is shown to the bank module because it gets hashed with Sha256 and prefixed with `ibc/`
_Originally posted by @chipshort in https://github.com/CosmWasm/cw-multi-test/pull/184#discussion_r1642762440_
Contributor guide
No contributing guide indexed for this repository
Research direction
No files, tests, or entry points are named. Start by tracing the existing simplified ICS-20 denomination handling, then read the ICS-20 specification and the linked pull-request discussion. Done means denomination paths follow the source port and channel rules, including the receiving-chain prefix behavior and the noted bank-module hashing distinction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- blockchain
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100