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

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 +1 -1
  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 +32 -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 +282 -164
  35. package/lib/beacon/routes/beacon/block.js +324 -116
  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 +32 -95
  53. package/lib/beacon/routes/debug.js +87 -45
  54. package/lib/beacon/routes/debug.js.map +1 -1
  55. package/lib/beacon/routes/events.d.ts +20 -16
  56. package/lib/beacon/routes/events.js +39 -17
  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 +33 -55
  62. package/lib/beacon/routes/lightclient.js +107 -47
  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 +547 -320
  74. package/lib/beacon/routes/validator.js +494 -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 +24 -38
  113. package/lib/builder/routes.js +77 -33
  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 +8 -6
  119. package/lib/index.js +4 -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 +35 -0
  152. package/lib/utils/client/response.js +166 -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 +8 -0
  158. package/lib/utils/fork.js +35 -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 +135 -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 +109 -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";
1
+ /* eslint-disable @typescript-eslint/naming-convention */
2
+ import { ContainerType, ListCompositeType } from "@chainsafe/ssz";
2
3
  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";
4
+ import { ForkSeq } from "@lodestar/params";
5
+ import { Schema } from "../../../utils/index.js";
6
+ import { EmptyMetaCodec, EmptyResponseCodec, WithVersion } from "../../../utils/codecs.js";
7
+ import { ExecutionOptimisticAndFinalizedCodec, ExecutionOptimisticFinalizedAndVersionCodec, MetaHeader, } from "../../../utils/metadata.js";
8
+ import { getBlindedForkTypes, 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,318 @@ 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
+ getBlock: {
49
+ url: "/eth/v1/beacon/blocks/{block_id}",
50
+ method: "GET",
51
+ req: blockIdOnlyReq,
52
+ resp: {
53
+ data: ssz.phase0.SignedBeaconBlock,
54
+ meta: EmptyMetaCodec,
55
+ },
56
+ },
57
+ getBlockV2: {
58
+ url: "/eth/v2/beacon/blocks/{block_id}",
59
+ method: "GET",
60
+ req: blockIdOnlyReq,
61
+ resp: {
62
+ data: WithVersion((fork) => 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
117
+ .getForkTypes(slot)
118
+ .SignedBeaconBlock.toJson(signedBlockOrContents)
119
+ : SignedBlockContentsType.toJson(signedBlockOrContents),
120
+ headers: {
121
+ [MetaHeader.Version]: config.getForkName(slot),
122
+ },
123
+ };
124
+ },
125
+ parseReqJson: ({ body, headers }) => {
126
+ let forkName;
127
+ // As per spec, version header is optional for JSON requests
128
+ const versionHeader = fromHeaders(headers, MetaHeader.Version, false);
129
+ if (versionHeader !== undefined) {
130
+ forkName = toForkName(versionHeader);
131
+ }
132
+ else {
133
+ // Determine fork from slot in JSON payload
134
+ forkName = config.getForkName(body.signed_block !== undefined
135
+ ? body.signed_block.message.slot
136
+ : body.message.slot);
137
+ }
138
+ const forkSeq = config.forks[forkName].seq;
139
+ return {
140
+ signedBlockOrContents: forkSeq < ForkSeq.deneb
141
+ ? ssz[forkName].SignedBeaconBlock.fromJson(body)
142
+ : SignedBlockContentsType.fromJson(body),
143
+ };
144
+ },
145
+ writeReqSsz: ({ signedBlockOrContents }) => {
146
+ const slot = isSignedBlockContents(signedBlockOrContents)
147
+ ? signedBlockOrContents.signedBlock.message.slot
148
+ : signedBlockOrContents.message.slot;
149
+ return {
150
+ body: config.getForkSeq(slot) < ForkSeq.deneb
151
+ ? config
152
+ .getForkTypes(slot)
153
+ .SignedBeaconBlock.serialize(signedBlockOrContents)
154
+ : SignedBlockContentsType.serialize(signedBlockOrContents),
155
+ headers: {
156
+ [MetaHeader.Version]: config.getForkName(slot),
157
+ },
158
+ };
159
+ },
160
+ parseReqSsz: ({ body, headers }) => {
161
+ const forkName = toForkName(fromHeaders(headers, MetaHeader.Version));
162
+ const forkSeq = config.forks[forkName].seq;
163
+ return {
164
+ signedBlockOrContents: forkSeq < ForkSeq.deneb
165
+ ? ssz[forkName].SignedBeaconBlock.deserialize(body)
166
+ : SignedBlockContentsType.deserialize(body),
167
+ };
168
+ },
169
+ schema: {
170
+ body: Schema.Object,
171
+ headers: { [MetaHeader.Version]: Schema.String },
172
+ },
173
+ },
174
+ resp: EmptyResponseCodec,
175
+ init: {
176
+ requestWireFormat: WireFormat.ssz,
177
+ },
80
178
  },
