cosmos / chain-registry

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Improve assetslist.json validation

omniwired opened this issue · comments

Feature request:

When a user adds a ibc trace, compare the value from:
"base": "ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2",
with the one provided at chain path

Example:

      "type_asset": "ics20",
      "base": "ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2",
      "name": "Cosmos Hub Atom",
      "display": "atom",
      "symbol": "ATOM",
      "traces": [
        {
          "type": "ibc",
          "counterparty": {
            "chain_name": "cosmoshub",
            "base_denom": "uatom",
            "channel_id": "channel-141"
          },
          "chain": {
            "channel_id": "channel-0",
            "path": "transfer/channel-0/uatom"
          }
        }
      ],

The algorithm to use is described in the cosmos SDK.

Via command line it would be:

echo -n "transfer/channel-0/uatom" | sha256sum

27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2

I assume you're pointing out the difference being in lower vs uppercase? The on-chain ics20 denoms shift letters to uppercase.

hi Jeremy, it's not about the case being different but adding an automatic check that does the following.

1- Compare the value provided in the base key against the sha256 of the IBC path.
2- Inform the user and/or refuse to merge if the base and sha256 equivalent are different.