Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

taylorjdawson/eth-chains

Open more actions menu

Repository files navigation

Publish npm

Eth Chains

Helper module for getting Ethereum chains info from chainid.network.

Install

yarn add eth-chains
npm install eth-chains

Note on versioning

eth-chains uses a weekly automated release script that updates its chain data. This release script takes breaking changes into account, so breaking changes (e.g. renamed chains) are released as a new major version, while non-breaking changes (e.g. new chains) are released as a new minor version.

Usage

Import chains methods and enums:

import chains, { ChainId, ChainName } from 'eth-chains'

Easily get most popular chains:

import { chain } from 'eth-chains'

console.log(chain.ethereum.rinkeby)

console.log(chain.polygon.mumbai)

Chain names and ids via Enums:

console.log(ChainId.EthereumMainnet) // 1
console.log(ChainId.BinanceSmartChainMainnet) // 56
console.log(ChainName.EthereumMainnet) // "Ethereum Mainnet"
console.log(ChainName.Rinkeby) // "Rinkeby"

Chain by ID:

chains.getById(ChainId.EthereumMainnet) // { name: "Ethereum Mainnet", ..., "infoURL": "https://ethereum.org" }
// Equivalent
chains.getById(1)

Chain by Name:

chains.getByName(ChainName.EthereumMainnet) // { name: "Ethereum Mainnet", ..., "infoURL": "https://ethereum.org" }
// Equivalent
chains.getByName('Ethereum Mainnet')

Get all Chains:

const allChains = chains.all()
// { 1: { name: "Ethereum Mainnet", ..., "infoURL": "https://ethereum.org" }, 2: {...}}

Typescript Types:

import { Chain, NativeCurrency, Explorer } from 'eth-chains'
const ethereum: Chain = chains.getById(ChainId.EthereumMainnet)
ethereum.chain // 'ETH'

TODO:

  • Add webhook that watches the chains repo and triggers an update to this package whenever that repo gets updated
    • Add check in the deploy script to make sure that the types are correct before publishing
  • Add Tests
    • Once quicktype is added, test with different chains.json objects to make sure it can handle new types
  • Use quicktype to autogen types from json
  • Autogen Chain Id enum
  • Autogen Chain Name enum

About

Helper module for getting Ethereum chains info from chainlist.org.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 5

Morty Proxy This is a proxified and sanitized view of the page, visit original site.