Giter Club home page Giter Club logo

chain-registry's People

Contributors

3eph1r0th avatar ankurdotb avatar autostake-com avatar clemensgg avatar cosmosspace2 avatar danbryan avatar doggystylez avatar dylanschultzie avatar galadrin avatar gh0stdotexe avatar github-actions[bot] avatar golden-ratio-staking avatar hexskrt avatar jarnek73 avatar jeremyparish69 avatar kii-awesome avatar kjincgroup avatar mogoll92 avatar nodeiistt avatar nodestake avatar nooomski avatar pfc-developer avatar polkachuintern avatar pyramation avatar raulbernal avatar reversesigh avatar staking-explorer avatar sunnya97 avatar tombeynon avatar xbalbinus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chain-registry's Issues

Schema Versioning

How can we do versioning for the schemas so that we know when there's breaking changes?

osmosis APIs : expected 2 wire type, got 3: tx parse error

Hi guys ! I've had a hard time trying to make a request in order to broadcast an Osmosis transaction , i created a transaction object like that :

{
    "chain_id": "osmosis-1",
    "account_number": "164427",
    "sequence": "0",
    "fee": {
        "gas": "80000",
        "amount": [
          {
            "denom": "uosmo",
            "amount": "0"
          }
        ]
    },
    "msgs": [
      {
          "type": "cosmos-sdk/MsgSend",
          "value": {
            "from_address": "from",
            "to_address": "to",
            "amount": [
              {
                "denom": "uosmo",
                "amount": "2000000"
              }
            ]
          }
      }
    ],
    "memo": ""
}

then i generate the tx_64bytes the same i did for cosmo ( using the cosmopy library for python that i adapted for osmo and cosmo) , and then i tried to broadcast the transaction using the APIs here :
https://github.com/cosmos/chain-registry/blob/master/osmosis/chain.json

i've tried all of them and i get the same error message : expected 2 wire type, got 3: tx parse error
here's the complete response object :

{
    "jsonrpc": "2.0",
    "id": -1,
    "result": {
        "code": 2,
        "data": "",
        "log": "expected 2 wire type, got 3: tx parse error",
        "codespace": "sdk",
        "hash": "895B9320CC7FF7960A4E2982F493BD4390174729B4528BAC44CA08AE37C0D10A"
    }
}

and the request : GET / https://rpc-osmosis.keplr.app/broadcast_tx_sync?tx="tx_64bytes"

Does anyone know how to broadcast a transaction using the REST APIs ?? Thank you !!

Handle defunct nodes

previously described here: cosmos/cosmos-registrar#20

This would be a github action that is run periodically to check the RPC endpoints to make sure they're online.

If they're offline, they should be removed from the list and a new issue should be opened (or some other way to signify that they are down and should'nt be checked again until manually added again)

Add fields to specify pending upgrades

How important is the chain-registry being kept up to date? If a governance upgrade of a chain is approved, should there be fields in the chain registry for enabling end-user node setup scripts to get the right version at exactly the right time? What about other consumers of the chain-registry, we expect this to expand a lot. E.g. IBC usecases, security notification usecases, etc.

The importance of this depends on how "core" to the emerging cosmos ecosystem the chain registry is intended to become.

Make fees have a type field

There will likely be many ways to handle fees emerging throughout cosmos. We should specify the type of fee pricing accepted as well. E.g. EIP1559 will make it dynamically priced. No need to spec out how to specify EIP1559 fees rn, but we should allow a way to specify new types at least.

missing grpc endpoint

Grpc provides functionality to easily create clients that show all possible queries and possible msg types supported by a chain. As the cosmos ecosystem has adopted grpc already it would be best to include it into the chain registry.

Example:
photo_2021-12-29 23 32 31

This would help with building tools like lens from Strangelove

cc @sunnya97

Add a ibc.json file in the root directory

We should create an ibc.json file in the root directory that contains all the preferred channels, non preferred channels and a trust hash

As a rough idea:

