@lodestar/api 1.20.0-dev.f6d3bce802 → 1.20.0-dev.fe23f68998

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 (228) hide show
  1. package/README.md +2 -2
  2. package/lib/beacon/client/beacon.d.ts +4 -3
  3. package/lib/beacon/client/beacon.js +3 -36
  4. package/lib/beacon/client/beacon.js.map +1 -1
  5. package/lib/beacon/client/config.d.ts +4 -3
  6. package/lib/beacon/client/config.js +3 -6
  7. package/lib/beacon/client/config.js.map +1 -1
  8. package/lib/beacon/client/debug.d.ts +4 -3
  9. package/lib/beacon/client/debug.js +4 -45
  10. package/lib/beacon/client/debug.js.map +1 -1
  11. package/lib/beacon/client/events.d.ts +5 -2
  12. package/lib/beacon/client/events.js +33 -35
  13. package/lib/beacon/client/events.js.map +1 -1
  14. package/lib/beacon/client/index.d.ts +6 -3
  15. package/lib/beacon/client/index.js +2 -2
  16. package/lib/beacon/client/index.js.map +1 -1
  17. package/lib/beacon/client/lightclient.d.ts +4 -3
  18. package/lib/beacon/client/lightclient.js +4 -7
  19. package/lib/beacon/client/lightclient.js.map +1 -1
  20. package/lib/beacon/client/lodestar.d.ts +4 -3
  21. package/lib/beacon/client/lodestar.js +4 -7
  22. package/lib/beacon/client/lodestar.js.map +1 -1
  23. package/lib/beacon/client/node.d.ts +4 -3
  24. package/lib/beacon/client/node.js +4 -7
  25. package/lib/beacon/client/node.js.map +1 -1
  26. package/lib/beacon/client/proof.d.ts +5 -4
  27. package/lib/beacon/client/proof.js +5 -61
  28. package/lib/beacon/client/proof.js.map +1 -1
  29. package/lib/beacon/client/validator.d.ts +4 -3
  30. package/lib/beacon/client/validator.js +4 -7
  31. package/lib/beacon/client/validator.js.map +1 -1
  32. package/lib/beacon/index.d.ts +5 -5
  33. package/lib/beacon/index.js.map +1 -1
  34. package/lib/beacon/routes/beacon/block.d.ts +286 -167
  35. package/lib/beacon/routes/beacon/block.js +317 -117
  36. package/lib/beacon/routes/beacon/block.js.map +1 -1
  37. package/lib/beacon/routes/beacon/index.d.ts +6 -588
  38. package/lib/beacon/routes/beacon/index.js +16 -26
  39. package/lib/beacon/routes/beacon/index.js.map +1 -1
  40. package/lib/beacon/routes/beacon/pool.d.ts +155 -117
  41. package/lib/beacon/routes/beacon/pool.js +146 -42
  42. package/lib/beacon/routes/beacon/pool.js.map +1 -1
  43. package/lib/beacon/routes/beacon/rewards.d.ts +113 -101
  44. package/lib/beacon/routes/beacon/rewards.js +98 -63
  45. package/lib/beacon/routes/beacon/rewards.js.map +1 -1
  46. package/lib/beacon/routes/beacon/state.d.ts +172 -226
  47. package/lib/beacon/routes/beacon/state.js +204 -126
  48. package/lib/beacon/routes/beacon/state.js.map +1 -1
  49. package/lib/beacon/routes/config.d.ts +21 -36
  50. package/lib/beacon/routes/config.js +45 -24
  51. package/lib/beacon/routes/config.js.map +1 -1
  52. package/lib/beacon/routes/debug.d.ts +22 -104
  53. package/lib/beacon/routes/debug.js +53 -45
  54. package/lib/beacon/routes/debug.js.map +1 -1
  55. package/lib/beacon/routes/events.d.ts +24 -20
  56. package/lib/beacon/routes/events.js +40 -18
  57. package/lib/beacon/routes/events.js.map +1 -1
  58. package/lib/beacon/routes/index.d.ts +19 -19
  59. package/lib/beacon/routes/index.js +1 -0
  60. package/lib/beacon/routes/index.js.map +1 -1
  61. package/lib/beacon/routes/lightclient.d.ts +34 -56
  62. package/lib/beacon/routes/lightclient.js +108 -48
  63. package/lib/beacon/routes/lightclient.js.map +1 -1
  64. package/lib/beacon/routes/lodestar.d.ts +74 -148
  65. package/lib/beacon/routes/lodestar.js +126 -77
  66. package/lib/beacon/routes/lodestar.js.map +1 -1
  67. package/lib/beacon/routes/node.d.ts +48 -82
  68. package/lib/beacon/routes/node.js +90 -57
  69. package/lib/beacon/routes/node.js.map +1 -1
  70. package/lib/beacon/routes/proof.d.ts +25 -31
  71. package/lib/beacon/routes/proof.js +44 -24
  72. package/lib/beacon/routes/proof.js.map +1 -1
  73. package/lib/beacon/routes/validator.d.ts +524 -325
  74. package/lib/beacon/routes/validator.js +468 -213
  75. package/lib/beacon/routes/validator.js.map +1 -1
  76. package/lib/beacon/server/beacon.d.ts +3 -4
  77. package/lib/beacon/server/beacon.js +4 -57
  78. package/lib/beacon/server/beacon.js.map +1 -1
  79. package/lib/beacon/server/config.d.ts +3 -4
  80. package/lib/beacon/server/config.js +4 -5
  81. package/lib/beacon/server/config.js.map +1 -1
  82. package/lib/beacon/server/debug.d.ts +3 -4
  83. package/lib/beacon/server/debug.js +4 -54
  84. package/lib/beacon/server/debug.js.map +1 -1
  85. package/lib/beacon/server/events.d.ts +4 -4
  86. package/lib/beacon/server/events.js +17 -23
  87. package/lib/beacon/server/events.js.map +1 -1
  88. package/lib/beacon/server/index.d.ts +7 -8
  89. package/lib/beacon/server/index.js +13 -14
  90. package/lib/beacon/server/index.js.map +1 -1
  91. package/lib/beacon/server/lightclient.d.ts +3 -4
  92. package/lib/beacon/server/lightclient.js +4 -5
  93. package/lib/beacon/server/lightclient.js.map +1 -1
  94. package/lib/beacon/server/lodestar.d.ts +3 -4
  95. package/lib/beacon/server/lodestar.js +4 -5
  96. package/lib/beacon/server/lodestar.js.map +1 -1
  97. package/lib/beacon/server/node.d.ts +3 -4
  98. package/lib/beacon/server/node.js +4 -18
  99. package/lib/beacon/server/node.js.map +1 -1
  100. package/lib/beacon/server/proof.d.ts +3 -4
  101. package/lib/beacon/server/proof.js +4 -36
  102. package/lib/beacon/server/proof.js.map +1 -1
  103. package/lib/beacon/server/validator.d.ts +3 -4
  104. package/lib/beacon/server/validator.js +4 -21
  105. package/lib/beacon/server/validator.js.map +1 -1
  106. package/lib/builder/client.d.ts +4 -6
  107. package/lib/builder/client.js +3 -9
  108. package/lib/builder/client.js.map +1 -1
  109. package/lib/builder/index.d.ts +8 -5
  110. package/lib/builder/index.js +4 -1
  111. package/lib/builder/index.js.map +1 -1
  112. package/lib/builder/routes.d.ts +25 -39
  113. package/lib/builder/routes.js +78 -34
  114. package/lib/builder/routes.js.map +1 -1
  115. package/lib/builder/server/index.d.ts +6 -6
  116. package/lib/builder/server/index.js +7 -8
  117. package/lib/builder/server/index.js.map +1 -1
  118. package/lib/index.d.ts +9 -6
  119. package/lib/index.js +5 -4
  120. package/lib/index.js.map +1 -1
  121. package/lib/keymanager/client.d.ts +4 -3
  122. package/lib/keymanager/client.js +4 -7
  123. package/lib/keymanager/client.js.map +1 -1
  124. package/lib/keymanager/index.d.ts +5 -4
  125. package/lib/keymanager/index.js +1 -1
  126. package/lib/keymanager/index.js.map +1 -1
  127. package/lib/keymanager/routes.d.ts +155 -177
  128. package/lib/keymanager/routes.js +236 -123
  129. package/lib/keymanager/routes.js.map +1 -1
  130. package/lib/keymanager/server/index.d.ts +6 -6
  131. package/lib/keymanager/server/index.js +7 -8
  132. package/lib/keymanager/server/index.js.map +1 -1
  133. package/lib/server/index.d.ts +2 -0
  134. package/lib/server/index.js +3 -0
  135. package/lib/server/index.js.map +1 -0
  136. package/lib/utils/client/error.d.ts +6 -0
  137. package/lib/utils/client/error.js +8 -0
  138. package/lib/utils/client/error.js.map +1 -0
  139. package/lib/utils/client/httpClient.d.ts +35 -75
  140. package/lib/utils/client/httpClient.js +201 -153
  141. package/lib/utils/client/httpClient.js.map +1 -1
  142. package/lib/utils/client/index.d.ts +6 -2
  143. package/lib/utils/client/index.js +6 -2
  144. package/lib/utils/client/index.js.map +1 -1
  145. package/lib/utils/client/method.d.ts +11 -0
  146. package/lib/utils/client/method.js +27 -0
  147. package/lib/utils/client/method.js.map +1 -0
  148. package/lib/utils/client/request.d.ts +33 -0
  149. package/lib/utils/client/request.js +66 -0
  150. package/lib/utils/client/request.js.map +1 -0
  151. package/lib/utils/client/response.d.ts +36 -0
  152. package/lib/utils/client/response.js +167 -0
  153. package/lib/utils/client/response.js.map +1 -0
  154. package/lib/utils/codecs.d.ts +28 -0
  155. package/lib/utils/codecs.js +105 -0
  156. package/lib/utils/codecs.js.map +1 -0
  157. package/lib/utils/fork.d.ts +7 -0
  158. package/lib/utils/fork.js +29 -0
  159. package/lib/utils/fork.js.map +1 -0
  160. package/lib/utils/headers.d.ts +37 -0
  161. package/lib/utils/headers.js +134 -0
  162. package/lib/utils/headers.js.map +1 -0
  163. package/lib/utils/httpStatusCode.js.map +1 -0
  164. package/lib/utils/index.d.ts +1 -1
  165. package/lib/utils/index.js +1 -1
  166. package/lib/utils/index.js.map +1 -1
  167. package/lib/utils/metadata.d.ts +88 -0
  168. package/lib/utils/metadata.js +126 -0
  169. package/lib/utils/metadata.js.map +1 -0
  170. package/lib/utils/schema.d.ts +31 -17
  171. package/lib/utils/schema.js +18 -6
  172. package/lib/utils/schema.js.map +1 -1
  173. package/lib/utils/serdes.d.ts +3 -0
  174. package/lib/utils/serdes.js +13 -0
  175. package/lib/utils/serdes.js.map +1 -1
  176. package/lib/utils/server/{errors.d.ts → error.d.ts} +2 -2
  177. package/lib/utils/server/{errors.js → error.js} +1 -1
  178. package/lib/utils/server/error.js.map +1 -0
  179. package/lib/utils/server/handler.d.ts +11 -0
  180. package/lib/utils/server/handler.js +115 -0
  181. package/lib/utils/server/handler.js.map +1 -0
  182. package/lib/utils/server/index.d.ts +5 -4
  183. package/lib/utils/server/index.js +5 -4
  184. package/lib/utils/server/index.js.map +1 -1
  185. package/lib/utils/server/method.d.ts +35 -0
  186. package/lib/utils/server/method.js +2 -0
  187. package/lib/utils/server/method.js.map +1 -0
  188. package/lib/utils/server/parser.d.ts +3 -0
  189. package/lib/utils/server/parser.js +20 -0
  190. package/lib/utils/server/parser.js.map +1 -0
  191. package/lib/utils/server/route.d.ts +20 -0
  192. package/lib/utils/server/route.js +19 -0
  193. package/lib/utils/server/route.js.map +1 -0
  194. package/lib/utils/types.d.ts +116 -104
  195. package/lib/utils/types.js +2 -155
  196. package/lib/utils/types.js.map +1 -1
  197. package/lib/utils/urlFormat.d.ts +2 -2
  198. package/lib/utils/urlFormat.js +3 -3
  199. package/lib/utils/urlFormat.js.map +1 -1
  200. package/lib/utils/wireFormat.d.ts +8 -0
  201. package/lib/utils/wireFormat.js +23 -0
  202. package/lib/utils/wireFormat.js.map +1 -0
  203. package/package.json +9 -6
  204. package/lib/interfaces.d.ts +0 -44
  205. package/lib/interfaces.js +0 -2
  206. package/lib/interfaces.js.map +0 -1
  207. package/lib/utils/acceptHeader.d.ts +0 -9
  208. package/lib/utils/acceptHeader.js +0 -62
  209. package/lib/utils/acceptHeader.js.map +0 -1
  210. package/lib/utils/client/client.d.ts +0 -29
  211. package/lib/utils/client/client.js +0 -88
  212. package/lib/utils/client/client.js.map +0 -1
  213. package/lib/utils/client/httpStatusCode.js.map +0 -1
  214. package/lib/utils/routes.d.ts +0 -6
  215. package/lib/utils/routes.js +0 -31
  216. package/lib/utils/routes.js.map +0 -1
  217. package/lib/utils/server/errors.js.map +0 -1
  218. package/lib/utils/server/genericJsonServer.d.ts +0 -13
  219. package/lib/utils/server/genericJsonServer.js +0 -32
  220. package/lib/utils/server/genericJsonServer.js.map +0 -1
  221. package/lib/utils/server/registerRoute.d.ts +0 -3
  222. package/lib/utils/server/registerRoute.js +0 -13
  223. package/lib/utils/server/registerRoute.js.map +0 -1
  224. package/lib/utils/server/types.d.ts +0 -22
  225. package/lib/utils/server/types.js +0 -2
  226. package/lib/utils/server/types.js.map +0 -1
  227. /package/lib/utils/{client/httpStatusCode.d.ts → httpStatusCode.d.ts} +0 -0
  228. /package/lib/utils/{client/httpStatusCode.js → httpStatusCode.js} +0 -0
