@qevm/providers 1.0.2 → 1.0.3

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.
Files changed (100) hide show
  1. package/README.md +3 -9
  2. package/lib/_version.d.ts +1 -1
  3. package/lib/_version.js +1 -1
  4. package/lib/base-provider.d.ts +2 -2
  5. package/lib/base-provider.d.ts.map +1 -1
  6. package/lib/base-provider.js +300 -145
  7. package/lib/base-provider.js.map +1 -1
  8. package/lib/browser-ipc-provider.d.ts.map +1 -1
  9. package/lib/browser-ipc-provider.js.map +1 -1
  10. package/lib/browser-net.d.ts.map +1 -1
  11. package/lib/browser-net.js.map +1 -1
  12. package/lib/browser-ws.d.ts.map +1 -1
  13. package/lib/browser-ws.js +2 -2
  14. package/lib/browser-ws.js.map +1 -1
  15. package/lib/fallback-provider.d.ts +1 -1
  16. package/lib/fallback-provider.d.ts.map +1 -1
  17. package/lib/fallback-provider.js +86 -55
  18. package/lib/fallback-provider.js.map +1 -1
  19. package/lib/formatter.d.ts.map +1 -1
  20. package/lib/formatter.js +35 -29
  21. package/lib/formatter.js.map +1 -1
  22. package/lib/index.d.ts +3 -10
  23. package/lib/index.d.ts.map +1 -1
  24. package/lib/index.js +5 -28
  25. package/lib/index.js.map +1 -1
  26. package/lib/ipc-provider.d.ts +1 -1
  27. package/lib/ipc-provider.d.ts.map +1 -1
  28. package/lib/ipc-provider.js +6 -4
  29. package/lib/ipc-provider.js.map +1 -1
  30. package/lib/json-rpc-batch-provider.d.ts.map +1 -1
  31. package/lib/json-rpc-batch-provider.js +6 -6
  32. package/lib/json-rpc-batch-provider.js.map +1 -1
  33. package/lib/json-rpc-provider.d.ts +2 -2
  34. package/lib/json-rpc-provider.d.ts.map +1 -1
  35. package/lib/json-rpc-provider.js +167 -69
  36. package/lib/json-rpc-provider.js.map +1 -1
  37. package/lib/url-json-rpc-provider.d.ts +1 -1
  38. package/lib/url-json-rpc-provider.d.ts.map +1 -1
  39. package/lib/url-json-rpc-provider.js +4 -4
  40. package/lib/url-json-rpc-provider.js.map +1 -1
  41. package/lib/web3-provider.d.ts +1 -2
  42. package/lib/web3-provider.d.ts.map +1 -1
  43. package/lib/web3-provider.js +11 -14
  44. package/lib/web3-provider.js.map +1 -1
  45. package/lib/websocket-provider.d.ts +1 -1
  46. package/lib/websocket-provider.d.ts.map +1 -1
  47. package/lib/websocket-provider.js +21 -17
  48. package/lib/websocket-provider.js.map +1 -1
  49. package/lib/ws.d.ts.map +1 -1
  50. package/package.json +61 -58
  51. package/src.ts/_version.ts +1 -1
  52. package/src.ts/base-provider.ts +1418 -645
  53. package/src.ts/browser-ipc-provider.ts +1 -3
  54. package/src.ts/browser-net.ts +1 -1
  55. package/src.ts/browser-ws.ts +14 -8
  56. package/src.ts/fallback-provider.ts +375 -198
  57. package/src.ts/formatter.ts +161 -81
  58. package/src.ts/index.ts +54 -68
  59. package/src.ts/ipc-provider.ts +8 -7
  60. package/src.ts/json-rpc-batch-provider.ts +48 -44
  61. package/src.ts/json-rpc-provider.ts +594 -245
  62. package/src.ts/url-json-rpc-provider.ts +34 -15
  63. package/src.ts/web3-provider.ts +87 -54
  64. package/src.ts/websocket-provider.ts +124 -66
  65. package/src.ts/ws.ts +1 -1
  66. package/lib/alchemy-provider.d.ts +0 -17
  67. package/lib/alchemy-provider.d.ts.map +0 -1
  68. package/lib/alchemy-provider.js +0 -88
  69. package/lib/alchemy-provider.js.map +0 -1
  70. package/lib/ankr-provider.d.ts +0 -10
  71. package/lib/ankr-provider.d.ts.map +0 -1
  72. package/lib/ankr-provider.js +0 -59
  73. package/lib/ankr-provider.js.map +0 -1
  74. package/lib/cloudflare-provider.d.ts +0 -8
  75. package/lib/cloudflare-provider.d.ts.map +0 -1
  76. package/lib/cloudflare-provider.js +0 -37
  77. package/lib/cloudflare-provider.js.map +0 -1
  78. package/lib/etherscan-provider.d.ts +0 -18
  79. package/lib/etherscan-provider.d.ts.map +0 -1
  80. package/lib/etherscan-provider.js +0 -408
  81. package/lib/etherscan-provider.js.map +0 -1
  82. package/lib/infura-provider.d.ts +0 -21
  83. package/lib/infura-provider.d.ts.map +0 -1
  84. package/lib/infura-provider.js +0 -117
  85. package/lib/infura-provider.js.map +0 -1
  86. package/lib/nodesmith-provider.d.ts +0 -7
  87. package/lib/nodesmith-provider.d.ts.map +0 -1
  88. package/lib/nodesmith-provider.js +0 -44
  89. package/lib/nodesmith-provider.js.map +0 -1
  90. package/lib/pocket-provider.d.ts +0 -12
  91. package/lib/pocket-provider.d.ts.map +0 -1
  92. package/lib/pocket-provider.js +0 -78
  93. package/lib/pocket-provider.js.map +0 -1
  94. package/src.ts/alchemy-provider.ts +0 -101
  95. package/src.ts/ankr-provider.ts +0 -68
  96. package/src.ts/cloudflare-provider.ts +0 -42
  97. package/src.ts/etherscan-provider.ts +0 -454
  98. package/src.ts/infura-provider.ts +0 -143
  99. package/src.ts/nodesmith-provider.ts +0 -50
  100. package/src.ts/pocket-provider.ts +0 -93