"cosmos": { // should be unique chain identifier
    "trust_hash": "" // some hash
        "osmosis": { // also unique chain identifier
            "preferred_channel": "141-0",
            "non_preferred_channels": [
                "189-23",
                "123-456",
                //etc..
            ]
        },
        "akash": {
            "preferred_channel": "184-17",
            "non_preferred_channels": [
                //etc..
            ]
       }
       // Repeat for each chain that has an IBC connection
// Repeat for each chain

Not sure what's the best way to notate those channels. @sunnya97 @jackzampolin ?

Currently not sure how to automatically populate these, but we need this file and start adding them manually at first.

Running list of non-added chains

A list of chains who need more metadata added because they are missing or are only stubs right now.

  • Sommelier
  • Injective
  • IrisNet (is Stub)
  • Band Chain
  • Switcheo
  • Fetch.ai
  • Omniflix
  • Ryzon
  • Odin Network
  • Vidulum
  • Chihuahua
  • Dig Chain
  • Konstellation Network

Oraichain repository went private

Looks like they made their source code private.

"codebase": {
"git_repo": "https://github.com/oraichain/orai",
"recommended_version": "v0.40.1",
"compatible_versions": [
"v0.40.1"
],
"binaries": {
"linux/amd64": "https://gateway.ipfs.io/ipfs/QmfTWvw7jGcigT7tpD4scSzhgshJtawazgYEPUgzd4tgL8"
}
},

IPFS link for the binary does not work anymore.

Though, their tendermint RPC and REST API endpoints are live.

"apis": {
"rpc": [
{
"address": "https://rpc.orai.io",
"provider": "oraichain-team"
}
],
"rest": [
{
"address": "http://lcd.orai.io",
"provider": "oraichain-team"
}
]
},

Have this available as a npm package

If this registry can be used as an npm package, then it can be built into any JS application.

I may add this if this is desireable, currently looking into ways to make it work.

Make it clear what the native staking token is

Right now, fee and/or staking tokens are listed in two places:

  1. under fees in chain.json
  2. in assetlist.json

However, there's a possibility that some chains use a different token for fees than for staking. Should we make it clear what the native staking token is? And if so, in which file? Assetlist.json mentions it in the description, but we should probably just have a specific field for that. What do y'all think?

YAML over JSON

I understand the need of JSON. But the chain information are maintained manually.

Probably better if we use YAML (or something similar as TOML) for readability and compile and serve them as JSON.

homepage URL

This is more a convenience thing, but it could be good to optionally link a public URL so clients can look that up. Could also go one step further and include a public key + URL/pubkey.txt, so the webmaster can attest that the website is authenticated by on-chain gov.

Negative here is if projects opt to do this they are enshrining an official page that could imply singular control.

Add unique chain identifier

While chain-ids can change in the wild, we should consider creating a single alphanumeric chain name that stays the same regardless of any future updates.

IBC Channel Registry

Need to create a file that shows the preferred ics20 channels between every pair of chains.

Rename seed's address field to ip

Currently the address field for seeds refers to its socket address. The standalone word address here is confusing with on-chain addresses, which is basically what the id is.

We should change address here to ip, socket_address or url.

CRO token mismatch (Cronos and Crypto-org blockchain)

As you can see, in both blockchains, the basecro denominator is the CRO symbol and the same coingecko_id=crypto-com-chain. Then look at the cro denom exponent, you can see that exponent=18 for cronos and exponent=8 for crypto-org.

Which exponent value is correct or is the mistake somewhere else? Maybe they have different coinecko_id?

Thank you very much!

image

Identification of Staking & Fee Assets

Problem

There is currently no way to identify assets used for staking on a given chain.

Solutions

1. Asset.features property

Adjacent to a keplr chain config's features: ["stargate", "ibc-transfer", ... ], property, we could add a features property to assets as such:

features: ["stake", "fee", ... ]

2. Chain.staking property

Along the same lines as Chain.fees, we could add Chain.staking as such:

    "staking": {
        "staking_tokens": [
            {
                "denom": "uosmo",
            }
        ]
    },

Notes

The latter may be more conducive for interchain staking, as it wouldn't make much sense to put IBC tokens in the native asset lists.

Include a new category for IBC

chain.json should include a category called ibc with at least the following:

  • ibc_go_version
  • ibc_enabled (true / false)
  • supported_ics

Put genesis back into object

I had move genesis from being an object to being just a url string, but I think it might be good to put it back into an object for future metadata additions such as zipped or not, etc.

Feat: Specify enough information to sync from genesis

chain.json provides both a genesis_url and recommended_version, but these are not enough to actually start a mainnet node syncing from genesis. To make this possible, I would propose that we modify the standard codebase struct, to include both a genesis_version, and an upgrades value, which specifies enough information to automate stepping through each upgrade (either with cosmovisor, or through halt heights / external tooling).

ex (for osmosis):

"codebase": {
        "git_repo" : "https://github.com/osmosis-labs/osmosis",
        "genesis_version" : "v3.1.0",
        "upgrades" : [
          {
            "height" : 1314500,
            "version" : "v.4.2.0",
            "name" : "v4",
          },
          {
            "height" : 2383300,
            "version" : "v6.0.0",
            "name" : "v5",
          },
        ],
    }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.