1 | "use strict";
|
2 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3 | function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4 | return new (P || (P = Promise))(function (resolve, reject) {
|
5 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7 | function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8 | step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9 | });
|
10 | };
|
11 | import { UrlJsonRpcProvider } from "./url-json-rpc-provider";
|
12 | import { Logger } from "@ethersproject/logger";
|
13 | import { version } from "./_version";
|
14 | const logger = new Logger(version);
|
15 | export class CloudflareProvider extends UrlJsonRpcProvider {
|
16 | static getApiKey(apiKey) {
|
17 | if (apiKey != null) {
|
18 | logger.throwArgumentError("apiKey not supported for cloudflare", "apiKey", apiKey);
|
19 | }
|
20 | return null;
|
21 | }
|
22 | static getUrl(network, apiKey) {
|
23 | let host = null;
|
24 | switch (network.name) {
|
25 | case "homestead":
|
26 | host = "https://cloudflare-eth.com/";
|
27 | break;
|
28 | default:
|
29 | logger.throwArgumentError("unsupported network", "network", arguments[0]);
|
30 | }
|
31 | return host;
|
32 | }
|
33 | perform(method, params) {
|
34 | const _super = Object.create(null, {
|
35 | perform: { get: () => super.perform }
|
36 | });
|
37 | return __awaiter(this, void 0, void 0, function* () {
|
38 |
|
39 |
|
40 | if (method === "getBlockNumber") {
|
41 | const block = yield _super.perform.call(this, "getBlock", { blockTag: "latest" });
|
42 | return block.number;
|
43 | }
|
44 | return _super.perform.call(this, method, params);
|
45 | });
|
46 | }
|
47 | }
|
48 |
|
\ | No newline at end of file |