@qevm/providers 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/README.md +78 -0
- package/lib/_version.d.ts +2 -0
- package/lib/_version.d.ts.map +1 -0
- package/lib/_version.js +5 -0
- package/lib/_version.js.map +1 -0
- package/lib/alchemy-provider.d.ts +17 -0
- package/lib/alchemy-provider.d.ts.map +1 -0
- package/lib/alchemy-provider.js +112 -0
- package/lib/alchemy-provider.js.map +1 -0
- package/lib/ankr-provider.d.ts +10 -0
- package/lib/ankr-provider.d.ts.map +1 -0
- package/lib/ankr-provider.js +79 -0
- package/lib/ankr-provider.js.map +1 -0
- package/lib/base-provider.d.ts +156 -0
- package/lib/base-provider.d.ts.map +1 -0
- package/lib/base-provider.js +2585 -0
- package/lib/base-provider.js.map +1 -0
- package/lib/browser-ipc-provider.d.ts +3 -0
- package/lib/browser-ipc-provider.d.ts.map +1 -0
- package/lib/browser-ipc-provider.js +6 -0
- package/lib/browser-ipc-provider.js.map +1 -0
- package/lib/browser-net.d.ts +2 -0
- package/lib/browser-net.d.ts.map +1 -0
- package/lib/browser-net.js +6 -0
- package/lib/browser-net.js.map +1 -0
- package/lib/browser-ws.d.ts +3 -0
- package/lib/browser-ws.d.ts.map +1 -0
- package/lib/browser-ws.js +22 -0
- package/lib/browser-ws.js.map +1 -0
- package/lib/cloudflare-provider.d.ts +8 -0
- package/lib/cloudflare-provider.d.ts.map +1 -0
- package/lib/cloudflare-provider.js +100 -0
- package/lib/cloudflare-provider.js.map +1 -0
- package/lib/etherscan-provider.d.ts +18 -0
- package/lib/etherscan-provider.d.ts.map +1 -0
- package/lib/etherscan-provider.js +528 -0
- package/lib/etherscan-provider.js.map +1 -0
- package/lib/fallback-provider.d.ts +20 -0
- package/lib/fallback-provider.d.ts.map +1 -0
- package/lib/fallback-provider.js +699 -0
- package/lib/fallback-provider.js.map +1 -0
- package/lib/formatter.d.ts +60 -0
- package/lib/formatter.d.ts.map +1 -0
- package/lib/formatter.js +452 -0
- package/lib/formatter.js.map +1 -0
- package/lib/index.d.ts +23 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +97 -0
- package/lib/index.js.map +1 -0
- package/lib/infura-provider.d.ts +21 -0
- package/lib/infura-provider.d.ts.map +1 -0
- package/lib/infura-provider.js +141 -0
- package/lib/infura-provider.js.map +1 -0
- package/lib/ipc-provider.d.ts +8 -0
- package/lib/ipc-provider.d.ts.map +1 -0
- package/lib/ipc-provider.js +77 -0
- package/lib/ipc-provider.js.map +1 -0
- package/lib/json-rpc-batch-provider.d.ts +17 -0
- package/lib/json-rpc-batch-provider.d.ts.map +1 -0
- package/lib/json-rpc-batch-provider.js +99 -0
- package/lib/json-rpc-batch-provider.js.map +1 -0
- package/lib/json-rpc-provider.d.ts +54 -0
- package/lib/json-rpc-provider.d.ts.map +1 -0
- package/lib/json-rpc-provider.js +855 -0
- package/lib/json-rpc-provider.js.map +1 -0
- package/lib/nodesmith-provider.d.ts +7 -0
- package/lib/nodesmith-provider.d.ts.map +1 -0
- package/lib/nodesmith-provider.js +64 -0
- package/lib/nodesmith-provider.js.map +1 -0
- package/lib/pocket-provider.d.ts +12 -0
- package/lib/pocket-provider.d.ts.map +1 -0
- package/lib/pocket-provider.js +98 -0
- package/lib/pocket-provider.js.map +1 -0
- package/lib/url-json-rpc-provider.d.ts +18 -0
- package/lib/url-json-rpc-provider.d.ts.map +1 -0
- package/lib/url-json-rpc-provider.js +153 -0
- package/lib/url-json-rpc-provider.js.map +1 -0
- package/lib/web3-provider.d.ts +28 -0
- package/lib/web3-provider.d.ts.map +1 -0
- package/lib/web3-provider.js +155 -0
- package/lib/web3-provider.js.map +1 -0
- package/lib/websocket-provider.d.ts +48 -0
- package/lib/websocket-provider.d.ts.map +1 -0
- package/lib/websocket-provider.js +384 -0
- package/lib/websocket-provider.js.map +1 -0
- package/lib/ws.d.ts +3 -0
- package/lib/ws.d.ts.map +1 -0
- package/lib/ws.js +9 -0
- package/lib/ws.js.map +1 -0
- package/package.json +57 -0
- package/src.ts/_version.ts +1 -0
- package/src.ts/alchemy-provider.ts +101 -0
- package/src.ts/ankr-provider.ts +68 -0
- package/src.ts/base-provider.ts +2216 -0
- package/src.ts/browser-ipc-provider.ts +7 -0
- package/src.ts/browser-net.ts +3 -0
- package/src.ts/browser-ws.ts +21 -0
- package/src.ts/cloudflare-provider.ts +42 -0
- package/src.ts/etherscan-provider.ts +454 -0
- package/src.ts/fallback-provider.ts +654 -0
- package/src.ts/formatter.ts +522 -0
- package/src.ts/index.ts +178 -0
- package/src.ts/infura-provider.ts +143 -0
- package/src.ts/ipc-provider.ts +72 -0
- package/src.ts/json-rpc-batch-provider.ts +97 -0
- package/src.ts/json-rpc-provider.ts +742 -0
- package/src.ts/nodesmith-provider.ts +50 -0
- package/src.ts/pocket-provider.ts +93 -0
- package/src.ts/url-json-rpc-provider.ts +106 -0
- package/src.ts/web3-provider.ts +169 -0
- package/src.ts/websocket-provider.ts +350 -0
- package/src.ts/ws.ts +3 -0
- package/thirdparty.d.ts +10 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
|
|
2
|
+
import { Network } from "@ethersproject/networks";
|
|
3
|
+
|
|
4
|
+
import { showThrottleMessage } from "./formatter";
|
|
5
|
+
import { UrlJsonRpcProvider } from "./url-json-rpc-provider";
|
|
6
|
+
|
|
7
|
+
import type { ConnectionInfo } from "@ethersproject/web";
|
|
8
|
+
|
|
9
|
+
import { Logger } from "@ethersproject/logger";
|
|
10
|
+
import { version } from "./_version";
|
|
11
|
+
const logger = new Logger(version);
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
const defaultApiKey = "9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";
|
|
15
|
+
|
|
16
|
+
function getHost(name: string): string {
|
|
17
|
+
switch (name) {
|
|
18
|
+
case "homestead":
|
|
19
|
+
return "rpc.ankr.com/eth/";
|
|
20
|
+
case "ropsten":
|
|
21
|
+
return "rpc.ankr.com/eth_ropsten/";
|
|
22
|
+
case "rinkeby":
|
|
23
|
+
return "rpc.ankr.com/eth_rinkeby/";
|
|
24
|
+
case "goerli":
|
|
25
|
+
return "rpc.ankr.com/eth_goerli/";
|
|
26
|
+
|
|
27
|
+
case "matic":
|
|
28
|
+
return "rpc.ankr.com/polygon/";
|
|
29
|
+
|
|
30
|
+
case "arbitrum":
|
|
31
|
+
return "rpc.ankr.com/arbitrum/";
|
|
32
|
+
}
|
|
33
|
+
return logger.throwArgumentError("unsupported network", "name", name);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export class AnkrProvider extends UrlJsonRpcProvider {
|
|
37
|
+
readonly apiKey: string;
|
|
38
|
+
|
|
39
|
+
isCommunityResource(): boolean {
|
|
40
|
+
return (this.apiKey === defaultApiKey);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
static getApiKey(apiKey: any): any {
|
|
44
|
+
if (apiKey == null) { return defaultApiKey; }
|
|
45
|
+
return apiKey;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
static getUrl(network: Network, apiKey: any): ConnectionInfo {
|
|
49
|
+
if (apiKey == null) { apiKey = defaultApiKey; }
|
|
50
|
+
const connection: ConnectionInfo = {
|
|
51
|
+
allowGzip: true,
|
|
52
|
+
url: ("https:/\/" + getHost(network.name) + apiKey),
|
|
53
|
+
throttleCallback: (attempt: number, url: string) => {
|
|
54
|
+
if (apiKey.apiKey === defaultApiKey) {
|
|
55
|
+
showThrottleMessage();
|
|
56
|
+
}
|
|
57
|
+
return Promise.resolve(true);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
if (apiKey.projectSecret != null) {
|
|
62
|
+
connection.user = "";
|
|
63
|
+
connection.password = apiKey.projectSecret
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return connection;
|
|
67
|
+
}
|
|
68
|
+
}
|