mirror of
				https://github.com/Instadapp/Swap-Aggregator-Subgraph.git
				synced 2024-07-29 21:57:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			245 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			245 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| Object.defineProperty(exports, "__esModule", { value: true });
 | |
| exports.getNetwork = void 0;
 | |
| var logger_1 = require("@ethersproject/logger");
 | |
| var _version_1 = require("./_version");
 | |
| var logger = new logger_1.Logger(_version_1.version);
 | |
| ;
 | |
| function isRenetworkable(value) {
 | |
|     return (value && typeof (value.renetwork) === "function");
 | |
| }
 | |
| function ethDefaultProvider(network) {
 | |
|     var func = function (providers, options) {
 | |
|         if (options == null) {
 | |
|             options = {};
 | |
|         }
 | |
|         var providerList = [];
 | |
|         if (providers.InfuraProvider && options.infura !== "-") {
 | |
|             try {
 | |
|                 providerList.push(new providers.InfuraProvider(network, options.infura));
 | |
|             }
 | |
|             catch (error) { }
 | |
|         }
 | |
|         if (providers.EtherscanProvider && options.etherscan !== "-") {
 | |
|             try {
 | |
|                 providerList.push(new providers.EtherscanProvider(network, options.etherscan));
 | |
|             }
 | |
|             catch (error) { }
 | |
|         }
 | |
|         if (providers.AlchemyProvider && options.alchemy !== "-") {
 | |
|             try {
 | |
|                 providerList.push(new providers.AlchemyProvider(network, options.alchemy));
 | |
|             }
 | |
|             catch (error) { }
 | |
|         }
 | |
|         if (providers.PocketProvider && options.pocket !== "-") {
 | |
|             // These networks are currently faulty on Pocket as their
 | |
|             // network does not handle the Berlin hardfork, which is
 | |
|             // live on these ones.
 | |
|             // @TODO: This goes away once Pocket has upgraded their nodes
 | |
|             var skip = ["goerli", "ropsten", "rinkeby"];
 | |
|             try {
 | |
|                 var provider = new providers.PocketProvider(network, options.pocket);
 | |
|                 if (provider.network && skip.indexOf(provider.network.name) === -1) {
 | |
|                     providerList.push(provider);
 | |
|                 }
 | |
|             }
 | |
|             catch (error) { }
 | |
|         }
 | |
|         if (providers.CloudflareProvider && options.cloudflare !== "-") {
 | |
|             try {
 | |
|                 providerList.push(new providers.CloudflareProvider(network));
 | |
|             }
 | |
|             catch (error) { }
 | |
|         }
 | |
|         if (providers.AnkrProvider && options.ankr !== "-") {
 | |
|             try {
 | |
|                 var skip = ["ropsten"];
 | |
|                 var provider = new providers.AnkrProvider(network, options.ankr);
 | |
|                 if (provider.network && skip.indexOf(provider.network.name) === -1) {
 | |
|                     providerList.push(provider);
 | |
|                 }
 | |
|             }
 | |
|             catch (error) { }
 | |
|         }
 | |
|         if (providerList.length === 0) {
 | |
|             return null;
 | |
|         }
 | |
|         if (providers.FallbackProvider) {
 | |
|             var quorum = 1;
 | |
|             if (options.quorum != null) {
 | |
|                 quorum = options.quorum;
 | |
|             }
 | |
|             else if (network === "homestead") {
 | |
|                 quorum = 2;
 | |
|             }
 | |
|             return new providers.FallbackProvider(providerList, quorum);
 | |
|         }
 | |
|         return providerList[0];
 | |
|     };
 | |
|     func.renetwork = function (network) {
 | |
|         return ethDefaultProvider(network);
 | |
|     };
 | |
|     return func;
 | |
| }
 | |
| function etcDefaultProvider(url, network) {
 | |
|     var func = function (providers, options) {
 | |
|         if (providers.JsonRpcProvider) {
 | |
|             return new providers.JsonRpcProvider(url, network);
 | |
|         }
 | |
|         return null;
 | |
|     };
 | |
|     func.renetwork = function (network) {
 | |
|         return etcDefaultProvider(url, network);
 | |
|     };
 | |
|     return func;
 | |
| }
 | |
| var homestead = {
 | |
|     chainId: 1,
 | |
|     ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
 | |
|     name: "homestead",
 | |
|     _defaultProvider: ethDefaultProvider("homestead")
 | |
| };
 | |
| var ropsten = {
 | |
|     chainId: 3,
 | |
|     ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
 | |
|     name: "ropsten",
 | |
|     _defaultProvider: ethDefaultProvider("ropsten")
 | |
| };
 | |
| var classicMordor = {
 | |
|     chainId: 63,
 | |
|     name: "classicMordor",
 | |
|     _defaultProvider: etcDefaultProvider("https://www.ethercluster.com/mordor", "classicMordor")
 | |
| };
 | |
| // See: https://chainlist.org
 | |
