|
|
|
export const ROPSTEN = 'ropsten';
|
|
|
|
export const RINKEBY = 'rinkeby';
|
|
|
|
export const KOVAN = 'kovan';
|
|
|
|
export const MAINNET = 'mainnet';
|
|
|
|
export const GOERLI = 'goerli';
|
|
|
|
export const NETWORK_TYPE_RPC = 'rpc';
|
|
|
|
|
|
|
|
export const MAINNET_NETWORK_ID = '1';
|
|
|
|
export const ROPSTEN_NETWORK_ID = '3';
|
|
|
|
export const RINKEBY_NETWORK_ID = '4';
|
|
|
|
export const GOERLI_NETWORK_ID = '5';
|
|
|
|
export const KOVAN_NETWORK_ID = '42';
|
|
|
|
export const LOCALHOST_NETWORK_ID = '1337';
|
|
|
|
|
|
|
|
export const MAINNET_CHAIN_ID = '0x1';
|
|
|
|
export const ROPSTEN_CHAIN_ID = '0x3';
|
|
|
|
export const RINKEBY_CHAIN_ID = '0x4';
|
|
|
|
export const GOERLI_CHAIN_ID = '0x5';
|
|
|
|
export const KOVAN_CHAIN_ID = '0x2a';
|
|
|
|
export const LOCALHOST_CHAIN_ID = '0x539';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The largest possible chain ID we can handle.
|
|
|
|
* Explanation: https://gist.github.com/rekmarks/a47bd5f2525936c4b8eee31a16345553
|
|
|
|
*/
|
|
|
|
export const MAX_SAFE_CHAIN_ID = 4503599627370476;
|
|
|
|
|
|
|
|
export const ROPSTEN_DISPLAY_NAME = 'Ropsten';
|
|
|
|
export const RINKEBY_DISPLAY_NAME = 'Rinkeby';
|
|
|
|
export const KOVAN_DISPLAY_NAME = 'Kovan';
|
|
|
|
export const MAINNET_DISPLAY_NAME = 'Ethereum Mainnet';
|
|
|
|
export const GOERLI_DISPLAY_NAME = 'Goerli';
|
|
|
|
|
|
|
|
export const INFURA_PROVIDER_TYPES = [ROPSTEN, RINKEBY, KOVAN, MAINNET, GOERLI];
|
|
|
|
|
|
|
|
export const TEST_CHAINS = [
|
|
|
|
ROPSTEN_CHAIN_ID,
|
|
|
|
RINKEBY_CHAIN_ID,
|
|
|
|
GOERLI_CHAIN_ID,
|
|
|
|
KOVAN_CHAIN_ID,
|
|
|
|
];
|
|
|
|
|
|
|
|
export const NETWORK_TYPE_TO_ID_MAP = {
|
|
|
|
[ROPSTEN]: { networkId: ROPSTEN_NETWORK_ID, chainId: ROPSTEN_CHAIN_ID },
|
|
|
|
[RINKEBY]: { networkId: RINKEBY_NETWORK_ID, chainId: RINKEBY_CHAIN_ID },
|
|
|
|
[KOVAN]: { networkId: KOVAN_NETWORK_ID, chainId: KOVAN_CHAIN_ID },
|
|
|
|
[GOERLI]: { networkId: GOERLI_NETWORK_ID, chainId: GOERLI_CHAIN_ID },
|
|
|
|
[MAINNET]: { networkId: MAINNET_NETWORK_ID, chainId: MAINNET_CHAIN_ID },
|
|
|
|
};
|
|
|
|
|
|
|
|
export const NETWORK_TO_NAME_MAP = {
|
|
|
|
[ROPSTEN]: ROPSTEN_DISPLAY_NAME,
|
|
|
|
[RINKEBY]: RINKEBY_DISPLAY_NAME,
|
|
|
|
[KOVAN]: KOVAN_DISPLAY_NAME,
|
|
|
|
[MAINNET]: MAINNET_DISPLAY_NAME,
|
|
|
|
[GOERLI]: GOERLI_DISPLAY_NAME,
|
|
|
|
|
|
|
|
[ROPSTEN_NETWORK_ID]: ROPSTEN_DISPLAY_NAME,
|
|
|
|
[RINKEBY_NETWORK_ID]: RINKEBY_DISPLAY_NAME,
|
|
|
|
[KOVAN_NETWORK_ID]: KOVAN_DISPLAY_NAME,
|
|
|
|
[GOERLI_NETWORK_ID]: GOERLI_DISPLAY_NAME,
|
|
|
|
[MAINNET_NETWORK_ID]: MAINNET_DISPLAY_NAME,
|
|
|
|
|
|
|
|
[ROPSTEN_CHAIN_ID]: ROPSTEN_DISPLAY_NAME,
|
|
|
|
[RINKEBY_CHAIN_ID]: RINKEBY_DISPLAY_NAME,
|
|
|
|
[KOVAN_CHAIN_ID]: KOVAN_DISPLAY_NAME,
|
|
|
|
[GOERLI_CHAIN_ID]: GOERLI_DISPLAY_NAME,
|
|
|
|
[MAINNET_CHAIN_ID]: MAINNET_DISPLAY_NAME,
|
|
|
|
};
|
|
|
|
|
|
|
|
export const CHAIN_ID_TO_TYPE_MAP = Object.entries(
|
|
|
|
NETWORK_TYPE_TO_ID_MAP,
|
|
|
|
).reduce((chainIdToTypeMap, [networkType, { chainId }]) => {
|
|
|
|
chainIdToTypeMap[chainId] = networkType;
|
|
|
|
return chainIdToTypeMap;
|
|
|
|
}, {});
|
|
|
|
|
|
|
|
export const CHAIN_ID_TO_NETWORK_ID_MAP = Object.values(
|
|
|
|
NETWORK_TYPE_TO_ID_MAP,
|
|
|
|
).reduce((chainIdToNetworkIdMap, { chainId, networkId }) => {
|
|
|
|
chainIdToNetworkIdMap[chainId] = networkId;
|
|
|
|
return chainIdToNetworkIdMap;
|
|
|
|
}, {});
|