80 lines
3.8 KiB
JavaScript
80 lines
3.8 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
var abstract_provider_1 = require("@ethersproject/abstract-provider");
|
|
exports.Provider = abstract_provider_1.Provider;
|
|
var networks_1 = require("@ethersproject/networks");
|
|
exports.getNetwork = networks_1.getNetwork;
|
|
var base_provider_1 = require("./base-provider");
|
|
exports.BaseProvider = base_provider_1.BaseProvider;
|
|
var alchemy_provider_1 = require("./alchemy-provider");
|
|
exports.AlchemyProvider = alchemy_provider_1.AlchemyProvider;
|
|
var cloudflare_provider_1 = require("./cloudflare-provider");
|
|
exports.CloudflareProvider = cloudflare_provider_1.CloudflareProvider;
|
|
var etherscan_provider_1 = require("./etherscan-provider");
|
|
exports.EtherscanProvider = etherscan_provider_1.EtherscanProvider;
|
|
var fallback_provider_1 = require("./fallback-provider");
|
|
exports.FallbackProvider = fallback_provider_1.FallbackProvider;
|
|
var ipc_provider_1 = require("./ipc-provider");
|
|
exports.IpcProvider = ipc_provider_1.IpcProvider;
|
|
var infura_provider_1 = require("./infura-provider");
|
|
exports.InfuraProvider = infura_provider_1.InfuraProvider;
|
|
var json_rpc_provider_1 = require("./json-rpc-provider");
|
|
exports.JsonRpcProvider = json_rpc_provider_1.JsonRpcProvider;
|
|
exports.JsonRpcSigner = json_rpc_provider_1.JsonRpcSigner;
|
|
var nodesmith_provider_1 = require("./nodesmith-provider");
|
|
exports.NodesmithProvider = nodesmith_provider_1.NodesmithProvider;
|
|
var url_json_rpc_provider_1 = require("./url-json-rpc-provider");
|
|
exports.StaticJsonRpcProvider = url_json_rpc_provider_1.StaticJsonRpcProvider;
|
|
exports.UrlJsonRpcProvider = url_json_rpc_provider_1.UrlJsonRpcProvider;
|
|
var web3_provider_1 = require("./web3-provider");
|
|
exports.Web3Provider = web3_provider_1.Web3Provider;
|
|
var websocket_provider_1 = require("./websocket-provider");
|
|
exports.WebSocketProvider = websocket_provider_1.WebSocketProvider;
|
|
var formatter_1 = require("./formatter");
|
|
exports.Formatter = formatter_1.Formatter;
|
|
var logger_1 = require("@ethersproject/logger");
|
|
var _version_1 = require("./_version");
|
|
var logger = new logger_1.Logger(_version_1.version);
|
|
////////////////////////
|
|
// Helper Functions
|
|
function getDefaultProvider(network, options) {
|
|
if (network == null) {
|
|
network = "homestead";
|
|
}
|
|
// If passed a URL, figure out the right type of provider based on the scheme
|
|
if (typeof (network) === "string") {
|
|
// @TODO: Add support for IpcProvider; maybe if it ends in ".ipc"?
|
|
// Handle http and ws (and their secure variants)
|
|
var match = network.match(/^(ws|http)s?:/i);
|
|
if (match) {
|
|
switch (match[1]) {
|
|
case "http":
|
|
return new json_rpc_provider_1.JsonRpcProvider(network);
|
|
case "ws":
|
|
return new websocket_provider_1.WebSocketProvider(network);
|
|
default:
|
|
logger.throwArgumentError("unsupported URL scheme", "network", network);
|
|
}
|
|
}
|
|
}
|
|
var n = networks_1.getNetwork(network);
|
|
if (!n || !n._defaultProvider) {
|
|
logger.throwError("unsupported getDefaultProvider network", logger_1.Logger.errors.NETWORK_ERROR, {
|
|
operation: "getDefaultProvider",
|
|
network: network
|
|
});
|
|
}
|
|
return n._defaultProvider({
|
|
FallbackProvider: fallback_provider_1.FallbackProvider,
|
|
AlchemyProvider: alchemy_provider_1.AlchemyProvider,
|
|
CloudflareProvider: cloudflare_provider_1.CloudflareProvider,
|
|
EtherscanProvider: etherscan_provider_1.EtherscanProvider,
|
|
InfuraProvider: infura_provider_1.InfuraProvider,
|
|
JsonRpcProvider: json_rpc_provider_1.JsonRpcProvider,
|
|
NodesmithProvider: nodesmith_provider_1.NodesmithProvider,
|
|
Web3Provider: web3_provider_1.Web3Provider,
|
|
IpcProvider: ipc_provider_1.IpcProvider,
|
|
}, options);
|
|
}
|
|
exports.getDefaultProvider = getDefaultProvider;
|