MyCrypto/common/libs/nodes/configs.ts
William O'Beirne a043334685 Node Refactor (#1603)
* Initial work on refactoring node definitions to reduce number of places theyre defined, amount of copy pasting.

* Use makeAutoNodeNAme instead of manually appending _auto

* Add getNetVersion to list of unsupported methods

* PR feedback

* Rework web template node selector to be a network selector. Refactor some types to help with that. Better handle removing custom nodes.

* Remove color dropdown.

* Fix selecting custom networks. Show notification if change network intent fails.

* Use selectors for current node / network instead of intuiting from nodeSelection

* Add id key to all networks, simplify add and remove custom node and network functions.

* Fix a lot of uses of network.name to use network.id instead.

* Dont allow network chainid conflicts

* Fix web3 network by chainid

* Add testnet badge to network selector

* Change nomenclature from change(Node|Network)(Intent)? to change(Node|Network)(Requested|Succeeded)

* tscheck

* Better code for chainid collision

* Remove console logs

* Fix tests

* Network selector becomes self contained component used both by web header and electron nav.

* Dont select node again

* Additional title text

* tscheck

* Custom node behavior in Electron

* Close panel too

* Convert node label data into selector function

* tscheck

* Parens & space
2018-05-29 09:51:42 -05:00

145 lines
3.0 KiB
TypeScript

import { RawNodeConfig } from 'types/node';
import { StaticNetworkIds } from 'types/network';
export const makeNodeName = (network: string, name: string) => {
return `${network.toLowerCase()}_${name}`;
};
export const NODE_CONFIGS: { [key in StaticNetworkIds]: RawNodeConfig[] } = {
ETH: [
{
name: makeNodeName('ETH', 'mycrypto'),
type: 'rpc',
service: 'MyCrypto',
url: 'https://api.mycryptoapi.com/eth',
estimateGas: true
},
{
name: makeNodeName('ETH', 'ethscan'),
type: 'etherscan',
service: 'Etherscan',
url: 'https://api.etherscan.io/api',
estimateGas: false
},
{
name: makeNodeName('ETH', 'infura'),
type: 'infura',
service: 'Infura',
url: 'https://mainnet.infura.io/mycrypto',
estimateGas: false
},
{
name: makeNodeName('ETH', 'blockscale'),
type: 'rpc',
service: 'Blockscale',
url: 'https://api.dev.blockscale.net/dev/parity',
estimateGas: true
}
],
Ropsten: [
{
name: makeNodeName('Ropsten', 'infura'),
type: 'infura',
service: 'Infura',
url: 'https://ropsten.infura.io/mycrypto',
estimateGas: false
}
],
Kovan: [
{
name: makeNodeName('Kovan', 'ethscan'),
type: 'etherscan',
service: 'Etherscan',
url: 'https://kovan.etherscan.io/api',
estimateGas: false
}
],
Rinkeby: [
{
name: makeNodeName('Rinkeby', 'infura'),
type: 'infura',
service: 'Infura',
url: 'https://rinkeby.infura.io/mycrypto',
estimateGas: false
},
{
name: makeNodeName('Rinkeby', 'ethscan'),
type: 'etherscan',
service: 'Etherscan',
url: 'https://rinkeby.etherscan.io/api',
estimateGas: false
}
],
ETC: [
{
name: makeNodeName('ETC', 'epool'),
type: 'rpc',
service: 'Epool.io',
url: 'https://mewapi.epool.io',
estimateGas: false
},
{
name: makeNodeName('ETC', 'commonwealth'),
type: 'rpc',
service: 'Ethereum Commonwealth',
url: 'https://etc-geth.0xinfra.com/',
estimateGas: false
}
],
UBQ: [
{
name: makeNodeName('UBQ', 'ubiqscan'),
type: 'rpc',
service: 'ubiqscan.io',
url: 'https://pyrus2.ubiqscan.io',
estimateGas: true
}
],
EXP: [
{
name: makeNodeName('EXP', 'tech'),
type: 'rpc',
service: 'expanse.tech',
url: 'https://node.expanse.tech/',
estimateGas: true
}
],
POA: [
{
name: makeNodeName('POA', 'core'),
type: 'rpc',
service: 'poa.network',
url: 'https://core.poa.network',
estimateGas: true
}
],
TOMO: [
{
name: makeNodeName('TOMO', 'tomocoin'),
type: 'rpc',
service: 'tomocoin.io',
url: 'https://core.tomocoin.io',
estimateGas: true
}
],
ELLA: [
{
name: makeNodeName('ELLA', 'ellaism'),
type: 'rpc',
service: 'ellaism.org',
url: 'https://jsonrpc.ellaism.org',
estimateGas: true
}
]
};
export default NODE_CONFIGS;