@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,11 +1,10 @@
1
-
2
1
  "use strict";
3
2
 
4
- import { Network, Networkish } from "@ethersproject/networks";
5
- import { defineReadOnly, getStatic } from "@ethersproject/properties";
3
+ import { Network, Networkish } from "@qevm/networks";
4
+ import { defineReadOnly, getStatic } from "@qevm/properties";
6
5
  import { ConnectionInfo } from "@qevm/web";
7
6
 
8
- import { Logger } from "@ethersproject/logger";
7
+ import { Logger } from "@qevm/logger";
9
8
  import { version } from "./_version";
10
9
  const logger = new Logger(version);
11
10
 
@@ -32,7 +31,11 @@ export class StaticJsonRpcProvider extends JsonRpcProvider {
32
31
  network = await super.detectNetwork();
33
32
 
34
33
  if (!network) {
35
- logger.throwError("no network detected", Logger.errors.UNKNOWN_ERROR, { });
34
+ logger.throwError(
35
+ "no network detected",
36
+ Logger.errors.UNKNOWN_ERROR,
37
+ {},
38
+ );
36
39
  }
37
40
 
38
41
  // If still not set, set it
@@ -47,21 +50,33 @@ export class StaticJsonRpcProvider extends JsonRpcProvider {
47
50
  }
48
51
  }
49
52
 