81
- getBlockRoot: blockIdOnlyReq,
82
- publishBlock: reqOnlyBody(AllForksSignedBlockOrContents, Schema.Object),
83
179
  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 },
180
+ url: "/eth/v2/beacon/blocks",
181
+ method: "POST",
182
+ req: {
183
+ writeReqJson: ({ signedBlockOrContents, broadcastValidation }) => {
184
+ const slot = isSignedBlockContents(signedBlockOrContents)
185
+ ? signedBlockOrContents.signedBlock.message.slot
186
+ : signedBlockOrContents.message.slot;
187
+ return {
188
+ body: config.getForkSeq(slot) < ForkSeq.deneb
189
+ ? config
190
+ .getForkTypes(slot)
191
+ .SignedBeaconBlock.toJson(signedBlockOrContents)
192
+ : SignedBlockContentsType.toJson(signedBlockOrContents),
193
+ headers: {
194
+ [MetaHeader.Version]: config.getForkName(slot),
195
+ },
196
+ query: { broadcast_validation: broadcastValidation },
197
+ };
198
+ },
199
+ parseReqJson: ({ body, headers, query }) => {
200
+ const forkName = toForkName(fromHeaders(headers, MetaHeader.Version));
201
+ const forkSeq = config.forks[forkName].seq;
202
+ return {
203
+ signedBlockOrContents: forkSeq < ForkSeq.deneb
204
+ ? ssz[forkName].SignedBeaconBlock.fromJson(body)
205
+ : SignedBlockContentsType.fromJson(body),
206
+ broadcastValidation: query.broadcast_validation,
207
+ };
208
+ },
209
+ writeReqSsz: ({ signedBlockOrContents, broadcastValidation }) => {
210
+ const slot = isSignedBlockContents(signedBlockOrContents)
211
+ ? signedBlockOrContents.signedBlock.message.slot
212
+ : signedBlockOrContents.message.slot;
213
+ return {
214
+ body: config.getForkSeq(slot) < ForkSeq.deneb
215
+ ? config
216
+ .getForkTypes(slot)
217
+ .SignedBeaconBlock.serialize(signedBlockOrContents)
218
+ : SignedBlockContentsType.serialize(signedBlockOrContents),
219
+ headers: {
220
+ [MetaHeader.Version]: config.getForkName(slot),
221
+ },
222
+ query: { broadcast_validation: broadcastValidation },
223
+ };
224
+ },
225
+ parseReqSsz: ({ body, headers, query }) => {
226
+ const forkName = toForkName(fromHeaders(headers, MetaHeader.Version));
227
+ const forkSeq = config.forks[forkName].seq;
228
+ return {
229
+ signedBlockOrContents: forkSeq < ForkSeq.deneb
230
+ ? ssz[forkName].SignedBeaconBlock.deserialize(body)
231
+ : SignedBlockContentsType.deserialize(body),
232
+ broadcastValidation: query.broadcast_validation,
233
+ };
234
+ },
235
+ schema: {
236
+ body: Schema.Object,
237
+ query: { broadcast_validation: Schema.String },
238
+ headers: { [MetaHeader.Version]: Schema.String },
239
+ },
240
+ },
241
+ resp: EmptyResponseCodec,
242
+ init: {
243
+ requestWireFormat: WireFormat.ssz,
244
+ },
245
+ },
246
+ publishBlindedBlock: {
247
+ url: "/eth/v1/beacon/blinded_blocks",
248
+ method: "POST",
249
+ req: {
250
+ writeReqJson: ({ signedBlindedBlock }) => {
251
+ const fork = config.getForkName(signedBlindedBlock.message.slot);
252
+ return {
253
+ body: getBlindedForkTypes(fork).SignedBeaconBlock.toJson(signedBlindedBlock),
254
+ headers: {
255
+ [MetaHeader.Version]: fork,
256
+ },
257
+ };
258
+ },
259
+ parseReqJson: ({ body, headers }) => {
260
+ const fork = toForkName(fromHeaders(headers, MetaHeader.Version));
261
+ return {
262
+ signedBlindedBlock: getBlindedForkTypes(fork).SignedBeaconBlock.fromJson(body),
263
+ };
264
+ },
265
+ writeReqSsz: ({ signedBlindedBlock }) => {
266
+ const fork = config.getForkName(signedBlindedBlock.message.slot);
267
+ return {
268
+ body: getBlindedForkTypes(fork).SignedBeaconBlock.serialize(signedBlindedBlock),
269
+ headers: {
270
+ [MetaHeader.Version]: fork,
271
+ },
272
+ };
273
+ },
274
+ parseReqSsz: ({ body, headers }) => {
275
+ const fork = toForkName(fromHeaders(headers, MetaHeader.Version));
276
+ return {
277
+ signedBlindedBlock: getBlindedForkTypes(fork).SignedBeaconBlock.deserialize(body),
278
+ };
279
+ },
280
+ schema: {
281
+ body: Schema.Object,
282
+ headers: { [MetaHeader.Version]: Schema.String },
283
+ },
284
+ },
285
+ resp: EmptyResponseCodec,
286
+ init: {
287
+ requestWireFormat: WireFormat.ssz,
96
288
  },
97
289
  },
