Upgrade bank/Send
to handle IBC transactions
#9948
Replies: 6 comments 12 replies
-
I love the proposal and steps 1-2 make sense, but (3) isn't clear. AFAIU, what we're aiming to do is automatically do the IBC packet submission. I do not think x/bank would have to be modified? In other words, ICS-20 would be modified to see if the receiver is a non-native address and if so, try to find the mapping and automatically do the additional IBC hop for that recipient. |
Beta Was this translation helpful? Give feedback.
-
+1 to this idea (obv) SatoshiLab’s SLIP repo (which contains the official mapping for BIP44 paths) also has a SLIP-173 registry for bech32 prefixes of chains We should use that as a reference standardization mechanism. Turns out, currently only a few Cosmos chains registered their prefixes. I made a PR adding the bech32 prefixes for as many of the Cosmos chains I could think of (sorry if I forgot yours) |
Beta Was this translation helpful? Give feedback.
-
I think having this information on every chain is highly error prone. The desired UX can be taken care of on the UI layer and doesn't require anything on chain. |
Beta Was this translation helpful? Give feedback.
-
This would definitely improve the UX for clients. One question I have is, it's not about single client/channel. There could be multiple IBC channels. Not sure how we gonna chose one automatically for IBC transfers. If we are planning to use on-chain service, may be CNS could be a solution. But it won't solve the problem I mentioned above. |
Beta Was this translation helpful? Give feedback.
-
Seems like this may be a way to achieve the goals of #9589. This would basically involve each chain setting up its own gov controlled chain name <-> IBC resolver for IID's. Maybe that's a reasonable approach?? |
Beta Was this translation helpful? Give feedback.
-
We have an implementation here: https://github.com/osmosis-labs/bech32-ibc |
Beta Was this translation helpful? Give feedback.
-
Currently, the IBC transaction is not user friendly:
NOTE: after asking around I was pointed to the ts-relayer readme with an example:
EDIT: later, I was pointed to this tutorial as well: https://hermes.informal.systems/tutorials/local-chains/relay-paths/multiple-paths.html
At the same time, all tools / wallets support
bank/Send
messages. Any more tech heavy users are well familiar CLIbank/Send
.Proposal
Last week I had a chat with @sunnya97 and he mentioned that they are looking for a ways to make it easier for users to get on IBC and jump to Osmosis.
Basically, we can utilize
bank/Send
to interpret the bech32 prefixes and do the IBC transaction.Currently the
types.AccAddressFromBech32
function only accepts the app with only one (chain level) bech32 address prefix (it fails if the prefix is different). We could extend that functionality by:x/bank
gov param (new params design).IBCAccAddressFromBech32
which will return IBC channel ID, address (and error).bank/Send
to accept IBC transfers (this can be either enabled always if IBC is active or using a switch controlled by x/gov or module constructor param).To discuss
Beta Was this translation helpful? Give feedback.
All reactions