@@ -1,12 +1,31 @@
1
- import { ContainerType } from "@chainsafe/ssz";
2
- import { ssz, isSignedBlockContents } from "@lodestar/types";
3
- import { ArrayOf, Schema, WithVersion, reqOnlyBody, ContainerDataExecutionOptimistic, WithExecutionOptimistic, ContainerData, WithFinalized, } from "../../../utils/index.js";
4
- import { HttpStatusCode } from "../../../utils/client/httpStatusCode.js";
5
- import { parseAcceptHeader, writeAcceptHeader } from "../../../utils/acceptHeader.js";
6
- import { allForksSignedBlockContentsReqSerializer } from "../../../utils/routes.js";
1
+ /* eslint-disable @typescript-eslint/naming-convention */
2
+ import { ContainerType, ListCompositeType } from "@chainsafe/ssz";
3
+ import { ssz, isSignedBlockContents, } from "@lodestar/types";
4
+ import { ForkSeq, isForkExecution } from "@lodestar/params";
5
+ import { Schema } from "../../../utils/index.js";
6
+ import { EmptyResponseCodec, WithVersion } from "../../../utils/codecs.js";
7
+ import { ExecutionOptimisticAndFinalizedCodec, ExecutionOptimisticFinalizedAndVersionCodec, MetaHeader, } from "../../../utils/metadata.js";
8
+ import { getExecutionForkTypes, toForkName } from "../../../utils/fork.js";
9
+ import { fromHeaders } from "../../../utils/headers.js";
10
+ import { WireFormat } from "../../../utils/wireFormat.js";
11
+ // See /packages/api/src/routes/index.ts for reasoning and instructions to add new routes
12
+ export const BlockHeaderResponseType = new ContainerType({
13
+ root: ssz.Root,
14
+ canonical: ssz.Boolean,
15
+ header: ssz.phase0.SignedBeaconBlockHeader,
16
+ });
17
+ export const BlockHeadersResponseType = new ListCompositeType(BlockHeaderResponseType, 1000);
18
+ export const RootResponseType = new ContainerType({
19
+ root: ssz.Root,
20
+ });
21
+ export const SignedBlockContentsType = new ContainerType({
22
+ signedBlock: ssz.deneb.SignedBeaconBlock,
23
+ kzgProofs: ssz.deneb.KZGProofs,
24
+ blobs: ssz.deneb.Blobs,
25
+ }, { jsonCase: "eth2" });
7
26
  export var BroadcastValidation;