50
- export abstract class UrlJsonRpcProvider extends StaticJsonRpcProvider implements CommunityResourcable {
53
+ export abstract class UrlJsonRpcProvider
54
+ extends StaticJsonRpcProvider
55
+ implements CommunityResourcable
56
+ {
51
57
  readonly apiKey: any;
52
58
 
53
59
  constructor(network?: Networkish, apiKey?: any) {
54
60
  logger.checkAbstract(new.target, UrlJsonRpcProvider);
55
61
 
56
62
  // Normalize the Network and API Key
57
- network = getStatic<(network: Networkish) => Network>(new.target, "getNetwork")(network);
58
- apiKey = getStatic<(apiKey: string) => string>(new.target, "getApiKey")(apiKey);
59
-
60
- const connection = getStatic<getUrlFunc>(new.target, "getUrl")(network, apiKey);
63
+ network = getStatic<(network: Networkish) => Network>(
64
+ new.target,
65
+ "getNetwork",
66
+ )(network);
67
+ apiKey = getStatic<(apiKey: string) => string>(
68
+ new.target,
69
+ "getApiKey",
70
+ )(apiKey);
71
+
72
+ const connection = getStatic<getUrlFunc>(new.target, "getUrl")(
73
+ network,
74
+ apiKey,
75
+ );
61
76
 
62
77
  super(connection, network);
63
78
 
64
- if (typeof(apiKey) === "string") {
79
+ if (typeof apiKey === "string") {
65
80
  defineReadOnly(this, "apiKey", apiKey);
66
81
  } else if (apiKey != null) {
67
82
  Object.keys(apiKey).forEach((key) => {
@@ -82,7 +97,7 @@ export abstract class UrlJsonRpcProvider extends StaticJsonRpcProvider implement
82
97
  return logger.throwError(
83
98
  "API provider does not support signing",
84
99
  Logger.errors.UNSUPPORTED_OPERATION,
85
- { operation: "getSigner" }
100
+ { operation: "getSigner" },
86
101
  );
87
102
  }
88
103
 
@@ -99,8 +114,12 @@ export abstract class UrlJsonRpcProvider extends StaticJsonRpcProvider implement
99
114
  // API key will have been sanitized by the getApiKey first, so any validation
100
115
  // or transformations can be done there.
101
116
  static getUrl(network: Network, apiKey: any): string | ConnectionInfo {
102
- return logger.throwError("not implemented; sub-classes must override getUrl", Logger.errors.NOT_IMPLEMENTED, {
103
- operation: "getUrl"
104
- });
117
+ return logger.throwError(
118
+ "not implemented; sub-classes must override getUrl",
119
+ Logger.errors.NOT_IMPLEMENTED,
120
+ {
121
+ operation: "getUrl",
122
+ },
123
+ );
105
124
  }
106
125
  }
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
- import { Networkish } from "@ethersproject/networks";
4
- import { deepCopy, defineReadOnly } from "@ethersproject/properties";
3
+ import { Networkish } from "@qevm/networks";
4
+ import { deepCopy, defineReadOnly } from "@qevm/properties";
5
5
 
6
- import { Logger } from "@ethersproject/logger";
6
+ import { Logger } from "@qevm/logger";
7
7
  import { version } from "./_version";
8
8
  const logger = new Logger(version);
9
9
 
@@ -11,30 +11,47 @@ import { JsonRpcProvider } from "./json-rpc-provider";
11
11
 
12
12
  // Exported Types
13
13
  export type ExternalProvider = {
14
- isMetaMask?: boolean;
15
14
  isStatus?: boolean;
16
15
  host?: string;
17
16
  path?: string;
18
- sendAsync?: (request: { method: string, params?: Array<any> }, callback: (error: any, response: any) => void) => void
19
- send?: (request: { method: string, params?: Array<any> }, callback: (error: any, response: any) => void) => void
20
- request?: (request: { method: string, params?: Array<any> }) => Promise<any>
21
- }
17
+ sendAsync?: (
18
+ request: { method: string; params?: Array<any> },
19
+ callback: (error: any, response: any) => void,
20
+ ) => void;
21
+ send?: (
22
+ request: { method: string; params?: Array<any> },
23
+ callback: (error: any, response: any) => void,
24
+ ) => void;
25
+ request?: (request: {
26
+ method: string;
27
+ params?: Array<any>;
28
+ }) => Promise<any>;
29
+ };
22
30
 
23
31
  let _nextId = 1;
24
32
 
25
- export type JsonRpcFetchFunc = (method: string, params?: Array<any>) => Promise<any>;
33
+ export type JsonRpcFetchFunc = (
34
+ method: string,
35
+ params?: Array<any>,
36
+ ) => Promise<any>;
26
37
 
27
- type Web3LegacySend = (request: any, callback: (error: Error, response: any) => void) => void;
38
+ type Web3LegacySend = (
39
+ request: any,
40
+ callback: (error: Error, response: any) => void,
41
+ ) => void;
28
42
 
29
- function buildWeb3LegacyFetcher(provider: ExternalProvider, sendFunc: Web3LegacySend) : JsonRpcFetchFunc {
43
+ function buildWeb3LegacyFetcher(
44
+ provider: ExternalProvider,
45
+ sendFunc: Web3LegacySend,
46
+ ): JsonRpcFetchFunc {
30
47
  const fetcher = "Web3LegacyFetcher";
31
48
 
32
- return function(method: string, params: Array<any>): Promise<any> {
49
+ return function (method: string, params: Array<any>): Promise<any> {
33
50
  const request = {
34
51
  method: method,
35
52
  params: params,
36
- id: (_nextId++),
37
- jsonrpc: "2.0"
53
+ id: _nextId++,
54
+ jsonrpc: "2.0",
38
55
  };
39
56
 
40
57
  return new Promise((resolve, reject) => {
@@ -42,18 +59,17 @@ function buildWeb3LegacyFetcher(provider: ExternalProvider, sendFunc: Web3Legacy
42
59
  action: "request",
43
60
  fetcher,
44
61
  request: deepCopy(request),
45
- provider: this
62
+ provider: this,
46
63
  });
47
64
 
48
65
  sendFunc(request, (error, response) => {
49
-
50
66
  if (error) {
51
67
  this.emit("debug", {
52
68
  action: "response",
53
69
  fetcher,
54
70
  error,
55
71
  request,
56
- provider: this
72
+ provider: this,
57
73
  });
58
74
 
59
75
  return reject(error);
@@ -64,7 +80,7 @@ function buildWeb3LegacyFetcher(provider: ExternalProvider, sendFunc: Web3Legacy
64
80
  fetcher,
65
81
  request,
66
82
  response,
67
- provider: this
83
+ provider: this,
68
84
  });
69
85
 
70
86
  if (response.error) {
@@ -77,12 +93,14 @@ function buildWeb3LegacyFetcher(provider: ExternalProvider, sendFunc: Web3Legacy
77
93
  resolve(response.result);
78
94
  });
79
95
  });
80
- }
96
+ };
81
97
  }
82
98
 
83
99
  function buildEip1193Fetcher(provider: ExternalProvider): JsonRpcFetchFunc {
84
- return function(method: string, params: Array<any>): Promise<any> {
85
- if (params == null) { params = [ ]; }
100
+ return function (method: string, params: Array<any>): Promise<any> {
101
+ if (params == null) {
102
+ params = [];
103
+ }
86
104
 
87
105
  const request = { method, params };
88
106
 
@@ -90,39 +108,44 @@ function buildEip1193Fetcher(provider: ExternalProvider): JsonRpcFetchFunc {
90
108
  action: "request",
91
109
  fetcher: "Eip1193Fetcher",
92
110
  request: deepCopy(request),
93
- provider: this
111
+ provider: this,
94
112
  });
95
113
 
96
- return provider.request(request).then((response) => {
97
- this.emit("debug", {
98
- action: "response",
99
- fetcher: "Eip1193Fetcher",
100
- request,
101
- response,
102
- provider: this
103
- });
104
-
105
- return response;
114
+ return provider.request(request).then(
115
+ (response) => {
116
+ this.emit("debug", {
117
+ action: "response",
118
+ fetcher: "Eip1193Fetcher",
119
+ request,
120
+ response,
121
+ provider: this,
122
+ });
106
123
 
107
- }, (error) => {
108
- this.emit("debug", {
109
- action: "response",
110
- fetcher: "Eip1193Fetcher",
111
- request,
112
- error,
113
- provider: this
114
- });
124
+ return response;
125
+ },
126
+ (error) => {
127
+ this.emit("debug", {
128
+ action: "response",
129
+ fetcher: "Eip1193Fetcher",
130
+ request,
131
+ error,
132
+ provider: this,
133
+ });
115
134
 
116
- throw error;
117
- });
118
- }
135
+ throw error;
136
+ },
137
+ );
138
+ };
119
139
  }
120
140
 
121
141
  export class Web3Provider extends JsonRpcProvider {
122
142
  readonly provider: ExternalProvider;
123
143
  readonly jsonRpcFetchFunc: JsonRpcFetchFunc;
124
144
 
125
- constructor(provider: ExternalProvider | JsonRpcFetchFunc, network?: Networkish) {
145
+ constructor(
146
+ provider: ExternalProvider | JsonRpcFetchFunc,
147
+ network?: Networkish,
148
+ ) {
126
149
  if (provider == null) {
127
150
  logger.throwArgumentError("missing provider", "provider", provider);
128
151
  }
@@ -131,30 +154,40 @@ export class Web3Provider extends JsonRpcProvider {
131
154
  let jsonRpcFetchFunc: JsonRpcFetchFunc = null;
132
155
  let subprovider: ExternalProvider = null;
133
156
 
134
- if (typeof(provider) === "function") {
157
+ if (typeof provider === "function") {
135
158
  path = "unknown:";
136
159
  jsonRpcFetchFunc = provider;
137
-
138
160
  } else {
139
161
  path = provider.host || provider.path || "";
140
- if (!path && provider.isMetaMask) {
141
- path = "metamask";
142
- }
143
162
 
144
163
  subprovider = provider;
145
164
 
146
165
  if (provider.request) {
147
- if (path === "") { path = "eip-1193:"; }
166
+ if (path === "") {
167
+ path = "eip-1193:";
168
+ }
148
169
  jsonRpcFetchFunc = buildEip1193Fetcher(provider);
149
170
  } else if (provider.sendAsync) {
150
- jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.sendAsync.bind(provider));
171
+ jsonRpcFetchFunc = buildWeb3LegacyFetcher(
172
+ provider,
173
+ provider.sendAsync.bind(provider),
174
+ );
151
175
  } else if (provider.send) {
152
- jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.send.bind(provider));
176
+ jsonRpcFetchFunc = buildWeb3LegacyFetcher(
177
+ provider,
178
+ provider.send.bind(provider),
179
+ );
153
180
  } else {
154
- logger.throwArgumentError("unsupported provider", "provider", provider);
181
+ logger.throwArgumentError(
182
+ "unsupported provider",
183
+ "provider",
184
+ provider,
185
+ );
155
186
  }
156
187
 
157
- if (!path) { path = "unknown:"; }
188
+ if (!path) {
189
+ path = "unknown:";
190
+ }
158
191
  }
159
192
 
160
193
  super(path, network);