@lodestar/api 1.23.0-dev.0d87c28aed → 1.23.0-dev.105a38808f
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.
|
@@ -57,5 +57,5 @@ export type Endpoints = {
|
|
|
57
57
|
};
|
|
58
58
|
}, HashList, EmptyMeta>;
|
|
59
59
|
};
|
|
60
|
-
export declare function getDefinitions(
|
|
60
|
+
export declare function getDefinitions(config: ChainForkConfig): RouteDefinitions<Endpoints>;
|
|
61
61
|
//# sourceMappingURL=lightclient.d.ts.map
|
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
import { ListCompositeType } from "@chainsafe/ssz";
|
|
2
2
|
import { ssz, } from "@lodestar/types";
|
|
3
|
+
import { fromHex } from "@lodestar/utils";
|
|
4
|
+
import { ZERO_HASH } from "@lodestar/params";
|
|
5
|
+
import { createBeaconConfig } from "@lodestar/config";
|
|
6
|
+
import { genesisData } from "@lodestar/config/networks";
|
|
3
7
|
import { Schema } from "../../utils/index.js";
|
|
4
|
-
import { VersionCodec } from "../../utils/metadata.js";
|
|
8
|
+
import { MetaHeader, VersionCodec } from "../../utils/metadata.js";
|
|
5
9
|
import { getLightClientForkTypes, toForkName } from "../../utils/fork.js";
|
|
6
|
-
import { EmptyRequestCodec, EmptyMetaCodec, WithVersion,
|
|
10
|
+
import { EmptyRequestCodec, EmptyMetaCodec, WithVersion, } from "../../utils/codecs.js";
|
|
7
11
|
// See /packages/api/src/routes/index.ts for reasoning and instructions to add new routes
|
|
8
12
|
export const HashListType = new ListCompositeType(ssz.Root, 10000);
|
|
9
|
-
export function getDefinitions(
|
|
13
|
+
export function getDefinitions(config) {
|
|
14
|
+
// Cache config so fork digests don't need to be recomputed
|
|
15
|
+
let beaconConfig;
|
|
16
|
+
const cachedBeaconConfig = () => {
|
|
17
|
+
if (beaconConfig === undefined) {
|
|
18
|
+
const genesisValidatorsRoot = genesisData[config.CONFIG_NAME]?.genesisValidatorsRoot;
|
|
19
|
+
beaconConfig = createBeaconConfig(config, genesisValidatorsRoot ? fromHex(genesisValidatorsRoot) : ZERO_HASH);
|
|
20
|
+
}
|
|
21
|
+
return beaconConfig;
|
|
22
|
+
};
|
|
10
23
|
return {
|
|
11
24
|
getLightClientUpdatesByRange: {
|
|
12
25
|
url: "/eth/v1/beacon/light_client/updates",
|
|
@@ -16,7 +29,7 @@ export function getDefinitions(_config) {
|
|
|
16
29
|
parseReq: ({ query }) => ({ startPeriod: query.start_period, count: query.count }),
|
|
17
30
|
schema: { query: { start_period: Schema.UintRequired, count: Schema.UintRequired } },
|
|
18
31
|
},
|
|
19
|
-
resp:
|
|
32
|
+
resp: {
|
|
20
33
|
data: {
|
|
21
34
|
toJson: (data, meta) => {
|
|
22
35
|
const json = [];
|
|
@@ -34,12 +47,40 @@ export function getDefinitions(_config) {
|
|
|
34
47
|
}
|
|
35
48
|
return value;
|
|
36
49
|
},
|
|
50
|
+
serialize: (data, meta) => {
|
|
51
|
+
const chunks = [];
|
|
52
|
+
for (const [i, update] of data.entries()) {
|
|
53
|
+
const version = meta.versions[i];
|
|
54
|
+
const forkDigest = cachedBeaconConfig().forkName2ForkDigest(version);
|
|
55
|
+
const serialized = getLightClientForkTypes(version).LightClientUpdate.serialize(update);
|
|
56
|
+
const length = ssz.UintNum64.serialize(4 + serialized.length);
|
|
57
|
+
chunks.push(length, forkDigest, serialized);
|
|
58
|
+
}
|
|
59
|
+
return Buffer.concat(chunks);
|
|
60
|
+
},
|
|
61
|
+
deserialize: (data) => {
|
|
62
|
+
let offset = 0;
|
|
63
|
+
const updates = [];
|
|
64
|
+
while (offset < data.length) {
|
|
65
|
+
const length = ssz.UintNum64.deserialize(data.subarray(offset, offset + 8));
|
|
66
|
+
const forkDigest = ssz.ForkDigest.deserialize(data.subarray(offset + 8, offset + 12));
|
|
67
|
+
const version = cachedBeaconConfig().forkDigest2ForkName(forkDigest);
|
|
68
|
+
updates.push(getLightClientForkTypes(version).LightClientUpdate.deserialize(data.subarray(offset + 12, offset + 8 + length)));
|
|
69
|
+
offset += 8 + length;
|
|
70
|
+
}
|
|
71
|
+
return updates;
|
|
72
|
+
},
|
|
37
73
|
},
|
|
38
74
|
meta: {
|
|
39
75
|
toJson: (meta) => meta,
|
|
40
76
|
fromJson: (val) => val,
|
|
41
|
-
toHeadersObject: () => ({
|
|
42
|
-
|
|
77
|
+
toHeadersObject: (meta) => ({
|
|
78
|
+
[MetaHeader.Version]: meta.versions.join(","),
|
|
79
|
+
}),
|
|
80
|
+
fromHeaders: (headers) => {
|
|
81
|
+
const versions = headers.getOrDefault(MetaHeader.Version, "");
|
|
82
|
+
return { versions: versions === "" ? [] : versions.split(",") };
|
|
83
|
+
},
|
|
43
84
|
},
|
|
44
85
|
transform: {
|
|
45
86
|
toResponse: (data, meta) => {
|
|
@@ -63,7 +104,7 @@ export function getDefinitions(_config) {
|
|
|
63
104
|
return { data: updates, meta };
|
|
64
105
|
},
|
|
65
106
|
},
|
|
66
|
-
}
|
|
107
|
+
},
|
|
67
108
|
},
|
|
68
109
|
getLightClientOptimisticUpdate: {
|
|
69
110
|
url: "/eth/v1/beacon/light_client/optimistic_update",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightclient.js","sourceRoot":"","sources":["../../../src/beacon/routes/lightclient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAU,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAKL,GAAG,GAEJ,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"lightclient.js","sourceRoot":"","sources":["../../../src/beacon/routes/lightclient.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.23.0-dev.
|
|
14
|
+
"version": "1.23.0-dev.105a38808f",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -72,10 +72,10 @@
|
|
|
72
72
|
"dependencies": {
|
|
73
73
|
"@chainsafe/persistent-merkle-tree": "^0.8.0",
|
|
74
74
|
"@chainsafe/ssz": "^0.17.1",
|
|
75
|
-
"@lodestar/config": "1.23.0-dev.
|
|
76
|
-
"@lodestar/params": "1.23.0-dev.
|
|
77
|
-
"@lodestar/types": "1.23.0-dev.
|
|
78
|
-
"@lodestar/utils": "1.23.0-dev.
|
|
75
|
+
"@lodestar/config": "1.23.0-dev.105a38808f",
|
|
76
|
+
"@lodestar/params": "1.23.0-dev.105a38808f",
|
|
77
|
+
"@lodestar/types": "1.23.0-dev.105a38808f",
|
|
78
|
+
"@lodestar/utils": "1.23.0-dev.105a38808f",
|
|
79
79
|
"eventsource": "^2.0.2",
|
|
80
80
|
"qs": "^6.11.1"
|
|
81
81
|
},
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
"api",
|
|
93
93
|
"blockchain"
|
|
94
94
|
],
|
|
95
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "c3eb58112556fd06649eade16d49a95b6652796f"
|
|
96
96
|
}
|