@lodestar/api 1.47.0-dev.f591cb177e → 1.47.0
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/lib/beacon/routes/beacon/block.d.ts +7 -0
- package/lib/beacon/routes/beacon/block.d.ts.map +1 -1
- package/lib/beacon/routes/beacon/block.js +7 -3
- package/lib/beacon/routes/beacon/block.js.map +1 -1
- package/lib/beacon/routes/debug.d.ts +3 -3
- package/lib/beacon/routes/debug.js +3 -3
- package/lib/beacon/routes/debug.js.map +1 -1
- package/lib/beacon/routes/validator.d.ts +92 -5
- package/lib/beacon/routes/validator.d.ts.map +1 -1
- package/lib/beacon/routes/validator.js +121 -16
- package/lib/beacon/routes/validator.js.map +1 -1
- package/lib/beacon/server/events.d.ts.map +1 -1
- package/lib/beacon/server/events.js +10 -2
- package/lib/beacon/server/events.js.map +1 -1
- package/lib/builder/routes.d.ts +48 -1
- package/lib/builder/routes.d.ts.map +1 -1
- package/lib/builder/routes.js +173 -1
- package/lib/builder/routes.js.map +1 -1
- package/lib/keymanager/index.d.ts +2 -2
- package/lib/keymanager/index.d.ts.map +1 -1
- package/lib/keymanager/index.js +1 -1
- package/lib/keymanager/index.js.map +1 -1
- package/lib/keymanager/routes.d.ts +63 -0
- package/lib/keymanager/routes.d.ts.map +1 -1
- package/lib/keymanager/routes.js +147 -0
- package/lib/keymanager/routes.js.map +1 -1
- package/lib/utils/client/response.js +1 -1
- package/lib/utils/client/response.js.map +1 -1
- package/lib/utils/metadata.d.ts +3 -0
- package/lib/utils/metadata.d.ts.map +1 -1
- package/lib/utils/metadata.js +4 -0
- package/lib/utils/metadata.js.map +1 -1
- package/lib/utils/types.d.ts +1 -1
- package/lib/utils/types.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/beacon/routes/beacon/block.ts +18 -4
- package/src/beacon/routes/debug.ts +3 -3
- package/src/beacon/routes/validator.ts +178 -20
- package/src/beacon/server/events.ts +10 -3
- package/src/builder/routes.ts +227 -2
- package/src/keymanager/index.ts +9 -1
- package/src/keymanager/routes.ts +227 -0
- package/src/utils/client/response.ts +1 -1
- package/src/utils/metadata.ts +5 -0
- package/src/utils/types.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/utils/client/response.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/utils/client/response.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/metadata.d.ts
CHANGED
|
@@ -76,6 +76,9 @@ export declare enum MetaHeader {
|
|
|
76
76
|
ExecutionPayloadBlinded = "Eth-Execution-Payload-Blinded",
|
|
77
77
|
ExecutionPayloadIncluded = "Eth-Execution-Payload-Included",
|
|
78
78
|
ExecutionPayloadValue = "Eth-Execution-Payload-Value",
|
|
79
|
+
BuilderUrl = "Eth-Builder-Url",
|
|
80
|
+
DateMilliseconds = "Date-Milliseconds",
|
|
81
|
+
TimeoutMs = "X-Timeout-Ms",
|
|
79
82
|
Finalized = "Eth-Consensus-Finalized",
|
|
80
83
|
DependentRoot = "Eth-Consensus-Dependent-Root",
|
|
81
84
|
ExecutionOptimistic = "Eth-Execution-Optimistic",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/utils/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,OAAO,EAAC,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,UAAU,EAAkB,MAAM,iBAAiB,CAAC;AAI5D,OAAO,EAAC,qBAAqB,EAAC,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,WAAW;IACtB;;OAEG;;EAEH,CAAC;AAKH,eAAO,MAAM,uBAAuB;IAEhC;;;OAGG;;EAIN,CAAC;AAEF,eAAO,MAAM,mCAAmC;IAT5C;;;OAGG;;IASH;;OAEG;;EAIN,CAAC;AAEF,eAAO,MAAM,iCAAiC;IA/B5C;;OAEG;;IASD;;;OAGG;;EAuBN,CAAC;AAEF,eAAO,MAAM,0CAA0C;IAvCrD;;OAEG;;IASD;;;OAGG;;IASH;;OAEG;;EAoBN,CAAC;AAEF,eAAO,MAAM,uCAAuC;IApChD;;;OAGG;;IAoCH;;OAEG;;EAIN,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC;AACtD,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC9E,MAAM,MAAM,mCAAmC,GAAG,OAAO,CAAC,OAAO,mCAAmC,CAAC,CAAC;AACtG,MAAM,MAAM,iCAAiC,GAAG,OAAO,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAClG,MAAM,MAAM,0CAA0C,GAAG,OAAO,CAAC,OAAO,0CAA0C,CAAC,CAAC;AACpH,MAAM,MAAM,uCAAuC,GAAG,OAAO,CAAC,OAAO,uCAAuC,CAAC,CAAC;AAE9G,oBAAY,UAAU;IACpB,OAAO,0BAA0B;IACjC,gBAAgB,2BAA2B;IAC3C,mBAAmB,8BAA8B;IACjD,uBAAuB,kCAAkC;IACzD,wBAAwB,mCAAmC;IAC3D,qBAAqB,gCAAgC;IAGrD,SAAS,4BAA4B;IACrC,aAAa,iCAAiC;IAC9C,mBAAmB,6BAA6B;IAChD,sBAAsB,iCAAiC;CACxD;AAED,eAAO,MAAM,wBAAwB,EAAE,qBAAqB,CAAC,uBAAuB,CAUnF,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,qBAAqB,CAAC,WAAW,CAU3D,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,qBAAqB,CAAC,iCAAiC,CAYvG,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,qBAAqB,CAAC,mCAAmC,CAY3G,CAAC;AAEF,eAAO,MAAM,2CAA2C,EAAE,qBAAqB,CAAC,0CAA0C,CAevH,CAAC;AAEJ,eAAO,MAAM,wCAAwC,EAAE,qBAAqB,CAAC,uCAAuC,CAajH,CAAC"}
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/utils/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,OAAO,EAAC,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,UAAU,EAAkB,MAAM,iBAAiB,CAAC;AAI5D,OAAO,EAAC,qBAAqB,EAAC,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,WAAW;IACtB;;OAEG;;EAEH,CAAC;AAKH,eAAO,MAAM,uBAAuB;IAEhC;;;OAGG;;EAIN,CAAC;AAEF,eAAO,MAAM,mCAAmC;IAT5C;;;OAGG;;IASH;;OAEG;;EAIN,CAAC;AAEF,eAAO,MAAM,iCAAiC;IA/B5C;;OAEG;;IASD;;;OAGG;;EAuBN,CAAC;AAEF,eAAO,MAAM,0CAA0C;IAvCrD;;OAEG;;IASD;;;OAGG;;IASH;;OAEG;;EAoBN,CAAC;AAEF,eAAO,MAAM,uCAAuC;IApChD;;;OAGG;;IAoCH;;OAEG;;EAIN,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC;AACtD,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC9E,MAAM,MAAM,mCAAmC,GAAG,OAAO,CAAC,OAAO,mCAAmC,CAAC,CAAC;AACtG,MAAM,MAAM,iCAAiC,GAAG,OAAO,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAClG,MAAM,MAAM,0CAA0C,GAAG,OAAO,CAAC,OAAO,0CAA0C,CAAC,CAAC;AACpH,MAAM,MAAM,uCAAuC,GAAG,OAAO,CAAC,OAAO,uCAAuC,CAAC,CAAC;AAE9G,oBAAY,UAAU;IACpB,OAAO,0BAA0B;IACjC,gBAAgB,2BAA2B;IAC3C,mBAAmB,8BAA8B;IACjD,uBAAuB,kCAAkC;IACzD,wBAAwB,mCAAmC;IAC3D,qBAAqB,gCAAgC;IAGrD,UAAU,oBAAoB;IAC9B,gBAAgB,sBAAsB;IACtC,SAAS,iBAAiB;IAG1B,SAAS,4BAA4B;IACrC,aAAa,iCAAiC;IAC9C,mBAAmB,6BAA6B;IAChD,sBAAsB,iCAAiC;CACxD;AAED,eAAO,MAAM,wBAAwB,EAAE,qBAAqB,CAAC,uBAAuB,CAUnF,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,qBAAqB,CAAC,WAAW,CAU3D,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,qBAAqB,CAAC,iCAAiC,CAYvG,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,qBAAqB,CAAC,mCAAmC,CAY3G,CAAC;AAEF,eAAO,MAAM,2CAA2C,EAAE,qBAAqB,CAAC,0CAA0C,CAevH,CAAC;AAEJ,eAAO,MAAM,wCAAwC,EAAE,qBAAqB,CAAC,uCAAuC,CAajH,CAAC"}
|
package/lib/utils/metadata.js
CHANGED
|
@@ -49,6 +49,10 @@ export var MetaHeader;
|
|
|
49
49
|
MetaHeader["ExecutionPayloadBlinded"] = "Eth-Execution-Payload-Blinded";
|
|
50
50
|
MetaHeader["ExecutionPayloadIncluded"] = "Eth-Execution-Payload-Included";
|
|
51
51
|
MetaHeader["ExecutionPayloadValue"] = "Eth-Execution-Payload-Value";
|
|
52
|
+
/* Builder API headers */
|
|
53
|
+
MetaHeader["BuilderUrl"] = "Eth-Builder-Url";
|
|
54
|
+
MetaHeader["DateMilliseconds"] = "Date-Milliseconds";
|
|
55
|
+
MetaHeader["TimeoutMs"] = "X-Timeout-Ms";
|
|
52
56
|
/* Lodestar-specific (non-standardized) headers */
|
|
53
57
|
MetaHeader["Finalized"] = "Eth-Consensus-Finalized";
|
|
54
58
|
MetaHeader["DependentRoot"] = "Eth-Consensus-Dependent-Root";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/utils/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAC,UAAU,EAAE,GAAG,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AACrC,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAGtC,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,aAAa,CAAC;IAC3C;;OAEG;IACH,OAAO,EAAE,IAAI,UAAU,EAAY;CACpC,CAAC,CAAC;AACH,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE;IAC7C,OAAO,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,aAAa,CACtD;IACE;;;OAGG;IACH,mBAAmB,EAAE,GAAG,CAAC,OAAO;CACjC,EACD,EAAC,QAAQ,EAAE,MAAM,EAAC,CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,mCAAmC,GAAG,IAAI,aAAa,CAClE;IACE,GAAG,uBAAuB,CAAC,MAAM;IACjC;;OAEG;IACH,SAAS,EAAE,GAAG,CAAC,OAAO;CACvB,EACD,EAAC,QAAQ,EAAE,MAAM,EAAC,CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,IAAI,aAAa,CAChE;IACE,GAAG,uBAAuB,CAAC,MAAM;IACjC,GAAG,WAAW,CAAC,MAAM;CACtB,EACD,EAAC,QAAQ,EAAE,MAAM,EAAC,CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,0CAA0C,GAAG,IAAI,aAAa,CACzE;IACE,GAAG,mCAAmC,CAAC,MAAM;IAC7C,GAAG,WAAW,CAAC,MAAM;CACtB,EACD,EAAC,QAAQ,EAAE,MAAM,EAAC,CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,uCAAuC,GAAG,IAAI,aAAa,CACtE;IACE,GAAG,uBAAuB,CAAC,MAAM;IACjC;;OAEG;IACH,aAAa,EAAE,UAAU;CAC1B,EACD,EAAC,QAAQ,EAAE,MAAM,EAAC,CACnB,CAAC;AASF,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/utils/metadata.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/types.d.ts
CHANGED
|
@@ -87,7 +87,7 @@ export type ResponseDataCodec<T, M> = {
|
|
|
87
87
|
};
|
|
88
88
|
export type ResponseMetadataCodec<T> = {
|
|
89
89
|
toJson: (val: T) => unknown;
|
|
90
|
-
fromJson: (val: unknown) => T;
|
|
90
|
+
fromJson: (val: unknown, headers?: HeadersExtra) => T;
|
|
91
91
|
toHeadersObject: (val: T) => Record<string, string>;
|
|
92
92
|
fromHeaders: (headers: HeadersExtra) => T;
|
|
93
93
|
};
|
package/lib/utils/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.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.47.0
|
|
14
|
+
"version": "1.47.0",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -74,12 +74,12 @@
|
|
|
74
74
|
"check-readme": "pnpm exec tsx ../../scripts/check_readme.ts"
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
|
-
"@chainsafe/persistent-merkle-tree": "^1.3.
|
|
78
|
-
"@chainsafe/ssz": "^1.6.
|
|
79
|
-
"@lodestar/config": "^1.47.0
|
|
80
|
-
"@lodestar/params": "^1.47.0
|
|
81
|
-
"@lodestar/types": "^1.47.0
|
|
82
|
-
"@lodestar/utils": "^1.47.0
|
|
77
|
+
"@chainsafe/persistent-merkle-tree": "^1.3.1",
|
|
78
|
+
"@chainsafe/ssz": "^1.6.3",
|
|
79
|
+
"@lodestar/config": "^1.47.0",
|
|
80
|
+
"@lodestar/params": "^1.47.0",
|
|
81
|
+
"@lodestar/types": "^1.47.0",
|
|
82
|
+
"@lodestar/utils": "^1.47.0",
|
|
83
83
|
"eventsource": "^2.0.2",
|
|
84
84
|
"qs": "^6.14.2"
|
|
85
85
|
},
|
|
@@ -96,5 +96,5 @@
|
|
|
96
96
|
"api",
|
|
97
97
|
"blockchain"
|
|
98
98
|
],
|
|
99
|
-
"gitHead": "
|
|
99
|
+
"gitHead": "450996b13ab305b860acd131c87f799fdbfbabf0"
|
|
100
100
|
}
|
|
@@ -163,8 +163,18 @@ export type Endpoints = {
|
|
|
163
163
|
{
|
|
164
164
|
signedBlockContents: SignedBlockContents;
|
|
165
165
|
broadcastValidation?: BroadcastValidation;
|
|
166
|
+
/**
|
|
167
|
+
* The url of the winning builder as returned by `produceBlockV4`. The beacon node forwards
|
|
168
|
+
* the signed block to this builder so it can help disseminate the block and learn that
|
|
169
|
+
* its bid won without waiting for gossip.
|
|
170
|
+
*/
|
|
171
|
+
builderUrl?: string;
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
body: unknown;
|
|
175
|
+
headers: {[MetaHeader.Version]: string; [MetaHeader.BuilderUrl]?: string};
|
|
176
|
+
query: {broadcast_validation?: string};
|
|
166
177
|
},
|
|
167
|
-
{body: unknown; headers: {[MetaHeader.Version]: string}; query: {broadcast_validation?: string}},
|
|
168
178
|
EmptyResponseData,
|
|
169
179
|
EmptyMeta
|
|
170
180
|
>;
|
|
@@ -345,7 +355,7 @@ export function getDefinitions(config: ChainForkConfig): RouteDefinitions<Endpoi
|
|
|
345
355
|
url: "/eth/v2/beacon/blocks",
|
|
346
356
|
method: "POST",
|
|
347
357
|
req: {
|
|
348
|
-
writeReqJson: ({signedBlockContents, broadcastValidation}) => {
|
|
358
|
+
writeReqJson: ({signedBlockContents, broadcastValidation, builderUrl}) => {
|
|
349
359
|
const slot = signedBlockContents.signedBlock.message.slot;
|
|
350
360
|
const fork = config.getForkName(slot);
|
|
351
361
|
return {
|
|
@@ -359,6 +369,7 @@ export function getDefinitions(config: ChainForkConfig): RouteDefinitions<Endpoi
|
|
|
359
369
|
),
|
|
360
370
|
headers: {
|
|
361
371
|
[MetaHeader.Version]: fork,
|
|
372
|
+
...(builderUrl !== undefined ? {[MetaHeader.BuilderUrl]: builderUrl} : {}),
|
|
362
373
|
},
|
|
363
374
|
query: {broadcast_validation: broadcastValidation},
|
|
364
375
|
};
|
|
@@ -371,9 +382,10 @@ export function getDefinitions(config: ChainForkConfig): RouteDefinitions<Endpoi
|
|
|
371
382
|
? sszTypesFor(forkName).SignedBlockContents.fromJson(body)
|
|
372
383
|
: {signedBlock: ssz[forkName].SignedBeaconBlock.fromJson(body)},
|
|
373
384
|
broadcastValidation: query.broadcast_validation as BroadcastValidation,
|
|
385
|
+
builderUrl: fromHeaders(headers, MetaHeader.BuilderUrl, false),
|
|
374
386
|
};
|
|
375
387
|
},
|
|
376
|
-
writeReqSsz: ({signedBlockContents, broadcastValidation}) => {
|
|
388
|
+
writeReqSsz: ({signedBlockContents, broadcastValidation, builderUrl}) => {
|
|
377
389
|
const slot = signedBlockContents.signedBlock.message.slot;
|
|
378
390
|
const fork = config.getForkName(slot);
|
|
379
391
|
|
|
@@ -388,6 +400,7 @@ export function getDefinitions(config: ChainForkConfig): RouteDefinitions<Endpoi
|
|
|
388
400
|
),
|
|
389
401
|
headers: {
|
|
390
402
|
[MetaHeader.Version]: fork,
|
|
403
|
+
...(builderUrl !== undefined ? {[MetaHeader.BuilderUrl]: builderUrl} : {}),
|
|
391
404
|
},
|
|
392
405
|
query: {broadcast_validation: broadcastValidation},
|
|
393
406
|
};
|
|
@@ -400,12 +413,13 @@ export function getDefinitions(config: ChainForkConfig): RouteDefinitions<Endpoi
|
|
|
400
413
|
? sszTypesFor(forkName).SignedBlockContents.deserialize(body)
|
|
401
414
|
: {signedBlock: ssz[forkName].SignedBeaconBlock.deserialize(body)},
|
|
402
415
|
broadcastValidation: query.broadcast_validation as BroadcastValidation,
|
|
416
|
+
builderUrl: fromHeaders(headers, MetaHeader.BuilderUrl, false),
|
|
403
417
|
};
|
|
404
418
|
},
|
|
405
419
|
schema: {
|
|
406
420
|
body: Schema.Object,
|
|
407
421
|
query: {broadcast_validation: Schema.String},
|
|
408
|
-
headers: {[MetaHeader.Version]: Schema.String},
|
|
422
|
+
headers: {[MetaHeader.Version]: Schema.String, [MetaHeader.BuilderUrl]: Schema.String},
|
|
409
423
|
},
|
|
410
424
|
},
|
|
411
425
|
resp: EmptyResponseCodec,
|
|
@@ -41,7 +41,7 @@ const ProtoNodeType = new ContainerType(
|
|
|
41
41
|
unrealizedFinalizedEpoch: ssz.Epoch,
|
|
42
42
|
unrealizedFinalizedRoot: stringType,
|
|
43
43
|
parent: stringType,
|
|
44
|
-
weight: ssz.
|
|
44
|
+
weight: ssz.Gwei,
|
|
45
45
|
bestChild: stringType,
|
|
46
46
|
bestDescendant: stringType,
|
|
47
47
|
},
|
|
@@ -63,7 +63,7 @@ const ForkChoiceNodeType = new ContainerType(
|
|
|
63
63
|
parentRoot: stringType,
|
|
64
64
|
justifiedEpoch: ssz.Epoch,
|
|
65
65
|
finalizedEpoch: ssz.Epoch,
|
|
66
|
-
weight: ssz.
|
|
66
|
+
weight: ssz.Gwei,
|
|
67
67
|
validity: new StringType<"valid" | "invalid" | "optimistic">(),
|
|
68
68
|
executionBlockHash: stringType,
|
|
69
69
|
},
|
|
@@ -100,7 +100,7 @@ const ForkChoiceNodeV2Type = new ContainerType(
|
|
|
100
100
|
slot: ssz.Slot,
|
|
101
101
|
blockRoot: stringType,
|
|
102
102
|
parentRoot: stringType,
|
|
103
|
-
weight: ssz.
|
|
103
|
+
weight: ssz.Gwei,
|
|
104
104
|
validity: new StringType<"valid" | "invalid" | "optimistic">(),
|
|
105
105
|
executionBlockHash: stringType,
|
|
106
106
|
extraData: ForkChoiceNodeV2ExtraDataType,
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import {ContainerType, Type, ValueOf} from "@chainsafe/ssz";
|
|
1
|
+
import {ByteListType, ContainerType, Type, ValueOf} from "@chainsafe/ssz";
|
|
2
2
|
import {ChainForkConfig} from "@lodestar/config";
|
|
3
3
|
import {
|
|
4
4
|
ForkPostDeneb,
|
|
5
5
|
ForkPostGloas,
|
|
6
6
|
ForkPreDeneb,
|
|
7
|
+
MAX_BUILDER_ENTRIES,
|
|
8
|
+
MAX_BUILDER_PUBKEYS,
|
|
9
|
+
MAX_BUILDER_URL_SIZE,
|
|
7
10
|
MIN_SEED_LOOKAHEAD,
|
|
8
11
|
SLOTS_PER_EPOCH,
|
|
9
12
|
VALIDATOR_REGISTRY_LIMIT,
|
|
@@ -113,7 +116,10 @@ export const ProduceBlockV4MetaType = new ContainerType(
|
|
|
113
116
|
{jsonCase: "eth2"}
|
|
114
117
|
);
|
|
115
118
|
|
|
116
|
-
export type ProduceBlockV4Meta = ValueOf<typeof ProduceBlockV4MetaType
|
|
119
|
+
export type ProduceBlockV4Meta = ValueOf<typeof ProduceBlockV4MetaType> & {
|
|
120
|
+
/** The url of the winning builder when the bid came through the builder API channel */
|
|
121
|
+
builderUrl?: string;
|
|
122
|
+
};
|
|
117
123
|
|
|
118
124
|
export const AttesterDutyType = new ContainerType(
|
|
119
125
|
{
|
|
@@ -264,6 +270,59 @@ export const SignedProposerPreferencesListType = ArrayOf(
|
|
|
264
270
|
(MIN_SEED_LOOKAHEAD + 1) * SLOTS_PER_EPOCH
|
|
265
271
|
);
|
|
266
272
|
|
|
273
|
+
// The url is UTF-8 bytes on the SSZ wire but a plain string in JSON
|
|
274
|
+
class BuilderUrlType extends ByteListType {
|
|
275
|
+
fromJson(json: unknown): Uint8Array {
|
|
276
|
+
if (typeof json !== "string") {
|
|
277
|
+
throw Error("Builder url must be a string");
|
|
278
|
+
}
|
|
279
|
+
const value = new TextEncoder().encode(json);
|
|
280
|
+
if (value.length > this.limitBytes) {
|
|
281
|
+
throw Error(`Builder url must not exceed ${this.limitBytes} bytes`);
|
|
282
|
+
}
|
|
283
|
+
return value;
|
|
284
|
+
}
|
|
285
|
+
toJson(value: Uint8Array): unknown {
|
|
286
|
+
return new TextDecoder("utf8", {fatal: true}).decode(value);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
export const BuilderEntryType = new ContainerType(
|
|
291
|
+
{
|
|
292
|
+
url: new BuilderUrlType(MAX_BUILDER_URL_SIZE),
|
|
293
|
+
auth: ssz.gloas.SignedBuilderRequestAuth,
|
|
294
|
+
builderPubkeys: ArrayOf(ssz.BLSPubkey, MAX_BUILDER_PUBKEYS),
|
|
295
|
+
maxExecutionPayment: ssz.Gwei,
|
|
296
|
+
minBid: ssz.Gwei,
|
|
297
|
+
builderBoostFactor: ssz.UintBn64,
|
|
298
|
+
},
|
|
299
|
+
{typeName: "BuilderEntry", jsonCase: "eth2"}
|
|
300
|
+
);
|
|
301
|
+
|
|
302
|
+
export const BuilderConfigType = new ContainerType(
|
|
303
|
+
{
|
|
304
|
+
minBid: ssz.Gwei,
|
|
305
|
+
builderBoostFactor: ssz.UintBn64,
|
|
306
|
+
builders: ArrayOf(BuilderEntryType, MAX_BUILDER_ENTRIES),
|
|
307
|
+
},
|
|
308
|
+
{typeName: "BuilderConfig", jsonCase: "eth2"}
|
|
309
|
+
);
|
|
310
|
+
|
|
311
|
+
export const BuilderPreferencesEntryType = new ContainerType(
|
|
312
|
+
{
|
|
313
|
+
proposerPubkey: ssz.BLSPubkey,
|
|
314
|
+
url: new BuilderUrlType(MAX_BUILDER_URL_SIZE),
|
|
315
|
+
auth: ssz.gloas.SignedBuilderRequestAuth,
|
|
316
|
+
maxExecutionPayment: ssz.Gwei,
|
|
317
|
+
},
|
|
318
|
+
{typeName: "BuilderPreferencesEntry", jsonCase: "eth2"}
|
|
319
|
+
);
|
|
320
|
+
|
|
321
|
+
export const BuilderPreferencesEntryListType = ArrayOf(
|
|
322
|
+
BuilderPreferencesEntryType,
|
|
323
|
+
MAX_BUILDER_ENTRIES * (MIN_SEED_LOOKAHEAD + 1) * SLOTS_PER_EPOCH
|
|
324
|
+
);
|
|
325
|
+
|
|
267
326
|
export type ValidatorIndices = ValueOf<typeof ValidatorIndicesType>;
|
|
268
327
|
export type AttesterDuty = ValueOf<typeof AttesterDutyType>;
|
|
269
328
|
export type AttesterDutyList = ValueOf<typeof AttesterDutyListType>;
|
|
@@ -291,6 +350,10 @@ export type LivenessResponseData = ValueOf<typeof LivenessResponseDataType>;
|
|
|
291
350
|
export type LivenessResponseDataList = ValueOf<typeof LivenessResponseDataListType>;
|
|
292
351
|
export type SignedValidatorRegistrationV1List = ValueOf<typeof SignedValidatorRegistrationV1ListType>;
|
|
293
352
|
export type SignedProposerPreferencesList = ValueOf<typeof SignedProposerPreferencesListType>;
|
|
353
|
+
export type BuilderEntry = ValueOf<typeof BuilderEntryType>;
|
|
354
|
+
export type BuilderConfig = ValueOf<typeof BuilderConfigType>;
|
|
355
|
+
export type BuilderPreferencesEntry = ValueOf<typeof BuilderPreferencesEntryType>;
|
|
356
|
+
export type BuilderPreferencesEntryList = ValueOf<typeof BuilderPreferencesEntryListType>;
|
|
294
357
|
|
|
295
358
|
// The beacon node does not return any data if there is no canonical block at the requested slot (missed slot).
|
|
296
359
|
// In this case, we receive a success response (204) which is not handled as an error. The generic response
|
|
@@ -433,6 +496,9 @@ export type Endpoints = {
|
|
|
433
496
|
* so there is no longer a concept of blinded or unblinded blocks. Builders release the payload later.
|
|
434
497
|
* This endpoint is specific to the post-Gloas forks and is not backwards compatible with previous forks.
|
|
435
498
|
*
|
|
499
|
+
* The required `BuilderConfig` request body carries the builder entries to solicit builder API
|
|
500
|
+
* bids from, plus the top-level `minBid` and `builderBoostFactor` that apply to p2p bids.
|
|
501
|
+
*
|
|
436
502
|
* When self-building and `includePayload` is true, the response contains the full `BlockContents`
|
|
437
503
|
* (block, execution payload envelope, KZG proofs and blobs) which enables stateless envelope
|
|
438
504
|
* publishing via any beacon node. When `includePayload` is false, only the `BeaconBlock` is
|
|
@@ -440,7 +506,7 @@ export type Endpoints = {
|
|
|
440
506
|
* When committing to a builder bid, only the `BeaconBlock` is returned in either case.
|
|
441
507
|
*/
|
|
442
508
|
produceBlockV4: Endpoint<
|
|
443
|
-
"
|
|
509
|
+
"POST",
|
|
444
510
|
{
|
|
445
511
|
/** The slot for which the block should be proposed */
|
|
446
512
|
slot: Slot;
|
|
@@ -449,9 +515,9 @@ export type Endpoints = {
|
|
|
449
515
|
/** Arbitrary data validator wants to include in block */
|
|
450
516
|
graffiti?: string;
|
|
451
517
|
skipRandaoVerification?: boolean;
|
|
452
|
-
builderBoostFactor?: UintBn64;
|
|
453
518
|
/** Include execution payload envelope and blobs in the response when self-building */
|
|
454
519
|
includePayload: boolean;
|
|
520
|
+
builderConfig: BuilderConfig;
|
|
455
521
|
} & ExtraProduceBlockV4Opts,
|
|
456
522
|
{
|
|
457
523
|
params: {slot: number};
|
|
@@ -460,10 +526,11 @@ export type Endpoints = {
|
|
|
460
526
|
graffiti?: string;
|
|
461
527
|
skip_randao_verification?: string;
|
|
462
528
|
fee_recipient?: string;
|
|
463
|
-
builder_boost_factor?: string;
|
|
464
529
|
strict_fee_recipient_check?: boolean;
|
|
465
530
|
include_payload: boolean;
|
|
466
531
|
};
|
|
532
|
+
body: unknown;
|
|
533
|
+
headers: {[MetaHeader.Version]: string};
|
|
467
534
|
},
|
|
468
535
|
BeaconBlock<ForkPostGloas> | BlockContents<ForkPostGloas>,
|
|
469
536
|
ProduceBlockV4Meta
|
|
@@ -693,6 +760,19 @@ export type Endpoints = {
|
|
|
693
760
|
EmptyResponseData,
|
|
694
761
|
EmptyMeta
|
|
695
762
|
>;
|
|
763
|
+
|
|
764
|
+
/**
|
|
765
|
+
* Submit per-builder preferences for one or more proposers ahead of their proposal slot.
|
|
766
|
+
* The beacon node submits each entry to the builder API endpoint at the entry's url so
|
|
767
|
+
* builders hold the preferences before the bid request arrives.
|
|
768
|
+
*/
|
|
769
|
+
submitBuilderPreferences: Endpoint<
|
|
770
|
+
"POST",
|
|
771
|
+
{builderPreferences: BuilderPreferencesEntryList},
|
|
772
|
+
{body: unknown; headers: {[MetaHeader.Version]: string}},
|
|
773
|
+
EmptyResponseData,
|
|
774
|
+
EmptyMeta
|
|
775
|
+
>;
|
|
696
776
|
};
|
|
697
777
|
|
|
698
778
|
export function getDefinitions(config: ChainForkConfig): RouteDefinitions<Endpoints> {
|
|
@@ -915,17 +995,17 @@ export function getDefinitions(config: ChainForkConfig): RouteDefinitions<Endpoi
|
|
|
915
995
|
},
|
|
916
996
|
produceBlockV4: {
|
|
917
997
|
url: "/eth/v4/validator/blocks/{slot}",
|
|
918
|
-
method: "
|
|
998
|
+
method: "POST",
|
|
919
999
|
req: {
|
|
920
|
-
|
|
1000
|
+
writeReqJson: ({
|
|
921
1001
|
slot,
|
|
922
1002
|
randaoReveal,
|
|
923
1003
|
graffiti,
|
|
924
1004
|
skipRandaoVerification,
|
|
925
1005
|
feeRecipient,
|
|
926
|
-
builderBoostFactor,
|
|
927
1006
|
strictFeeRecipientCheck,
|
|
928
1007
|
includePayload,
|
|
1008
|
+
builderConfig,
|
|
929
1009
|
}) => ({
|
|
930
1010
|
params: {slot},
|
|
931
1011
|
query: {
|
|
@@ -933,21 +1013,60 @@ export function getDefinitions(config: ChainForkConfig): RouteDefinitions<Endpoi
|
|
|
933
1013
|
graffiti: toGraffitiHex(graffiti),
|
|
934
1014
|
skip_randao_verification: writeSkipRandaoVerification(skipRandaoVerification),
|
|
935
1015
|
fee_recipient: feeRecipient,
|
|
936
|
-
builder_boost_factor: builderBoostFactor?.toString(),
|
|
937
1016
|
strict_fee_recipient_check: strictFeeRecipientCheck,
|
|
938
1017
|
include_payload: includePayload,
|
|
939
1018
|
},
|
|
1019
|
+
body: BuilderConfigType.toJson(builderConfig),
|
|
1020
|
+
headers: {[MetaHeader.Version]: config.getForkName(slot)},
|
|
940
1021
|
}),
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
1022
|
+
parseReqJson: ({params, query, body, headers}) => {
|
|
1023
|
+
toForkName(fromHeaders(headers, MetaHeader.Version));
|
|
1024
|
+
return {
|
|
1025
|
+
slot: params.slot,
|
|
1026
|
+
randaoReveal: fromHex(query.randao_reveal),
|
|
1027
|
+
graffiti: fromGraffitiHex(query.graffiti),
|
|
1028
|
+
skipRandaoVerification: parseSkipRandaoVerification(query.skip_randao_verification),
|
|
1029
|
+
feeRecipient: query.fee_recipient,
|
|
1030
|
+
strictFeeRecipientCheck: query.strict_fee_recipient_check,
|
|
1031
|
+
includePayload: query.include_payload,
|
|
1032
|
+
builderConfig: BuilderConfigType.fromJson(body),
|
|
1033
|
+
};
|
|
1034
|
+
},
|
|
1035
|
+
writeReqSsz: ({
|
|
1036
|
+
slot,
|
|
1037
|
+
randaoReveal,
|
|
1038
|
+
graffiti,
|
|
1039
|
+
skipRandaoVerification,
|
|
1040
|
+
feeRecipient,
|
|
1041
|
+
strictFeeRecipientCheck,
|
|
1042
|
+
includePayload,
|
|
1043
|
+
builderConfig,
|
|
1044
|
+
}) => ({
|
|
1045
|
+
params: {slot},
|
|
1046
|
+
query: {
|
|
1047
|
+
randao_reveal: toHex(randaoReveal),
|
|
1048
|
+
graffiti: toGraffitiHex(graffiti),
|
|
1049
|
+
skip_randao_verification: writeSkipRandaoVerification(skipRandaoVerification),
|
|
1050
|
+
fee_recipient: feeRecipient,
|
|
1051
|
+
strict_fee_recipient_check: strictFeeRecipientCheck,
|
|
1052
|
+
include_payload: includePayload,
|
|
1053
|
+
},
|
|
1054
|
+
body: BuilderConfigType.serialize(builderConfig),
|
|
1055
|
+
headers: {[MetaHeader.Version]: config.getForkName(slot)},
|
|
950
1056
|
}),
|
|
1057
|
+
parseReqSsz: ({params, query, body, headers}) => {
|
|
1058
|
+
toForkName(fromHeaders(headers, MetaHeader.Version));
|
|
1059
|
+
return {
|
|
1060
|
+
slot: params.slot,
|
|
1061
|
+
randaoReveal: fromHex(query.randao_reveal),
|
|
1062
|
+
graffiti: fromGraffitiHex(query.graffiti),
|
|
1063
|
+
skipRandaoVerification: parseSkipRandaoVerification(query.skip_randao_verification),
|
|
1064
|
+
feeRecipient: query.fee_recipient,
|
|
1065
|
+
strictFeeRecipientCheck: query.strict_fee_recipient_check,
|
|
1066
|
+
includePayload: query.include_payload,
|
|
1067
|
+
builderConfig: BuilderConfigType.deserialize(body),
|
|
1068
|
+
};
|
|
1069
|
+
},
|
|
951
1070
|
schema: {
|
|
952
1071
|
params: {slot: Schema.UintRequired},
|
|
953
1072
|
query: {
|
|
@@ -955,12 +1074,16 @@ export function getDefinitions(config: ChainForkConfig): RouteDefinitions<Endpoi
|
|
|
955
1074
|
graffiti: Schema.String,
|
|
956
1075
|
skip_randao_verification: Schema.String,
|
|
957
1076
|
fee_recipient: Schema.String,
|
|
958
|
-
builder_boost_factor: Schema.String,
|
|
959
1077
|
strict_fee_recipient_check: Schema.Boolean,
|
|
960
1078
|
include_payload: Schema.BooleanRequired,
|
|
961
1079
|
},
|
|
1080
|
+
body: Schema.Object,
|
|
1081
|
+
headers: {[MetaHeader.Version]: Schema.String},
|
|
962
1082
|
},
|
|
963
1083
|
},
|
|
1084
|
+
init: {
|
|
1085
|
+
requestWireFormat: WireFormat.ssz,
|
|
1086
|
+
},
|
|
964
1087
|
resp: {
|
|
965
1088
|
data: WithMeta(
|
|
966
1089
|
({version, executionPayloadIncluded}) =>
|
|
@@ -972,18 +1095,23 @@ export function getDefinitions(config: ChainForkConfig): RouteDefinitions<Endpoi
|
|
|
972
1095
|
),
|
|
973
1096
|
meta: {
|
|
974
1097
|
toJson: (meta) => ProduceBlockV4MetaType.toJson(meta),
|
|
975
|
-
fromJson: (val) =>
|
|
1098
|
+
fromJson: (val, headers) => ({
|
|
1099
|
+
...ProduceBlockV4MetaType.fromJson(val),
|
|
1100
|
+
builderUrl: headers?.get(MetaHeader.BuilderUrl) ?? undefined,
|
|
1101
|
+
}),
|
|
976
1102
|
toHeadersObject: (meta) => ({
|
|
977
1103
|
[MetaHeader.Version]: meta.version,
|
|
978
1104
|
[MetaHeader.ConsensusBlockValue]: meta.consensusBlockValue.toString(),
|
|
979
1105
|
[MetaHeader.ExecutionPayloadValue]: meta.executionPayloadValue.toString(),
|
|
980
1106
|
[MetaHeader.ExecutionPayloadIncluded]: meta.executionPayloadIncluded.toString(),
|
|
1107
|
+
...(meta.builderUrl !== undefined ? {[MetaHeader.BuilderUrl]: meta.builderUrl} : {}),
|
|
981
1108
|
}),
|
|
982
1109
|
fromHeaders: (headers) => ({
|
|
983
1110
|
version: toForkName(headers.getRequired(MetaHeader.Version)),
|
|
984
1111
|
consensusBlockValue: BigInt(headers.getRequired(MetaHeader.ConsensusBlockValue)),
|
|
985
1112
|
executionPayloadValue: BigInt(headers.getRequired(MetaHeader.ExecutionPayloadValue)),
|
|
986
1113
|
executionPayloadIncluded: toBoolean(headers.getRequired(MetaHeader.ExecutionPayloadIncluded)),
|
|
1114
|
+
builderUrl: headers.get(MetaHeader.BuilderUrl) ?? undefined,
|
|
987
1115
|
}),
|
|
988
1116
|
},
|
|
989
1117
|
},
|
|
@@ -1295,6 +1423,36 @@ export function getDefinitions(config: ChainForkConfig): RouteDefinitions<Endpoi
|
|
|
1295
1423
|
},
|
|
1296
1424
|
resp: EmptyResponseCodec,
|
|
1297
1425
|
},
|
|
1426
|
+
submitBuilderPreferences: {
|
|
1427
|
+
url: "/eth/v1/validator/builder_preferences",
|
|
1428
|
+
method: "POST",
|
|
1429
|
+
req: {
|
|
1430
|
+
writeReqJson: ({builderPreferences}) => ({
|
|
1431
|
+
body: BuilderPreferencesEntryListType.toJson(builderPreferences),
|
|
1432
|
+
headers: {[MetaHeader.Version]: config.getForkName(builderPreferences[0]?.auth.message.slot ?? 0)},
|
|
1433
|
+
}),
|
|
1434
|
+
parseReqJson: ({body, headers}) => {
|
|
1435
|
+
toForkName(fromHeaders(headers, MetaHeader.Version));
|
|
1436
|
+
return {builderPreferences: BuilderPreferencesEntryListType.fromJson(body)};
|
|
1437
|
+
},
|
|
1438
|
+
writeReqSsz: ({builderPreferences}) => ({
|
|
1439
|
+
body: BuilderPreferencesEntryListType.serialize(builderPreferences),
|
|
1440
|
+
headers: {[MetaHeader.Version]: config.getForkName(builderPreferences[0]?.auth.message.slot ?? 0)},
|
|
1441
|
+
}),
|
|
1442
|
+
parseReqSsz: ({body, headers}) => {
|
|
1443
|
+
toForkName(fromHeaders(headers, MetaHeader.Version));
|
|
1444
|
+
return {builderPreferences: BuilderPreferencesEntryListType.deserialize(body)};
|
|
1445
|
+
},
|
|
1446
|
+
schema: {
|
|
1447
|
+
body: Schema.ObjectArray,
|
|
1448
|
+
headers: {[MetaHeader.Version]: Schema.String},
|
|
1449
|
+
},
|
|
1450
|
+
},
|
|
1451
|
+
resp: EmptyResponseCodec,
|
|
1452
|
+
init: {
|
|
1453
|
+
requestWireFormat: WireFormat.ssz,
|
|
1454
|
+
},
|
|
1455
|
+
},
|
|
1298
1456
|
};
|
|
1299
1457
|
}
|
|
1300
1458
|
|
|
@@ -42,10 +42,15 @@ export function getRoutes(config: ChainForkConfig, methods: ApplicationMethods<E
|
|
|
42
42
|
topics: req.query.topics,
|
|
43
43
|
signal: controller.signal,
|
|
44
44
|
onEvent: (event) => {
|
|
45
|
+
// Serialization is per event and must not tear down the stream. Throwing here is
|
|
46
|
+
// handled by the caller which logs it and keeps the subscription alive, the client
|
|
47
|
+
// only misses this single event instead of silently losing the whole stream.
|
|
48
|
+
const data = eventSerdes.toJson(event);
|
|
49
|
+
|
|
45
50
|
try {
|
|
46
|
-
const data = eventSerdes.toJson(event);
|
|
47
51
|
res.raw.write(serializeSSEEvent({event: event.type, data}));
|
|
48
52
|
} catch (e) {
|
|
53
|
+
// The connection itself is broken, there is no way to recover it
|
|
49
54
|
reject(e);
|
|
50
55
|
}
|
|
51
56
|
},
|
|
@@ -58,10 +63,12 @@ export function getRoutes(config: ChainForkConfig, methods: ApplicationMethods<E
|
|
|
58
63
|
req.socket.once("close", () => resolve());
|
|
59
64
|
req.socket.once("end", () => resolve());
|
|
60
65
|
});
|
|
61
|
-
|
|
62
|
-
// api.eventstream will never stop, so no need to ever call `res.raw.end();`
|
|
63
66
|
} finally {
|
|
64
67
|
controller.abort();
|
|
68
|
+
// Always end the response. If an error is thrown after the headers were sent, fastify can
|
|
69
|
+
// no longer write a status code and would leave the socket open, the client then waits
|
|
70
|
+
// forever on a stream that will never emit another event.
|
|
71
|
+
if (!res.raw.writableEnded && !res.raw.destroyed) res.raw.end();
|
|
65
72
|
}
|
|
66
73
|
},
|
|
67
74
|
},
|