8
27
  (function (BroadcastValidation) {
9
- /*
28
+ /**
10
29
  NOTE: The value `none` is not part of the spec.
11
30
 
12
31
  In case a node is configured only with the unknownBlockSync, it needs to know the unknown parent blocks on the network
@@ -18,129 +37,310 @@ export var BroadcastValidation;
18
37
  BroadcastValidation["consensus"] = "consensus";
19
38
  BroadcastValidation["consensusAndEquivocation"] = "consensus_and_equivocation";
20
39
  })(BroadcastValidation || (BroadcastValidation = {}));
21
- /**
22
- * Define javascript values for each route
23
- */
24
- export const routesData = {
25
- getBlock: { url: "/eth/v1/beacon/blocks/{block_id}", method: "GET" },
26
- getBlockV2: { url: "/eth/v2/beacon/blocks/{block_id}", method: "GET" },
27
- getBlockAttestations: { url: "/eth/v1/beacon/blocks/{block_id}/attestations", method: "GET" },
28
- getBlockHeader: { url: "/eth/v1/beacon/headers/{block_id}", method: "GET" },
29
- getBlockHeaders: { url: "/eth/v1/beacon/headers", method: "GET" },
30
- getBlockRoot: { url: "/eth/v1/beacon/blocks/{block_id}/root", method: "GET" },
31
- publishBlock: { url: "/eth/v1/beacon/blocks", method: "POST" },
32
- publishBlockV2: { url: "/eth/v2/beacon/blocks", method: "POST" },
33
- publishBlindedBlock: { url: "/eth/v1/beacon/blinded_blocks", method: "POST" },
34
- publishBlindedBlockV2: { url: "/eth/v2/beacon/blinded_blocks", method: "POST" },
35
- getBlobSidecars: { url: "/eth/v1/beacon/blob_sidecars/{block_id}", method: "GET" },
40
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
+ const blockIdOnlyReq = {
42
+ writeReq: ({ blockId }) => ({ params: { block_id: blockId.toString() } }),
43
+ parseReq: ({ params }) => ({ blockId: params.block_id }),
44
+ schema: { params: { block_id: Schema.StringRequired } },
36
45
  };
37
- export function getReqSerializers(config) {
38
- const blockIdOnlyReq = {
39
- writeReq: (block_id) => ({ params: { block_id: String(block_id) } }),
40
- parseReq: ({ params }) => [params.block_id],
41
- schema: { params: { block_id: Schema.StringRequired } },
42
- };
43
- const getBlockReq = {
44
- writeReq: (block_id, format) => ({
45
- params: { block_id: String(block_id) },
46
- headers: { accept: writeAcceptHeader(format) },
47
- }),
48
- parseReq: ({ params, headers }) => [params.block_id, parseAcceptHeader(headers.accept)],
49
- schema: { params: { block_id: Schema.StringRequired } },
50
- };
51
- // Compute block type from JSON payload. See https://github.com/ethereum/eth2.0-APIs/pull/142
52
- const getSignedBeaconBlockType = (data) => config.getForkTypes(data.message.slot).SignedBeaconBlock;
53
- const AllForksSignedBlockOrContents = {
54
- toJson: (data) => isSignedBlockContents(data)
55
- ? allForksSignedBlockContentsReqSerializer(getSignedBeaconBlockType).toJson(data)
56
- : getSignedBeaconBlockType(data).toJson(data),
57
- fromJson: (data) => data.signed_block !== undefined
58
- ? allForksSignedBlockContentsReqSerializer(getSignedBeaconBlockType).fromJson(data)
59
- : getSignedBeaconBlockType(data).fromJson(data),
60
- };
61
- const getSignedBlindedBeaconBlockType = (data) => config.getBlindedForkTypes(data.message.slot).SignedBeaconBlock;
62
- const AllForksSignedBlindedBlock = {
63
- toJson: (data) => getSignedBlindedBeaconBlockType(data).toJson(data),
64
- fromJson: (data) => getSignedBlindedBeaconBlockType(data).fromJson(data),
65
- };
66
- function extractSlot(signedBlockOrContents) {
67
- return isSignedBlockContents(signedBlockOrContents)
68
- ? signedBlockOrContents.signedBlock.message.slot
69
- : signedBlockOrContents.message.slot;
70
- }
46
+ export function getDefinitions(config) {
71
47
  return {
72
- getBlock: getBlockReq,
73
- getBlockV2: getBlockReq,
74
- getBlockAttestations: blockIdOnlyReq,
75
- getBlockHeader: blockIdOnlyReq,
48
+ getBlockV2: {
49
+ url: "/eth/v2/beacon/blocks/{block_id}",
50
+ method: "GET",
51
+ req: blockIdOnlyReq,
52
+ resp: {
53
+ data: WithVersion((fork) => ssz[fork].SignedBeaconBlock),
54
+ meta: ExecutionOptimisticFinalizedAndVersionCodec,
55
+ },
56
+ },
57
+ getBlindedBlock: {
58
+ url: "/eth/v1/beacon/blinded_blocks/{block_id}",
59
+ method: "GET",
60
+ req: blockIdOnlyReq,
61
+ resp: {
62
+ data: WithVersion((fork) => isForkExecution(fork) ? ssz[fork].SignedBlindedBeaconBlock : ssz[fork].SignedBeaconBlock),
63
+ meta: ExecutionOptimisticFinalizedAndVersionCodec,
64
+ },
65
+ },
66
+ getBlockAttestations: {
67
+ url: "/eth/v1/beacon/blocks/{block_id}/attestations",
68
+ method: "GET",
69
+ req: blockIdOnlyReq,
70
+ resp: {
71
+ data: ssz.phase0.BeaconBlockBody.fields.attestations,
72
+ meta: ExecutionOptimisticAndFinalizedCodec,
73
+ },
74
+ },
75
+ getBlockHeader: {
76
+ url: "/eth/v1/beacon/headers/{block_id}",
77
+ method: "GET",
78
+ req: blockIdOnlyReq,
79
+ resp: {
80
+ data: BlockHeaderResponseType,
81
+ meta: ExecutionOptimisticAndFinalizedCodec,
82
+ },
83
+ },
76
84
  getBlockHeaders: {
77
- writeReq: (filters) => ({ query: { slot: filters?.slot, parent_root: filters?.parentRoot } }),
78
- parseReq: ({ query }) => [{ slot: query?.slot, parentRoot: query?.parent_root }],
79
- schema: { query: { slot: Schema.Uint, parent_root: Schema.String } },
85
+ url: "/eth/v1/beacon/headers",
86
+ method: "GET",
87
+ req: {
88
+ writeReq: ({ slot, parentRoot }) => ({ query: { slot, parent_root: parentRoot } }),
89
+ parseReq: ({ query }) => ({ slot: query.slot, parentRoot: query.parent_root }),
90
+ schema: { query: { slot: Schema.Uint, parent_root: Schema.String } },
91
+ },
92
+ resp: {
93
+ data: BlockHeadersResponseType,
94
+ meta: ExecutionOptimisticAndFinalizedCodec,
95
+ },
96
+ },
97
+ getBlockRoot: {
98
+ url: "/eth/v1/beacon/blocks/{block_id}/root",
99
+ method: "GET",
100
+ req: blockIdOnlyReq,
101
+ resp: {
102
+ data: RootResponseType,
103
+ meta: ExecutionOptimisticAndFinalizedCodec,
104
+ },
105
+ },
106
+ publishBlock: {
107
+ url: "/eth/v1/beacon/blocks",
108
+ method: "POST",
109
+ req: {
110
+ writeReqJson: ({ signedBlockOrContents }) => {
111
+ const slot = isSignedBlockContents(signedBlockOrContents)
112
+ ? signedBlockOrContents.signedBlock.message.slot
113
+ : signedBlockOrContents.message.slot;
114
+ return {
115
+ body: config.getForkSeq(slot) < ForkSeq.deneb
116
+ ? config.getForkTypes(slot).SignedBeaconBlock.toJson(signedBlockOrContents)
117
+ : SignedBlockContentsType.toJson(signedBlockOrContents),
118
+ headers: {
119
+ [MetaHeader.Version]: config.getForkName(slot),
120
+ },
121
+ };
122
+ },
123
+ parseReqJson: ({ body, headers }) => {
124
+ let forkName;
125
+ // As per spec, version header is optional for JSON requests
126
+ const versionHeader = fromHeaders(headers, MetaHeader.Version, false);
127
+ if (versionHeader !== undefined) {
128
+ forkName = toForkName(versionHeader);
129
+ }
130
+ else {
131
+ // Determine fork from slot in JSON payload
132
+ forkName = config.getForkName(body.signed_block !== undefined
133
+ ? body.signed_block.message.slot
134
+ : body.message.slot);
135
+ }
136
+ const forkSeq = config.forks[forkName].seq;
137
+ return {
138
+ signedBlockOrContents: forkSeq < ForkSeq.deneb
139
+ ? ssz[forkName].SignedBeaconBlock.fromJson(body)
140
+ : SignedBlockContentsType.fromJson(body),
141
+ };
142
+ },
143
+ writeReqSsz: ({ signedBlockOrContents }) => {
144
+ const slot = isSignedBlockContents(signedBlockOrContents)
145
+ ? signedBlockOrContents.signedBlock.message.slot
146
+ : signedBlockOrContents.message.slot;
147
+ return {
148
+ body: config.getForkSeq(slot) < ForkSeq.deneb
149
+ ? config.getForkTypes(slot).SignedBeaconBlock.serialize(signedBlockOrContents)
150
+ : SignedBlockContentsType.serialize(signedBlockOrContents),
151
+ headers: {
152
+ [MetaHeader.Version]: config.getForkName(slot),
153
+ },
154
+ };
155
+ },
156
+ parseReqSsz: ({ body, headers }) => {
157
+ const forkName = toForkName(fromHeaders(headers, MetaHeader.Version));
158
+ const forkSeq = config.forks[forkName].seq;
159
+ return {
160
+ signedBlockOrContents: forkSeq < ForkSeq.deneb
161
+ ? ssz[forkName].SignedBeaconBlock.deserialize(body)
162
+ : SignedBlockContentsType.deserialize(body),
163
+ };
164
+ },
165
+ schema: {
166
+ body: Schema.Object,
167
+ headers: { [MetaHeader.Version]: Schema.String },
168
+ },
169
+ },
170
+ resp: EmptyResponseCodec,
171
+ init: {
172
+ requestWireFormat: WireFormat.ssz,
173
+ },
80
174
  },
81
- getBlockRoot: blockIdOnlyReq,
82
- publishBlock: reqOnlyBody(AllForksSignedBlockOrContents, Schema.Object),
83
175
  publishBlockV2: {
84
- writeReq: (item, { broadcastValidation } = {}) => ({
85
- body: AllForksSignedBlockOrContents.toJson(item),
86
- query: { broadcast_validation: broadcastValidation },
87
- headers: { "Eth-Consensus-Version": config.getForkName(extractSlot(item)) },
88
- }),
89
- parseReq: ({ body, query }) => [
90
- AllForksSignedBlockOrContents.fromJson(body),
91
- { broadcastValidation: query.broadcast_validation },
92
- ],
93
- schema: {
94
- body: Schema.Object,
95
- query: { broadcast_validation: Schema.String },
176
+ url: "/eth/v2/beacon/blocks",
177
+ method: "POST",
178
+ req: {
179
+ writeReqJson: ({ signedBlockOrContents, broadcastValidation }) => {
180
+ const slot = isSignedBlockContents(signedBlockOrContents)
181
+ ? signedBlockOrContents.signedBlock.message.slot
182
+ : signedBlockOrContents.message.slot;
183
+ return {
184
+ body: config.getForkSeq(slot) < ForkSeq.deneb
185
+ ? config.getForkTypes(slot).SignedBeaconBlock.toJson(signedBlockOrContents)
186
+ : SignedBlockContentsType.toJson(signedBlockOrContents),
187
+ headers: {
188
+ [MetaHeader.Version]: config.getForkName(slot),
189
+ },
190
+ query: { broadcast_validation: broadcastValidation },
191
+ };
192
+ },
193
+ parseReqJson: ({ body, headers, query }) => {
194
+ const forkName = toForkName(fromHeaders(headers, MetaHeader.Version));
195
+ const forkSeq = config.forks[forkName].seq;
196
+ return {
197
+ signedBlockOrContents: forkSeq < ForkSeq.deneb
198
+ ? ssz[forkName].SignedBeaconBlock.fromJson(body)
199
+ : SignedBlockContentsType.fromJson(body),
200
+ broadcastValidation: query.broadcast_validation,
201
+ };
202
+ },
203
+ writeReqSsz: ({ signedBlockOrContents, broadcastValidation }) => {
204
+ const slot = isSignedBlockContents(signedBlockOrContents)
205
+ ? signedBlockOrContents.signedBlock.message.slot
206
+ : signedBlockOrContents.message.slot;
207
+ return {
208
+ body: config.getForkSeq(slot) < ForkSeq.deneb
209
+ ? config.getForkTypes(slot).SignedBeaconBlock.serialize(signedBlockOrContents)
210
+ : SignedBlockContentsType.serialize(signedBlockOrContents),
211
+ headers: {
212
+ [MetaHeader.Version]: config.getForkName(slot),
213
+ },
214
+ query: { broadcast_validation: broadcastValidation },
215
+ };
216
+ },
217
+ parseReqSsz: ({ body, headers, query }) => {
218
+ const forkName = toForkName(fromHeaders(headers, MetaHeader.Version));
219
+ const forkSeq = config.forks[forkName].seq;
220
+ return {
221
+ signedBlockOrContents: forkSeq < ForkSeq.deneb
222
+ ? ssz[forkName].SignedBeaconBlock.deserialize(body)
223
+ : SignedBlockContentsType.deserialize(body),
224
+ broadcastValidation: query.broadcast_validation,
225
+ };
226
+ },
227
+ schema: {
228
+ body: Schema.Object,
229
+ query: { broadcast_validation: Schema.String },
230
+ headers: { [MetaHeader.Version]: Schema.String },
231
+ },
232
+ },
233
+ resp: EmptyResponseCodec,
234
+ init: {
235
+ requestWireFormat: WireFormat.ssz,
236
+ },
237
+ },
238
+ publishBlindedBlock: {
239
+ url: "/eth/v1/beacon/blinded_blocks",
240
+ method: "POST",
241
+ req: {
242
+ writeReqJson: ({ signedBlindedBlock }) => {
243
+ const fork = config.getForkName(signedBlindedBlock.message.slot);
244
+ return {
245
+ body: getExecutionForkTypes(fork).SignedBlindedBeaconBlock.toJson(signedBlindedBlock),
246
+ headers: {
247
+ [MetaHeader.Version]: fork,
248
+ },
249
+ };
250
+ },
251
+ parseReqJson: ({ body, headers }) => {
252
+ const fork = toForkName(fromHeaders(headers, MetaHeader.Version));
253
+ return {
254
+ signedBlindedBlock: getExecutionForkTypes(fork).SignedBlindedBeaconBlock.fromJson(body),
255
+ };
256
+ },
257
+ writeReqSsz: ({ signedBlindedBlock }) => {
258
+ const fork = config.getForkName(signedBlindedBlock.message.slot);
259
+ return {
260
+ body: getExecutionForkTypes(fork).SignedBlindedBeaconBlock.serialize(signedBlindedBlock),
261
+ headers: {
262
+ [MetaHeader.Version]: fork,
263
+ },
264
+ };
265
+ },
266
+ parseReqSsz: ({ body, headers }) => {
267
+ const fork = toForkName(fromHeaders(headers, MetaHeader.Version));
268
+ return {
269
+ signedBlindedBlock: getExecutionForkTypes(fork).SignedBlindedBeaconBlock.deserialize(body),
270
+ };
271
+ },
272
+ schema: {
273
+ body: Schema.Object,
274
+ headers: { [MetaHeader.Version]: Schema.String },
275
+ },
276
+ },
277
+ resp: EmptyResponseCodec,
278
+ init: {
279
+ requestWireFormat: WireFormat.ssz,
96
280
  },
97
281
  },
98
- publishBlindedBlock: reqOnlyBody(AllForksSignedBlindedBlock, Schema.Object),
99
282
  publishBlindedBlockV2: {
100
- writeReq: (item, { broadcastValidation }) => ({
101
- body: AllForksSignedBlindedBlock.toJson(item),
102
- query: { broadcast_validation: broadcastValidation },
103
- headers: { "Eth-Consensus-Version": config.getForkName(item.message.slot) },
104
- }),
105
- parseReq: ({ body, query }) => [
106
- AllForksSignedBlindedBlock.fromJson(body),
107
- { broadcastValidation: query.broadcast_validation },
108
- ],
109
- schema: {
110
- body: Schema.Object,
111
- query: { broadcast_validation: Schema.String },
283
+ url: "/eth/v2/beacon/blinded_blocks",
284
+ method: "POST",
285
+ req: {
286
+ writeReqJson: ({ signedBlindedBlock, broadcastValidation }) => {
287
+ const fork = config.getForkName(signedBlindedBlock.message.slot);
288
+ return {
289
+ body: getExecutionForkTypes(fork).SignedBlindedBeaconBlock.toJson(signedBlindedBlock),
290
+ headers: {
291
+ [MetaHeader.Version]: fork,
292
+ },
293
+ query: { broadcast_validation: broadcastValidation },
294
+ };
295
+ },
296
+ parseReqJson: ({ body, headers, query }) => {
297
+ const fork = toForkName(fromHeaders(headers, MetaHeader.Version));
298
+ return {
299
+ signedBlindedBlock: getExecutionForkTypes(fork).SignedBlindedBeaconBlock.fromJson(body),
300
+ broadcastValidation: query.broadcast_validation,
301
+ };
302
+ },
303
+ writeReqSsz: ({ signedBlindedBlock, broadcastValidation }) => {
304
+ const fork = config.getForkName(signedBlindedBlock.message.slot);
305
+ return {
306
+ body: getExecutionForkTypes(fork).SignedBlindedBeaconBlock.serialize(signedBlindedBlock),
307
+ headers: {
308
+ [MetaHeader.Version]: fork,
309
+ },
310
+ query: { broadcast_validation: broadcastValidation },
311
+ };
312
+ },
313
+ parseReqSsz: ({ body, headers, query }) => {
314
+ const fork = toForkName(fromHeaders(headers, MetaHeader.Version));
315
+ return {
316
+ signedBlindedBlock: getExecutionForkTypes(fork).SignedBlindedBeaconBlock.deserialize(body),
317
+ broadcastValidation: query.broadcast_validation,
318
+ };
319
+ },
320
+ schema: {
321
+ body: Schema.Object,
322
+ query: { broadcast_validation: Schema.String },
323
+ headers: { [MetaHeader.Version]: Schema.String },
324
+ },
325
+ },
326
+ resp: EmptyResponseCodec,
327
+ init: {
328
+ requestWireFormat: WireFormat.ssz,
112
329
  },
113
330
  },
114
331
  getBlobSidecars: {
115
- writeReq: (block_id, indices) => ({
116
- params: { block_id: String(block_id) },
117
- query: { indices },
118
- }),
119
- parseReq: ({ params, query }) => [params.block_id, query.indices],
120
- schema: {
121
- params: { block_id: Schema.StringRequired },
122
- query: { indices: Schema.UintArray },
332
+ url: "/eth/v1/beacon/blob_sidecars/{block_id}",
333
+ method: "GET",
334
+ req: {
335
+ writeReq: ({ blockId, indices }) => ({ params: { block_id: blockId.toString() }, query: { indices } }),
336
+ parseReq: ({ params, query }) => ({ blockId: params.block_id, indices: query.indices }),
337
+ schema: { params: { block_id: Schema.StringRequired }, query: { indices: Schema.UintArray } },
338
+ },
339
+ resp: {
340
+ data: ssz.deneb.BlobSidecars,
341
+ meta: ExecutionOptimisticFinalizedAndVersionCodec,
123
342
  },
124
343
  },
125
344
  };
126
345
  }
127
- export function getReturnTypes() {
128
- const BeaconHeaderResType = new ContainerType({
129
- root: ssz.Root,
130
- canonical: ssz.Boolean,
131
- header: ssz.phase0.SignedBeaconBlockHeader,
132
- });
133
- const RootContainer = new ContainerType({
134
- root: ssz.Root,
135
- });
136
- return {
137
- getBlock: ContainerData(ssz.phase0.SignedBeaconBlock),
138
- getBlockV2: WithFinalized(WithExecutionOptimistic(WithVersion((fork) => ssz[fork].SignedBeaconBlock))),
139
- getBlockAttestations: WithFinalized(ContainerDataExecutionOptimistic(ArrayOf(ssz.phase0.Attestation))),
140
- getBlockHeader: WithFinalized(ContainerDataExecutionOptimistic(BeaconHeaderResType)),
141
- getBlockHeaders: WithFinalized(ContainerDataExecutionOptimistic(ArrayOf(BeaconHeaderResType))),
142
- getBlockRoot: WithFinalized(ContainerDataExecutionOptimistic(RootContainer)),
143
- getBlobSidecars: WithFinalized(ContainerDataExecutionOptimistic(ssz.deneb.BlobSidecars)),
144
- };
145
- }
146
346
  //# sourceMappingURL=block.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../../src/beacon/routes/beacon/block.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../../src/beacon/routes/beacon/block.ts"],"names":[],"mappings":"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"}