98
- publishBlindedBlock: reqOnlyBody(AllForksSignedBlindedBlock, Schema.Object),
99
290
  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 },
291
+ url: "/eth/v2/beacon/blinded_blocks",
292
+ method: "POST",
293
+ req: {
294
+ writeReqJson: ({ signedBlindedBlock, broadcastValidation }) => {
295
+ const fork = config.getForkName(signedBlindedBlock.message.slot);
296
+ return {
297
+ body: getBlindedForkTypes(fork).SignedBeaconBlock.toJson(signedBlindedBlock),
298
+ headers: {
299
+ [MetaHeader.Version]: fork,
300
+ },
301
+ query: { broadcast_validation: broadcastValidation },
302
+ };
303
+ },
304
+ parseReqJson: ({ body, headers, query }) => {
305
+ const fork = toForkName(fromHeaders(headers, MetaHeader.Version));
306
+ return {
307
+ signedBlindedBlock: getBlindedForkTypes(fork).SignedBeaconBlock.fromJson(body),
308
+ broadcastValidation: query.broadcast_validation,
309
+ };
310
+ },
311
+ writeReqSsz: ({ signedBlindedBlock, broadcastValidation }) => {
312
+ const fork = config.getForkName(signedBlindedBlock.message.slot);
313
+ return {
314
+ body: getBlindedForkTypes(fork).SignedBeaconBlock.serialize(signedBlindedBlock),
315
+ headers: {
316
+ [MetaHeader.Version]: fork,
317
+ },
318
+ query: { broadcast_validation: broadcastValidation },
319
+ };
320
+ },
321
+ parseReqSsz: ({ body, headers, query }) => {
322
+ const fork = toForkName(fromHeaders(headers, MetaHeader.Version));
323
+ return {
324
+ signedBlindedBlock: getBlindedForkTypes(fork).SignedBeaconBlock.deserialize(body),
325
+ broadcastValidation: query.broadcast_validation,
326
+ };
327
+ },
328
+ schema: {
329
+ body: Schema.Object,
330
+ query: { broadcast_validation: Schema.String },
331
+ headers: { [MetaHeader.Version]: Schema.String },
332
+ },
333
+ },
334
+ resp: EmptyResponseCodec,
335
+ init: {
336
+ requestWireFormat: WireFormat.ssz,
112
337
  },
113
338
  },
114
339
  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 },