| var networks = {
 | |
|     unspecified: { chainId: 0, name: "unspecified" },
 | |
|     homestead: homestead,
 | |
|     mainnet: homestead,
 | |
|     morden: { chainId: 2, name: "morden" },
 | |
|     ropsten: ropsten,
 | |
|     testnet: ropsten,
 | |
|     rinkeby: {
 | |
|         chainId: 4,
 | |
|         ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
 | |
|         name: "rinkeby",
 | |
|         _defaultProvider: ethDefaultProvider("rinkeby")
 | |
|     },
 | |
|     kovan: {
 | |
|         chainId: 42,
 | |
|         name: "kovan",
 | |
|         _defaultProvider: ethDefaultProvider("kovan")
 | |
|     },
 | |
|     goerli: {
 | |
|         chainId: 5,
 | |
|         ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
 | |
|         name: "goerli",
 | |
|         _defaultProvider: ethDefaultProvider("goerli")
 | |
|     },
 | |
|     kintsugi: { chainId: 1337702, name: "kintsugi" },
 | |
|     // ETC (See: #351)
 | |
|     classic: {
 | |
|         chainId: 61,
 | |
|         name: "classic",
 | |
|         _defaultProvider: etcDefaultProvider("https:/\/www.ethercluster.com/etc", "classic")
 | |
|     },
 | |
|     classicMorden: { chainId: 62, name: "classicMorden" },
 | |
|     classicMordor: classicMordor,
 | |
|     classicTestnet: classicMordor,
 | |
|     classicKotti: {
 | |
|         chainId: 6,
 | |
|         name: "classicKotti",
 | |
|         _defaultProvider: etcDefaultProvider("https:/\/www.ethercluster.com/kotti", "classicKotti")
 | |
|     },
 | |
|     xdai: { chainId: 100, name: "xdai" },
 | |
|     matic: {
 | |
|         chainId: 137,
 | |
|         name: "matic",
 | |
|         _defaultProvider: ethDefaultProvider("matic")
 | |
|     },
 | |
|     maticmum: { chainId: 80001, name: "maticmum" },
 | |
|     optimism: {
 | |
|         chainId: 10,
 | |
|         name: "optimism",
 | |
|         _defaultProvider: ethDefaultProvider("optimism")
 | |
|     },
 | |
|     "optimism-kovan": { chainId: 69, name: "optimism-kovan" },
 | |
|     "optimism-goerli": { chainId: 420, name: "optimism-goerli" },
 | |
|     arbitrum: { chainId: 42161, name: "arbitrum" },
 | |
|     "arbitrum-rinkeby": { chainId: 421611, name: "arbitrum-rinkeby" },
 | |
|     bnb: { chainId: 56, name: "bnb" },
 | |
|     bnbt: { chainId: 97, name: "bnbt" },
 | |
| };
 | |
| /**
 | |
|  *  getNetwork
 | |
|  *
 | |
|  *  Converts a named common networks or chain ID (network ID) to a Network
 | |
|  *  and verifies a network is a valid Network..
 | |
|  */
 | |
| function getNetwork(network) {
 | |
|     // No network (null)
 | |
|     if (network == null) {
 | |
|         return null;
 | |
|     }
 | |
|     if (typeof (network) === "number") {
 | |
|         for (var name_1 in networks) {
 | |
|             var standard_1 = networks[name_1];
 | |
|             if (standard_1.chainId === network) {
 | |
|                 return {
 | |
|                     name: standard_1.name,
 | |
|                     chainId: standard_1.chainId,
 | |
|                     ensAddress: (standard_1.ensAddress || null),
 | |
|                     _defaultProvider: (standard_1._defaultProvider || null)
 | |
|                 };
 | |
|             }
 | |
|         }
 | |
|         return {
 | |
|             chainId: network,
 | |
|             name: "unknown"
 | |
|         };
 | |
|     }
 | |
|     if (typeof (network) === "string") {
 | |
|         var standard_2 = networks[network];
 | |
|         if (standard_2 == null) {
 | |
|             return null;
 | |
|         }
 | |
|         return {
 | |
|             name: standard_2.name,
 | |
|             chainId: standard_2.chainId,
 | |
|             ensAddress: standard_2.ensAddress,
 | |
|             _defaultProvider: (standard_2._defaultProvider || null)
 | |
|         };
 | |
|     }
 | |
|     var standard = networks[network.name];
 | |
|     // Not a standard network; check that it is a valid network in general
 | |
|     if (!standard) {
 | |
|         if (typeof (network.chainId) !== "number") {
 | |
|             logger.throwArgumentError("invalid network chainId", "network", network);
 | |
|         }
 | |
|         return network;
 | |
|     }
 | |
|     // Make sure the chainId matches the expected network chainId (or is 0; disable EIP-155)
 | |
|     if (network.chainId !== 0 && network.chainId !== standard.chainId) {
 | |
|         logger.throwArgumentError("network chainId mismatch", "network", network);
 | |
|     }
 | |
|     // @TODO: In the next major version add an attach function to a defaultProvider
 | |
|     // class and move the _defaultProvider internal to this file (extend Network)
 | |
|     var defaultProvider = network._defaultProvider || null;
 | |
|     if (defaultProvider == null && standard._defaultProvider) {
 | |
|         if (isRenetworkable(standard._defaultProvider)) {
 | |
|             defaultProvider = standard._defaultProvider.renetwork(network);
 | |
|         }
 | |
|         else {
 | |
|             defaultProvider = standard._defaultProvider;
 | |
|         }
 | |
|     }
 | |
|     // Standard Network (allow overriding the ENS address)
 | |
|     return {
 | |
|         name: network.name,
 | |
|         chainId: standard.chainId,
 | |
|         ensAddress: (network.ensAddress || standard.ensAddress || null),
 | |
|         _defaultProvider: defaultProvider
 | |
|     };
 | |
| }
 | |
| exports.getNetwork = getNetwork;
 | |
| //# sourceMappingURL=index.js.map
 | 
