diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ba2a8a7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +chains.json +node_modules \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..7d0f779 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,8 @@ +{ + "semi": false, + "trailingComma": "none", + "singleQuote": true, + "printWidth": 80, + "tabWidth": 2, + "arrowParens": "avoid" +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..60cc44e --- /dev/null +++ b/README.md @@ -0,0 +1,24 @@ + +### Usage +```js +import chains, { NetworkId, NetworkName } from 'eth-chains' + +chains.getById(NetworkId.EthereumMainnet) +chains.getByName(NetworkName.EthereumMainnet) +chains.get() // pass in a networkId or a networkName + +console.log(NetworkId.Ethereum.Mainnet) // 1 +console.log(NetworkId.BinanceSmartChain.Mainnet) // 56 + +console.log(NetworkName.Ethereum.Mainnet) // "Ethereum Mainnet" +``` + + +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](https://github.com/quicktype/quicktype) to autogen type from json +- [ ] Autogen Chain Id enum +- [x] Autogen Chain Name enum \ No newline at end of file diff --git a/index.ts b/index.ts new file mode 100644 index 0000000..df31a88 --- /dev/null +++ b/index.ts @@ -0,0 +1,5 @@ +// import chains, { NetworkName } from './src' +import jsonToTs from 'json-to-ts'; +import chains from './chains.json' +console.log(jsonToTs(chains[0])) +// console.log(chains.get(NetworkName['Ether-1'])) \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..833dd58 --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "eth-chains", + "version": "0.1.0", + "description": "Helper module for getting Ethereum network info", + "main": "index.ts", + "author": "Taylor Dawson", + "license": "WTFPL", + "private": false, + "scripts": { + "build": "ts-node src/build.ts", + "format": "prettier --write src/" + }, + "dependencies": { + "@types/node": "^14.14.37", + "got": "^11.8.2", + "json-to-ts": "^1.7.0", + "typescript": "^4.2.3" + }, + "devDependencies": { + "@types/prettier": "^2.2.3", + "prettier": "^2.2.1", + "ts-node": "^9.1.1" + } +} diff --git a/src/build.ts b/src/build.ts new file mode 100644 index 0000000..f350a66 --- /dev/null +++ b/src/build.ts @@ -0,0 +1,55 @@ +import got from 'got' +import { promises as fs } from 'fs' +import { inspect } from 'util' +import { format } from 'prettier' +import { Options } from 'prettier' + +import { Chain } from './types' +import { capitalize } from './helpers' +import prettierOptions from '../.prettierrc.json' + +const formatterOptions = { + ...(prettierOptions as Options), + parser: 'typescript' +} + +const getEnum = (chainName: string) => { + let enumKey = capitalize(chainName.replace(/\s/g, '')) + // If the key starts with a number or contains ',' or '.' then wrap it in quotes + enumKey = !!chainName.match(/^\d|[\-\.]/) ? `'${enumKey}'` : enumKey + return `${enumKey} = '${chainName}'` +} + +const generateEnumFile = async (chains: Chain[]) => { + fs.writeFile( + './src/enums.ts', + format( + `export enum NetworkName {${chains + .map(chain => `${getEnum(chain.name)}`) + .join(',\n')}}`, + { ...(prettierOptions as Options), parser: 'typescript' } + ) + ) +} + +const generateChainsFile = async () => { + const chains: Chain[] = await got( + 'https://chainid.network/chains.json' + ).json() + + //await generateEnumFile(chains) + + const chainsJs = chains + .map(chain => `${chain.chainId}: ${inspect(chain)}`) + .join(',\n') + + fs.writeFile( + './src/chains.ts', + format( + `import { Chains } from "./types"\nexport const chains: Chains = {\n${chainsJs}\n}`, + formatterOptions + ) + ) +} + +generateChainsFile() diff --git a/src/chains.ts b/src/chains.ts new file mode 100644 index 0000000..a57c269 --- /dev/null +++ b/src/chains.ts @@ -0,0 +1,2236 @@ +import { Chains } from './types' +export const chains: Chains = { + 1: { + name: 'Ethereum Mainnet', + chainId: 1, + shortName: 'eth', + chain: 'ETH', + network: 'mainnet', + networkId: 1, + nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, + rpc: [ + 'https://mainnet.infura.io/v3/${INFURA_API_KEY}', + 'wss://mainnet.infura.io/ws/v3/${INFURA_API_KEY}', + 'https://api.mycryptoapi.com/eth', + 'https://cloudflare-eth.com' + ], + faucets: [], + explorers: [ + { + name: 'etherscan', + url: 'https://etherscan.io', + standard: 'EIP3091' + } + ], + infoURL: 'https://ethereum.org' + }, + 10: { + name: 'Optimistic Ethereum', + chainId: 10, + shortName: 'oeth', + chain: 'ETH', + network: 'mainnet', + networkId: 10, + nativeCurrency: { name: 'Ether', symbol: 'OETH', decimals: 18 }, + rpc: ['https://mainnet.optimism.io/'], + faucets: [], + explorers: [], + infoURL: 'https://optimism.io' + }, + 100: { + name: 'xDAI Chain', + chainId: 100, + shortName: 'xdai', + chain: 'XDAI', + network: 'mainnet', + networkId: 100, + nativeCurrency: { name: 'xDAI', symbol: 'xDAI', decimals: 18 }, + rpc: [ + 'https://rpc.xdaichain.com', + 'https://xdai.poanetwork.dev', + 'wss://rpc.xdaichain.com/wss', + 'wss://xdai.poanetwork.dev/wss', + 'http://xdai.poanetwork.dev', + 'https://dai.poa.network', + 'ws://xdai.poanetwork.dev:8546' + ], + faucets: [], + explorers: [], + infoURL: 'https://forum.poa.network/c/xdai-chain' + }, + 10000: { + name: 'Smart Bitcoin Cash', + chainId: 10000, + shortName: 'smartbch', + chain: 'smartBCH', + network: 'mainnet', + networkId: 10000, + nativeCurrency: { name: 'Bitcoin Cash', symbol: 'BCH', decimals: 18 }, + rpc: ['https://rpc-mainnet.smartbch.org'], + faucets: [], + explorers: [], + infoURL: 'http://smartbch.org/' + }, + 10001: { + name: 'Smart Bitcoin Cash Testnet', + chainId: 10001, + shortName: 'smartbchtest', + chain: 'smartBCHTest', + network: 'testnet', + networkId: 10001, + nativeCurrency: { + name: 'Bitcoin Cash Test Token', + symbol: 'BCHT', + decimals: 18 + }, + rpc: ['https://rpc-testnet.smartbch.org'], + faucets: [], + explorers: [], + infoURL: 'http://smartbch.org/' + }, + 1001: { + name: 'Klaytn Testnet Baobab', + chainId: 1001, + shortName: 'Baobab', + chain: 'KLAY', + network: 'baobab', + networkId: 1001, + nativeCurrency: { name: 'KLAY', symbol: 'KLAY', decimals: 18 }, + rpc: ['https://node-api.klaytnapi.com/v1/klaytn'], + faucets: ['https://baobab.wallet.klaytn.com/access?next=faucet'], + explorers: [], + infoURL: 'https://www.klaytn.com/' + }, + 1007: { + name: 'Newton Testnet', + chainId: 1007, + shortName: 'tnew', + chain: 'NEW', + network: 'testnet', + networkId: 1007, + nativeCurrency: { name: 'Newton', symbol: 'NEW', decimals: 18 }, + rpc: ['https://rpc1.newchain.newtonproject.org'], + faucets: [], + explorers: [], + infoURL: 'https://www.newtonproject.org/' + }, + 101: { + name: 'EtherInc', + chainId: 101, + shortName: 'eti', + chain: 'ETI', + network: 'mainnet', + networkId: 1, + nativeCurrency: { name: 'EtherInc Ether', symbol: 'ETI', decimals: 18 }, + rpc: ['https://api.einc.io/jsonrpc/mainnet'], + faucets: [], + explorers: [], + infoURL: 'https://einc.io' + }, + 1010: { + name: 'Evrice Network', + chainId: 1010, + shortName: 'EVC', + chain: 'EVC', + network: 'Evrice', + networkId: 1010, + nativeCurrency: { name: 'Evrice', symbol: 'EVC', decimals: 18 }, + rpc: ['https://meta.evrice.com'], + faucets: [], + explorers: [], + infoURL: 'https://evrice.com' + }, + 1012: { + name: 'Newton', + chainId: 1012, + shortName: 'new', + chain: 'NEW', + network: 'mainnet', + networkId: 1012, + nativeCurrency: { name: 'Newton', symbol: 'NEW', decimals: 18 }, + rpc: ['https://global.rpc.mainnet.newtonproject.org'], + faucets: [], + explorers: [], + infoURL: 'https://www.newtonproject.org/' + }, + 102: { + name: 'Web3Games Testnet', + chainId: 102, + shortName: 'w3g', + chain: 'Web3Games', + network: 'testnet', + networkId: 102, + nativeCurrency: { name: 'Web3Games', symbol: 'W3G', decimals: 18 }, + rpc: ['https://substrate.org.cn'], + faucets: [], + explorers: [], + infoURL: 'https://web3games.org/' + }, + 1023: { + name: 'Clover Testnet', + chainId: 1023, + shortName: 'tclv', + chain: 'Clover', + network: 'clover testnet', + networkId: 1023, + nativeCurrency: { name: 'Clover', symbol: 'CLV', decimals: 18 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://clover.finance' + }, + 1024: { + name: 'Clover Mainnet', + chainId: 1024, + shortName: 'clv', + chain: 'Clover', + network: 'clover mainnet', + networkId: 1024, + nativeCurrency: { name: 'Clover', symbol: 'CLV', decimals: 18 }, + rpc: [ + 'https://rpc-ivy.clover.finance', + 'https://rpc-ivy-2.clover.finance', + 'https://rpc-ivy-3.clover.finance' + ], + faucets: [], + explorers: [], + infoURL: 'https://clover.finance' + }, + 108: { + name: 'ThunderCore Mainnet', + chainId: 108, + shortName: 'TT', + chain: 'TT', + network: 'mainnet', + networkId: 108, + nativeCurrency: { + name: 'ThunderCore Mainnet Ether', + symbol: 'TT', + decimals: 18 + }, + rpc: ['https://mainnet-rpc.thundercore.com'], + faucets: ['https://faucet.thundercore.com'], + explorers: [], + infoURL: 'https://thundercore.com' + }, + 11: { + name: 'Metadium Mainnet', + chainId: 11, + shortName: 'meta', + chain: 'META', + network: 'mainnet', + networkId: 11, + nativeCurrency: { + name: 'Metadium Mainnet Ether', + symbol: 'META', + decimals: 18 + }, + rpc: ['https://api.metadium.com/prod'], + faucets: [], + explorers: [], + infoURL: 'https://metadium.com' + }, + 1122334455: { + name: 'IPOS Network', + chainId: 1122334455, + shortName: 'ipos', + chain: 'IPOS', + network: 'mainnet', + networkId: 1122334455, + nativeCurrency: { + name: 'IPOS Network Ether', + symbol: 'IPOS', + decimals: 18 + }, + rpc: ['https://rpc.iposlab.com', 'https://rpc2.iposlab.com'], + faucets: [], + explorers: [], + infoURL: 'https://iposlab.com' + }, + 1139: { + name: 'MathChain', + chainId: 1139, + shortName: 'MATH', + chain: 'MATH', + network: 'mainnet', + networkId: 1139, + nativeCurrency: { name: 'MathChain', symbol: 'MATH', decimals: 18 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://mathchain.org' + }, + 1140: { + name: 'MathChain Testnet', + chainId: 1140, + shortName: 'tMATH', + chain: 'MATH', + network: 'testnet', + networkId: 1140, + nativeCurrency: { name: 'MathChain', symbol: 'MATH', decimals: 18 }, + rpc: ['https://galois-hk.maiziqianbao.net/rpc'], + faucets: ['https://scan.boka.network/#/Galois/faucet'], + explorers: [], + infoURL: 'https://mathchain.org' + }, + 12: { + name: 'Metadium Testnet', + chainId: 12, + shortName: 'kal', + chain: 'META', + network: 'testnet', + networkId: 12, + nativeCurrency: { + name: 'Metadium Testnet Ether', + symbol: 'KAL', + decimals: 18 + }, + rpc: ['https://api.metadium.com/dev'], + faucets: [], + explorers: [], + infoURL: 'https://metadium.com' + }, + 122: { + name: 'Fuse Mainnet', + chainId: 122, + shortName: 'fuse', + chain: 'FUSE', + network: 'mainnet', + networkId: 122, + nativeCurrency: { name: 'Fuse', symbol: 'FUSE', decimals: 18 }, + rpc: ['https://rpc.fuse.io'], + faucets: [], + explorers: [], + infoURL: 'https://fuse.io/' + }, + 128: { + name: 'Huobi ECO Chain Mainnet', + chainId: 128, + shortName: 'heco', + chain: 'Heco', + network: 'mainnet', + networkId: 128, + nativeCurrency: { + name: 'Huobi ECO Chain Native Token', + symbol: 'HT', + decimals: 18 + }, + rpc: [ + 'https://http-mainnet.hecochain.com', + 'wss://ws-mainnet.hecochain.com' + ], + faucets: [], + explorers: [], + infoURL: 'https://hecoinfo.com' + }, + 1284: { + name: 'Moonbeam Polkadot', + chainId: 1284, + shortName: 'mbeam', + chain: 'MOON', + network: 'moonbeam', + networkId: 1284, + nativeCurrency: { name: 'Glimmer', symbol: 'GLMR', decimals: 18 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://moonbeam.network/networks/moonbeam/' + }, + 1285: { + name: 'Moonriver Kusama', + chainId: 1285, + shortName: 'mriver', + chain: 'MOON', + network: 'moonriver', + networkId: 1285, + nativeCurrency: { name: 'River', symbol: 'RIVER', decimals: 18 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://moonbeam.network/networks/moonriver/' + }, + 1286: { + name: 'Moonrock Rococo', + chainId: 1286, + shortName: 'mrock', + chain: 'MOON', + network: 'moonrock', + networkId: 1286, + nativeCurrency: { name: 'Rocs', symbol: 'ROC', decimals: 18 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: '' + }, + 1287: { + name: 'Moonbeam Testnet Moonbase Alpha', + chainId: 1287, + shortName: 'mbase', + chain: 'MOON', + network: 'moonbase', + networkId: 1287, + nativeCurrency: { name: 'Dev', symbol: 'DEV', decimals: 18 }, + rpc: [ + 'https://rpc.testnet.moonbeam.network', + 'wss://wss.testnet.moonbeam.network' + ], + faucets: [], + explorers: [], + infoURL: 'https://docs.moonbeam.network/networks/testnet/' + }, + 13: { + name: 'Diode Testnet Staging', + chainId: 13, + shortName: 'dstg', + chain: 'DIODE', + network: 'testnet', + networkId: 13, + nativeCurrency: { name: 'Staging Diodes', symbol: 'sDIODE', decimals: 18 }, + rpc: ['https://staging.diode.io:8443/', 'wss://staging.diode.io:8443/ws'], + faucets: [], + explorers: [], + infoURL: 'https://diode.io/staging' + }, + 1313114: { + name: 'Ether-1', + chainId: 1313114, + shortName: 'etho', + chain: 'ETHO', + network: 'mainnet', + networkId: 1313114, + nativeCurrency: { name: 'Ether-1 Ether', symbol: 'ETHO', decimals: 18 }, + rpc: ['https://rpc.ether1.org'], + faucets: [], + explorers: [], + infoURL: 'https://ether1.org' + }, + 1313161554: { + name: 'NEAR MainNet', + chainId: 1313161554, + shortName: 'near', + chain: 'NEAR', + network: 'mainnet', + networkId: 1313161554, + nativeCurrency: { name: 'NEAR', symbol: 'NEAR', decimals: 24 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://near.org/' + }, + 1313161555: { + name: 'NEAR TestNet', + chainId: 1313161555, + shortName: 'neart', + chain: 'NEAR', + network: 'testnet', + networkId: 1313161555, + nativeCurrency: { name: 'NEAR', symbol: 'tNEAR', decimals: 24 }, + rpc: [], + faucets: ['https://wallet.testnet.near.org'], + explorers: [], + infoURL: 'https://near.org/' + }, + 1313161556: { + name: 'NEAR BetaNet', + chainId: 1313161556, + shortName: 'nearb', + chain: 'NEAR', + network: 'betanet', + networkId: 1313161556, + nativeCurrency: { name: 'NEAR', symbol: 'bNEAR', decimals: 24 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://near.org/' + }, + 1313500: { + name: 'Xerom', + chainId: 1313500, + shortName: 'xero', + chain: 'XERO', + network: 'mainnet', + networkId: 1313500, + nativeCurrency: { name: 'Xerom Ether', symbol: 'XERO', decimals: 18 }, + rpc: ['https://rpc.xerom.org'], + faucets: [], + explorers: [], + infoURL: 'https://xerom.org' + }, + 13371337: { + name: 'PepChain Churchill', + chainId: 13371337, + shortName: 'tpep', + chain: 'PEP', + network: 'testnet', + networkId: 13371337, + nativeCurrency: { + name: 'PepChain Churchill Ether', + symbol: 'TPEP', + decimals: 18 + }, + rpc: ['https://churchill-rpc.pepchain.io'], + faucets: [], + explorers: [], + infoURL: 'https://pepchain.io' + }, + 137: { + name: 'Matic Mainnet', + chainId: 137, + shortName: 'matic', + chain: 'Matic', + network: 'mainnet', + networkId: 137, + nativeCurrency: { name: 'Matic', symbol: 'MATIC', decimals: 18 }, + rpc: [ + 'https://rpc-mainnet.matic.network', + 'wss://ws-mainnet.matic.network' + ], + faucets: [], + explorers: [], + infoURL: 'https://matic.network/' + }, + 14: { + name: 'Flare Mainnet', + chainId: 14, + shortName: 'flr', + chain: 'FLR', + network: 'flare', + networkId: 14, + nativeCurrency: { name: 'Spark', symbol: 'FLR', decimals: 18 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://flare.xyz' + }, + 15: { + name: 'Diode Prenet', + chainId: 15, + shortName: 'diode', + chain: 'DIODE', + network: 'mainnet', + networkId: 15, + nativeCurrency: { name: 'Diodes', symbol: 'DIODE', decimals: 18 }, + rpc: ['https://prenet.diode.io:8443/', 'wss://prenet.diode.io:8443/ws'], + faucets: [], + explorers: [], + infoURL: 'https://diode.io/prenet' + }, + 16: { + name: 'Flare Testnet Coston', + chainId: 16, + shortName: 'cflr', + chain: 'FLR', + network: 'coston', + networkId: 16, + nativeCurrency: { name: 'Coston Spark', symbol: 'CFLR', decimals: 18 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://github.com/flare-eng/coston' + }, + 162: { + name: 'Lightstreams Testnet', + chainId: 162, + shortName: 'tpht', + chain: 'PHT', + network: 'sirius', + networkId: 162, + nativeCurrency: { name: 'Lightstreams PHT', symbol: 'PHT', decimals: 18 }, + rpc: ['https://node.sirius.lightstreams.io'], + faucets: ['https://discuss.lightstreams.network/t/request-test-tokens'], + explorers: [], + infoURL: 'https://explorer.sirius.lightstreams.io' + }, + 1620: { + name: 'Atheios', + chainId: 1620, + shortName: 'ath', + chain: 'ATH', + network: 'mainnet', + networkId: 11235813, + nativeCurrency: { name: 'Atheios Ether', symbol: 'ATH', decimals: 18 }, + rpc: ['https://wallet.atheios.com:8797'], + faucets: [], + explorers: [], + infoURL: 'https://atheios.com' + }, + 163: { + name: 'Lightstreams Mainnet', + chainId: 163, + shortName: 'pht', + chain: 'PHT', + network: 'mainnet', + networkId: 163, + nativeCurrency: { name: 'Lightstreams PHT', symbol: 'PHT', decimals: 18 }, + rpc: ['https://node.mainnet.lightstreams.io'], + faucets: [], + explorers: [], + infoURL: 'https://explorer.lightstreams.io' + }, + 1666600000: { + name: 'Harmony Mainnet Shard 0', + chainId: 1666600000, + shortName: 'hmy-s0', + chain: 'Harmony', + network: 'mainnet', + networkId: 1666600000, + nativeCurrency: { name: 'ONE', symbol: 'ONE', decimals: 18 }, + rpc: ['https://api.harmony.one'], + faucets: [], + explorers: [], + infoURL: 'https://www.harmony.one/' + }, + 1666600001: { + name: 'Harmony Mainnet Shard 1', + chainId: 1666600001, + shortName: 'hmy-s1', + chain: 'Harmony', + network: 'mainnet', + networkId: 1666600001, + nativeCurrency: { name: 'ONE', symbol: 'ONE', decimals: 18 }, + rpc: ['https://s1.api.harmony.one'], + faucets: [], + explorers: [], + infoURL: 'https://www.harmony.one/' + }, + 1666600002: { + name: 'Harmony Mainnet Shard 2', + chainId: 1666600002, + shortName: 'hmy-s2', + chain: 'Harmony', + network: 'mainnet', + networkId: 1666600002, + nativeCurrency: { name: 'ONE', symbol: 'ONE', decimals: 18 }, + rpc: ['https://s2.api.harmony.one'], + faucets: [], + explorers: [], + infoURL: 'https://www.harmony.one/' + }, + 1666600003: { + name: 'Harmony Mainnet Shard 3', + chainId: 1666600003, + shortName: 'hmy-s3', + chain: 'Harmony', + network: 'mainnet', + networkId: 1666600003, + nativeCurrency: { name: 'ONE', symbol: 'ONE', decimals: 18 }, + rpc: ['https://s3.api.harmony.one'], + faucets: [], + explorers: [], + infoURL: 'https://www.harmony.one/' + }, + 1666700000: { + name: 'Harmony Testnet Shard 0', + chainId: 1666700000, + shortName: 'hmy-b-s0', + chain: 'Harmony', + network: 'testnet', + networkId: 1666700000, + nativeCurrency: { name: 'ONE', symbol: 'ONE', decimals: 18 }, + rpc: ['https://api.s0.b.hmny.io'], + faucets: [], + explorers: [], + infoURL: 'https://www.harmony.one/' + }, + 1666700001: { + name: 'Harmony Testnet Shard 1', + chainId: 1666700001, + shortName: 'hmy-b-s1', + chain: 'Harmony', + network: 'testnet', + networkId: 1666700001, + nativeCurrency: { name: 'ONE', symbol: 'ONE', decimals: 18 }, + rpc: ['https://api.s1.b.hmny.io'], + faucets: [], + explorers: [], + infoURL: 'https://www.harmony.one/' + }, + 1666700002: { + name: 'Harmony Testnet Shard 2', + chainId: 1666700002, + shortName: 'hmy-b-s2', + chain: 'Harmony', + network: 'testnet', + networkId: 1666700002, + nativeCurrency: { name: 'ONE', symbol: 'ONE', decimals: 18 }, + rpc: ['https://api.s2.b.hmny.io'], + faucets: [], + explorers: [], + infoURL: 'https://www.harmony.one/' + }, + 1666700003: { + name: 'Harmony Testnet Shard 3', + chainId: 1666700003, + shortName: 'hmy-b-s3', + chain: 'Harmony', + network: 'testnet', + networkId: 1666700003, + nativeCurrency: { name: 'ONE', symbol: 'ONE', decimals: 18 }, + rpc: ['https://api.s3.b.hmny.io'], + faucets: [], + explorers: [], + infoURL: 'https://www.harmony.one/' + }, + 17: { + name: 'ThaiChain 2.0 ThaiFi', + chainId: 17, + shortName: 'tfi', + chain: 'TCH', + network: 'thaifi', + networkId: 17, + nativeCurrency: { name: 'Thaifi Ether', symbol: 'TFI', decimals: 18 }, + rpc: ['https://rpc.thaifi.com'], + faucets: [], + explorers: [], + infoURL: 'https://exp.thaifi.com' + }, + 170: { + name: 'HOO Smart Chain Testnet', + chainId: 170, + shortName: 'hoosmartchain', + chain: 'ETH', + network: 'testnet', + networkId: 170, + nativeCurrency: { name: 'HOO', symbol: 'HOO', decimals: 18 }, + rpc: ['https://http-testnet.hoosmartchain.com'], + faucets: ['https://faucet-testnet.hscscan.com/'], + explorers: [], + infoURL: 'https://www.hoosmartchain.com' + }, + 18: { + name: 'ThunderCore Testnet', + chainId: 18, + shortName: 'TST', + chain: 'TST', + network: 'testnet', + networkId: 18, + nativeCurrency: { + name: 'ThunderCore Testnet Ether', + symbol: 'TST', + decimals: 18 + }, + rpc: ['https://testnet-rpc.thundercore.com'], + faucets: ['https://faucet-testnet.thundercore.com'], + explorers: [], + infoURL: 'https://thundercore.com' + }, + 18289463: { + name: 'IOLite', + chainId: 18289463, + shortName: 'ilt', + chain: 'ILT', + network: 'mainnet', + networkId: 18289463, + nativeCurrency: { name: 'IOLite Ether', symbol: 'ILT', decimals: 18 }, + rpc: ['https://net.iolite.io'], + faucets: [], + explorers: [], + infoURL: 'https://iolite.io' + }, + 1856: { + name: 'Teslafunds', + chainId: 1856, + shortName: 'tsf', + chain: 'TSF', + network: 'mainnet', + networkId: 1, + nativeCurrency: { name: 'Teslafunds Ether', symbol: 'TSF', decimals: 18 }, + rpc: ['https://tsfapi.europool.me'], + faucets: [], + explorers: [], + infoURL: 'https://teslafunds.io' + }, + 1987: { + name: 'EtherGem', + chainId: 1987, + shortName: 'egem', + chain: 'EGEM', + network: 'mainnet', + networkId: 1987, + nativeCurrency: { name: 'EtherGem Ether', symbol: 'EGEM', decimals: 18 }, + rpc: ['https://jsonrpc.egem.io/custom'], + faucets: [], + explorers: [], + infoURL: 'https://egem.io' + }, + 2: { + name: 'Expanse Network', + chainId: 2, + shortName: 'exp', + chain: 'EXP', + network: 'mainnet', + networkId: 1, + nativeCurrency: { + name: 'Expanse Network Ether', + symbol: 'EXP', + decimals: 18 + }, + rpc: ['https://node.expanse.tech'], + faucets: [], + explorers: [], + infoURL: 'https://expanse.tech' + }, + 20: { + name: 'ELA-ETH-Sidechain Mainnet', + chainId: 20, + shortName: 'elaeth', + chain: 'ETH', + network: 'mainnet', + networkId: 20, + nativeCurrency: { name: 'Elastos', symbol: 'ELA', decimals: 18 }, + rpc: ['https://mainrpc.elaeth.io'], + faucets: [], + explorers: [], + infoURL: 'https://www.elastos.org/' + }, + 200625: { + name: 'Akroma', + chainId: 200625, + shortName: 'aka', + chain: 'AKA', + network: 'mainnet', + networkId: 200625, + nativeCurrency: { name: 'Akroma Ether', symbol: 'AKA', decimals: 18 }, + rpc: ['https://remote.akroma.io'], + faucets: [], + explorers: [], + infoURL: 'https://akroma.io' + }, + 2020: { + name: '420coin', + chainId: 2020, + shortName: '420', + chain: '420', + network: 'mainnet', + networkId: 2020, + nativeCurrency: { name: 'Fourtwenty', symbol: '420', decimals: 18 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://420integrated.com' + }, + 2021: { + name: 'Edgeware Mainnet', + chainId: 2021, + shortName: 'edg', + chain: 'EDG', + network: 'mainnet', + networkId: 2021, + nativeCurrency: { name: 'Edge', symbol: 'EDG', decimals: 18 }, + rpc: ['https://mainnet1.edgewa.re'], + faucets: [], + explorers: [], + infoURL: 'http://edgewa.re' + }, + 2022: { + name: 'Beresheet Testnet', + chainId: 2022, + shortName: 'edgt', + chain: 'EDG', + network: 'beresheet', + networkId: 2022, + nativeCurrency: { name: 'Testnet Edge', symbol: 'tEDG', decimals: 18 }, + rpc: ['https://beresheet1.edgewa.re'], + faucets: [], + explorers: [], + infoURL: 'http://edgewa.re' + }, + 21: { + name: 'ELA-ETH-Sidechain Testnet', + chainId: 21, + shortName: 'elaetht', + chain: 'ETH', + network: 'testnet', + networkId: 21, + nativeCurrency: { name: 'Elastos', symbol: 'tELA', decimals: 18 }, + rpc: ['https://rpc.elaeth.io'], + faucets: ['https://faucet.elaeth.io/'], + explorers: [], + infoURL: 'https://elaeth.io/' + }, + 211: { + name: 'Freight Trust Network', + chainId: 211, + shortName: 'EDI', + chain: 'EDI', + network: 'freight & trade network', + networkId: 0, + nativeCurrency: { + name: 'Freight Trust Native', + symbol: '0xF', + decimals: 18 + }, + rpc: [ + 'http://13.57.207.168:3435', + 'https://app.freighttrust.net/ftn/${API_KEY}' + ], + faucets: ['http://faucet.freight.sh'], + explorers: [], + infoURL: 'https://freighttrust.com' + }, + 22: { + name: 'ELA-DID-Sidechain Mainnet', + chainId: 22, + shortName: 'eladid', + chain: 'ETH', + network: 'mainnet', + networkId: 22, + nativeCurrency: { name: 'Elastos', symbol: 'ELA', decimals: 18 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://www.elastos.org/' + }, + 23: { + name: 'ELA-DID-Sidechain Testnet', + chainId: 23, + shortName: 'eladidt', + chain: 'ETH', + network: 'testnet', + networkId: 23, + nativeCurrency: { name: 'Elastos', symbol: 'tELA', decimals: 18 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://elaeth.io/' + }, + 24484: { + name: 'Webchain', + chainId: 24484, + shortName: 'web', + chain: 'WEB', + network: 'mainnet', + networkId: 37129, + nativeCurrency: { name: 'Webchain Ether', symbol: 'WEB', decimals: 18 }, + rpc: ['https://node1.webchain.network'], + faucets: [], + explorers: [], + infoURL: 'https://webchain.network' + }, + 246: { + name: 'Energy Web Chain', + chainId: 246, + shortName: 'ewt', + chain: 'Energy Web Chain', + network: 'mainnet', + networkId: 246, + nativeCurrency: { name: 'Energy Web Token', symbol: 'EWT', decimals: 18 }, + rpc: ['https://rpc.energyweb.org', 'wss://rpc.energyweb.org/ws'], + faucets: [], + explorers: [], + infoURL: 'https://energyweb.org' + }, + 246529: { + name: 'ARTIS sigma1', + chainId: 246529, + shortName: 'ats', + chain: 'ARTIS', + network: 'sigma1', + networkId: 246529, + nativeCurrency: { name: 'ARTIS sigma1 Ether', symbol: 'ATS', decimals: 18 }, + rpc: ['https://rpc.sigma1.artis.network'], + faucets: [], + explorers: [], + infoURL: 'https://artis.eco' + }, + 246785: { + name: 'ARTIS Testnet tau1', + chainId: 246785, + shortName: 'atstau', + chain: 'ARTIS', + network: 'tau1', + networkId: 246785, + nativeCurrency: { name: 'ARTIS tau1 Ether', symbol: 'tATS', decimals: 18 }, + rpc: ['https://rpc.tau1.artis.network'], + faucets: [], + explorers: [], + infoURL: 'https://artis.network' + }, + 24734: { + name: 'MintMe.com Coin', + chainId: 24734, + shortName: 'mintme', + chain: 'MINTME', + network: 'mainnet', + networkId: 37480, + nativeCurrency: { name: 'MintMe.com Coin', symbol: 'MINTME', decimals: 18 }, + rpc: ['https://node1.mintme.com'], + faucets: [], + explorers: [], + infoURL: 'https://www.mintme.com' + }, + 250: { + name: 'Fantom Opera', + chainId: 250, + shortName: 'ftm', + chain: 'FTM', + network: 'mainnet', + networkId: 250, + nativeCurrency: { name: 'Fantom', symbol: 'FTM', decimals: 18 }, + rpc: ['https://rpcapi.fantom.network'], + faucets: [], + explorers: [ + { + name: 'ftmscan', + url: 'https://ftmscan.com', + icon: 'ftmscan', + standard: 'EIP3091' + } + ], + infoURL: 'https://fantom.foundation' + }, + 256: { + name: 'Huobi ECO Chain Testnet', + chainId: 256, + shortName: 'hecot', + chain: 'Heco', + network: 'testnet', + networkId: 256, + nativeCurrency: { + name: 'Huobi ECO Chain Test Native Token', + symbol: 'htt', + decimals: 18 + }, + rpc: [ + 'https://http-testnet.hecochain.com', + 'wss://ws-testnet.hecochain.com' + ], + faucets: ['https://scan-testnet.hecochain.com/faucet'], + explorers: [], + infoURL: 'https://testnet.hecoinfo.com' + }, + 269: { + name: 'High Performance Blockchain', + chainId: 269, + shortName: 'hpb', + chain: 'HPB', + network: 'mainnet', + networkId: 100, + nativeCurrency: { + name: 'High Performance Blockchain Ether', + symbol: 'HPB', + decimals: 18 + }, + rpc: ['https://hpb.app'], + faucets: [], + explorers: [], + infoURL: 'https://hpbscan.org/' + }, + 28945486: { + name: 'Auxilium Network Mainnet', + chainId: 28945486, + shortName: 'auxi', + chain: 'AUX', + network: 'mainnet', + networkId: 28945486, + nativeCurrency: { name: 'Auxilium coin', symbol: 'AUX', decimals: 18 }, + rpc: ['https://rpc.auxilium.global'], + faucets: [], + explorers: [], + infoURL: 'https://auxilium.global' + }, + 3: { + name: 'Ethereum Testnet Ropsten', + chainId: 3, + shortName: 'rop', + chain: 'ETH', + network: 'ropsten', + networkId: 3, + nativeCurrency: { name: 'Ropsten Ether', symbol: 'ROP', decimals: 18 }, + rpc: [ + 'https://ropsten.infura.io/v3/${INFURA_API_KEY}', + 'wss://ropsten.infura.io/ws/v3/${INFURA_API_KEY}' + ], + faucets: ['https://faucet.ropsten.be?${ADDRESS}'], + explorers: [], + infoURL: 'https://github.com/ethereum/ropsten' + }, + 30: { + name: 'RSK Mainnet', + chainId: 30, + shortName: 'rsk', + chain: 'RSK', + network: 'mainnet', + networkId: 30, + nativeCurrency: { name: 'RSK Mainnet Ether', symbol: 'RBTC', decimals: 18 }, + rpc: ['https://public-node.rsk.co', 'https://mycrypto.rsk.co'], + faucets: [], + explorers: [], + infoURL: 'https://rsk.co' + }, + 31: { + name: 'RSK Testnet', + chainId: 31, + shortName: 'trsk', + chain: 'RSK', + network: 'testnet', + networkId: 31, + nativeCurrency: { + name: 'RSK Testnet Ether', + symbol: 'tRBTC', + decimals: 18 + }, + rpc: [ + 'https://public-node.testnet.rsk.co', + 'https://mycrypto.testnet.rsk.co' + ], + faucets: ['https://faucet.testnet.rsk.co'], + explorers: [], + infoURL: 'https://rsk.co' + }, + 31102: { + name: 'Ethersocial Network', + chainId: 31102, + shortName: 'esn', + chain: 'ESN', + network: 'mainnet', + networkId: 1, + nativeCurrency: { + name: 'Ethersocial Network Ether', + symbol: 'ESN', + decimals: 18 + }, + rpc: ['https://api.esn.gonspool.com'], + faucets: [], + explorers: [], + infoURL: 'https://ethersocial.org' + }, + 3125659152: { + name: 'Pirl', + chainId: 3125659152, + shortName: 'pirl', + chain: 'PIRL', + network: 'mainnet', + networkId: 3125659152, + nativeCurrency: { name: 'Pirl Ether', symbol: 'PIRL', decimals: 18 }, + rpc: ['https://wallrpc.pirl.io'], + faucets: [], + explorers: [], + infoURL: 'https://pirl.io' + }, + 322: { + name: 'KuCoin Community Chain Testnet', + chainId: 322, + shortName: 'kcc', + chain: 'KCC', + network: 'testnet', + networkId: 322, + nativeCurrency: { + name: 'KuCoin Testnet Token', + symbol: 'KCS', + decimals: 18 + }, + rpc: ['https://rpc-testnet.kucoin.one'], + faucets: ['https://faucet-testnet.kucoin.one'], + explorers: [ + { + name: 'kcc-scan', + url: 'https://scan-testnet.kucoin.one', + standard: 'EIP3091' + } + ], + infoURL: 'https://scan-testnet.kucoin.one' + }, + 32659: { + name: 'Fusion Mainnet', + chainId: 32659, + shortName: 'fsn', + chain: 'FSN', + network: 'mainnet', + networkId: 32659, + nativeCurrency: { name: 'Fusion', symbol: 'FSN', decimals: 18 }, + rpc: ['https://mainnet.anyswap.exchange', 'https://fsn.dev/api'], + faucets: [], + explorers: [], + infoURL: 'https://www.fusion.org/' + }, + 33: { + name: 'GoodData Mainnet', + chainId: 33, + shortName: 'GooD', + chain: 'GooD', + network: 'mainnet', + networkId: 33, + nativeCurrency: { + name: 'GoodData Mainnet Ether', + symbol: 'GooD', + decimals: 18 + }, + rpc: ['https://rpc.goodata.io'], + faucets: [], + explorers: [], + infoURL: 'https://www.goodata.org' + }, + 35: { + name: 'TBWG Chain', + chainId: 35, + shortName: 'tbwg', + chain: 'TBWG', + network: 'mainnet', + networkId: 35, + nativeCurrency: { name: 'TBWG Ether', symbol: 'TBG', decimals: 18 }, + rpc: ['https://rpc.tbwg.io'], + faucets: [], + explorers: [], + infoURL: 'https://tbwg.io' + }, + 35855456: { + name: 'Joys Digital Mainnet', + chainId: 35855456, + shortName: 'JOYS', + chain: 'JOYS', + network: 'mainnet', + networkId: 35855456, + nativeCurrency: { name: 'JOYS', symbol: 'JOYS', decimals: 18 }, + rpc: ['https://node.joys.digital'], + faucets: [], + explorers: [], + infoURL: 'https://joys.digital' + }, + 38: { + name: 'Valorbit', + chainId: 38, + shortName: 'val', + chain: 'VAL', + network: 'mainnet', + networkId: 38, + nativeCurrency: { name: 'Valorbit', symbol: 'VAL', decimals: 18 }, + rpc: ['https://rpc.valorbit.com/v2'], + faucets: [], + explorers: [], + infoURL: 'https://valorbit.com' + }, + 385: { + name: 'Lisinski', + chainId: 385, + shortName: 'lisinski', + chain: 'CRO', + network: 'mainnet', + networkId: 385, + nativeCurrency: { + name: 'Lisinski Ether', + symbol: 'LISINSKI', + decimals: 18 + }, + rpc: ['https://rpc-bitfalls1.lisinski.online'], + faucets: ['https://pipa.lisinski.online'], + explorers: [], + infoURL: 'https://lisinski.online' + }, + 39797: { + name: 'Energi Mainnet', + chainId: 39797, + shortName: 'nrg', + chain: 'NRG', + network: 'mainnet', + networkId: 39797, + nativeCurrency: { name: 'Energi', symbol: 'NRG', decimals: 18 }, + rpc: ['https://nodeapi.gen3.energi.network'], + faucets: [], + explorers: [], + infoURL: 'https://www.energi.world/' + }, + 4: { + name: 'Ethereum Testnet Rinkeby', + chainId: 4, + shortName: 'rin', + chain: 'ETH', + network: 'rinkeby', + networkId: 4, + nativeCurrency: { name: 'Rinkeby Ether', symbol: 'RIN', decimals: 18 }, + rpc: [ + 'https://rinkeby.infura.io/v3/${INFURA_API_KEY}', + 'wss://rinkeby.infura.io/ws/v3/${INFURA_API_KEY}' + ], + faucets: ['https://faucet.rinkeby.io'], + explorers: [], + infoURL: 'https://www.rinkeby.io' + }, + 40: { + name: 'Telos EVM Mainnet', + chainId: 40, + shortName: 'Telos EVM', + chain: 'TLOS', + network: 'mainnet', + networkId: 40, + nativeCurrency: { name: 'Telos', symbol: 'TLOS', decimals: 18 }, + rpc: ['https://mainnet.telos.net/evm'], + faucets: [], + explorers: [], + infoURL: 'https://telos.net' + }, + 41: { + name: 'Telos EVM Testnet', + chainId: 41, + shortName: 'Telos EVM Testnet', + chain: 'TLOS', + network: 'testnet', + networkId: 41, + nativeCurrency: { name: 'Telos', symbol: 'TLOS', decimals: 18 }, + rpc: ['https://testnet.telos.net/evm'], + faucets: ['https://app.telos.net/testnet/developers'], + explorers: [], + infoURL: 'https://telos.net' + }, + 42: { + name: 'Ethereum Testnet Kovan', + chainId: 42, + shortName: 'kov', + chain: 'ETH', + network: 'kovan', + networkId: 42, + nativeCurrency: { name: 'Kovan Ether', symbol: 'KOV', decimals: 18 }, + rpc: [ + 'https://kovan.poa.network', + 'http://kovan.poa.network:8545', + 'https://kovan.infura.io/v3/${INFURA_API_KEY}', + 'wss://kovan.infura.io/ws/v3/${INFURA_API_KEY}', + 'ws://kovan.poa.network:8546' + ], + faucets: [ + 'https://faucet.kovan.network', + 'https://gitter.im/kovan-testnet/faucet' + ], + explorers: [], + infoURL: 'https://kovan-testnet.github.io/website' + }, + 420: { + name: 'Optimistic Ethereum Testnet Goerli', + chainId: 420, + shortName: 'ogor', + chain: 'ETH', + network: 'goerli', + networkId: 420, + nativeCurrency: { name: 'Görli Ether', symbol: 'GOR', decimals: 18 }, + rpc: ['https://goerli.optimism.io/'], + faucets: [], + explorers: [], + infoURL: 'https://optimism.io' + }, + 42069: { + name: 'pegglecoin', + chainId: 42069, + shortName: 'PC', + chain: '42069', + network: 'mainnet', + networkId: 42069, + nativeCurrency: { name: 'pegglecoin', symbol: 'peggle', decimals: 18 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://teampeggle.com' + }, + 42220: { + name: 'Celo Mainnet', + chainId: 42220, + shortName: 'CELO', + chain: 'CELO', + network: 'Mainnet', + networkId: 42220, + nativeCurrency: { name: 'CELO', symbol: 'CELO', decimals: 18 }, + rpc: ['https://forno.celo.org', 'wss://forno.celo.org/ws'], + faucets: [], + explorers: [], + infoURL: 'https://docs.celo.org/' + }, + 43: { + name: 'Darwinia Pangolin Testnet', + chainId: 43, + shortName: 'darwinia', + chain: 'pangolin', + network: 'free testnet', + networkId: 43, + nativeCurrency: { name: 'Pangolin RING', symbol: 'PRING', decimals: 9 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://darwinia.network/' + }, + 43110: { + name: 'Athereum', + chainId: 43110, + shortName: 'avaeth', + chain: 'ATH', + network: 'athereum', + networkId: 43110, + nativeCurrency: { name: 'Athereum Ether', symbol: 'ATH', decimals: 18 }, + rpc: ['https://ava.network:21015/ext/evm/rpc'], + faucets: ['http://athfaucet.ava.network//?address=${ADDRESS}'], + explorers: [], + infoURL: 'https://athereum.ava.network' + }, + 43113: { + name: 'Avalanche Fuji Testnet', + chainId: 43113, + shortName: 'Fuji', + chain: 'AVAX', + network: 'testnet', + networkId: 1, + nativeCurrency: { name: 'Avalanche', symbol: 'AVAX', decimals: 18 }, + rpc: ['https://api.avax-test.network/ext/bc/C/rpc'], + faucets: ['https://faucet.avax-test.network/'], + explorers: [], + infoURL: 'https://cchain.explorer.avax-test.network' + }, + 43114: { + name: 'Avalanche Mainnet', + chainId: 43114, + shortName: 'Avalanche', + chain: 'AVAX', + network: 'mainnet', + networkId: 1, + nativeCurrency: { name: 'Avalanche', symbol: 'AVAX', decimals: 18 }, + rpc: ['https://api.avax.network/ext/bc/C/rpc'], + faucets: [], + explorers: [], + infoURL: 'https://cchain.explorer.avax.network/' + }, + 44: { + name: 'Darwinia Crab Network', + chainId: 44, + shortName: 'crab', + chain: 'crab', + network: 'Crab network', + networkId: 44, + nativeCurrency: { name: 'Crab Token', symbol: 'CRING', decimals: 9 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://crab.network/' + }, + 44787: { + name: 'Celo Alfajores Testnet', + chainId: 44787, + shortName: 'ALFA', + chain: 'CELO', + network: 'Alfajores', + networkId: 44787, + nativeCurrency: { name: 'CELO', symbol: 'CELO', decimals: 18 }, + rpc: [ + 'https://alfajores-forno.celo-testnet.org', + 'wss://alfajores-forno.celo-testnet.org/ws' + ], + faucets: [ + 'https://celo.org/developers/faucet', + 'https://cauldron.pretoriaresearchlab.io/alfajores-faucet' + ], + explorers: [], + infoURL: 'https://docs.celo.org/' + }, + 4689: { + name: 'IoTeX Network Mainnet', + chainId: 4689, + shortName: 'iotex-mainnet', + chain: 'IOTX', + network: 'mainnet', + networkId: 4689, + nativeCurrency: { name: 'IoTeX', symbol: 'IOTX', decimals: 18 }, + rpc: ['https://babel-api.mainnet.iotex.one'], + faucets: [], + explorers: [], + infoURL: 'https://iotex.io' + }, + 4690: { + name: 'IoTeX Network Testnet', + chainId: 4690, + shortName: 'iotex-testnet', + chain: 'IOTX', + network: 'testnet', + networkId: 4690, + nativeCurrency: { name: 'IoTeX', symbol: 'IOTX', decimals: 18 }, + rpc: ['https://babel-api.testnet.iotex.one'], + faucets: [], + explorers: [], + infoURL: 'https://iotex.io' + }, + 49797: { + name: 'Energi Testnet', + chainId: 49797, + shortName: 'tnrg', + chain: 'NRG', + network: 'testnet', + networkId: 49797, + nativeCurrency: { name: 'Energi', symbol: 'tNRG', decimals: 18 }, + rpc: ['https://nodeapi.test3.energi.network'], + faucets: [], + explorers: [], + infoURL: 'https://www.energi.world/' + }, + 499: { + name: 'Rupaya', + chainId: 499, + shortName: 'rupx', + chain: 'RUPX', + network: 'mainnet', + networkId: 499, + nativeCurrency: { name: 'Rupaya', symbol: 'RUPX', decimals: 18 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://www.rupx.io' + }, + 5: { + name: 'Ethereum Testnet Görli', + chainId: 5, + shortName: 'gor', + chain: 'ETH', + network: 'goerli', + networkId: 5, + nativeCurrency: { name: 'Görli Ether', symbol: 'GOR', decimals: 18 }, + rpc: [ + 'https://rpc.goerli.mudit.blog/', + 'https://rpc.slock.it/goerli ', + 'https://goerli.prylabs.net/' + ], + faucets: [ + 'https://goerli-faucet.slock.it/?address=${ADDRESS}', + 'https://faucet.goerli.mudit.blog' + ], + explorers: [], + infoURL: 'https://goerli.net/#about' + }, + 50: { + name: 'XinFin Network Mainnet', + chainId: 50, + shortName: 'xdc', + chain: 'XDC', + network: 'mainnet', + networkId: 50, + nativeCurrency: { name: 'XinFin', symbol: 'XDC', decimals: 18 }, + rpc: ['https://rpc.xinfin.network'], + faucets: [], + explorers: [], + infoURL: 'https://xinfin.org' + }, + 51: { + name: 'XinFin Apothem Testnet', + chainId: 51, + shortName: 'TXDC', + chain: 'TXDC', + network: 'testnet', + networkId: 51, + nativeCurrency: { name: 'XinFinTest', symbol: 'TXDC', decimals: 18 }, + rpc: ['https://rpc.apothem.network'], + faucets: [], + explorers: [], + infoURL: 'https://xinfin.org' + }, + 52: { + name: 'CoinEx Smart Chain Mainnet', + chainId: 52, + shortName: 'cet', + chain: 'CSC', + network: 'mainnet', + networkId: 52, + nativeCurrency: { + name: 'CoinEx Chain Native Token', + symbol: 'cet', + decimals: 18 + }, + rpc: ['https://rpc-mainnet.coinex.net'], + faucets: [], + explorers: [], + infoURL: 'http://www.coinex.org/' + }, + 53: { + name: 'CoinEx Smart Chain Testnet', + chainId: 53, + shortName: 'tcet', + chain: 'CSC', + network: 'testnet', + networkId: 53, + nativeCurrency: { + name: 'CoinEx Chain Test Native Token', + symbol: 'cett', + decimals: 18 + }, + rpc: ['https://rpc-testnet.coinex.net'], + faucets: [], + explorers: [], + infoURL: 'http://www.coinex.org/' + }, + 558: { + name: 'Tao Network', + chainId: 558, + shortName: 'tao', + chain: 'TAO', + network: 'core', + networkId: 558, + nativeCurrency: { name: 'Tao', symbol: 'TAO', decimals: 18 }, + rpc: [ + 'https://rpc.testnet.tao.network', + 'http://rpc.testnet.tao.network:8545', + 'https://rpc.tao.network', + 'wss://rpc.tao.network' + ], + faucets: [], + explorers: [], + infoURL: 'https://tao.network' + }, + 56: { + name: 'Binance Smart Chain Mainnet', + chainId: 56, + shortName: 'bnb', + chain: 'BSC', + network: 'mainnet', + networkId: 56, + nativeCurrency: { + name: 'Binance Chain Native Token', + symbol: 'BNB', + decimals: 18 + }, + rpc: [ + 'https://bsc-dataseed1.binance.org', + 'https://bsc-dataseed2.binance.org', + 'https://bsc-dataseed3.binance.org', + 'https://bsc-dataseed4.binance.org', + 'https://bsc-dataseed1.defibit.io', + 'https://bsc-dataseed2.defibit.io', + 'https://bsc-dataseed3.defibit.io', + 'https://bsc-dataseed4.defibit.io', + 'https://bsc-dataseed1.ninicoin.io', + 'https://bsc-dataseed2.ninicoin.io', + 'https://bsc-dataseed3.ninicoin.io', + 'https://bsc-dataseed4.ninicoin.io', + 'wss://bsc-ws-node.nariox.org' + ], + faucets: [], + explorers: [ + { + name: 'bscscan', + url: 'https://bscscan.com', + standard: 'EIP3091' + } + ], + infoURL: 'https://www.binance.org' + }, + 5869: { + name: 'Wegochain Rubidium Mainnet', + chainId: 5869, + shortName: 'rbd', + chain: 'RBD', + network: 'mainnet', + networkId: 5869, + nativeCurrency: { name: 'Rubid', symbol: 'RBD', decimals: 18 }, + rpc: ['https://proxy.wegochain.io', 'http://wallet.wegochain.io:7764'], + faucets: [], + explorers: [], + infoURL: 'http://wegochain.io' + }, + 595: { + name: 'Acala Mandala Testnet', + chainId: 595, + shortName: 'maca', + chain: 'mACA', + network: 'testnet', + networkId: 595, + nativeCurrency: { + name: 'Acala Mandala Token', + symbol: 'mACA', + decimals: 18 + }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://acala.network' + }, + 6: { + name: 'Ethereum Classic Testnet Kotti', + chainId: 6, + shortName: 'kot', + chain: 'ETC', + network: 'kotti', + networkId: 6, + nativeCurrency: { name: 'Kotti Ether', symbol: 'KOT', decimals: 18 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://explorer.jade.builders/?network=kotti' + }, + 60: { + name: 'GoChain', + chainId: 60, + shortName: 'go', + chain: 'GO', + network: 'mainnet', + networkId: 60, + nativeCurrency: { name: 'GoChain Ether', symbol: 'GO', decimals: 18 }, + rpc: ['https://rpc.gochain.io'], + faucets: [], + explorers: [], + infoURL: 'https://gochain.io' + }, + 61: { + name: 'Ethereum Classic Mainnet', + chainId: 61, + shortName: 'etc', + chain: 'ETC', + network: 'mainnet', + networkId: 1, + nativeCurrency: { + name: 'Ethereum Classic Ether', + symbol: 'ETC', + decimals: 18 + }, + rpc: ['https://ethereumclassic.network'], + faucets: [], + explorers: [], + infoURL: 'https://ethereumclassic.org' + }, + 61717561: { + name: 'Aquachain', + chainId: 61717561, + shortName: 'aqua', + chain: 'AQUA', + network: 'mainnet', + networkId: 61717561, + nativeCurrency: { name: 'Aquachain Ether', symbol: 'AQUA', decimals: 18 }, + rpc: ['https://c.onical.org', 'https://tx.aquacha.in/api'], + faucets: ['https://aquacha.in/faucet'], + explorers: [], + infoURL: 'https://aquachain.github.io' + }, + 62: { + name: 'Ethereum Classic Testnet Morden', + chainId: 62, + shortName: 'tetc', + chain: 'ETC', + network: 'testnet', + networkId: 2, + nativeCurrency: { + name: 'Ethereum Classic Testnet Ether', + symbol: 'TETC', + decimals: 18 + }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://ethereumclassic.org' + }, + 62320: { + name: 'Celo Baklava Testnet', + chainId: 62320, + shortName: 'BKLV', + chain: 'CELO', + network: 'Baklava', + networkId: 62320, + nativeCurrency: { name: 'CELO', symbol: 'CELO', decimals: 18 }, + rpc: ['https://baklava-forno.celo-testnet.org'], + faucets: [ + 'https://docs.google.com/forms/d/e/1FAIpQLSdfr1BwUTYepVmmvfVUDRCwALejZ-TUva2YujNpvrEmPAX2pg/viewform', + 'https://cauldron.pretoriaresearchlab.io/baklava-faucet' + ], + explorers: [], + infoURL: 'https://docs.celo.org/' + }, + 63: { + name: 'Ethereum Classic Testnet Mordor', + chainId: 63, + shortName: 'metc', + chain: 'ETC', + network: 'testnet', + networkId: 7, + nativeCurrency: { + name: 'Mordor Classic Testnet Ether', + symbol: 'METC', + decimals: 18 + }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://github.com/eth-classic/mordor/' + }, + 64: { + name: 'Ellaism', + chainId: 64, + shortName: 'ella', + chain: 'ELLA', + network: 'mainnet', + networkId: 64, + nativeCurrency: { name: 'Ellaism Ether', symbol: 'ELLA', decimals: 18 }, + rpc: ['https://jsonrpc.ellaism.org'], + faucets: [], + explorers: [], + infoURL: 'https://ellaism.org' + }, + 65: { + name: 'OKExChain Testnet', + chainId: 65, + shortName: 'tokt', + chain: 'okexchain', + network: 'testnet', + networkId: 65, + nativeCurrency: { + name: 'OKExChain Global Utility Token in testnet', + symbol: 'OKT', + decimals: 18 + }, + rpc: ['https://exchaintestrpc.okex.org'], + faucets: ['https://www.okex.com/drawdex'], + explorers: [], + infoURL: 'https://www.okex.com/okexchain' + }, + 66: { + name: 'OKExChain Mainnet', + chainId: 66, + shortName: 'okt', + chain: 'okexchain', + network: 'mainnet', + networkId: 66, + nativeCurrency: { + name: 'OKExChain Global Utility Token', + symbol: 'OKT', + decimals: 18 + }, + rpc: ['https://exchainrpc.okex.org'], + faucets: [], + explorers: [], + infoURL: 'https://www.okex.com/okexchain' + }, + 67: { + name: 'DBChain Testnet', + chainId: 67, + shortName: 'dbm', + chain: 'DBM', + network: 'testnet', + networkId: 67, + nativeCurrency: { name: 'DBChain Testnet', symbol: 'DBM', decimals: 18 }, + rpc: ['http://test-rpc.dbmbp.com'], + faucets: [], + explorers: [], + infoURL: 'http://test.dbmbp.com' + }, + 68: { + name: 'SoterOne Mainnet', + chainId: 68, + shortName: 'SO1', + chain: 'SOTER', + network: 'mainnet', + networkId: 68, + nativeCurrency: { + name: 'SoterOne Mainnet Ether', + symbol: 'SOTER', + decimals: 18 + }, + rpc: ['https://rpc.soter.one'], + faucets: [], + explorers: [], + infoURL: 'https://www.soterone.com' + }, + 686: { + name: 'Karura Network', + chainId: 686, + shortName: 'kar', + chain: 'KAR', + network: 'mainnet', + networkId: 686, + nativeCurrency: { name: 'Karura Token', symbol: 'KAR', decimals: 18 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://karura.network' + }, + 69: { + name: 'Optimistic Ethereum Testnet Kovan', + chainId: 69, + shortName: 'okov', + chain: 'ETH', + network: 'kovan', + networkId: 69, + nativeCurrency: { name: 'Kovan Ether', symbol: 'KOR', decimals: 18 }, + rpc: ['https://kovan.optimism.io/'], + faucets: [], + explorers: [], + infoURL: 'https://optimism.io' + }, + 7: { + name: 'ThaiChain', + chainId: 7, + shortName: 'tch', + chain: 'TCH', + network: 'mainnet', + networkId: 7, + nativeCurrency: { name: 'ThaiChain Ether', symbol: 'TCH', decimals: 18 }, + rpc: ['https://rpc.dome.cloud'], + faucets: [], + explorers: [], + infoURL: 'https://thaichain.io' + }, + 73799: { + name: 'Energy Web Volta Testnet', + chainId: 73799, + shortName: 'vt', + chain: 'Volta', + network: 'testnet', + networkId: 73799, + nativeCurrency: { name: 'Volta Token', symbol: 'VT', decimals: 18 }, + rpc: [ + 'https://volta-rpc.energyweb.org', + 'wss://volta-rpc.energyweb.org/ws' + ], + faucets: ['https://voltafaucet.energyweb.org'], + explorers: [], + infoURL: 'https://energyweb.org' + }, + 76: { + name: 'Mix', + chainId: 76, + shortName: 'mix', + chain: 'MIX', + network: 'mainnet', + networkId: 76, + nativeCurrency: { name: 'Mix Ether', symbol: 'MIX', decimals: 18 }, + rpc: ['https://rpc2.mix-blockchain.org:8647'], + faucets: [], + explorers: [], + infoURL: 'https://mix-blockchain.org' + }, + 77: { + name: 'POA Network Sokol', + chainId: 77, + shortName: 'poa', + chain: 'POA', + network: 'sokol', + networkId: 77, + nativeCurrency: { name: 'POA Sokol Ether', symbol: 'POA', decimals: 18 }, + rpc: [ + 'https://sokol.poa.network', + 'wss://sokol.poa.network/wss', + 'ws://sokol.poa.network:8546' + ], + faucets: ['https://faucet-sokol.herokuapp.com'], + explorers: [], + infoURL: 'https://poa.network' + }, + 7762959: { + name: 'Musicoin', + chainId: 7762959, + shortName: 'music', + chain: 'MUSIC', + network: 'mainnet', + networkId: 7762959, + nativeCurrency: { name: 'Musicoin', symbol: 'MUSIC', decimals: 18 }, + rpc: ['https://mewapi.musicoin.tw'], + faucets: [], + explorers: [], + infoURL: 'https://musicoin.tw' + }, + 777: { + name: 'Ethermint Testnet', + chainId: 777, + shortName: 'emint', + chain: 'ETHERMINT', + network: 'testnet', + networkId: 777, + nativeCurrency: { name: 'Photon', symbol: 'Photon', decimals: 18 }, + rpc: ['http://54.210.246.165:8545'], + faucets: [], + explorers: [], + infoURL: 'https://docs.ethermint.zone' + }, + 78: { + name: 'PrimusChain mainnet', + chainId: 78, + shortName: 'primuschain', + chain: 'PC', + network: 'mainnet', + networkId: 78, + nativeCurrency: { name: 'Primus Ether', symbol: 'PETH', decimals: 18 }, + rpc: ['https://ethnode.primusmoney.com/mainnet'], + faucets: [], + explorers: [], + infoURL: 'https://primusmoney.com' + }, + 78110: { + name: 'Firenze test network', + chainId: 78110, + shortName: 'firenze', + chain: 'ETH', + network: 'testnet', + networkId: 78110, + nativeCurrency: { name: 'Firenze Ether', symbol: 'FIN', decimals: 18 }, + rpc: ['https://ethnode.primusmoney.com/firenze'], + faucets: [], + explorers: [], + infoURL: 'https://primusmoney.com' + }, + 787: { + name: 'Acala Network', + chainId: 787, + shortName: 'aca', + chain: 'ACA', + network: 'mainnet', + networkId: 787, + nativeCurrency: { name: 'Acala Token', symbol: 'ACA', decimals: 18 }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://acala.network' + }, + 8: { + name: 'Ubiq Network Mainnet', + chainId: 8, + shortName: 'ubq', + chain: 'UBQ', + network: 'mainnet', + networkId: 88, + nativeCurrency: { name: 'Ubiq Ether', symbol: 'UBQ', decimals: 18 }, + rpc: ['https://rpc.octano.dev', 'https://pyrus2.ubiqscan.io'], + faucets: [], + explorers: [], + infoURL: 'https://ubiqsmart.com' + }, + 80001: { + name: 'Matic Testnet Mumbai', + chainId: 80001, + shortName: 'maticmum', + chain: 'Matic', + network: 'testnet', + networkId: 80001, + nativeCurrency: { name: 'Matic', symbol: 'tMATIC', decimals: 18 }, + rpc: ['https://rpc-mumbai.matic.today', 'wss://ws-mumbai.matic.today'], + faucets: ['https://faucet.matic.network/'], + explorers: [], + infoURL: 'https://matic.network/' + }, + 8029: { + name: 'MDGL Testnet', + chainId: 8029, + shortName: 'mdgl', + chain: 'MDGL', + network: 'testnet', + networkId: 8029, + nativeCurrency: { name: 'MDGL Token', symbol: 'MDGLT', decimals: 18 }, + rpc: ['https://testnet.mdgl.io'], + faucets: [], + explorers: [], + infoURL: 'https://mdgl.io' + }, + 82: { + name: 'Meter Mainnet', + chainId: 82, + shortName: 'Meter', + chain: 'METER', + network: 'mainnet', + networkId: 82, + nativeCurrency: { name: 'Meter', symbol: 'MTR', decimals: 18 }, + rpc: ['https://rpc.meter.io'], + faucets: [], + explorers: [], + infoURL: 'https://www.meter.io' + }, + 820: { + name: 'Callisto Mainnet', + chainId: 820, + shortName: 'clo', + chain: 'CLO', + network: 'mainnet', + networkId: 1, + nativeCurrency: { + name: 'Callisto Mainnet Ether', + symbol: 'CLO', + decimals: 18 + }, + rpc: ['https://clo-geth.0xinfra.com'], + faucets: [], + explorers: [], + infoURL: 'https://callisto.network' + }, + 821: { + name: 'Callisto Testnet', + chainId: 821, + shortName: 'tclo', + chain: 'CLO', + network: 'testnet', + networkId: 2, + nativeCurrency: { + name: 'Callisto Testnet Ether', + symbol: 'TCLO', + decimals: 18 + }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://callisto.network' + }, + 8217: { + name: 'Klaytn Mainnet Cypress', + chainId: 8217, + shortName: 'Cypress', + chain: 'KLAY', + network: 'cypress', + networkId: 8217, + nativeCurrency: { name: 'KLAY', symbol: 'KLAY', decimals: 18 }, + rpc: ['https://node-api.klaytnapi.com/v1/klaytn'], + faucets: [], + explorers: [], + infoURL: 'https://www.klaytn.com/' + }, + 8285: { + name: 'KorthoTest', + chainId: 8285, + shortName: 'Kortho', + chain: 'Kortho', + network: 'Test', + networkId: 8285, + nativeCurrency: { name: 'Kortho Test', symbol: 'KTO', decimals: 11 }, + rpc: ['https://www.krotho-test.net'], + faucets: [], + explorers: [], + infoURL: 'https://www.kortho.io/' + }, + 88: { + name: 'TomoChain', + chainId: 88, + shortName: 'tomo', + chain: 'TOMO', + network: 'mainnet', + networkId: 88, + nativeCurrency: { name: 'TomoChain Ether', symbol: 'TOMO', decimals: 18 }, + rpc: ['https://rpc.tomochain.com'], + faucets: [], + explorers: [], + infoURL: 'https://tomocoin.io' + }, + 888: { + name: 'Wanchain', + chainId: 888, + shortName: 'wan', + chain: 'WAN', + network: 'mainnet', + networkId: 888, + nativeCurrency: { name: 'Wancoin', symbol: 'WAN', decimals: 18 }, + rpc: ['https://gwan-ssl.wandevs.org:56891/'], + faucets: [], + explorers: [], + infoURL: 'https://www.wanscan.org' + }, + 8995: { + name: 'bloxberg', + chainId: 8995, + shortName: 'berg', + chain: 'bloxberg', + network: 'mainnet', + networkId: 8995, + nativeCurrency: { name: 'BERG', symbol: 'U+25B3', decimals: 18 }, + rpc: ['https://core.bloxberg.org'], + faucets: ['https://faucet.bloxberg.org/'], + explorers: [], + infoURL: 'https://bloxberg.org' + }, + 9: { + name: 'Ubiq Network Testnet', + chainId: 9, + shortName: 'tubq', + chain: 'UBQ', + network: 'mainnet', + networkId: 2, + nativeCurrency: { + name: 'Ubiq Testnet Ether', + symbol: 'TUBQ', + decimals: 18 + }, + rpc: [], + faucets: [], + explorers: [], + infoURL: 'https://ethersocial.org' + }, + 97: { + name: 'Binance Smart Chain Testnet', + chainId: 97, + shortName: 'bnbt', + chain: 'BSC', + network: 'Chapel', + networkId: 97, + nativeCurrency: { + name: 'Binance Chain Native Token', + symbol: 'tBNB', + decimals: 18 + }, + rpc: [ + 'https://data-seed-prebsc-1-s1.binance.org:8545', + 'https://data-seed-prebsc-2-s1.binance.org:8545', + 'https://data-seed-prebsc-1-s2.binance.org:8545', + 'https://data-seed-prebsc-2-s2.binance.org:8545', + 'https://data-seed-prebsc-1-s3.binance.org:8545', + 'https://data-seed-prebsc-2-s3.binance.org:8545' + ], + faucets: ['https://testnet.binance.org/faucet-smart'], + explorers: [ + { + name: 'bscscan-testnet', + url: 'https://testnet.bscscan.com', + standard: 'EIP3091' + } + ], + infoURL: 'https://testnet.binance.org/' + }, + 977: { + name: 'Nepal Blockchain Network', + chainId: 977, + shortName: 'yeti', + chain: 'YETI', + network: 'mainnet', + networkId: 977, + nativeCurrency: { + name: 'Nepal Blockchain Network Ether', + symbol: 'YETI', + decimals: 18 + }, + rpc: [ + 'https://api.nepalblockchain.dev', + 'https://api.nepalblockchain.network' + ], + faucets: ['https://faucet.nepalblockchain.network'], + explorers: [], + infoURL: 'https://nepalblockchain.network' + }, + 99: { + name: 'POA Network Core', + chainId: 99, + shortName: 'skl', + chain: 'POA', + network: 'core', + networkId: 99, + nativeCurrency: { + name: 'POA Network Core Ether', + symbol: 'SKL', + decimals: 18 + }, + rpc: [ + 'https://core.poanetwork.dev', + 'http://core.poanetwork.dev:8545', + 'https://core.poa.network', + 'ws://core.poanetwork.dev:8546' + ], + faucets: [], + explorers: [], + infoURL: 'https://poa.network' + }, + 99415706: { + name: 'Joys Digital TestNet', + chainId: 99415706, + shortName: 'TOYS', + chain: 'TOYS', + network: 'testnet', + networkId: 99415706, + nativeCurrency: { name: 'TOYS', symbol: 'TOYS', decimals: 18 }, + rpc: ['https://toys.joys.cash/'], + faucets: ['https://faucet.joys.digital/'], + explorers: [], + infoURL: 'https://joys.digital' + }, + 999: { + name: 'Wanchain Testnet', + chainId: 999, + shortName: 'twan', + chain: 'WAN', + network: 'testnet', + networkId: 999, + nativeCurrency: { name: 'Wancoin', symbol: 'WAN', decimals: 18 }, + rpc: ['https://gwan-ssl.wandevs.org:46891/'], + faucets: [], + explorers: [], + infoURL: 'https://testnet.wanscan.org' + } +} diff --git a/src/enums.ts b/src/enums.ts new file mode 100644 index 0000000..24c8ac5 --- /dev/null +++ b/src/enums.ts @@ -0,0 +1,153 @@ +export enum NetworkName { + EthereumMainnet = 'Ethereum Mainnet', + OptimisticEthereum = 'Optimistic Ethereum', + XDAIChain = 'xDAI Chain', + SmartBitcoinCash = 'Smart Bitcoin Cash', + SmartBitcoinCashTestnet = 'Smart Bitcoin Cash Testnet', + KlaytnTestnetBaobab = 'Klaytn Testnet Baobab', + NewtonTestnet = 'Newton Testnet', + EtherInc = 'EtherInc', + EvriceNetwork = 'Evrice Network', + Newton = 'Newton', + Web3GamesTestnet = 'Web3Games Testnet', + CloverTestnet = 'Clover Testnet', + CloverMainnet = 'Clover Mainnet', + ThunderCoreMainnet = 'ThunderCore Mainnet', + MetadiumMainnet = 'Metadium Mainnet', + IPOSNetwork = 'IPOS Network', + MathChain = 'MathChain', + MathChainTestnet = 'MathChain Testnet', + MetadiumTestnet = 'Metadium Testnet', + FuseMainnet = 'Fuse Mainnet', + HuobiECOChainMainnet = 'Huobi ECO Chain Mainnet', + MoonbeamPolkadot = 'Moonbeam Polkadot', + MoonriverKusama = 'Moonriver Kusama', + MoonrockRococo = 'Moonrock Rococo', + MoonbeamTestnetMoonbaseAlpha = 'Moonbeam Testnet Moonbase Alpha', + DiodeTestnetStaging = 'Diode Testnet Staging', + 'Ether-1' = 'Ether-1', + NEARMainNet = 'NEAR MainNet', + NEARTestNet = 'NEAR TestNet', + NEARBetaNet = 'NEAR BetaNet', + Xerom = 'Xerom', + PepChainChurchill = 'PepChain Churchill', + MaticMainnet = 'Matic Mainnet', + FlareMainnet = 'Flare Mainnet', + DiodePrenet = 'Diode Prenet', + FlareTestnetCoston = 'Flare Testnet Coston', + LightstreamsTestnet = 'Lightstreams Testnet', + Atheios = 'Atheios', + LightstreamsMainnet = 'Lightstreams Mainnet', + HarmonyMainnetShard0 = 'Harmony Mainnet Shard 0', + HarmonyMainnetShard1 = 'Harmony Mainnet Shard 1', + HarmonyMainnetShard2 = 'Harmony Mainnet Shard 2', + HarmonyMainnetShard3 = 'Harmony Mainnet Shard 3', + HarmonyTestnetShard0 = 'Harmony Testnet Shard 0', + HarmonyTestnetShard1 = 'Harmony Testnet Shard 1', + HarmonyTestnetShard2 = 'Harmony Testnet Shard 2', + HarmonyTestnetShard3 = 'Harmony Testnet Shard 3', + 'ThaiChain2.0ThaiFi' = 'ThaiChain 2.0 ThaiFi', + HOOSmartChainTestnet = 'HOO Smart Chain Testnet', + ThunderCoreTestnet = 'ThunderCore Testnet', + IOLite = 'IOLite', + Teslafunds = 'Teslafunds', + EtherGem = 'EtherGem', + ExpanseNetwork = 'Expanse Network', + 'ELA-ETH-SidechainMainnet' = 'ELA-ETH-Sidechain Mainnet', + Akroma = 'Akroma', + '420coin' = '420coin', + EdgewareMainnet = 'Edgeware Mainnet', + BeresheetTestnet = 'Beresheet Testnet', + 'ELA-ETH-SidechainTestnet' = 'ELA-ETH-Sidechain Testnet', + FreightTrustNetwork = 'Freight Trust Network', + 'ELA-DID-SidechainMainnet' = 'ELA-DID-Sidechain Mainnet', + 'ELA-DID-SidechainTestnet' = 'ELA-DID-Sidechain Testnet', + Webchain = 'Webchain', + EnergyWebChain = 'Energy Web Chain', + ARTISsigma1 = 'ARTIS sigma1', + ARTISTestnettau1 = 'ARTIS Testnet tau1', + 'MintMe.comCoin' = 'MintMe.com Coin', + FantomOpera = 'Fantom Opera', + HuobiECOChainTestnet = 'Huobi ECO Chain Testnet', + HighPerformanceBlockchain = 'High Performance Blockchain', + AuxiliumNetworkMainnet = 'Auxilium Network Mainnet', + EthereumTestnetRopsten = 'Ethereum Testnet Ropsten', + RSKMainnet = 'RSK Mainnet', + RSKTestnet = 'RSK Testnet', + EthersocialNetwork = 'Ethersocial Network', + Pirl = 'Pirl', + KuCoinCommunityChainTestnet = 'KuCoin Community Chain Testnet', + FusionMainnet = 'Fusion Mainnet', + GoodDataMainnet = 'GoodData Mainnet', + TBWGChain = 'TBWG Chain', + JoysDigitalMainnet = 'Joys Digital Mainnet', + Valorbit = 'Valorbit', + Lisinski = 'Lisinski', + EnergiMainnet = 'Energi Mainnet', + EthereumTestnetRinkeby = 'Ethereum Testnet Rinkeby', + TelosEVMMainnet = 'Telos EVM Mainnet', + TelosEVMTestnet = 'Telos EVM Testnet', + EthereumTestnetKovan = 'Ethereum Testnet Kovan', + OptimisticEthereumTestnetGoerli = 'Optimistic Ethereum Testnet Goerli', + Pegglecoin = 'pegglecoin', + CeloMainnet = 'Celo Mainnet', + DarwiniaPangolinTestnet = 'Darwinia Pangolin Testnet', + Athereum = 'Athereum', + AvalancheFujiTestnet = 'Avalanche Fuji Testnet', + AvalancheMainnet = 'Avalanche Mainnet', + DarwiniaCrabNetwork = 'Darwinia Crab Network', + CeloAlfajoresTestnet = 'Celo Alfajores Testnet', + IoTeXNetworkMainnet = 'IoTeX Network Mainnet', + IoTeXNetworkTestnet = 'IoTeX Network Testnet', + EnergiTestnet = 'Energi Testnet', + Rupaya = 'Rupaya', + EthereumTestnetGörli = 'Ethereum Testnet Görli', + XinFinNetworkMainnet = 'XinFin Network Mainnet', + XinFinApothemTestnet = 'XinFin Apothem Testnet', + CoinExSmartChainMainnet = 'CoinEx Smart Chain Mainnet', + CoinExSmartChainTestnet = 'CoinEx Smart Chain Testnet', + TaoNetwork = 'Tao Network', + BinanceSmartChainMainnet = 'Binance Smart Chain Mainnet', + WegochainRubidiumMainnet = 'Wegochain Rubidium Mainnet', + AcalaMandalaTestnet = 'Acala Mandala Testnet', + EthereumClassicTestnetKotti = 'Ethereum Classic Testnet Kotti', + GoChain = 'GoChain', + EthereumClassicMainnet = 'Ethereum Classic Mainnet', + Aquachain = 'Aquachain', + EthereumClassicTestnetMorden = 'Ethereum Classic Testnet Morden', + CeloBaklavaTestnet = 'Celo Baklava Testnet', + EthereumClassicTestnetMordor = 'Ethereum Classic Testnet Mordor', + Ellaism = 'Ellaism', + OKExChainTestnet = 'OKExChain Testnet', + OKExChainMainnet = 'OKExChain Mainnet', + DBChainTestnet = 'DBChain Testnet', + SoterOneMainnet = 'SoterOne Mainnet', + KaruraNetwork = 'Karura Network', + OptimisticEthereumTestnetKovan = 'Optimistic Ethereum Testnet Kovan', + ThaiChain = 'ThaiChain', + EnergyWebVoltaTestnet = 'Energy Web Volta Testnet', + Mix = 'Mix', + POANetworkSokol = 'POA Network Sokol', + Musicoin = 'Musicoin', + EthermintTestnet = 'Ethermint Testnet', + PrimusChainmainnet = 'PrimusChain mainnet', + Firenzetestnetwork = 'Firenze test network', + AcalaNetwork = 'Acala Network', + UbiqNetworkMainnet = 'Ubiq Network Mainnet', + MaticTestnetMumbai = 'Matic Testnet Mumbai', + MDGLTestnet = 'MDGL Testnet', + MeterMainnet = 'Meter Mainnet', + CallistoMainnet = 'Callisto Mainnet', + CallistoTestnet = 'Callisto Testnet', + KlaytnMainnetCypress = 'Klaytn Mainnet Cypress', + KorthoTest = 'KorthoTest', + TomoChain = 'TomoChain', + Wanchain = 'Wanchain', + Bloxberg = 'bloxberg', + UbiqNetworkTestnet = 'Ubiq Network Testnet', + BinanceSmartChainTestnet = 'Binance Smart Chain Testnet', + NepalBlockchainNetwork = 'Nepal Blockchain Network', + POANetworkCore = 'POA Network Core', + JoysDigitalTestNet = 'Joys Digital TestNet', + WanchainTestnet = 'Wanchain Testnet' +} diff --git a/src/helpers.ts b/src/helpers.ts new file mode 100644 index 0000000..9b1596d --- /dev/null +++ b/src/helpers.ts @@ -0,0 +1,2 @@ +export const capitalize = (str: string) => + str.charAt(0).toUpperCase() + str.slice(1) diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..90ab18e --- /dev/null +++ b/src/index.ts @@ -0,0 +1,19 @@ +import { Chain } from './types' +import { chains } from './chains' + +export { NetworkName } from './enums' +export { chains } + +const getById = (id: number): Chain | {} => chains[id] || {} + +const getByName = (name: string): Chain | {} => + Object.values(chains).find(chain => chain.name === name) || {} + +const get = (idOrName: string | number): Chain | {} => + typeof idOrName === 'number' ? getById(idOrName) : getByName(idOrName) + +export default { + getById, + getByName, + get +} diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..b95866c --- /dev/null +++ b/src/types.ts @@ -0,0 +1,30 @@ +export interface Chain { + name: string + chainId: number + shortName: string + chain: string + network: string + networkId: number + nativeCurrency: NativeCurrency + rpc: string[] + explorers: Explorer[] + faucets: string[] + infoURL: string +} + +export interface NativeCurrency { + name: string + symbol: string + decimals: number +} + +export interface Explorer { + name: string + url: string + icon?: string + standard: string +} + +export interface Chains { + [key: number]: Chain +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..31e17ea --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,71 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + "resolveJsonModule": true, + /* Basic Options */ + // "incremental": true, /* Enable incremental compilation */ + "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ + "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ + "lib": ["es2019"], /* Specify library files to be included in the compilation. */ + // "allowJs": true, /* Allow javascript files to be compiled. */ + // "checkJs": true, /* Report errors in .js files. */ + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */ + // "declaration": true, /* Generates corresponding '.d.ts' file. */ + // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + // "sourceMap": true, /* Generates corresponding '.map' file. */ + // "outFile": "./", /* Concatenate and emit output to single file. */ + "outDir": "./bin", /* Redirect output structure to the directory. */ + "rootDir": ".", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + // "composite": true, /* Enable project compilation */ + // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "strict": true, /* Enable all strict type-checking options. */ + "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* Enable strict null checks. */ + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ + + /* Module Resolution Options */ + // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + // "types": [], /* Type declaration files to be included in compilation. */ + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + + /* Advanced Options */ + "skipLibCheck": true, /* Skip type checking of declaration files. */ + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + } +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..db4b85f --- /dev/null +++ b/yarn.lock @@ -0,0 +1,591 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@sindresorhus/is@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" + integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== + +"@szmarczak/http-timer@^4.0.5": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" + integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== + dependencies: + defer-to-connect "^2.0.0" + +"@types/cacheable-request@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" + integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + +"@types/http-cache-semantics@*": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" + integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== + +"@types/keyv@*": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" + integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@^14.14.37": + version "14.14.37" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.37.tgz#a3dd8da4eb84a996c36e331df98d82abd76b516e" + integrity sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw== + +"@types/prettier@^2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0" + integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA== + +"@types/responselike@*", "@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +array-includes@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" + integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.1.1" + is-string "^1.0.5" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" + integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^2.0.0" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +es-abstract@^1.17.0-next.1, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: + version "1.18.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" + integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.2" + is-string "^1.0.5" + object-inspect "^1.9.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es7-shim@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/es7-shim/-/es7-shim-6.0.0.tgz#0c430b40b8505ad15570721a8d8dd4eb0c553155" + integrity sha1-DEMLQLhQWtFVcHIajY3U6wxVMVU= + dependencies: + array-includes "^3.0.2" + object.entries "^1.0.3" + object.getownpropertydescriptors "^2.0.2" + object.values "^1.0.3" + string-at "^1.0.1" + string.prototype.padend "^3.0.0" + string.prototype.padstart "^3.0.0" + string.prototype.trimleft "^2.0.0" + string.prototype.trimright "^2.0.0" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +got@^11.8.2: + version "11.8.2" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.2.tgz#7abb3959ea28c31f3576f1576c1effce23f33599" + integrity sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.1" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +inherits@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-bigint@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" + integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== + +is-boolean-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" + integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + dependencies: + call-bind "^1.0.0" + +is-callable@^1.1.4, is-callable@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number-object@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== + +is-regex@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" + integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== + dependencies: + call-bind "^1.0.2" + has-symbols "^1.0.1" + +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-to-ts@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/json-to-ts/-/json-to-ts-1.7.0.tgz#896a4eaa3d1ed3fef0c9e73ba98b3e8b25c1e02d" + integrity sha512-uVhcw4SLnf9ucMwFpom/G1/IT+lnoILOyHbFE6xqxvw67oCvHl6iDZzmjyn2lPCRPsAOMSQgG/ZxvbCPySMi1Q== + dependencies: + es7-shim "^6.0.0" + hash.js "^1.0.3" + pluralize "^3.1.0" + +keyv@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" + integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== + dependencies: + json-buffer "3.0.1" + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + +object-inspect@^1.9.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.2.tgz#b6385a3e2b7cae0b5eafcf90cddf85d128767f30" + integrity sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA== + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.entries@^1.0.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" + integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + has "^1.0.3" + +object.getownpropertydescriptors@^2.0.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" + integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + +object.values@^1.0.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" + integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has "^1.0.3" + +once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +p-cancelable@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.0.tgz#4d51c3b91f483d02a0d300765321fca393d758dd" + integrity sha512-HAZyB3ZodPo+BDpb4/Iu7Jv4P6cSazBz9ZM0ChhEXp70scx834aWCEjQRwgt41UzzejUAPdbqqONfRWTPYrPAQ== + +pluralize@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-3.1.0.tgz#84213d0a12356069daa84060c559242633161368" + integrity sha1-hCE9ChI1YGnaqEBgxVkkJjMWE2g= + +prettier@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" + integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +resolve-alpn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" + integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== + +responselike@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + dependencies: + lowercase-keys "^2.0.0" + +source-map-support@^0.5.17: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +string-at@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/string-at/-/string-at-1.1.0.tgz#332e090c5724418266a27a09394924b9fad41275" + integrity sha512-jCpPowWKBn0NFdvtmK2qxK40Ol4jPcgCt8qYnKpPx6B5eDwHMDhRvq9MCsDEgsOTNtbXY6beAMHMRT2qPJXllA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +string.prototype.padend@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz#6858ca4f35c5268ebd5e8615e1327d55f59ee311" + integrity sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + +string.prototype.padstart@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.padstart/-/string.prototype.padstart-3.1.2.tgz#f9b9ce66bedd7c06acb40ece6e34c6046e1a019d" + integrity sha512-HDpngIP3pd0DeazrfqzuBrQZa+D2arKWquEHfGt5LzVjd+roLC3cjqVI0X8foaZz5rrrhcu8oJAQamW8on9dqw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + +string.prototype.trimend@^1.0.3, string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimleft@^2.0.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.3.tgz#dee305118117d0a1843c1fc0d38d5d0754d83c60" + integrity sha512-699Ibssmj/awVzvdNk4g83/Iu8U9vDohzmA/ly2BrQWGhamuY4Tlvs5XKmKliDt3ky6SKbE1bzPhASKCFlx9Sg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + string.prototype.trimstart "^1.0.3" + +string.prototype.trimright@^2.0.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.3.tgz#dc16a21d7456cbc8b2c54d47fe01f06d9efe94eb" + integrity sha512-hoOq56oRFnnfDuXNy2lGHiwT77MehHv9d0zGfRZ8QdC+4zjrkFB9vd5i/zYTd/ymFBd4YxtbdgHt3U6ksGeuBw== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + string.prototype.trimend "^1.0.3" + +string.prototype.trimstart@^1.0.3, string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +ts-node@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" + integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== + dependencies: + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + +typescript@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.3.tgz#39062d8019912d43726298f09493d598048c1ce3" + integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw== + +unbox-primitive@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==