@@ -1,12 +0,0 @@
1
- import { Network } from "@ethersproject/networks";
2
- import { ConnectionInfo } from "@qevm/web";
3
- import { UrlJsonRpcProvider } from "./url-json-rpc-provider";
4
- export declare class PocketProvider extends UrlJsonRpcProvider {
5
- readonly applicationId: string;
6
- readonly applicationSecretKey: string;
7
- readonly loadBalancer: boolean;
8
- static getApiKey(apiKey: any): any;
9
- static getUrl(network: Network, apiKey: any): ConnectionInfo;
10
- isCommunityResource(): boolean;
11
- }
12
- //# sourceMappingURL=pocket-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pocket-provider.d.ts","sourceRoot":"","sources":["../src.ts/pocket-provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAM3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAK7D,qBAAa,cAAe,SAAQ,kBAAkB;IAClD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;IA4BlC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,cAAc;IA0C5D,mBAAmB,IAAI,OAAO;CAGjC"}
@@ -1,78 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PocketProvider = void 0;
4
- const logger_1 = require("@ethersproject/logger");
5
- const _version_1 = require("./_version");
6
- const logger = new logger_1.Logger(_version_1.version);
7
- const url_json_rpc_provider_1 = require("./url-json-rpc-provider");
8
- const defaultApplicationId = "62e1ad51b37b8e00394bda3b";
9
- class PocketProvider extends url_json_rpc_provider_1.UrlJsonRpcProvider {
10
- static getApiKey(apiKey) {
11
- const apiKeyObj = {
12
- applicationId: null,
13
- loadBalancer: true,
14
- applicationSecretKey: null
15
- };
16
- // Parse applicationId and applicationSecretKey
17
- if (apiKey == null) {
18
- apiKeyObj.applicationId = defaultApplicationId;
19
- }
20
- else if (typeof (apiKey) === "string") {
21
- apiKeyObj.applicationId = apiKey;
22
- }
23
- else if (apiKey.applicationSecretKey != null) {
24
- apiKeyObj.applicationId = apiKey.applicationId;
25
- apiKeyObj.applicationSecretKey = apiKey.applicationSecretKey;
26
- }
27
- else if (apiKey.applicationId) {
28
- apiKeyObj.applicationId = apiKey.applicationId;
29
- }
30
- else {
31
- logger.throwArgumentError("unsupported PocketProvider apiKey", "apiKey", apiKey);
32
- }
33
- return apiKeyObj;
34
- }
35
- static getUrl(network, apiKey) {
36
- let host = null;
37
- switch (network ? network.name : "unknown") {
38
- case "goerli":
39
- host = "eth-goerli.gateway.pokt.network";
40
- break;
41
- case "homestead":
42
- host = "eth-mainnet.gateway.pokt.network";
43
- break;
44
- case "kovan":
45
- host = "poa-kovan.gateway.pokt.network";
46
- break;
47
- case "matic":
48
- host = "poly-mainnet.gateway.pokt.network";
49
- break;
50
- case "maticmum":
51
- host = "polygon-mumbai-rpc.gateway.pokt.network";
52
- break;
53
- case "rinkeby":
54
- host = "eth-rinkeby.gateway.pokt.network";
55
- break;
56
- case "ropsten":
57
- host = "eth-ropsten.gateway.pokt.network";
58
- break;
59
- default:
60
- logger.throwError("unsupported network", logger_1.Logger.errors.INVALID_ARGUMENT, {
61
- argument: "network",
62
- value: network
63
- });
64
- }
65
- const url = `https:/\/${host}/v1/lb/${apiKey.applicationId}`;
66
- const connection = { headers: {}, url };
67
- if (apiKey.applicationSecretKey != null) {
68
- connection.user = "";
69
- connection.password = apiKey.applicationSecretKey;
70
- }
71
- return connection;
72
- }
73
- isCommunityResource() {
74
- return (this.applicationId === defaultApplicationId);
75
- }
76
- }
77
- exports.PocketProvider = PocketProvider;
78
- //# sourceMappingURL=pocket-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pocket-provider.js","sourceRoot":"","sources":["../src.ts/pocket-provider.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAKb,kDAA+C;AAC/C,yCAAqC;AACrC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAO,CAAC,CAAC;AAEnC,mEAA6D;AAE7D,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAGxD,MAAa,cAAe,SAAQ,0CAAkB;IAKlD,MAAM,CAAC,SAAS,CAAC,MAAW;QACxB,MAAM,SAAS,GAAmF;YAC9F,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,IAAI;YAClB,oBAAoB,EAAE,IAAI;SAC7B,CAAC;QAEF,+CAA+C;QAC/C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACjB,SAAS,CAAC,aAAa,GAAG,oBAAoB,CAAC;QAEnD,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;YACtC,SAAS,CAAC,aAAa,GAAG,MAAM,CAAC;QAErC,CAAC;aAAM,IAAI,MAAM,CAAC,oBAAoB,IAAI,IAAI,EAAE,CAAC;YAC7C,SAAS,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;YAC/C,SAAS,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAEjE,CAAC;aAAM,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YAC9B,SAAS,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAEnD,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,kBAAkB,CAAC,mCAAmC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACrF,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,OAAgB,EAAE,MAAW;QACvC,IAAI,IAAI,GAAW,IAAI,CAAC;QACxB,QAAQ,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YACzC,KAAK,QAAQ;gBACT,IAAI,GAAG,iCAAiC,CAAC;gBACzC,MAAM;YACV,KAAK,WAAW;gBACZ,IAAI,GAAG,kCAAkC,CAAC;gBAC1C,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,GAAG,gCAAgC,CAAC;gBACxC,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,GAAG,mCAAmC,CAAC;gBAC3C,MAAM;YACV,KAAK,UAAU;gBACX,IAAI,GAAG,yCAAyC,CAAC;gBACjD,MAAM;YACV,KAAK,SAAS;gBACV,IAAI,GAAG,kCAAkC,CAAC;gBAC1C,MAAM;YACV,KAAK,SAAS;gBACV,IAAI,GAAG,kCAAkC,CAAC;gBAC1C,MAAM;YACV;gBACI,MAAM,CAAC,UAAU,CAAC,qBAAqB,EAAE,eAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE;oBACrE,QAAQ,EAAE,SAAS;oBACnB,KAAK,EAAE,OAAO;iBACjB,CAAC,CAAC;QACX,CAAC;QAED,MAAM,GAAG,GAAG,YAAa,IAAK,UAAW,MAAM,CAAC,aAAc,EAAE,CAAA;QAEhE,MAAM,UAAU,GAAmB,EAAE,OAAO,EAAE,EAAG,EAAE,GAAG,EAAE,CAAC;QACzD,IAAI,MAAM,CAAC,oBAAoB,IAAI,IAAI,EAAE,CAAC;YACtC,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC;YACrB,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAA;QACrD,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,mBAAmB;QACf,OAAO,CAAC,IAAI,CAAC,aAAa,KAAK,oBAAoB,CAAC,CAAC;IACzD,CAAC;CACJ;AA9ED,wCA8EC"}
@@ -1,101 +0,0 @@
1
- "use strict";
2
-
3
- import { Network, Networkish } from "@ethersproject/networks";
4
- import { defineReadOnly } from "@ethersproject/properties";
5
- import { ConnectionInfo } from "@qevm/web";
6
-
7
- import { CommunityResourcable, showThrottleMessage } from "./formatter";
8
- import { WebSocketProvider } from "./websocket-provider";
9
-
10
- import { Logger } from "@ethersproject/logger";
11
- import { version } from "./_version";
12
- const logger = new Logger(version);
13
-
14
- import { UrlJsonRpcProvider } from "./url-json-rpc-provider";
15
-
16
- // This key was provided to ethers.js by Alchemy to be used by the
17
- // default provider, but it is recommended that for your own
18
- // production environments, that you acquire your own API key at:
19
- // https://dashboard.alchemyapi.io
20
-
21
- const defaultApiKey = "_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC"
22
-
23
- export class AlchemyWebSocketProvider extends WebSocketProvider implements CommunityResourcable {
24
- readonly apiKey: string;
25
-
26
- constructor(network?: Networkish, apiKey?: any) {
27
- const provider = new AlchemyProvider(network, apiKey);
28
-
29
- const url = provider.connection.url.replace(/^http/i, "ws")
30
- .replace(".alchemyapi.", ".ws.alchemyapi.");
31
-
32
- super(url, provider.network);
33
- defineReadOnly(this, "apiKey", provider.apiKey);
34
- }
35
-
36
- isCommunityResource(): boolean {
37
- return (this.apiKey === defaultApiKey);
38
- }
39
- }
40
-
41
- export class AlchemyProvider extends UrlJsonRpcProvider {
42
-
43
- static getWebSocketProvider(network?: Networkish, apiKey?: any): AlchemyWebSocketProvider {
44
- return new AlchemyWebSocketProvider(network, apiKey);
45
- }
46
-
47
- static getApiKey(apiKey: any): any {
48
- if (apiKey == null) { return defaultApiKey; }
49
- if (apiKey && typeof(apiKey) !== "string") {
50
- logger.throwArgumentError("invalid apiKey", "apiKey", apiKey);
51
- }
52
- return apiKey;
53
- }
54
-
55
- static getUrl(network: Network, apiKey: string): ConnectionInfo {
56
- let host = null;
57
- switch (network.name) {
58
- case "homestead":
59
- host = "eth-mainnet.alchemyapi.io/v2/";
60
- break;
61
- case "goerli":
62
- host = "eth-goerli.g.alchemy.com/v2/";
63
- break;
64
- case "matic":
65
- host = "polygon-mainnet.g.alchemy.com/v2/";
66
- break;
67
- case "maticmum":
68
- host = "polygon-mumbai.g.alchemy.com/v2/";
69
- break;
70
- case "arbitrum":
71
- host = "arb-mainnet.g.alchemy.com/v2/";
72
- break;
73
- case "arbitrum-goerli":
74
- host = "arb-goerli.g.alchemy.com/v2/";
75
- break;
76
- case "optimism":
77
- host = "opt-mainnet.g.alchemy.com/v2/";
78
- break;
79
- case "optimism-goerli":
80
- host = "opt-goerli.g.alchemy.com/v2/"
81
- break;
82
- default:
83
- logger.throwArgumentError("unsupported network", "network", arguments[0]);
84
- }
85
-
86
- return {
87
- allowGzip: true,
88
- url: ("https:/" + "/" + host + apiKey),
89
- throttleCallback: (attempt: number, url: string) => {
90
- if (apiKey === defaultApiKey) {
91
- showThrottleMessage();
92
- }
93
- return Promise.resolve(true);
94
- }
95
- };
96
- }
97
-
98
- isCommunityResource(): boolean {
99
- return (this.apiKey === defaultApiKey);
100
- }
101
- }
@@ -1,68 +0,0 @@
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 "@qevm/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
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
-
3
- import { Network } from "@ethersproject/networks";
4
- import { UrlJsonRpcProvider } from "./url-json-rpc-provider";
5
-
6
- import { Logger } from "@ethersproject/logger";
7
- import { version } from "./_version";
8
- const logger = new Logger(version);
9
-
10
- export class CloudflareProvider extends UrlJsonRpcProvider {
11
-
12
- static getApiKey(apiKey: any): any {
13
- if (apiKey != null) {
14
- logger.throwArgumentError("apiKey not supported for cloudflare", "apiKey", apiKey);
15
- }
16
- return null;
17
- }
18
-
19
- static getUrl(network: Network, apiKey?: any): string {
20
- let host = null;
21
- switch (network.name) {
22
- case "homestead":
23
- host = "https://cloudflare-eth.com/";
24
- break;
25
- default:
26
- logger.throwArgumentError("unsupported network", "network", arguments[0]);
27
- }
28
-
29
- return host;
30
- }
31
-
32
- async perform(method: string, params: any): Promise<any> {
33
- // The Cloudflare provider does not support eth_blockNumber,
34
- // so we get the latest block and pull it from that
35
- if (method === "getBlockNumber") {
36
- const block = await super.perform("getBlock", { blockTag: "latest" });
37
- return block.number;
38
- }
39
-
40
- return super.perform(method, params);
41
- }
42
- }