text: "use strict";
  var nodes = function() {};
  nodes.customNode = require("./nodeHelpers/customNode");
  nodes.infuraNode = require("./nodeHelpers/infura");
  nodes.metamaskNode = require("./nodeHelpers/metamask");
  nodes.nodeTypes = {
    XERO: "XERO",
    ETH: "ETH",
    ETC: "ETC",
    Ropsten: "ROPSTEN ETH",
    Kovan: "KOVAN ETH",
    Rinkeby: "RINKEBY ETH",
    EXP: "EXP",
    UBQ: "UBQ",
    POA: "POA",
    TOMO: "TOMO",
    ELLA: "ELLA",
    ETSC: "ETSC",
    EGEM: "EGEM",
    CLO: "CLO",
    MUSIC: "MUSIC",
    GO: "GO",
    EOSC: "EOSC",
    AKA: "AKA",
    ESN: "ESN",
    PIRL: "PIRL",
    ETHO: "ETHO",
    ATH: "ATH",
    ILT: "ILT",
    WEB: "WEB",
    MIX: "MIX",
    REOSC: "REOSC",
    THUNDERCORE: "TT",
    Custom: "CUSTOM ETH"
  };
  nodes.ensNodeTypes = [nodes.nodeTypes.ETH, nodes.nodeTypes.Ropsten];
  nodes.ensSubNodeTypes = [nodes.nodeTypes.ETH];
  nodes.domainsaleNodeTypes = [nodes.nodeTypes.ETH, nodes.nodeTypes.Ropsten];
  nodes.customNodeObj = {
    name: "CUS",
    blockExplorerTX: "",
    blockExplorerAddr: "",
    type: nodes.nodeTypes.Custom,
    eip155: false,
    chainId: "",
    tokenList: [],
    abiList: [],
    service: "Custom",
    lib: null
  };
  nodes.nodeList = {
    xero: {
      name: "XERO",
      blockExplorerTX: "https://explorer.xerom.org/tx/[[txHash]]",
      blockExplorerAddr: "https://explorer.xerom.org/addr/[[address]]",
      type: nodes.nodeTypes.XERO,
      eip155: true,
      chainId: 1313500,
      tokenList: require("./tokens/xeroTokens.json"),
      abiList: require("./abiDefinitions/xeroAbi.json"),
      estimateGas: true,
      service: "Xerom.org",
      lib: new nodes.customNode("https://rpc.xerom.org", "")
    },
    eth_mew: {
      name: "ETH",
      blockExplorerTX: "https://etherscan.io/tx/[[txHash]]",
      blockExplorerAddr: "https://etherscan.io/address/[[address]]",
      type: nodes.nodeTypes.ETH,
      eip155: true,
      chainId: 1,
      tokenList: require("./tokens/ethTokens.json"),
      abiList: require("./abiDefinitions/ethAbi.json"),
      service: "myetherwallet.com",
      lib: new nodes.customNode("https://api.myetherwallet.com/eth", "")
    },
    eth_ethscan: {
      name: "ETH",
      blockExplorerTX: "https://etherscan.io/tx/[[txHash]]",
      blockExplorerAddr: "https://etherscan.io/address/[[address]]",
      type: nodes.nodeTypes.ETH,
      eip155: true,
      chainId: 1,
      tokenList: require("./tokens/ethTokens.json"),
      abiList: require("./abiDefinitions/ethAbi.json"),
      service: "etherscan.io",
      lib: require("./nodeHelpers/etherscan")
    },
    eth_infura: {
      name: "ETH",
      blockExplorerTX: "https://etherscan.io/tx/[[txHash]]",
      blockExplorerAddr: "https://etherscan.io/address/[[address]]",
      type: nodes.nodeTypes.ETH,
      eip155: true,
      chainId: 1,
      tokenList: require("./tokens/ethTokens.json"),
      abiList: require("./abiDefinitions/ethAbi.json"),
      service: "infura.io",
      lib: new nodes.infuraNode("https://mainnet.infura.io/mew")
    },
    eth_giveth: {
      name: "ETH",
      blockExplorerTX: "https://etherscan.io/tx/[[txHash]]",
      blockExplorerAddr: "https://etherscan.io/address/[[address]]",
      type: nodes.nodeTypes.ETH,
      eip155: true,
      chainId: 1,
      tokenList: require("./tokens/ethTokens.json"),
      abiList: require("./abiDefinitions/ethAbi.json"),
      service: "giveth.io",
      lib: new nodes.customNode("https://mew.giveth.io", "")
    },
    etc_ethereumcommonwealth_geth: {
      name: "ETC",
      blockExplorerTX: "https://gastracker.io/tx/[[txHash]]",
      blockExplorerAddr: "https://gastracker.io/addr/[[address]]",
      type: nodes.nodeTypes.ETC,
      eip155: true,
      chainId: 61,
      tokenList: require("./tokens/etcTokens.json"),
      abiList: require("./abiDefinitions/etcAbi.json"),
      service: "Ethereum Commonwealth Geth",
      lib: new nodes.customNode("https://etc-geth.0xinfra.com/", "")
    },
    etc_ethereumcommonwealth_parity: {
      name: "ETC",
      blockExplorerTX: "https://gastracker.io/tx/[[txHash]]",
      blockExplorerAddr: "https://gastracker.io/addr/[[address]]",
      type: nodes.nodeTypes.ETC,
      eip155: true,
      chainId: 61,
      tokenList: require("./tokens/etcTokens.json"),
      abiList: require("./abiDefinitions/etcAbi.json"),
      service: "Ethereum Commonwealth Parity",
      lib: new nodes.customNode("https://etc-parity.0xinfra.com/", "")
    },
    rop_mew: {
      name: "Ropsten",
      type: nodes.nodeTypes.Ropsten,
      blockExplorerTX: "https://ropsten.etherscan.io/tx/[[txHash]]",
      blockExplorerAddr: "https://ropsten.etherscan.io/address/[[address]]",
      eip155: true,
      chainId: 3,
      tokenList: require("./tokens/ropstenTokens.json"),
      abiList: require("./abiDefinitions/ropstenAbi.json"),
      service: "myetherwallet.com",
      lib: new nodes.customNode("https://api.myetherwallet.com/rop", "")
    },
    rop_infura: {
      name: "Ropsten",
      blockExplorerTX: "https://ropsten.etherscan.io/tx/[[txHash]]",
      blockExplorerAddr: "https://ropsten.etherscan.io/address/[[address]]",
      type: nodes.nodeTypes.Ropsten,
      eip155: true,
      chainId: 3,
      tokenList: require("./tokens/ropstenTokens.json"),
      abiList: require("./abiDefinitions/ropstenAbi.json"),
      service: "infura.io",
      lib: new nodes.infuraNode("https://ropsten.infura.io/mew")
    },
    kov_ethscan: {
      name: "Kovan",
      type: nodes.nodeTypes.Kovan,
      blockExplorerTX: "https://kovan.etherscan.io/tx/[[txHash]]",
      blockExplorerAddr: "https://kovan.etherscan.io/address/[[address]]",
      eip155: true,
      chainId: 42,
      tokenList: require("./tokens/kovanTokens.json"),
      abiList: require("./abiDefinitions/kovanAbi.json"),
      service: "etherscan.io",
      lib: require("./nodeHelpers/etherscanKov")
    },
    kov_infura: {
      name: "Kovan",
      type: nodes.nodeTypes.Kovan,
      blockExplorerTX: "https://kovan.etherscan.io/tx/[[txHash]]",
      blockExplorerAddr: "https://kovan.etherscan.io/address/[[address]]",
      eip155: true,
      chainId: 42,
      tokenList: require("./tokens/kovanTokens.json"),
      abiList: require("./abiDefinitions/kovanAbi.json"),
      service: "infura.io",
      lib: new nodes.infuraNode("https://kovan.infura.io/mew")
    },
    rin_ethscan: {
      name: "Rinkeby",
      type: nodes.nodeTypes.Rinkeby,
      blockExplorerTX: "https://rinkeby.etherscan.io/tx/[[txHash]]",
      blockExplorerAddr: "https://rinkeby.etherscan.io/address/[[address]]",
      eip155: true,
      chainId: 4,
      tokenList: require("./tokens/rinkebyTokens.json"),
      abiList: require("./abiDefinitions/rinkebyAbi.json"),
      service: "etherscan.io",
      lib: require("./nodeHelpers/etherscanRin")
    },
    rin_infura: {
      name: "Rinkeby",
      blockExplorerTX: "https://rinkeby.etherscan.io/tx/[[txHash]]",
      blockExplorerAddr: "https://rinkeby.etherscan.io/address/[[address]]",
      type: nodes.nodeTypes.Rinkeby,
      eip155: true,
      chainId: 4,
      tokenList: require("./tokens/rinkebyTokens.json"),
      abiList: require("./abiDefinitions/rinkebyAbi.json"),
      service: "infura.io",
      lib: new nodes.infuraNode("https://rinkeby.infura.io/mew")
    },
    exp: {
      name: "EXP",
      blockExplorerTX: "http://www.gander.tech/tx/[[txHash]]",
      blockExplorerAddr: "http://www.gander.tech/address/[[address]]",
      type: nodes.nodeTypes.EXP,
      eip155: true,
      chainId: 2,
      tokenList: require("./tokens/expTokens.json"),
      abiList: require("./abiDefinitions/expAbi.json"),
      estimateGas: true,
      service: "expanse.tech",
      lib: new nodes.customNode("https://node.expanse.tech/", "")
    },
    ubq: {
      name: "UBQ",
      blockExplorerTX: "https://ubiqscan.io/tx/[[txHash]]",
      blockExplorerAddr: "https://ubiqscan.io/address/[[address]]",
      type: nodes.nodeTypes.UBQ,
      eip155: true,
      chainId: 8,
      tokenList: require("./tokens/ubqTokens.json"),
      abiList: require("./abiDefinitions/ubqAbi.json"),
      estimateGas: true,
      service: "ubiqscan.io",
      lib: new nodes.customNode("https://pyrus2.ubiqscan.io", "")
    },
    poa: {
      name: "POA",
      blockExplorerTX: "https://blockscout.com/poa/core/tx/[[txHash]]",
      blockExplorerAddr: "https://blockscout.com/poa/core/address/[[address]]",
      type: nodes.nodeTypes.POA,
      eip155: true,
      chainId: 99,
      tokenList: require("./tokens/poaTokens.json"),
      abiList: require("./abiDefinitions/poaAbi.json"),
      estimateGas: true,
      service: "core.poa.network",
      lib: new nodes.infuraNode("https://core.poa.network")
    },
    tomo: {
      name: "TOMO",
      blockExplorerTX: "https://scan.tomochain.com/txs/[[txHash]]",
      blockExplorerAddr: "https://scan.tomochain.com/address/[[address]]",
      type: nodes.nodeTypes.TOMO,
      eip155: true,
      chainId: 88,
      tokenList: require("./tokens/tomoTokens.json"),
      abiList: require("./abiDefinitions/tomoAbi.json"),
      estimateGas: true,
      service: "tomochain.com",
      lib: new nodes.customNode("https://rpc.tomochain.com", "")
    },
    ella: {
      name: "ELLA",
      blockExplorerTX: "https://explorer.ellaism.org/tx/[[txHash]]",
      blockExplorerAddr: "https://explorer.ellaism.org/addr/[[address]]",
      type: nodes.nodeTypes.ELLA,
      eip155: true,
      chainId: 64,
      tokenList: require("./tokens/ellaTokens.json"),
      abiList: require("./abiDefinitions/ellaAbi.json"),
      estimateGas: true,
      service: "ellaism.org",
      lib: new nodes.customNode("https://jsonrpc.ellaism.org", "")
    },
    etsc: {
      name: "ETSC",
      blockExplorerTX: "https://explorer.ethereumsocial.kr/tx/[[txHash]]",
      blockExplorerAddr: "https://explorer.ethereumsocial.kr/addr/[[address]]",
      type: nodes.nodeTypes.ETSC,
      eip155: true,
      chainId: 28,
      tokenList: require("./tokens/etscTokens.json"),
      abiList: require("./abiDefinitions/etscAbi.json"),
      estimateGas: true,
      service: "ethereumsocial.kr",
      lib: new nodes.customNode("https://node.ethereumsocial.kr", "")
    },
    egem: {
      name: "EGEM",
      blockExplorerTX: "https://explorer.egem.io/tx/[[txHash]]",
      blockExplorerAddr: "https://explorer.egem.io/addr/[[address]]",
      type: nodes.nodeTypes.EGEM,
      eip155: true,
      chainId: 1987,
      tokenList: require("./tokens/egemTokens.json"),
      abiList: require("./abiDefinitions/egemAbi.json"),
      estimateGas: true,
      service: "egem.io",
      lib: new nodes.customNode("https://jsonrpc.egem.io/custom", "")
    },
    clo: {
      name: "CLO",
      blockExplorerTX: "https://explorer2.callisto.network/tx/[[txHash]]",
      blockExplorerAddr: "https://explorer2.callisto.network/addr/[[address]]",
      type: nodes.nodeTypes.CLO,
      eip155: true,
      chainId: 820,
      tokenList: require("./tokens/cloTokens.json"),
      abiList: require("./abiDefinitions/cloAbi.json"),
      service: "0xinfra.com",
      lib: new nodes.customNode("https://clo-geth.0xinfra.com/", "")
    },
    music: {
      name: "MUSIC",
      blockExplorerTX: "https://explorer.musicoin.org/tx/[[txHash]]",
      blockExplorerAddr: "https://explorer.musicoin.org/account/[[address]]",
      type: nodes.nodeTypes.MUSIC,
      eip155: true,
      chainId: 7762959,
      tokenList: require("./tokens/musicTokens.json"),
      abiList: require("./abiDefinitions/musicAbi.json"),
      estimateGas: true,
      service: "musicoin.org",
      lib: new nodes.customNode("https://mcdnode.trustfarm.io/api", "")
    },
    go: {
      name: "GO",
      blockExplorerTX: "https://explorer.gochain.io/tx/[[txHash]]",
      blockExplorerAddr: "https://explorer.gochain.io/addr/[[address]]",
      type: nodes.nodeTypes.GO,
      eip155: true,
      chainId: 60,
      tokenList: require("./tokens/goTokens.json"),
      abiList: require("./abiDefinitions/goAbi.json"),
      estimateGas: true,
      service: "gochain.io",
      lib: new nodes.customNode("https://rpc.gochain.io", "")
    },
    eosc: {
      name: "EOSC",
      blockExplorerTX: "https://explorer.eos-classic.io/tx/[[txHash]]",
      blockExplorerAddr: "https://explorer.eos-classic.io/addr/[[address]]",
      type: nodes.nodeTypes.EOSC,
      eip155: true,
      chainId: 2018,
      tokenList: require("./tokens/eoscTokens.json"),
      abiList: require("./abiDefinitions/eoscAbi.json"),
      estimateGas: true,
      service: "EOS Classic",
      lib: new nodes.customNode("https://node.eos-classic.io", "")
    },
    aka_remote: {
      name: "AKA",
      blockExplorerTX: "https://explorer.akroma.io/transaction/[[txHash]]",
      blockExplorerAddr: "https://explorer.akroma.io/address/[[address]]",
      type: nodes.nodeTypes.AKA,
      eip155: true,
      chainId: 200625,
      tokenList: require("./tokens/akromaTokens.json"),
      abiList: require("./abiDefinitions/akromaAbi.json"),
      estimateGas: true,
      service: "remote.akroma.io",
      lib: new nodes.customNode("https://remote.akroma.io", "")
    },
    aka_rpc: {
      name: "AKA",
      blockExplorerTX: "https://explorer.akroma.io/transaction/[[txHash]]",
      blockExplorerAddr: "https://explorer.akroma.io/address/[[address]]",
      type: nodes.nodeTypes.AKA,
      eip155: true,
      chainId: 200625,
      tokenList: require("./tokens/akromaTokens.json"),
      abiList: require("./abiDefinitions/akromaAbi.json"),
      estimateGas: true,
      service: "rpc.akroma.io",
      lib: new nodes.customNode("https://rpc.akroma.io", "")
    },
    esn: {
      name: "ESN",
      blockExplorerTX: "https://ethersocial.net/tx/[[txHash]]",
      blockExplorerAddr: "https://ethersocial.net/addr/[[address]]",
      type: nodes.nodeTypes.ESN,
      eip155: true,
      chainId: 31102,
      tokenList: require("./tokens/esnTokens.json"),
      abiList: require("./abiDefinitions/esnAbi.json"),
      estimateGas: true,
      service: "ethersocial.org",
      lib: new nodes.customNode("https://api.esn.gonspool.com", "")
    },
    pirl: {
      name: "PIRL",
      blockExplorerTX: "https://poseidon.pirl.io/explorer/transaction/[[txHash]]",
      blockExplorerAddr: "https://poseidon.pirl.io/explorer/address/[[address]]",
      type: nodes.nodeTypes.PIRL,
      eip155: true,
      chainId: 3125659152,
      tokenList: require("./tokens/pirlTokens.json"),
      abiList: require("./abiDefinitions/pirlAbi.json"),
      estimateGas: true,
      service: "pirl.io",
      lib: new nodes.customNode("https://wallrpc.pirl.io", "")
    },
    etho: {
      name: "ETHO",
      blockExplorerTX: "https://explorer.ether1.org/tx/[[txHash]]",
      blockExplorerAddr: "https://explorer.ether1.org/addr/[[address]]",
      type: nodes.nodeTypes.ETHO,
      eip155: true,
      chainId: 1313114,
      tokenList: require("./tokens/ethoTokens.json"),
      abiList: require("./abiDefinitions/ethoAbi.json"),
      estimateGas: true,
      service: "ether1.org",
      lib: new nodes.customNode("https://rpc.ether1.org", "")
    },
    ath: {
      name: "ATH",
      blockExplorerTX: "https://scan.atheios.com/tx/[[txHash]]",
      blockExplorerAddr: "https://scan.atheios.com/addr/[[address]]",
      type: nodes.nodeTypes.ATH,
      eip155: true,
      chainId: 1620,
      tokenList: require("./tokens/athTokens.json"),
      abiList: require("./abiDefinitions/athAbi.json"),
      estimateGas: true,
      service: "wallet.atheios.com",
      lib: new nodes.customNode("https://wallet.atheios.com", "8797")
    },
    iolite: {
      name: "ILT",
      blockExplorerTX: "https://scan.iolite.io/txs/[[txHash]]",
      blockExplorerAddr: "https://scan.iolite.io/addrs/[[address]]",
      type: nodes.nodeTypes.ILT,
      eip155: true,
      chainId: 18289463,
      tokenList: require("./tokens/iltTokens.json"),
      abiList: require("./abiDefinitions/iltAbi.json"),
      estimateGas: true,
      service: "net.iolite.io",
      lib: new nodes.customNode("https://net.iolite.io", "")
    },
    web: {
      name: "WEB",
      blockExplorerTX: "https://explorer.webchain.network/tx/[[txHash]]",
      blockExplorerAddr: "https://explorer.webchain.network/addr/[[address]]",
      type: nodes.nodeTypes.WEB,
      eip155: true,
      chainId: 24484,
      tokenList: require("./tokens/webTokens.json"),
      abiList: require("./abiDefinitions/webAbi.json"),
      estimateGas: true,
      service: "node1.webchain.network",
      lib: new nodes.customNode("https://node1.webchain.network", "")
    },
    mix: {
      name: "MIX",
      blockExplorerTX: "https://blocks.mix-blockchain.org/transaction/[[txHash]]",
      blockExplorerAddr: "https://blocks.mix-blockchain.org/address/[[address]]",
      type: nodes.nodeTypes.MIX,
      eip155: true,
      chainId: 76,
      tokenList: require("./tokens/mixTokens.json"),
      abiList: require("./abiDefinitions/mixAbi.json"),
      estimateGas: true,
      service: "mix-blockchain.org",
      lib: new nodes.customNode("https://rpc2.mix-blockchain.org", "8647")
    },
    reosc: {
      name: "REOSC",
      blockExplorerTX: "https://explorer.reosc.io/tx/[[txHash]]",
      blockExplorerAddr: "https://explorer.reosc.io/addr/[[address]]",
      type: nodes.nodeTypes.REOSC,
      eip155: true,
      chainId: 2894,
      tokenList: require("./tokens/reoscTokens.json"),
      abiList: require("./abiDefinitions/reoscAbi.json"),
      estimateGas: true,
      service: "REOSC Ecosystem",
      lib: new nodes.customNode("https://remote.reosc.io", "3000")
    },
    thundercore: {
      name: "THUNDERCORE",
      blockExplorerTX: "https://scan.thundercore.com/transactions/[[txHash]]",
      blockExplorerAddr: "https://scan.thundercore.com/address/[[address]]",
      type: nodes.nodeTypes.THUNDERCORE,
      eip155: true,
      chainId: 108,
      tokenList: require("./tokens/thundercoreTokens.json"),
      abiList: require("./abiDefinitions/thundercoreAbi.json"),
      estimateGas: true,
      service: "thundercore.com",
      lib: new nodes.customNode("https://mainnet-rpc.thundercore.com", "443")
    }
  };
  
  nodes.ethPrice = require("./nodeHelpers/ethPrice");
  module.exports = nodes;
  