340
+ url: "/eth/v1/beacon/blob_sidecars/{block_id}",
341
+ method: "GET",
342
+ req: {
343
+ writeReq: ({ blockId, indices }) => ({ params: { block_id: blockId.toString() }, query: { indices } }),
344
+ parseReq: ({ params, query }) => ({ blockId: params.block_id, indices: query.indices }),
345
+ schema: { params: { block_id: Schema.StringRequired }, query: { indices: Schema.UintArray } },
346
+ },
347
+ resp: {
348
+ data: ssz.deneb.BlobSidecars,
349
+ meta: ExecutionOptimisticFinalizedAndVersionCodec,
123
350
  },
124
351
  },
125
352
  };
126
353
  }
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
354
  //# sourceMappingURL=block.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../../src/beacon/routes/beacon/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAA+B,GAAG,EAAkB,qBAAqB,EAAC,MAAM,iBAAiB,CAAC;AAEzG,OAAO,EAGL,OAAO,EACP,MAAM,EACN,WAAW,EACX,WAAW,EAIX,gCAAgC,EAChC,uBAAuB,EACvB,aAAa,EACb,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,cAAc,EAAC,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AAEpF,OAAO,EAAC,wCAAwC,EAAC,MAAM,0BAA0B,CAAC;AAuBlF,MAAM,CAAN,IAAY,mBAYX;AAZD,WAAY,mBAAmB;IAC7B;;;;;;MAME;IACF,oCAAa,CAAA;IACb,wCAAiB,CAAA;IACjB,8CAAuB,CAAA;IACvB,8EAAuD,CAAA;AACzD,CAAC,EAZW,mBAAmB,KAAnB,mBAAmB,QAY9B;AAwMD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC,QAAQ,EAAE,EAAC,GAAG,EAAE,kCAAkC,EAAE,MAAM,EAAE,KAAK,EAAC;IAClE,UAAU,EAAE,EAAC,GAAG,EAAE,kCAAkC,EAAE,MAAM,EAAE,KAAK,EAAC;IACpE,oBAAoB,EAAE,EAAC,GAAG,EAAE,+CAA+C,EAAE,MAAM,EAAE,KAAK,EAAC;IAC3F,cAAc,EAAE,EAAC,GAAG,EAAE,mCAAmC,EAAE,MAAM,EAAE,KAAK,EAAC;IACzE,eAAe,EAAE,EAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,EAAE,KAAK,EAAC;IAC/D,YAAY,EAAE,EAAC,GAAG,EAAE,uCAAuC,EAAE,MAAM,EAAE,KAAK,EAAC;IAC3E,YAAY,EAAE,EAAC,GAAG,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,EAAC;IAC5D,cAAc,EAAE,EAAC,GAAG,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,EAAC;IAC9D,mBAAmB,EAAE,EAAC,GAAG,EAAE,+BAA+B,EAAE,MAAM,EAAE,MAAM,EAAC;IAC3E,qBAAqB,EAAE,EAAC,GAAG,EAAE,+BAA+B,EAAE,MAAM,EAAE,MAAM,EAAC;IAC7E,eAAe,EAAE,EAAC,GAAG,EAAE,yCAAyC,EAAE,MAAM,EAAE,KAAK,EAAC;CACjF,CAAC;AAqBF,MAAM,UAAU,iBAAiB,CAAC,MAAuB;IACvD,MAAM,cAAc,GAAyD;QAC3E,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAC,EAAC,CAAC;QAChE,QAAQ,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzC,MAAM,EAAE,EAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAC,EAAC;KACpD,CAAC;IAEF,MAAM,WAAW,GAAgD;QAC/D,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/B,MAAM,EAAE,EAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAC;YACpC,OAAO,EAAE,EAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAC;SAC7C,CAAC;QACF,QAAQ,EAAE,CAAC,EAAC,MAAM,EAAE,OAAO,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrF,MAAM,EAAE,EAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAC,EAAC;KACpD,CAAC;IAEF,6FAA6F;IAC7F,MAAM,wBAAwB,GAAG,CAAC,IAAgC,EAAkD,EAAE,CACpH,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC;IAE3D,MAAM,6BAA6B,GAAmD;QACpF,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CACf,qBAAqB,CAAC,IAAI,CAAC;YACzB,CAAC,CAAC,wCAAwC,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YACjF,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QAEjD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAChB,IAAgC,CAAC,YAAY,KAAK,SAAS;YAC1D,CAAC,CAAC,wCAAwC,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YACnF,CAAC,CAAC,wBAAwB,CAAC,IAAkC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;KAClF,CAAC;IAEF,MAAM,+BAA+B,GAAG,CACtC,IAAuC,EACgB,EAAE,CACzD,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC;IAElE,MAAM,0BAA0B,GAAgD;QAC9E,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QACpE,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,+BAA+B,CAAC,IAAyC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;KAC9G,CAAC;IAEF,SAAS,WAAW,CAAC,qBAA2D;QAC9E,OAAO,qBAAqB,CAAC,qBAAqB,CAAC;YACjD,CAAC,CAAC,qBAAqB,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI;YAChD,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE,WAAW;QACvB,oBAAoB,EAAE,cAAc;QACpC,cAAc,EAAE,cAAc;QAC9B,eAAe,EAAE;YACf,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAC,EAAC,CAAC;YACzF,QAAQ,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAC,CAAC;YAC5E,MAAM,EAAE,EAAC,KAAK,EAAE,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAC,EAAC;SACjE;QACD,YAAY,EAAE,cAAc;QAC5B,YAAY,EAAE,WAAW,CAAC,6BAA6B,EAAE,MAAM,CAAC,MAAM,CAAC;QACvE,cAAc,EAAE;YACd,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAC,mBAAmB,EAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC/C,IAAI,EAAE,6BAA6B,CAAC,MAAM,CAAC,IAAI,CAAC;gBAChD,KAAK,EAAE,EAAC,oBAAoB,EAAE,mBAAmB,EAAC;gBAClD,OAAO,EAAE,EAAC,uBAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAC;aAC1E,CAAC;YACF,QAAQ,EAAE,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC;gBAC3B,6BAA6B,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC5C,EAAC,mBAAmB,EAAE,KAAK,CAAC,oBAA2C,EAAC;aACzE;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,MAAM;gBACnB,KAAK,EAAE,EAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAC;aAC7C;SACF;QACD,mBAAmB,EAAE,WAAW,CAAC,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC;QAC3E,qBAAqB,EAAE;YACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAC,mBAAmB,EAAC,EAAE,EAAE,CAAC,CAAC;gBAC1C,IAAI,EAAE,0BAA0B,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC7C,KAAK,EAAE,EAAC,oBAAoB,EAAE,mBAAmB,EAAC;gBAClD,OAAO,EAAE,EAAC,uBAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC;aAC1E,CAAC;YACF,QAAQ,EAAE,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC;gBAC3B,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACzC,EAAC,mBAAmB,EAAE,KAAK,CAAC,oBAA2C,EAAC;aACzE;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,MAAM;gBACnB,KAAK,EAAE,EAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAC;aAC7C;SACF;QACD,eAAe,EAAE;YACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;gBAChC,MAAM,EAAE,EAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAC;gBACpC,KAAK,EAAE,EAAC,OAAO,EAAC;aACjB,CAAC;YACF,QAAQ,EAAE,CAAC,EAAC,MAAM,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/D,MAAM,EAAE;gBACN,MAAM,EAAE,EAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAC;gBACzC,KAAK,EAAE,EAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAC;aACnC;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,mBAAmB,GAAG,IAAI,aAAa,CAAC;QAC5C,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,GAAG,CAAC,OAAO;QACtB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,uBAAuB;KAC3C,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;QACtC,IAAI,EAAE,GAAG,CAAC,IAAI;KACf,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC;QACrD,UAAU,EAAE,aAAa,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACtG,oBAAoB,EAAE,aAAa,CAAC,gCAAgC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACtG,cAAc,EAAE,aAAa,CAAC,gCAAgC,CAAC,mBAAmB,CAAC,CAAC;QACpF,eAAe,EAAE,aAAa,CAAC,gCAAgC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC9F,YAAY,EAAE,aAAa,CAAC,gCAAgC,CAAC,aAAa,CAAC,CAAC;QAC5E,eAAe,EAAE,aAAa,CAAC,gCAAgC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;KACzF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../../src/beacon/routes/beacon/block.ts"],"names":[],"mappings":"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"}