@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,14 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  import { BigNumber } from "@qevm/bignumber";
4
- import { Network, Networkish } from "@ethersproject/networks";
5
- import { defineReadOnly } from "@ethersproject/properties";
4
+ import { Network, Networkish } from "@qevm/networks";
5
+ import { defineReadOnly } from "@qevm/properties";
6
6
 
7
7
  import { Event } from "./base-provider";
8
8
  import { JsonRpcProvider } from "./json-rpc-provider";
9
9
  import { WebSocket } from "./ws";
10
10
 
11
- import { Logger } from "@ethersproject/logger";
11
+ import { Logger } from "@qevm/logger";
12
12
  import { version } from "./_version";
13
13
  const logger = new Logger(version);
14
14
 
@@ -30,8 +30,8 @@ const logger = new Logger(version);
30
30
  let NextId = 1;
31
31
 
32
32
  export type InflightRequest = {
33
- callback: (error: Error, result: any) => void;
34
- payload: string;
33
+ callback: (error: Error, result: any) => void;
34
+ payload: string;
35
35
  };
36
36
 
37
37
  export type Subscription = {
@@ -55,27 +55,30 @@ export interface WebSocketLike {
55
55
 
56
56
  export class WebSocketProvider extends JsonRpcProvider {
57
57
  readonly _websocket: any;
58
- readonly _requests: { [ name: string ]: InflightRequest };
58
+ readonly _requests: { [name: string]: InflightRequest };
59
59
  readonly _detectNetwork: Promise<Network>;
60
60
 
61
61
  // Maps event tag to subscription ID (we dedupe identical events)
62
- readonly _subIds: { [ tag: string ]: Promise<string> };
62
+ readonly _subIds: { [tag: string]: Promise<string> };
63
63
 
64
64
  // Maps Subscription ID to Subscription
65
- readonly _subs: { [ name: string ]: Subscription };
65
+ readonly _subs: { [name: string]: Subscription };
66
66
 
67
67
  _wsReady: boolean;
68
68
 
69
69
  constructor(url: string | WebSocketLike, network?: Networkish) {
70
-
71
70
  // This will be added in the future; please open an issue to expedite
72
71
  if (network === "any") {
73
- logger.throwError("WebSocketProvider does not support 'any' network yet", Logger.errors.UNSUPPORTED_OPERATION, {
74
- operation: "network:any"
75
- });
72
+ logger.throwError(
73
+ "WebSocketProvider does not support 'any' network yet",
74
+ Logger.errors.UNSUPPORTED_OPERATION,
75
+ {
76
+ operation: "network:any",
77
+ },
78
+ );
76
79
  }
77
80
 
78
- if (typeof(url) === "string") {
81
+ if (typeof url === "string") {
79
82
  super(url, network);
80
83
  } else {
81
84
  super("_websocket", network);
@@ -85,15 +88,19 @@ export class WebSocketProvider extends JsonRpcProvider {
85
88
 
86
89
  this._wsReady = false;
87
90
 
88
- if (typeof(url) === "string") {
89
- defineReadOnly(this, "_websocket", new WebSocket(this.connection.url));
91
+ if (typeof url === "string") {
92
+ defineReadOnly(
93
+ this,
94
+ "_websocket",
95
+ new WebSocket(this.connection.url),
96
+ );
90
97
  } else {
91
98
  defineReadOnly(this, "_websocket", url);
92
99
  }
93
100
 
94
- defineReadOnly(this, "_requests", { });
95
- defineReadOnly(this, "_subs", { });
96
- defineReadOnly(this, "_subIds", { });
101
+ defineReadOnly(this, "_requests", {});
102
+ defineReadOnly(this, "_subs", {});
103
+ defineReadOnly(this, "_subIds", {});
97
104
  defineReadOnly(this, "_detectNetwork", super.detectNetwork());
98
105
 
99
106
  // Stall sending requests until the socket is open...
@@ -119,14 +126,19 @@ export class WebSocketProvider extends JsonRpcProvider {
119
126
  action: "response",
120
127
  request: JSON.parse(request.payload),
121
128
  response: result.result,
122
- provider: this
129
+ provider: this,
123
130
  });
124
-
125
131
  } else {
126
132
  let error: Error = null;
127
133
  if (result.error) {
128
- error = new Error(result.error.message || "unknown error");
129
- defineReadOnly(<any>error, "code", result.error.code || null);
134
+ error = new Error(
135
+ result.error.message || "unknown error",
136
+ );
137
+ defineReadOnly(
138
+ <any>error,
139
+ "code",
140
+ result.error.code || null,
141
+ );
130
142
  defineReadOnly(<any>error, "response", data);
131
143
  } else {
132
144
  error = new Error("unknown error");
@@ -138,19 +150,16 @@ export class WebSocketProvider extends JsonRpcProvider {
138
150
  action: "response",
139
151
  error: error,
140
152
  request: JSON.parse(request.payload),
141
- provider: this
153
+ provider: this,
142
154
  });
143
-
144
155
  }
145
-
146
156
  } else if (result.method === "eth_subscription") {
147
157
  // Subscription...
148
158
  const sub = this._subs[result.params.subscription];
149
159
  if (sub) {
150
160
  //this.emit.apply(this, );
151
- sub.processFunc(result.params.result)
161
+ sub.processFunc(result.params.result);
152
162
  }
153
-
154
163
  } else {
155
164
  console.warn("this should not happen");
156
165
  }
@@ -162,12 +171,16 @@ export class WebSocketProvider extends JsonRpcProvider {
162
171
  const fauxPoll = setInterval(() => {
163
172
  this.emit("poll");
164
173
  }, 1000);
165
- if (fauxPoll.unref) { fauxPoll.unref(); }
174
+ if (fauxPoll.unref) {
175
+ fauxPoll.unref();
176
+ }
166
177
  }
167
178
 
168
179
  // Cannot narrow the type of _websocket, as that is not backwards compatible
169
180
  // so we add a getter and let the WebSocket be a public API.
170
- get websocket(): WebSocketLike { return this._websocket; }
181
+ get websocket(): WebSocketLike {
182
+ return this._websocket;
183
+ }
171
184
 
172
185
  detectNetwork(): Promise<Network> {
173
186
  return this._detectNetwork;
@@ -178,15 +191,23 @@ export class WebSocketProvider extends JsonRpcProvider {
178
191
  }
179
192
 
180
193
  resetEventsBlock(blockNumber: number): void {
181
- logger.throwError("cannot reset events block on WebSocketProvider", Logger.errors.UNSUPPORTED_OPERATION, {
182
- operation: "resetEventBlock"
183
- });
194
+ logger.throwError(
195
+ "cannot reset events block on WebSocketProvider",
196
+ Logger.errors.UNSUPPORTED_OPERATION,
197
+ {
198
+ operation: "resetEventBlock",
199
+ },
200
+ );
184
201
  }
185
202
 
186
203
  set pollingInterval(value: number) {
187
- logger.throwError("cannot set polling interval on WebSocketProvider", Logger.errors.UNSUPPORTED_OPERATION, {
188
- operation: "setPollingInterval"
189
- });
204
+ logger.throwError(
205
+ "cannot set polling interval on WebSocketProvider",
206
+ Logger.errors.UNSUPPORTED_OPERATION,
207
+ {
208
+ operation: "setPollingInterval",
209
+ },
210
+ );
190
211
  }
191
212
 
192
213
  async poll(): Promise<void> {
@@ -194,11 +215,17 @@ export class WebSocketProvider extends JsonRpcProvider {
194
215
  }
195
216
 
196
217
  set polling(value: boolean) {
197
- if (!value) { return; }
218
+ if (!value) {
219
+ return;
220
+ }
198
221
 
199
- logger.throwError("cannot set polling on WebSocketProvider", Logger.errors.UNSUPPORTED_OPERATION, {
200
- operation: "setPolling"
201
- });
222
+ logger.throwError(
223
+ "cannot set polling on WebSocketProvider",
224
+ Logger.errors.UNSUPPORTED_OPERATION,
225
+ {
226
+ operation: "setPolling",
227
+ },
228
+ );
202
229
  }
203
230
 
204
231
  send(method: string, params?: Array<any>): Promise<any> {
@@ -206,7 +233,9 @@ export class WebSocketProvider extends JsonRpcProvider {
206
233
 
207
234
  return new Promise((resolve, reject) => {
208
235
  function callback(error: Error, result: any) {
209
- if (error) { return reject(error); }
236
+ if (error) {
237
+ return reject(error);
238
+ }
210
239
  return resolve(result);
211
240
  }
212
241
 
@@ -214,18 +243,20 @@ export class WebSocketProvider extends JsonRpcProvider {
214
243
  method: method,
215
244
  params: params,
216
245
  id: rid,
217
- jsonrpc: "2.0"
246
+ jsonrpc: "2.0",
218
247
  });
219
248
 
220
249
  this.emit("debug", {
221
250
  action: "request",
222
251
  request: JSON.parse(payload),
223
- provider: this
252
+ provider: this,
224
253
  });
225
254
 
226
255
  this._requests[String(rid)] = { callback, payload };
227
256
 
228
- if (this._wsReady) { this.websocket.send(payload); }
257
+ if (this._wsReady) {
258
+ this.websocket.send(payload);
259
+ }
229
260
  });
230
261
  }
231
262
 
@@ -233,7 +264,11 @@ export class WebSocketProvider extends JsonRpcProvider {
233
264
  return "ws:/\/localhost:8546";
234
265
  }
235
266
 
236
- async _subscribe(tag: string, param: Array<any>, processFunc: (result: any) => void): Promise<void> {
267
+ async _subscribe(
268
+ tag: string,
269
+ param: Array<any>,
270
+ processFunc: (result: any) => void,
271
+ ): Promise<void> {
237
272
  let subIdPromise = this._subIds[tag];
238
273
  if (subIdPromise == null) {
239
274
  subIdPromise = Promise.all(param).then((param) => {
@@ -248,31 +283,48 @@ export class WebSocketProvider extends JsonRpcProvider {
248
283
  _startEvent(event: Event): void {
249
284
  switch (event.type) {
250
285
  case "block":
251
- this._subscribe("block", [ "newHeads" ], (result: any) => {
252
- const blockNumber = BigNumber.from(result.number).toNumber();
286
+ this._subscribe("block", ["newHeads"], (result: any) => {
287
+ const blockNumber = BigNumber.from(
288
+ result.number,
289
+ ).toNumber();
253
290
  this._emitted.block = blockNumber;
254
291
  this.emit("block", blockNumber);
255
292
  });
256
293
  break;
257
294
 
258
295
  case "pending":
259
- this._subscribe("pending", [ "newPendingTransactions" ], (result: any) => {
260
- this.emit("pending", result);
261
- });
296
+ this._subscribe(
297
+ "pending",
298
+ ["newPendingTransactions"],
299
+ (result: any) => {
300
+ this.emit("pending", result);
301
+ },
302
+ );
262
303
  break;
263
304
 
264
305
  case "filter":
265
- this._subscribe(event.tag, [ "logs", this._getFilter(event.filter) ], (result: any) => {
266
- if (result.removed == null) { result.removed = false; }
267
- this.emit(event.filter, this.formatter.filterLog(result));
268
- });
306
+ this._subscribe(
307
+ event.tag,
308
+ ["logs", this._getFilter(event.filter)],
309
+ (result: any) => {
310
+ if (result.removed == null) {
311
+ result.removed = false;
312
+ }
313
+ this.emit(
314
+ event.filter,
315
+ this.formatter.filterLog(result),
316
+ );
317
+ },
318
+ );
269
319
  break;
270
320
 
271
321
  case "tx": {
272
322
  const emitReceipt = (event: Event) => {
273
323
  const hash = event.hash;
274
324
  this.getTransactionReceipt(hash).then((receipt) => {
275
- if (!receipt) { return; }
325
+ if (!receipt) {
326
+ return;
327
+ }
276
328
  this.emit(hash, receipt);
277
329
  });
278
330
  };
@@ -284,8 +336,10 @@ export class WebSocketProvider extends JsonRpcProvider {
284
336
  // to keep an eye out for transactions we are watching for.
285
337
  // Starting a subscription for an event (i.e. "tx") that is already
286
338
  // running is (basically) a nop.
287
- this._subscribe("tx", [ "newHeads" ], (result: any) => {
288
- this._events.filter((e) => (e.type === "tx")).forEach(emitReceipt);
339
+ this._subscribe("tx", ["newHeads"], (result: any) => {
340
+ this._events
341
+ .filter((e) => e.type === "tx")
342
+ .forEach(emitReceipt);
289
343
  });
290
344
  break;
291
345
  }
@@ -309,7 +363,7 @@ export class WebSocketProvider extends JsonRpcProvider {
309
363
 
310
364
  if (event.type === "tx") {
311
365
  // There are remaining transaction event listeners
312
- if (this._events.filter((e) => (e.type === "tx")).length) {
366
+ if (this._events.filter((e) => e.type === "tx").length) {
313
367
  return;
314
368
  }
315
369
  tag = "tx";
@@ -319,28 +373,32 @@ export class WebSocketProvider extends JsonRpcProvider {
319
373
  }
320
374
 
321
375
  const subId = this._subIds[tag];
322
- if (!subId) { return; }
376
+ if (!subId) {
377
+ return;
378
+ }
323
379
 
324
- delete this._subIds[tag];
325
- subId.then((subId) => {
326
- if (!this._subs[subId]) { return; }
380
+ delete this._subIds[tag];
381
+ subId.then((subId) => {
382
+ if (!this._subs[subId]) {
383
+ return;
384
+ }
327
385
  delete this._subs[subId];
328
- this.send("eth_unsubscribe", [ subId ]);
386
+ this.send("eth_unsubscribe", [subId]);
329
387
  });
330
388
  }
331
389
 
332
390
  async destroy(): Promise<void> {
333
391
  // Wait until we have connected before trying to disconnect
334
392
  if (this.websocket.readyState === WebSocket.CONNECTING) {
335
- await (new Promise((resolve) => {
336
- this.websocket.onopen = function() {
393
+ await new Promise((resolve) => {
394
+ this.websocket.onopen = function () {
337
395
  resolve(true);
338
396
  };
339
397
 
340
- this.websocket.onerror = function() {
398
+ this.websocket.onerror = function () {
341
399
  resolve(false);
342
400
  };
343
- }));
401
+ });
344
402
  }
345
403
 
346
404
  // Hangup
package/src.ts/ws.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import WebSocket from "ws";
2
2
 
3
- export { WebSocket }
3
+ export { WebSocket };
@@ -1,17 +0,0 @@
1
- import { Network, Networkish } from "@ethersproject/networks";
2
- import { ConnectionInfo } from "@qevm/web";
3
- import { CommunityResourcable } from "./formatter";
4
- import { WebSocketProvider } from "./websocket-provider";
5
- import { UrlJsonRpcProvider } from "./url-json-rpc-provider";
6
- export declare class AlchemyWebSocketProvider extends WebSocketProvider implements CommunityResourcable {
7
- readonly apiKey: string;
8
- constructor(network?: Networkish, apiKey?: any);
9
- isCommunityResource(): boolean;
10
- }
11
- export declare class AlchemyProvider extends UrlJsonRpcProvider {
12
- static getWebSocketProvider(network?: Networkish, apiKey?: any): AlchemyWebSocketProvider;
13
- static getApiKey(apiKey: any): any;
14
- static getUrl(network: Network, apiKey: string): ConnectionInfo;
15
- isCommunityResource(): boolean;
16
- }
17
- //# sourceMappingURL=alchemy-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"alchemy-provider.d.ts","sourceRoot":"","sources":["../src.ts/alchemy-provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,oBAAoB,EAAuB,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAMzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAS7D,qBAAa,wBAAyB,SAAQ,iBAAkB,YAAW,oBAAoB;IAC3F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,GAAG;IAU9C,mBAAmB,IAAI,OAAO;CAGjC;AAED,qBAAa,eAAgB,SAAQ,kBAAkB;IAEnD,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,wBAAwB;IAIzF,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;IAQlC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IA2C/D,mBAAmB,IAAI,OAAO;CAGjC"}
@@ -1,88 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AlchemyProvider = exports.AlchemyWebSocketProvider = void 0;
4
- const properties_1 = require("@ethersproject/properties");
5
- const formatter_1 = require("./formatter");
6
- const websocket_provider_1 = require("./websocket-provider");
7
- const logger_1 = require("@ethersproject/logger");
8
- const _version_1 = require("./_version");
9
- const logger = new logger_1.Logger(_version_1.version);
10
- const url_json_rpc_provider_1 = require("./url-json-rpc-provider");
11
- // This key was provided to ethers.js by Alchemy to be used by the
12
- // default provider, but it is recommended that for your own
13
- // production environments, that you acquire your own API key at:
14
- // https://dashboard.alchemyapi.io
15
- const defaultApiKey = "_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";
16
- class AlchemyWebSocketProvider extends websocket_provider_1.WebSocketProvider {
17
- constructor(network, apiKey) {
18
- const provider = new AlchemyProvider(network, apiKey);
19
- const url = provider.connection.url.replace(/^http/i, "ws")
20
- .replace(".alchemyapi.", ".ws.alchemyapi.");
21
- super(url, provider.network);
22
- (0, properties_1.defineReadOnly)(this, "apiKey", provider.apiKey);
23
- }
24
- isCommunityResource() {
25
- return (this.apiKey === defaultApiKey);
26
- }
27
- }
28
- exports.AlchemyWebSocketProvider = AlchemyWebSocketProvider;
29
- class AlchemyProvider extends url_json_rpc_provider_1.UrlJsonRpcProvider {
30
- static getWebSocketProvider(network, apiKey) {
31
- return new AlchemyWebSocketProvider(network, apiKey);
32
- }
33
- static getApiKey(apiKey) {
34
- if (apiKey == null) {
35
- return defaultApiKey;
36
- }
37
- if (apiKey && typeof (apiKey) !== "string") {
38
- logger.throwArgumentError("invalid apiKey", "apiKey", apiKey);
39
- }
40
- return apiKey;
41
- }
42
- static getUrl(network, apiKey) {
43
- let host = null;
44
- switch (network.name) {
45
- case "homestead":
46
- host = "eth-mainnet.alchemyapi.io/v2/";
47
- break;
48
- case "goerli":
49
- host = "eth-goerli.g.alchemy.com/v2/";
50
- break;
51
- case "matic":
52
- host = "polygon-mainnet.g.alchemy.com/v2/";
53
- break;
54
- case "maticmum":
55
- host = "polygon-mumbai.g.alchemy.com/v2/";
56
- break;
57
- case "arbitrum":
58
- host = "arb-mainnet.g.alchemy.com/v2/";
59
- break;
60
- case "arbitrum-goerli":
61
- host = "arb-goerli.g.alchemy.com/v2/";
62
- break;
63
- case "optimism":
64
- host = "opt-mainnet.g.alchemy.com/v2/";
65
- break;
66
- case "optimism-goerli":
67
- host = "opt-goerli.g.alchemy.com/v2/";
68
- break;
69
- default:
70
- logger.throwArgumentError("unsupported network", "network", arguments[0]);
71
- }
72
- return {
73
- allowGzip: true,
74
- url: ("https:/" + "/" + host + apiKey),
75
- throttleCallback: (attempt, url) => {
76
- if (apiKey === defaultApiKey) {
77
- (0, formatter_1.showThrottleMessage)();
78
- }
79
- return Promise.resolve(true);
80
- }
81
- };
82
- }
83
- isCommunityResource() {
84
- return (this.apiKey === defaultApiKey);
85
- }
86
- }
87
- exports.AlchemyProvider = AlchemyProvider;
88
- //# sourceMappingURL=alchemy-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"alchemy-provider.js","sourceRoot":"","sources":["../src.ts/alchemy-provider.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { Network } from "@ethersproject/networks";
2
- import { UrlJsonRpcProvider } from "./url-json-rpc-provider";
3
- import type { ConnectionInfo } from "@qevm/web";
4
- export declare class AnkrProvider extends UrlJsonRpcProvider {
5
- readonly apiKey: string;
6
- isCommunityResource(): boolean;
7
- static getApiKey(apiKey: any): any;
8
- static getUrl(network: Network, apiKey: any): ConnectionInfo;
9
- }
10
- //# sourceMappingURL=ankr-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ankr-provider.d.ts","sourceRoot":"","sources":["../src.ts/ankr-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AA6BhD,qBAAa,YAAa,SAAQ,kBAAkB;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,mBAAmB,IAAI,OAAO;IAI9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;IAKlC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,cAAc;CAoB/D"}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AnkrProvider = void 0;
4
- const formatter_1 = require("./formatter");
5
- const url_json_rpc_provider_1 = require("./url-json-rpc-provider");
6
- const logger_1 = require("@ethersproject/logger");
7
- const _version_1 = require("./_version");
8
- const logger = new logger_1.Logger(_version_1.version);
9
- const defaultApiKey = "9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";
10
- function getHost(name) {
11
- switch (name) {
12
- case "homestead":
13
- return "rpc.ankr.com/eth/";
14
- case "ropsten":
15
- return "rpc.ankr.com/eth_ropsten/";
16
- case "rinkeby":
17
- return "rpc.ankr.com/eth_rinkeby/";
18
- case "goerli":
19
- return "rpc.ankr.com/eth_goerli/";
20
- case "matic":
21
- return "rpc.ankr.com/polygon/";
22
- case "arbitrum":
23
- return "rpc.ankr.com/arbitrum/";
24
- }
25
- return logger.throwArgumentError("unsupported network", "name", name);
26
- }
27
- class AnkrProvider extends url_json_rpc_provider_1.UrlJsonRpcProvider {
28
- isCommunityResource() {
29
- return (this.apiKey === defaultApiKey);
30
- }
31
- static getApiKey(apiKey) {
32
- if (apiKey == null) {
33
- return defaultApiKey;
34
- }
35
- return apiKey;
36
- }
37
- static getUrl(network, apiKey) {
38
- if (apiKey == null) {
39
- apiKey = defaultApiKey;
40
- }
41
- const connection = {
42
- allowGzip: true,
43
- url: ("https:/\/" + getHost(network.name) + apiKey),
44
- throttleCallback: (attempt, url) => {
45
- if (apiKey.apiKey === defaultApiKey) {
46
- (0, formatter_1.showThrottleMessage)();
47
- }
48
- return Promise.resolve(true);
49
- }
50
- };
51
- if (apiKey.projectSecret != null) {
52
- connection.user = "";
53
- connection.password = apiKey.projectSecret;
54
- }
55
- return connection;
56
- }
57
- }
58
- exports.AnkrProvider = AnkrProvider;
59
- //# sourceMappingURL=ankr-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ankr-provider.js","sourceRoot":"","sources":["../src.ts/ankr-provider.ts"],"names":[],"mappings":";;;AAGA,2CAAkD;AAClD,mEAA6D;AAI7D,kDAA+C;AAC/C,yCAAqC;AACrC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAO,CAAC,CAAC;AAGnC,MAAM,aAAa,GAAG,kEAAkE,CAAC;AAEzF,SAAS,OAAO,CAAC,IAAY;IACzB,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,WAAW;YACZ,OAAO,mBAAmB,CAAC;QAC/B,KAAK,SAAS;YACV,OAAO,2BAA2B,CAAC;QACvC,KAAK,SAAS;YACV,OAAO,2BAA2B,CAAC;QACvC,KAAK,QAAQ;YACT,OAAO,0BAA0B,CAAC;QAEtC,KAAK,OAAO;YACR,OAAO,uBAAuB,CAAC;QAEnC,KAAK,UAAU;YACX,OAAO,wBAAwB,CAAC;IACxC,CAAC;IACD,OAAO,MAAM,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,MAAa,YAAa,SAAQ,0CAAkB;IAGhD,mBAAmB;QACf,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,MAAW;QACxB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YAAC,OAAO,aAAa,CAAC;QAAC,CAAC;QAC7C,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,OAAgB,EAAE,MAAW;QACvC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YAAC,MAAM,GAAG,aAAa,CAAC;QAAC,CAAC;QAC/C,MAAM,UAAU,GAAmB;YAC/B,SAAS,EAAE,IAAI;YACf,GAAG,EAAE,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;YACnD,gBAAgB,EAAE,CAAC,OAAe,EAAE,GAAW,EAAE,EAAE;gBAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;oBAClC,IAAA,+BAAmB,GAAE,CAAC;gBAC1B,CAAC;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;SACJ,CAAC;QAEF,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;YAC/B,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC;YACrB,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAA;QAC9C,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AAhCD,oCAgCC"}
@@ -1,8 +0,0 @@
1
- import { Network } from "@ethersproject/networks";
2
- import { UrlJsonRpcProvider } from "./url-json-rpc-provider";
3
- export declare class CloudflareProvider extends UrlJsonRpcProvider {
4
- static getApiKey(apiKey: any): any;
5
- static getUrl(network: Network, apiKey?: any): string;
6
- perform(method: string, params: any): Promise<any>;
7
- }
8
- //# sourceMappingURL=cloudflare-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cloudflare-provider.d.ts","sourceRoot":"","sources":["../src.ts/cloudflare-provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAM7D,qBAAa,kBAAmB,SAAQ,kBAAkB;IAEtD,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;IAOlC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,MAAM;IAa/C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAU3D"}
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CloudflareProvider = void 0;
4
- const url_json_rpc_provider_1 = require("./url-json-rpc-provider");
5
- const logger_1 = require("@ethersproject/logger");
6
- const _version_1 = require("./_version");
7
- const logger = new logger_1.Logger(_version_1.version);
8
- class CloudflareProvider extends url_json_rpc_provider_1.UrlJsonRpcProvider {
9
- static getApiKey(apiKey) {
10
- if (apiKey != null) {
11
- logger.throwArgumentError("apiKey not supported for cloudflare", "apiKey", apiKey);
12
- }
13
- return null;
14
- }
15
- static getUrl(network, apiKey) {
16
- let host = null;
17
- switch (network.name) {
18
- case "homestead":
19
- host = "https://cloudflare-eth.com/";
20
- break;
21
- default:
22
- logger.throwArgumentError("unsupported network", "network", arguments[0]);
23
- }
24
- return host;
25
- }
26
- async perform(method, params) {
27
- // The Cloudflare provider does not support eth_blockNumber,
28
- // so we get the latest block and pull it from that
29
- if (method === "getBlockNumber") {
30
- const block = await super.perform("getBlock", { blockTag: "latest" });
31
- return block.number;
32
- }
33
- return super.perform(method, params);
34
- }
35
- }
36
- exports.CloudflareProvider = CloudflareProvider;
37
- //# sourceMappingURL=cloudflare-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cloudflare-provider.js","sourceRoot":"","sources":["../src.ts/cloudflare-provider.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAGb,mEAA6D;AAE7D,kDAA+C;AAC/C,yCAAqC;AACrC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAO,CAAC,CAAC;AAEnC,MAAa,kBAAmB,SAAQ,0CAAkB;IAEtD,MAAM,CAAC,SAAS,CAAC,MAAW;QACxB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,CAAC,kBAAkB,CAAC,qCAAqC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,OAAgB,EAAE,MAAY;QACxC,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,WAAW;gBACZ,IAAI,GAAG,6BAA6B,CAAC;gBACrC,MAAM;YACV;gBACG,MAAM,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,MAAW;QACrC,4DAA4D;QAC5D,mDAAmD;QACnD,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YACtE,OAAO,KAAK,CAAC,MAAM,CAAC;QACxB,CAAC;QAED,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;CACJ;AAhCD,gDAgCC"}
@@ -1,18 +0,0 @@
1
- import { BlockTag, TransactionResponse } from "@qevm/abstract-provider";
2
- import { Network, Networkish } from "@ethersproject/networks";
3
- import { BaseProvider } from "./base-provider";
4
- export declare class EtherscanProvider extends BaseProvider {
5
- readonly baseUrl: string;
6
- readonly apiKey: string | null;
7
- constructor(network?: Networkish, apiKey?: string);
8
- getBaseUrl(): string;
9
- getUrl(module: string, params: Record<string, string>): string;
10
- getPostUrl(): string;
11
- getPostData(module: string, params: Record<string, any>): Record<string, any>;
12
- fetch(module: string, params: Record<string, any>, post?: boolean): Promise<any>;
13
- detectNetwork(): Promise<Network>;
14
- perform(method: string, params: any): Promise<any>;
15
- getHistory(addressOrName: string | Promise<string>, startBlock?: BlockTag, endBlock?: BlockTag): Promise<Array<TransactionResponse>>;
16
- isCommunityResource(): boolean;
17
- }
18
- //# sourceMappingURL=etherscan-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"etherscan-provider.d.ts","sourceRoot":"","sources":["../src.ts/etherscan-provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAsB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE5F,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAW9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA+I/C,qBAAa,iBAAkB,SAAQ,YAAY;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEnB,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM;IAOjD,UAAU,IAAI,MAAM;IA0BpB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAY9D,UAAU,IAAI,MAAM;IAIpB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAMvE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IA0ChF,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAmKlD,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAwB1I,mBAAmB,IAAI,OAAO;CAGjC"}