1 | "use strict";
|
2 | import { Provider } from "@ethersproject/abstract-provider";
|
3 | import { getNetwork } from "@ethersproject/networks";
|
4 | import { BaseProvider, Resolver } from "./base-provider";
|
5 | import { AlchemyProvider, AlchemyWebSocketProvider } from "./alchemy-provider";
|
6 | import { AnkrProvider } from "./ankr-provider";
|
7 | import { CloudflareProvider } from "./cloudflare-provider";
|
8 | import { EtherscanProvider } from "./etherscan-provider";
|
9 | import { FallbackProvider } from "./fallback-provider";
|
10 | import { IpcProvider } from "./ipc-provider";
|
11 | import { InfuraProvider, InfuraWebSocketProvider } from "./infura-provider";
|
12 | import { JsonRpcProvider, JsonRpcSigner } from "./json-rpc-provider";
|
13 | import { JsonRpcBatchProvider } from "./json-rpc-batch-provider";
|
14 | import { NodesmithProvider } from "./nodesmith-provider";
|
15 | import { PocketProvider } from "./pocket-provider";
|
16 | import { StaticJsonRpcProvider, UrlJsonRpcProvider } from "./url-json-rpc-provider";
|
17 | import { Web3Provider } from "./web3-provider";
|
18 | import { WebSocketProvider } from "./websocket-provider";
|
19 | import { Formatter, isCommunityResourcable, isCommunityResource, showThrottleMessage } from "./formatter";
|
20 | import { Logger } from "@ethersproject/logger";
|
21 | import { version } from "./_version";
|
22 | const logger = new Logger(version);
|
23 |
|
24 |
|
25 | function getDefaultProvider(network, options) {
|
26 | if (network == null) {
|
27 | network = "homestead";
|
28 | }
|
29 |
|
30 | if (typeof (network) === "string") {
|
31 |
|
32 |
|
33 | const match = network.match(/^(ws|http)s?:/i);
|
34 | if (match) {
|
35 | switch (match[1].toLowerCase()) {
|
36 | case "http":
|
37 | case "https":
|
38 | return new JsonRpcProvider(network);
|
39 | case "ws":
|
40 | case "wss":
|
41 | return new WebSocketProvider(network);
|
42 | default:
|
43 | logger.throwArgumentError("unsupported URL scheme", "network", network);
|
44 | }
|
45 | }
|
46 | }
|
47 | const n = getNetwork(network);
|
48 | if (!n || !n._defaultProvider) {
|
49 | logger.throwError("unsupported getDefaultProvider network", Logger.errors.NETWORK_ERROR, {
|
50 | operation: "getDefaultProvider",
|
51 | network: network
|
52 | });
|
53 | }
|
54 | return n._defaultProvider({
|
55 | FallbackProvider,
|
56 | AlchemyProvider,
|
57 | AnkrProvider,
|
58 | CloudflareProvider,
|
59 | EtherscanProvider,
|
60 | InfuraProvider,
|
61 | JsonRpcProvider,
|
62 | NodesmithProvider,
|
63 | PocketProvider,
|
64 | Web3Provider,
|
65 | IpcProvider,
|
66 | }, options);
|
67 | }
|
68 |
|
69 |
|
70 | export {
|
71 |
|
72 | Provider, BaseProvider, Resolver, UrlJsonRpcProvider,
|
73 |
|
74 |
|
75 | FallbackProvider, AlchemyProvider, AlchemyWebSocketProvider, AnkrProvider, CloudflareProvider, EtherscanProvider, InfuraProvider, InfuraWebSocketProvider, JsonRpcProvider, JsonRpcBatchProvider, NodesmithProvider, PocketProvider, StaticJsonRpcProvider, Web3Provider, WebSocketProvider, IpcProvider,
|
76 |
|
77 |
|
78 | JsonRpcSigner,
|
79 |
|
80 |
|
81 | getDefaultProvider, getNetwork, isCommunityResource, isCommunityResourcable, showThrottleMessage,
|
82 |
|
83 |
|
84 | Formatter };
|
85 |
|
\ | No newline at end of file |