@lodestar/api 1.35.0-dev.fcf8d024ea → 1.35.0-dev.feed916580
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/package.json +11 -17
- package/lib/beacon/client/beacon.d.ts.map +0 -1
- package/lib/beacon/client/config.d.ts.map +0 -1
- package/lib/beacon/client/debug.d.ts.map +0 -1
- package/lib/beacon/client/events.d.ts.map +0 -1
- package/lib/beacon/client/index.d.ts.map +0 -1
- package/lib/beacon/client/lightclient.d.ts.map +0 -1
- package/lib/beacon/client/lodestar.d.ts.map +0 -1
- package/lib/beacon/client/node.d.ts.map +0 -1
- package/lib/beacon/client/proof.d.ts.map +0 -1
- package/lib/beacon/client/validator.d.ts.map +0 -1
- package/lib/beacon/index.d.ts.map +0 -1
- package/lib/beacon/routes/beacon/block.d.ts.map +0 -1
- package/lib/beacon/routes/beacon/index.d.ts.map +0 -1
- package/lib/beacon/routes/beacon/pool.d.ts.map +0 -1
- package/lib/beacon/routes/beacon/rewards.d.ts.map +0 -1
- package/lib/beacon/routes/beacon/state.d.ts.map +0 -1
- package/lib/beacon/routes/config.d.ts.map +0 -1
- package/lib/beacon/routes/debug.d.ts.map +0 -1
- package/lib/beacon/routes/events.d.ts.map +0 -1
- package/lib/beacon/routes/index.d.ts.map +0 -1
- package/lib/beacon/routes/lightclient.d.ts.map +0 -1
- package/lib/beacon/routes/lodestar.d.ts.map +0 -1
- package/lib/beacon/routes/node.d.ts.map +0 -1
- package/lib/beacon/routes/proof.d.ts.map +0 -1
- package/lib/beacon/routes/validator.d.ts.map +0 -1
- package/lib/beacon/server/beacon.d.ts.map +0 -1
- package/lib/beacon/server/config.d.ts.map +0 -1
- package/lib/beacon/server/debug.d.ts.map +0 -1
- package/lib/beacon/server/events.d.ts.map +0 -1
- package/lib/beacon/server/index.d.ts.map +0 -1
- package/lib/beacon/server/lightclient.d.ts.map +0 -1
- package/lib/beacon/server/lodestar.d.ts.map +0 -1
- package/lib/beacon/server/node.d.ts.map +0 -1
- package/lib/beacon/server/proof.d.ts.map +0 -1
- package/lib/beacon/server/validator.d.ts.map +0 -1
- package/lib/builder/client.d.ts.map +0 -1
- package/lib/builder/index.d.ts.map +0 -1
- package/lib/builder/routes.d.ts.map +0 -1
- package/lib/builder/server/index.d.ts.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/keymanager/client.d.ts.map +0 -1
- package/lib/keymanager/index.d.ts.map +0 -1
- package/lib/keymanager/routes.d.ts.map +0 -1
- package/lib/keymanager/server/index.d.ts.map +0 -1
- package/lib/server/index.d.ts.map +0 -1
- package/lib/utils/client/error.d.ts.map +0 -1
- package/lib/utils/client/eventSource.d.ts.map +0 -1
- package/lib/utils/client/format.d.ts.map +0 -1
- package/lib/utils/client/httpClient.d.ts.map +0 -1
- package/lib/utils/client/index.d.ts.map +0 -1
- package/lib/utils/client/method.d.ts.map +0 -1
- package/lib/utils/client/metrics.d.ts.map +0 -1
- package/lib/utils/client/request.d.ts.map +0 -1
- package/lib/utils/client/response.d.ts.map +0 -1
- package/lib/utils/codecs.d.ts.map +0 -1
- package/lib/utils/fork.d.ts.map +0 -1
- package/lib/utils/headers.d.ts.map +0 -1
- package/lib/utils/httpStatusCode.d.ts.map +0 -1
- package/lib/utils/index.d.ts.map +0 -1
- package/lib/utils/metadata.d.ts.map +0 -1
- package/lib/utils/schema.d.ts.map +0 -1
- package/lib/utils/serdes.d.ts.map +0 -1
- package/lib/utils/server/error.d.ts.map +0 -1
- package/lib/utils/server/handler.d.ts.map +0 -1
- package/lib/utils/server/index.d.ts.map +0 -1
- package/lib/utils/server/method.d.ts.map +0 -1
- package/lib/utils/server/parser.d.ts.map +0 -1
- package/lib/utils/server/route.d.ts.map +0 -1
- package/lib/utils/types.d.ts.map +0 -1
- package/lib/utils/urlFormat.d.ts.map +0 -1
- package/lib/utils/wireFormat.d.ts.map +0 -1
- package/src/beacon/client/beacon.ts +0 -12
- package/src/beacon/client/config.ts +0 -12
- package/src/beacon/client/debug.ts +0 -12
- package/src/beacon/client/events.ts +0 -69
- package/src/beacon/client/index.ts +0 -46
- package/src/beacon/client/lightclient.ts +0 -12
- package/src/beacon/client/lodestar.ts +0 -12
- package/src/beacon/client/node.ts +0 -12
- package/src/beacon/client/proof.ts +0 -12
- package/src/beacon/client/validator.ts +0 -12
- package/src/beacon/index.ts +0 -24
- package/src/beacon/routes/beacon/block.ts +0 -602
- package/src/beacon/routes/beacon/index.ts +0 -66
- package/src/beacon/routes/beacon/pool.ts +0 -503
- package/src/beacon/routes/beacon/rewards.ts +0 -216
- package/src/beacon/routes/beacon/state.ts +0 -588
- package/src/beacon/routes/config.ts +0 -114
- package/src/beacon/routes/debug.ts +0 -231
- package/src/beacon/routes/events.ts +0 -337
- package/src/beacon/routes/index.ts +0 -33
- package/src/beacon/routes/lightclient.ts +0 -241
- package/src/beacon/routes/lodestar.ts +0 -456
- package/src/beacon/routes/node.ts +0 -286
- package/src/beacon/routes/proof.ts +0 -79
- package/src/beacon/routes/validator.ts +0 -1014
- package/src/beacon/server/beacon.ts +0 -7
- package/src/beacon/server/config.ts +0 -7
- package/src/beacon/server/debug.ts +0 -7
- package/src/beacon/server/events.ts +0 -73
- package/src/beacon/server/index.ts +0 -55
- package/src/beacon/server/lightclient.ts +0 -7
- package/src/beacon/server/lodestar.ts +0 -7
- package/src/beacon/server/node.ts +0 -7
- package/src/beacon/server/proof.ts +0 -7
- package/src/beacon/server/validator.ts +0 -7
- package/src/builder/client.ts +0 -9
- package/src/builder/index.ts +0 -26
- package/src/builder/routes.ts +0 -227
- package/src/builder/server/index.ts +0 -19
- package/src/index.ts +0 -19
- package/src/keymanager/client.ts +0 -9
- package/src/keymanager/index.ts +0 -39
- package/src/keymanager/routes.ts +0 -699
- package/src/keymanager/server/index.ts +0 -19
- package/src/server/index.ts +0 -2
- package/src/utils/client/error.ts +0 -10
- package/src/utils/client/eventSource.ts +0 -7
- package/src/utils/client/format.ts +0 -22
- package/src/utils/client/httpClient.ts +0 -444
- package/src/utils/client/index.ts +0 -6
- package/src/utils/client/method.ts +0 -50
- package/src/utils/client/metrics.ts +0 -9
- package/src/utils/client/request.ts +0 -113
- package/src/utils/client/response.ts +0 -205
- package/src/utils/codecs.ts +0 -143
- package/src/utils/fork.ts +0 -44
- package/src/utils/headers.ts +0 -173
- package/src/utils/httpStatusCode.ts +0 -392
- package/src/utils/index.ts +0 -3
- package/src/utils/metadata.ts +0 -170
- package/src/utils/schema.ts +0 -141
- package/src/utils/serdes.ts +0 -120
- package/src/utils/server/error.ts +0 -9
- package/src/utils/server/handler.ts +0 -149
- package/src/utils/server/index.ts +0 -5
- package/src/utils/server/method.ts +0 -38
- package/src/utils/server/parser.ts +0 -15
- package/src/utils/server/route.ts +0 -45
- package/src/utils/types.ts +0 -161
- package/src/utils/urlFormat.ts +0 -112
- package/src/utils/wireFormat.ts +0 -24
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import {ChainForkConfig} from "@lodestar/config";
|
|
2
|
-
import {getEventSource} from "../../utils/client/eventSource.js";
|
|
3
|
-
import {stringifyQuery, urlJoin} from "../../utils/client/format.js";
|
|
4
|
-
import {ApiClientMethods} from "../../utils/client/method.js";
|
|
5
|
-
import {RouteDefinitionExtra} from "../../utils/client/request.js";
|
|
6
|
-
import {ApiResponse} from "../../utils/client/response.js";
|
|
7
|
-
import {BeaconEvent, Endpoints, getDefinitions, getEventSerdes} from "../routes/events.js";
|
|
8
|
-
|
|
9
|
-
export type ApiClient = ApiClientMethods<Endpoints>;
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* REST HTTP client for events routes
|
|
13
|
-
*/
|
|
14
|
-
export function getClient(config: ChainForkConfig, baseUrl: string): ApiClient {
|
|
15
|
-
const definitions = getDefinitions(config);
|
|
16
|
-
const eventSerdes = getEventSerdes(config);
|
|
17
|
-
|
|
18
|
-
return {
|
|
19
|
-
eventstream: async ({
|
|
20
|
-
topics,
|
|
21
|
-
signal,
|
|
22
|
-
onEvent,
|
|
23
|
-
onError,
|
|
24
|
-
onClose,
|
|
25
|
-
}): Promise<ApiResponse<Endpoints["eventstream"]>> => {
|
|
26
|
-
const query = stringifyQuery({topics});
|
|
27
|
-
const url = `${urlJoin(baseUrl, definitions.eventstream.url)}?${query}`;
|
|
28
|
-
const EventSource = await getEventSource();
|
|
29
|
-
const eventSource = new EventSource(url);
|
|
30
|
-
|
|
31
|
-
const close = (): void => {
|
|
32
|
-
eventSource.close();
|
|
33
|
-
onClose?.();
|
|
34
|
-
signal.removeEventListener("abort", close);
|
|
35
|
-
};
|
|
36
|
-
signal.addEventListener("abort", close, {once: true});
|
|
37
|
-
|
|
38
|
-
for (const topic of topics) {
|
|
39
|
-
eventSource.addEventListener(topic, (event: MessageEvent) => {
|
|
40
|
-
const message = eventSerdes.fromJson(topic, JSON.parse(event.data));
|
|
41
|
-
onEvent({type: topic, message} as BeaconEvent);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// EventSource will try to reconnect always on all errors
|
|
46
|
-
// `eventSource.onerror` events are informative but don't indicate the EventSource closed
|
|
47
|
-
// The only way to abort the connection from the client is via eventSource.close()
|
|
48
|
-
eventSource.onerror = function onerror(err): void {
|
|
49
|
-
const errEs = err as unknown as EventSourceError;
|
|
50
|
-
|
|
51
|
-
// Ignore noisy errors due to beacon node being offline
|
|
52
|
-
if (!/ECONNREFUSED|EAI_AGAIN/.test(errEs.message ?? "")) {
|
|
53
|
-
// If there is no message it likely indicates that the server closed the connection
|
|
54
|
-
onError?.(new Error(errEs.message ?? "Server closed connection"));
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// Consider 400 and 500 status errors unrecoverable, close the eventsource
|
|
58
|
-
if (errEs.status === 400 || errEs.status === 500) {
|
|
59
|
-
close();
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
return new ApiResponse(definitions.eventstream as RouteDefinitionExtra<Endpoints["eventstream"]>);
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// https://github.com/EventSource/eventsource/blob/82e034389bd2c08d532c63172b8e858c5b185338/lib/eventsource.js#L143
|
|
69
|
-
type EventSourceError = {status?: number; message?: string};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import {ChainForkConfig} from "@lodestar/config";
|
|
2
|
-
import {
|
|
3
|
-
ApiClientMethods,
|
|
4
|
-
HttpClient,
|
|
5
|
-
HttpClientModules,
|
|
6
|
-
HttpClientOptions,
|
|
7
|
-
IHttpClient,
|
|
8
|
-
} from "../../utils/client/index.js";
|
|
9
|
-
import {Endpoints} from "../routes/index.js";
|
|
10
|
-
import * as beacon from "./beacon.js";
|
|
11
|
-
import * as configApi from "./config.js";
|
|
12
|
-
import * as debug from "./debug.js";
|
|
13
|
-
import * as events from "./events.js";
|
|
14
|
-
import * as lightclient from "./lightclient.js";
|
|
15
|
-
import * as lodestar from "./lodestar.js";
|
|
16
|
-
import * as node from "./node.js";
|
|
17
|
-
import * as proof from "./proof.js";
|
|
18
|
-
import * as validator from "./validator.js";
|
|
19
|
-
|
|
20
|
-
type ClientModules = HttpClientModules & {
|
|
21
|
-
config: ChainForkConfig;
|
|
22
|
-
httpClient?: IHttpClient;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export type ApiClient = {[K in keyof Endpoints]: ApiClientMethods<Endpoints[K]>} & {httpClient: IHttpClient};
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* REST HTTP client for all routes
|
|
29
|
-
*/
|
|
30
|
-
export function getClient(opts: HttpClientOptions, modules: ClientModules): ApiClient {
|
|
31
|
-
const {config} = modules;
|
|
32
|
-
const httpClient = modules.httpClient ?? new HttpClient(opts, modules);
|
|
33
|
-
|
|
34
|
-
return {
|
|
35
|
-
beacon: beacon.getClient(config, httpClient),
|
|
36
|
-
config: configApi.getClient(config, httpClient),
|
|
37
|
-
debug: debug.getClient(config, httpClient),
|
|
38
|
-
events: events.getClient(config, httpClient.baseUrl),
|
|
39
|
-
lightclient: lightclient.getClient(config, httpClient),
|
|
40
|
-
lodestar: lodestar.getClient(config, httpClient),
|
|
41
|
-
node: node.getClient(config, httpClient),
|
|
42
|
-
proof: proof.getClient(config, httpClient),
|
|
43
|
-
validator: validator.getClient(config, httpClient),
|
|
44
|
-
httpClient,
|
|
45
|
-
};
|
|
46
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import {ChainForkConfig} from "@lodestar/config";
|
|
2
|
-
import {ApiClientMethods, IHttpClient, createApiClientMethods} from "../../utils/client/index.js";
|
|
3
|
-
import {Endpoints, getDefinitions} from "../routes/lightclient.js";
|
|
4
|
-
|
|
5
|
-
export type ApiClient = ApiClientMethods<Endpoints>;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* REST HTTP client for lightclient routes
|
|
9
|
-
*/
|
|
10
|
-
export function getClient(config: ChainForkConfig, httpClient: IHttpClient): ApiClient {
|
|
11
|
-
return createApiClientMethods(getDefinitions(config), httpClient);
|
|
12
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import {ChainForkConfig} from "@lodestar/config";
|
|
2
|
-
import {ApiClientMethods, IHttpClient, createApiClientMethods} from "../../utils/client/index.js";
|
|
3
|
-
import {Endpoints, getDefinitions} from "../routes/lodestar.js";
|
|
4
|
-
|
|
5
|
-
export type ApiClient = ApiClientMethods<Endpoints>;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* REST HTTP client for lodestar routes
|
|
9
|
-
*/
|
|
10
|
-
export function getClient(config: ChainForkConfig, httpClient: IHttpClient): ApiClient {
|
|
11
|
-
return createApiClientMethods(getDefinitions(config), httpClient);
|
|
12
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import {ChainForkConfig} from "@lodestar/config";
|
|
2
|
-
import {ApiClientMethods, IHttpClient, createApiClientMethods} from "../../utils/client/index.js";
|
|
3
|
-
import {Endpoints, getDefinitions} from "../routes/node.js";
|
|
4
|
-
|
|
5
|
-
export type ApiClient = ApiClientMethods<Endpoints>;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* REST HTTP client for beacon routes
|
|
9
|
-
*/
|
|
10
|
-
export function getClient(config: ChainForkConfig, httpClient: IHttpClient): ApiClient {
|
|
11
|
-
return createApiClientMethods(getDefinitions(config), httpClient);
|
|
12
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import {ChainForkConfig} from "@lodestar/config";
|
|
2
|
-
import {ApiClientMethods, IHttpClient, createApiClientMethods} from "../../utils/client/index.js";
|
|
3
|
-
import {Endpoints, getDefinitions} from "../routes/proof.js";
|
|
4
|
-
|
|
5
|
-
export type ApiClient = ApiClientMethods<Endpoints>;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* REST HTTP client for proof routes
|
|
9
|
-
*/
|
|
10
|
-
export function getClient(config: ChainForkConfig, httpClient: IHttpClient): ApiClient {
|
|
11
|
-
return createApiClientMethods(getDefinitions(config), httpClient);
|
|
12
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import {ChainForkConfig} from "@lodestar/config";
|
|
2
|
-
import {ApiClientMethods, IHttpClient, createApiClientMethods} from "../../utils/client/index.js";
|
|
3
|
-
import {Endpoints, getDefinitions} from "../routes/validator.js";
|
|
4
|
-
|
|
5
|
-
export type ApiClient = ApiClientMethods<Endpoints>;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* REST HTTP client for validator routes
|
|
9
|
-
*/
|
|
10
|
-
export function getClient(config: ChainForkConfig, httpClient: IHttpClient): ApiClient {
|
|
11
|
-
return createApiClientMethods(getDefinitions(config), httpClient);
|
|
12
|
-
}
|
package/src/beacon/index.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type {Endpoints} from "./routes/index.js";
|
|
2
|
-
|
|
3
|
-
// NOTE: Don't export server here so it's not bundled to all consumers
|
|
4
|
-
|
|
5
|
-
import * as routes from "./routes/index.js";
|
|
6
|
-
export {routes};
|
|
7
|
-
|
|
8
|
-
export {type ApiClient, getClient} from "./client/index.js";
|
|
9
|
-
export type {Endpoints};
|
|
10
|
-
|
|
11
|
-
// Declare namespaces for CLI options
|
|
12
|
-
export type ApiNamespace = keyof Endpoints;
|
|
13
|
-
const allNamespacesObj: {[K in keyof Endpoints]: true} = {
|
|
14
|
-
beacon: true,
|
|
15
|
-
config: true,
|
|
16
|
-
debug: true,
|
|
17
|
-
events: true,
|
|
18
|
-
lightclient: true,
|
|
19
|
-
lodestar: true,
|
|
20
|
-
node: true,
|
|
21
|
-
proof: true,
|
|
22
|
-
validator: true,
|
|
23
|
-
};
|
|
24
|
-
export const allNamespaces = Object.keys(allNamespacesObj) as ApiNamespace[];
|