@lodestar/api 1.20.0-dev.82a9384b27 → 1.20.0-dev.85dc0ba06d

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 +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 +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 +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 +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 +117 -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,94 +1,143 @@
1
- import { HttpStatusCode } from "../../utils/client/httpStatusCode.js";
2
- import { jsonType, reqEmpty, sameType, Schema, } from "../../utils/index.js";
3
- /**
4
- * Define javascript values for each route
5
- */
6
- export const routesData = {
7
- writeHeapdump: { url: "/eth/v1/lodestar/write_heapdump", method: "POST" },
8
- writeProfile: { url: "/eth/v1/lodestar/write_profile", method: "POST" },
9
- getLatestWeakSubjectivityCheckpointEpoch: { url: "/eth/v1/lodestar/ws_epoch", method: "GET" },
10
- getSyncChainsDebugState: { url: "/eth/v1/lodestar/sync_chains_debug_state", method: "GET" },
11
- getGossipQueueItems: { url: "/eth/v1/lodestar/gossip_queue_items/:gossipType", method: "GET" },
12
- getRegenQueueItems: { url: "/eth/v1/lodestar/regen_queue_items", method: "GET" },
13
- getBlockProcessorQueueItems: { url: "/eth/v1/lodestar/block_processor_queue_items", method: "GET" },
14
- getStateCacheItems: { url: "/eth/v1/lodestar/state_cache_items", method: "GET" },
15
- getGossipPeerScoreStats: { url: "/eth/v1/lodestar/gossip_peer_score_stats", method: "GET" },
16
- getLodestarPeerScoreStats: { url: "/eth/v1/lodestar/lodestar_peer_score_stats", method: "GET" },
17
- runGC: { url: "/eth/v1/lodestar/gc", method: "POST" },
18
- dropStateCache: { url: "/eth/v1/lodestar/drop_state_cache", method: "POST" },
19
- connectPeer: { url: "/eth/v1/lodestar/connect_peer", method: "POST" },
20
- disconnectPeer: { url: "/eth/v1/lodestar/disconnect_peer", method: "POST" },
21
- getPeers: { url: "/eth/v1/lodestar/peers", method: "GET" },
22
- discv5GetKadValues: { url: "/eth/v1/debug/discv5_kad_values", method: "GET" },
23
- dumpDbBucketKeys: { url: "/eth/v1/debug/dump_db_bucket_keys/:bucket", method: "GET" },
24
- dumpDbStateIndex: { url: "/eth/v1/debug/dump_db_state_index", method: "GET" },
25
- };
26
- export function getReqSerializers() {
1
+ import { Schema } from "../../utils/index.js";
2
+ import { EmptyRequestCodec, EmptyResponseCodec, JsonOnlyResponseCodec, } from "../../utils/codecs.js";
3
+ export function getDefinitions(_config) {
27
4
  return {
28
5
  writeHeapdump: {
29
- writeReq: (thread, dirpath) => ({ query: { thread, dirpath } }),
30
- parseReq: ({ query }) => [query.thread, query.dirpath],
31
- schema: { query: { dirpath: Schema.String } },
6
+ url: "/eth/v1/lodestar/write_heapdump",
7
+ method: "POST",
8
+ req: {
9
+ writeReq: ({ thread, dirpath }) => ({ query: { thread, dirpath } }),
10
+ parseReq: ({ query }) => ({ thread: query.thread, dirpath: query.dirpath }),
11
+ schema: { query: { thread: Schema.String, dirpath: Schema.String } },
12
+ },
13
+ resp: JsonOnlyResponseCodec,
32
14
  },
33
15
  writeProfile: {
34
- writeReq: (thread, duration, dirpath) => ({ query: { thread, duration, dirpath } }),
35
- parseReq: ({ query }) => [query.thread, query.duration, query.dirpath],
36
- schema: { query: { dirpath: Schema.String } },
16
+ url: "/eth/v1/lodestar/write_profile",
17
+ method: "POST",
18
+ req: {
19
+ writeReq: ({ thread, duration, dirpath }) => ({ query: { thread, duration, dirpath } }),
20
+ parseReq: ({ query }) => ({ thread: query.thread, duration: query.duration, dirpath: query.dirpath }),
21
+ schema: { query: { thread: Schema.String, duration: Schema.Uint, dirpath: Schema.String } },
22
+ },
23
+ resp: JsonOnlyResponseCodec,
24
+ },
25
+ getLatestWeakSubjectivityCheckpointEpoch: {
26
+ url: "/eth/v1/lodestar/ws_epoch",
27
+ method: "GET",
28
+ req: EmptyRequestCodec,
29
+ resp: JsonOnlyResponseCodec,
30
+ },
31
+ getSyncChainsDebugState: {
32
+ url: "/eth/v1/lodestar/sync_chains_debug_state",
33
+ method: "GET",
34
+ req: EmptyRequestCodec,
35
+ resp: JsonOnlyResponseCodec,
37
36
  },
38
- getLatestWeakSubjectivityCheckpointEpoch: reqEmpty,
39
- getSyncChainsDebugState: reqEmpty,
40
37
  getGossipQueueItems: {
41
- writeReq: (gossipType) => ({ params: { gossipType } }),
42
- parseReq: ({ params }) => [params.gossipType],
43
- schema: { params: { gossipType: Schema.StringRequired } },
44
- },
45
- getRegenQueueItems: reqEmpty,
46
- getBlockProcessorQueueItems: reqEmpty,
47
- getStateCacheItems: reqEmpty,
48
- getGossipPeerScoreStats: reqEmpty,
49
- getLodestarPeerScoreStats: reqEmpty,
50
- runGC: reqEmpty,
51
- dropStateCache: reqEmpty,
38
+ url: "/eth/v1/lodestar/gossip_queue_items/:gossipType",
39
+ method: "GET",
40
+ req: {
41
+ writeReq: ({ gossipType }) => ({ params: { gossipType } }),
42
+ parseReq: ({ params }) => ({ gossipType: params.gossipType }),
43
+ schema: { params: { gossipType: Schema.StringRequired } },
44
+ },
45
+ resp: JsonOnlyResponseCodec,
46
+ },
47
+ getRegenQueueItems: {
48
+ url: "/eth/v1/lodestar/regen_queue_items",
49
+ method: "GET",
50
+ req: EmptyRequestCodec,
51
+ resp: JsonOnlyResponseCodec,
52
+ },
53
+ getBlockProcessorQueueItems: {
54
+ url: "/eth/v1/lodestar/block_processor_queue_items",
55
+ method: "GET",
56
+ req: EmptyRequestCodec,
57
+ resp: JsonOnlyResponseCodec,
58
+ },
59
+ getStateCacheItems: {
60
+ url: "/eth/v1/lodestar/state_cache_items",
61
+ method: "GET",
62
+ req: EmptyRequestCodec,
63
+ resp: JsonOnlyResponseCodec,
64
+ },
65
+ getGossipPeerScoreStats: {
66
+ url: "/eth/v1/lodestar/gossip_peer_score_stats",
67
+ method: "GET",
68
+ req: EmptyRequestCodec,
69
+ resp: JsonOnlyResponseCodec,
70
+ },
71
+ getLodestarPeerScoreStats: {
72
+ url: "/eth/v1/lodestar/lodestar_peer_score_stats",
73
+ method: "GET",
74
+ req: EmptyRequestCodec,
75
+ resp: JsonOnlyResponseCodec,
76
+ },
77
+ runGC: {
78
+ url: "/eth/v1/lodestar/gc",
79
+ method: "POST",
80
+ req: EmptyRequestCodec,
81
+ resp: EmptyResponseCodec,
82
+ },
83
+ dropStateCache: {
84
+ url: "/eth/v1/lodestar/drop_state_cache",
85
+ method: "POST",
86
+ req: EmptyRequestCodec,
87
+ resp: EmptyResponseCodec,
88
+ },
52
89
  connectPeer: {
53
- writeReq: (peerId, multiaddr) => ({ query: { peerId, multiaddr } }),
54
- parseReq: ({ query }) => [query.peerId, query.multiaddr],
55
- schema: { query: { peerId: Schema.StringRequired, multiaddr: Schema.StringArray } },
90
+ url: "/eth/v1/lodestar/connect_peer",
91
+ method: "POST",
92
+ req: {
93
+ writeReq: ({ peerId, multiaddrs }) => ({ query: { peerId, multiaddr: multiaddrs } }),
94
+ parseReq: ({ query }) => ({ peerId: query.peerId, multiaddrs: query.multiaddr }),
95
+ schema: { query: { peerId: Schema.StringRequired, multiaddr: Schema.StringArray } },
96
+ },
97
+ resp: EmptyResponseCodec,
56
98
  },
57
99
  disconnectPeer: {
58
- writeReq: (peerId) => ({ query: { peerId } }),
59
- parseReq: ({ query }) => [query.peerId],
60
- schema: { query: { peerId: Schema.StringRequired } },
100
+ url: "/eth/v1/lodestar/disconnect_peer",
101
+ method: "POST",
102
+ req: {
103
+ writeReq: ({ peerId }) => ({ query: { peerId } }),
104
+ parseReq: ({ query }) => ({ peerId: query.peerId }),
105
+ schema: { query: { peerId: Schema.StringRequired } },
106
+ },
107
+ resp: EmptyResponseCodec,
61
108
  },
62
109
  getPeers: {
63
- writeReq: (filters) => ({ query: filters || {} }),
64
- parseReq: ({ query }) => [query],
65
- schema: { query: { state: Schema.StringArray, direction: Schema.StringArray } },
110
+ url: "/eth/v1/lodestar/peers",
111
+ method: "GET",
112
+ req: {
113
+ writeReq: ({ state, direction }) => ({ query: { state, direction } }),
114
+ parseReq: ({ query }) => ({ state: query.state, direction: query.direction }),
115
+ schema: { query: { state: Schema.StringArray, direction: Schema.StringArray } },
116
+ },
117
+ resp: JsonOnlyResponseCodec,
118
+ },
119
+ discv5GetKadValues: {
120
+ url: "/eth/v1/debug/discv5_kad_values",
121
+ method: "GET",
122
+ req: EmptyRequestCodec,
123
+ resp: JsonOnlyResponseCodec,
66
124
  },
67
- discv5GetKadValues: reqEmpty,
68
125
  dumpDbBucketKeys: {
69
- writeReq: (bucket) => ({ params: { bucket } }),
70
- parseReq: ({ params }) => [params.bucket],
71
- schema: { params: { bucket: Schema.String } },
126
+ url: "/eth/v1/debug/dump_db_bucket_keys/:bucket",
127
+ method: "GET",
128
+ req: {
129
+ writeReq: ({ bucket }) => ({ params: { bucket } }),
130
+ parseReq: ({ params }) => ({ bucket: params.bucket }),
131
+ schema: { params: { bucket: Schema.String } },
132
+ },
133
+ resp: JsonOnlyResponseCodec,
134
+ },
135
+ dumpDbStateIndex: {
136
+ url: "/eth/v1/debug/dump_db_state_index",
137
+ method: "GET",
138
+ req: EmptyRequestCodec,
139
+ resp: JsonOnlyResponseCodec,
72
140
  },
73
- dumpDbStateIndex: reqEmpty,
74
- };
75
- }
76
- export function getReturnTypes() {
77
- return {
78
- writeHeapdump: sameType(),
79
- writeProfile: sameType(),
80
- getLatestWeakSubjectivityCheckpointEpoch: sameType(),
81
- getSyncChainsDebugState: jsonType("snake"),
82
- getGossipQueueItems: jsonType("snake"),
83
- getRegenQueueItems: jsonType("snake"),
84
- getBlockProcessorQueueItems: jsonType("snake"),
85
- getStateCacheItems: jsonType("snake"),
86
- getGossipPeerScoreStats: jsonType("snake"),
87
- getLodestarPeerScoreStats: jsonType("snake"),
88
- getPeers: jsonType("snake"),
89
- discv5GetKadValues: jsonType("snake"),
90
- dumpDbBucketKeys: sameType(),
91
- dumpDbStateIndex: sameType(),
92
141
  };
93
142
  }
94
143
  //# sourceMappingURL=lodestar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lodestar.js","sourceRoot":"","sources":["../../../src/beacon/routes/lodestar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lodestar.js","sourceRoot":"","sources":["../../../src/beacon/routes/lodestar.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAA6B,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAEL,iBAAiB,EAGjB,kBAAkB,EAElB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAgP/B,MAAM,UAAU,cAAc,CAAC,OAAwB;IACrD,OAAO;QACL,aAAa,EAAE;YACb,GAAG,EAAE,iCAAiC;YACtC,MAAM,EAAE,MAAM;YACd,GAAG,EAAE;gBACH,QAAQ,EAAE,CAAC,EAAC,MAAM,EAAE,OAAO,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,OAAO,EAAC,EAAC,CAAC;gBAC7D,QAAQ,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAC,CAAC;gBACvE,MAAM,EAAE,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAC,EAAC;aACjE;YACD,IAAI,EAAE,qBAAqB;SAC5B;QACD,YAAY,EAAE;YACZ,GAAG,EAAE,gCAAgC;YACrC,MAAM,EAAE,MAAM;YACd,GAAG,EAAE;gBACH,QAAQ,EAAE,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAC,EAAC,CAAC;gBACjF,QAAQ,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAC,CAAC;gBACjG,MAAM,EAAE,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAC,EAAC;aACxF;YACD,IAAI,EAAE,qBAAqB;SAC5B;QACD,wCAAwC,EAAE;YACxC,GAAG,EAAE,2BAA2B;YAChC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,iBAAiB;YACtB,IAAI,EAAE,qBAAqB;SAC5B;QACD,uBAAuB,EAAE;YACvB,GAAG,EAAE,0CAA0C;YAC/C,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,iBAAiB;YACtB,IAAI,EAAE,qBAAqB;SAC5B;QACD,mBAAmB,EAAE;YACnB,GAAG,EAAE,iDAAiD;YACtD,MAAM,EAAE,KAAK;YACb,GAAG,EAAE;gBACH,QAAQ,EAAE,CAAC,EAAC,UAAU,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,EAAC,UAAU,EAAC,EAAC,CAAC;gBACpD,QAAQ,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,UAAU,EAAE,MAAM,CAAC,UAAU,EAAC,CAAC;gBACzD,MAAM,EAAE,EAAC,MAAM,EAAE,EAAC,UAAU,EAAE,MAAM,CAAC,cAAc,EAAC,EAAC;aACtD;YACD,IAAI,EAAE,qBAAqB;SAC5B;QACD,kBAAkB,EAAE;YAClB,GAAG,EAAE,oCAAoC;YACzC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,iBAAiB;YACtB,IAAI,EAAE,qBAAqB;SAC5B;QACD,2BAA2B,EAAE;YAC3B,GAAG,EAAE,8CAA8C;YACnD,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,iBAAiB;YACtB,IAAI,EAAE,qBAAqB;SAC5B;QACD,kBAAkB,EAAE;YAClB,GAAG,EAAE,oCAAoC;YACzC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,iBAAiB;YACtB,IAAI,EAAE,qBAAqB;SAC5B;QACD,uBAAuB,EAAE;YACvB,GAAG,EAAE,0CAA0C;YAC/C,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,iBAAiB;YACtB,IAAI,EAAE,qBAAqB;SAC5B;QACD,yBAAyB,EAAE;YACzB,GAAG,EAAE,4CAA4C;YACjD,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,iBAAiB;YACtB,IAAI,EAAE,qBAAqB;SAC5B;QACD,KAAK,EAAE;YACL,GAAG,EAAE,qBAAqB;YAC1B,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,iBAAiB;YACtB,IAAI,EAAE,kBAAkB;SACzB;QACD,cAAc,EAAE;YACd,GAAG,EAAE,mCAAmC;YACxC,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,iBAAiB;YACtB,IAAI,EAAE,kBAAkB;SACzB;QACD,WAAW,EAAE;YACX,GAAG,EAAE,+BAA+B;YACpC,MAAM,EAAE,MAAM;YACd,GAAG,EAAE;gBACH,QAAQ,EAAE,CAAC,EAAC,MAAM,EAAE,UAAU,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAC,EAAC,CAAC;gBAC9E,QAAQ,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,EAAC,CAAC;gBAC5E,MAAM,EAAE,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,WAAW,EAAC,EAAC;aAChF;YACD,IAAI,EAAE,kBAAkB;SACzB;QACD,cAAc,EAAE;YACd,GAAG,EAAE,kCAAkC;YACvC,MAAM,EAAE,MAAM;YACd,GAAG,EAAE;gBACH,QAAQ,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,EAAC,MAAM,EAAC,EAAC,CAAC;gBAC3C,QAAQ,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAC,CAAC;gBAC/C,MAAM,EAAE,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,CAAC,cAAc,EAAC,EAAC;aACjD;YACD,IAAI,EAAE,kBAAkB;SACzB;QACD,QAAQ,EAAE;YACR,GAAG,EAAE,wBAAwB;YAC7B,MAAM,EAAE,KAAK;YACb,GAAG,EAAE;gBACH,QAAQ,EAAE,CAAC,EAAC,KAAK,EAAE,SAAS,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,EAAC,KAAK,EAAE,SAAS,EAAC,EAAC,CAAC;gBAC/D,QAAQ,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAC,CAAC;gBACzE,MAAM,EAAE,EAAC,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,WAAW,EAAC,EAAC;aAC5E;YACD,IAAI,EAAE,qBAAqB;SAC5B;QACD,kBAAkB,EAAE;YAClB,GAAG,EAAE,iCAAiC;YACtC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,iBAAiB;YACtB,IAAI,EAAE,qBAAqB;SAC5B;QACD,gBAAgB,EAAE;YAChB,GAAG,EAAE,2CAA2C;YAChD,MAAM,EAAE,KAAK;YACb,GAAG,EAAE;gBACH,QAAQ,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,EAAC,MAAM,EAAC,EAAC,CAAC;gBAC5C,QAAQ,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAC,CAAC;gBACjD,MAAM,EAAE,EAAC,MAAM,EAAE,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAC,EAAC;aAC1C;YACD,IAAI,EAAE,qBAAqB;SAC5B;QACD,gBAAgB,EAAE;YAChB,GAAG,EAAE,mCAAmC;YACxC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,iBAAiB;YACtB,IAAI,EAAE,qBAAqB;SAC5B;KACF,CAAC;AACJ,CAAC"}
@@ -1,17 +1,28 @@
1
- import { allForks } from "@lodestar/types";
2
- import { ReturnTypes, RoutesData, ReqSerializers, ReqEmpty } from "../../utils/index.js";
3
- import { HttpStatusCode } from "../../utils/client/httpStatusCode.js";
4
- import { ApiClientResponse } from "../../interfaces.js";
5
- export type NetworkIdentity = {
1
+ import { ContainerType, ValueOf } from "@chainsafe/ssz";
2
+ import { ChainForkConfig } from "@lodestar/config";
3
+ import { Endpoint, RouteDefinitions } from "../../utils/index.js";
4
+ import { EmptyArgs, EmptyMeta, EmptyRequest, EmptyResponseData } from "../../utils/codecs.js";
5
+ export declare const NetworkIdentityType: ContainerType<{
6
6
  /** Cryptographic hash of a peer’s public key. [Read more](https://docs.libp2p.io/concepts/peer-id/) */
7
- peerId: string;
7
+ peerId: import("@lodestar/types").StringType<string>;
8
8
  /** Ethereum node record. [Read more](https://eips.ethereum.org/EIPS/eip-778) */
9
- enr: string;
10
- p2pAddresses: string[];
11
- discoveryAddresses: string[];
9
+ enr: import("@lodestar/types").StringType<string>;
10
+ p2pAddresses: import("@chainsafe/ssz").ArrayType<import("@chainsafe/ssz").Type<string>, unknown, unknown>;
11
+ discoveryAddresses: import("@chainsafe/ssz").ArrayType<import("@chainsafe/ssz").Type<string>, unknown, unknown>;
12
12
  /** Based on Ethereum Consensus [Metadata object](https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/phase0/p2p-interface.md#metadata) */
13
- metadata: allForks.Metadata;
14
- };
13
+ metadata: ContainerType<{
14
+ seqNumber: import("@chainsafe/ssz").UintBigintType;
15
+ attnets: import("@chainsafe/ssz").BitVectorType;
16
+ syncnets: import("@chainsafe/ssz").BitVectorType;
17
+ }>;
18
+ }>;
19
+ export declare const PeerCountType: ContainerType<{
20
+ disconnected: import("@chainsafe/ssz").UintNumberType;
21
+ connecting: import("@chainsafe/ssz").UintNumberType;
22
+ connected: import("@chainsafe/ssz").UintNumberType;
23
+ disconnecting: import("@chainsafe/ssz").UintNumberType;
24
+ }>;
25
+ export type NetworkIdentity = ValueOf<typeof NetworkIdentityType>;
15
26
  export type PeerState = "disconnected" | "connecting" | "connected" | "disconnecting";
16
27
  export type PeerDirection = "inbound" | "outbound";
17
28
  export type NodePeer = {
@@ -21,12 +32,10 @@ export type NodePeer = {
21
32
  state: PeerState;
22
33
  direction: PeerDirection | null;
23
34
  };
24
- export type PeerCount = {
25
- disconnected: number;
26
- connecting: number;
27
- connected: number;
28
- disconnecting: number;
35
+ export type PeersMeta = {
36
+ count: number;
29
37
  };
38
+ export type PeerCount = ValueOf<typeof PeerCountType>;
30
39
  export type FilterGetPeers = {
31
40
  state?: PeerState[];
32
41
  direction?: PeerDirection[];
@@ -48,107 +57,64 @@ export declare enum NodeHealth {
48
57
  SYNCING = 206,
49
58
  NOT_INITIALIZED_OR_ISSUES = 503
50
59
  }
51
- export type NodeHealthOptions = {
52
- syncingStatus?: number;
53
- };
54
60
  /**
55
61
  * Read information about the beacon node.
56
62
  */
57
- export type Api = {
63
+ export type Endpoints = {
58
64
  /**
59
65
  * Get node network identity
60
66
  * Retrieves data about the node's network presence
61
67
  */
62
- getNetworkIdentity: () => Promise<ApiClientResponse<{
63
- [HttpStatusCode.OK]: {
64
- data: NetworkIdentity;
65
- };
66
- }>>;
68
+ getNetworkIdentity: Endpoint<"GET", EmptyArgs, EmptyRequest, NetworkIdentity, EmptyMeta>;
67
69
  /**
68
70
  * Get node network peers
69
71
  * Retrieves data about the node's network peers. By default this returns all peers. Multiple query params are combined using AND conditions
70
- * @param state
71
- * @param direction
72
72
  */
73
- getPeers(filters?: FilterGetPeers): Promise<ApiClientResponse<{
74
- [HttpStatusCode.OK]: {
75
- data: NodePeer[];
76
- meta: {
77
- count: number;
78
- };
73
+ getPeers: Endpoint<"GET", FilterGetPeers, {
74
+ query: {
75
+ state?: PeerState[];
76
+ direction?: PeerDirection[];
79
77
  };
80
- }>>;
78
+ }, NodePeer[], PeersMeta>;
81
79
  /**
82
80
  * Get peer
83
81
  * Retrieves data about the given peer
84
- * @param peerId
85
82
  */
86
- getPeer(peerId: string): Promise<ApiClientResponse<{
87
- [HttpStatusCode.OK]: {
88
- data: NodePeer;
83
+ getPeer: Endpoint<"GET", {
84
+ peerId: string;
85
+ }, {
86
+ params: {
87
+ peer_id: string;
89
88
  };
90
- }, HttpStatusCode.BAD_REQUEST | HttpStatusCode.NOT_FOUND>>;
89
+ }, NodePeer, EmptyMeta>;
91
90
  /**
92
91
  * Get peer count
93
92
  * Retrieves number of known peers.
94
93
  */
95
- getPeerCount(): Promise<ApiClientResponse<{
96
- [HttpStatusCode.OK]: {
97
- data: PeerCount;
98
- };
99
- }>>;
94
+ getPeerCount: Endpoint<"GET", EmptyArgs, EmptyRequest, PeerCount, EmptyMeta>;
100
95
  /**
101
96
  * Get version string of the running beacon node.
102
97
  * Requests that the beacon node identify information about its implementation in a format similar to a [HTTP User-Agent](https://tools.ietf.org/html/rfc7231#section-5.5.3) field.
103
98
  */
104
- getNodeVersion(): Promise<ApiClientResponse<{
105
- [HttpStatusCode.OK]: {
106
- data: {
107
- version: string;
108
- };
109
- };
110
- }>>;
99
+ getNodeVersion: Endpoint<"GET", EmptyArgs, EmptyRequest, {
100
+ version: string;
101
+ }, EmptyMeta>;
111
102
  /**
112
103
  * Get node syncing status
113
104
  * Requests the beacon node to describe if it's currently syncing or not, and if it is, what block it is up to.
114
105
  */
115
- getSyncingStatus(): Promise<ApiClientResponse<{
116
- [HttpStatusCode.OK]: {
117
- data: SyncingStatus;
118
- };
119
- }>>;
106
+ getSyncingStatus: Endpoint<"GET", EmptyArgs, EmptyRequest, SyncingStatus, EmptyMeta>;
120
107
  /**
121
108
  * Get health check
122
109
  * Returns node health status in http status codes. Useful for load balancers.
123
110
  */
124
- getHealth(options?: NodeHealthOptions): Promise<ApiClientResponse<{
125
- [HttpStatusCode.OK]: void;
126
- [HttpStatusCode.PARTIAL_CONTENT]: void;
127
- }, HttpStatusCode.BAD_REQUEST | HttpStatusCode.SERVICE_UNAVAILABLE>>;
128
- };
129
- export declare const routesData: RoutesData<Api>;
130
- export type ReqTypes = {
131
- getNetworkIdentity: ReqEmpty;
132
- getPeers: {
133
- query: {
134
- state?: PeerState[];
135
- direction?: PeerDirection[];
136
- };
137
- };
138
- getPeer: {
139
- params: {
140
- peer_id: string;
141
- };
142
- };
143
- getPeerCount: ReqEmpty;
144
- getNodeVersion: ReqEmpty;
145
- getSyncingStatus: ReqEmpty;
146
- getHealth: {
111
+ getHealth: Endpoint<"GET", {
112
+ syncingStatus?: number;
113
+ }, {
147
114
  query: {
148
115
  syncing_status?: number;
149
116
  };
150
- };
117
+ }, EmptyResponseData, EmptyMeta>;
151
118
  };
152
- export declare function getReqSerializers(): ReqSerializers<Api, ReqTypes>;
153
- export declare function getReturnTypes(): ReturnTypes<Api>;
119
+ export declare function getDefinitions(_config: ChainForkConfig): RouteDefinitions<Endpoints>;
154
120
  //# sourceMappingURL=node.d.ts.map
@@ -1,74 +1,107 @@
1
+ /* eslint-disable @typescript-eslint/naming-convention */
1
2
  import { ContainerType } from "@chainsafe/ssz";
2
- import { ssz, StringType } from "@lodestar/types";
3
- import { ArrayOf, reqEmpty, jsonType, Schema, ContainerData, } from "../../utils/index.js";
4
- import { HttpStatusCode } from "../../utils/client/httpStatusCode.js";
3
+ import { ssz, stringType } from "@lodestar/types";
4
+ import { Schema } from "../../utils/index.js";
5
+ import { ArrayOf, EmptyRequestCodec, EmptyMetaCodec, EmptyResponseCodec, JsonOnlyResponseCodec, } from "../../utils/codecs.js";
6
+ import { WireFormat } from "../../utils/wireFormat.js";
7
+ // See /packages/api/src/routes/index.ts for reasoning and instructions to add new routes
8
+ export const NetworkIdentityType = new ContainerType({
9
+ /** Cryptographic hash of a peer’s public key. [Read more](https://docs.libp2p.io/concepts/peer-id/) */
10
+ peerId: stringType,
11
+ /** Ethereum node record. [Read more](https://eips.ethereum.org/EIPS/eip-778) */
12
+ enr: stringType,
13
+ p2pAddresses: ArrayOf(stringType),
14
+ discoveryAddresses: ArrayOf(stringType),
15
+ /** Based on Ethereum Consensus [Metadata object](https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/phase0/p2p-interface.md#metadata) */
16
+ metadata: ssz.altair.Metadata,
17
+ }, { jsonCase: "eth2" });
18
+ export const PeerCountType = new ContainerType({
19
+ disconnected: ssz.UintNum64,
20
+ connecting: ssz.UintNum64,
21
+ connected: ssz.UintNum64,
22
+ disconnecting: ssz.UintNum64,
23
+ }, { jsonCase: "eth2" });
5
24
  export var NodeHealth;
6
25
  (function (NodeHealth) {
7
26
  NodeHealth[NodeHealth["READY"] = 200] = "READY";
8
27
  NodeHealth[NodeHealth["SYNCING"] = 206] = "SYNCING";
9
28
  NodeHealth[NodeHealth["NOT_INITIALIZED_OR_ISSUES"] = 503] = "NOT_INITIALIZED_OR_ISSUES";
10
29
  })(NodeHealth || (NodeHealth = {}));
11
- export const routesData = {
12
- getNetworkIdentity: { url: "/eth/v1/node/identity", method: "GET" },
13
- getPeers: { url: "/eth/v1/node/peers", method: "GET" },
14
- getPeer: { url: "/eth/v1/node/peers/{peer_id}", method: "GET" },
15
- getPeerCount: { url: "/eth/v1/node/peer_count", method: "GET" },
16
- getNodeVersion: { url: "/eth/v1/node/version", method: "GET" },
17
- getSyncingStatus: { url: "/eth/v1/node/syncing", method: "GET" },
18
- getHealth: { url: "/eth/v1/node/health", method: "GET" },
19
- };
20
- export function getReqSerializers() {
30
+ export function getDefinitions(_config) {
21
31
  return {
22
- getNetworkIdentity: reqEmpty,
32
+ getNetworkIdentity: {
33
+ url: "/eth/v1/node/identity",
34
+ method: "GET",
35
+ req: EmptyRequestCodec,
36
+ resp: {
37
+ onlySupport: WireFormat.json,
38
+ data: NetworkIdentityType,
39
+ meta: EmptyMetaCodec,
40
+ },
41
+ },
23
42
  getPeers: {
24
- writeReq: (filters) => ({ query: filters || {} }),
25
- parseReq: ({ query }) => [query],
26
- schema: { query: { state: Schema.StringArray, direction: Schema.StringArray } },
43
+ url: "/eth/v1/node/peers",
44
+ method: "GET",
45
+ req: {
46
+ writeReq: ({ state, direction }) => ({ query: { state, direction } }),
47
+ parseReq: ({ query }) => ({ state: query.state, direction: query.direction }),
48
+ schema: { query: { state: Schema.StringArray, direction: Schema.StringArray } },
49
+ },
50
+ resp: {
51
+ ...JsonOnlyResponseCodec,
52
+ meta: {
53
+ toJson: (d) => d,
54
+ fromJson: (d) => ({ count: d.count }),
55
+ toHeadersObject: () => ({}),
56
+ fromHeaders: () => ({}),
57
+ },
58
+ transform: {
59
+ toResponse: (data, meta) => ({ data, meta }),
60
+ fromResponse: (resp) => resp,
61
+ },
62
+ },
27
63
  },
28
64
  getPeer: {
29
- writeReq: (peer_id) => ({ params: { peer_id } }),
30
- parseReq: ({ params }) => [params.peer_id],
31
- schema: { params: { peer_id: Schema.StringRequired } },
65
+ url: "/eth/v1/node/peers/{peer_id}",
66
+ method: "GET",
67
+ req: {
68
+ writeReq: ({ peerId }) => ({ params: { peer_id: peerId } }),
69
+ parseReq: ({ params }) => ({ peerId: params.peer_id }),
70
+ schema: { params: { peer_id: Schema.StringRequired } },
71
+ },
72
+ resp: JsonOnlyResponseCodec,
73
+ },
74
+ getPeerCount: {
75
+ url: "/eth/v1/node/peer_count",
76
+ method: "GET",
77
+ req: EmptyRequestCodec,
78
+ resp: {
79
+ data: PeerCountType,
80
+ meta: EmptyMetaCodec,
81
+ },
82
+ },
83
+ getNodeVersion: {
84
+ url: "/eth/v1/node/version",
85
+ method: "GET",
86
+ req: EmptyRequestCodec,
87
+ resp: JsonOnlyResponseCodec,
88
+ },
89
+ getSyncingStatus: {
90
+ url: "/eth/v1/node/syncing",
91
+ method: "GET",
92
+ req: EmptyRequestCodec,
93
+ resp: JsonOnlyResponseCodec,
32
94
  },
33
- getPeerCount: reqEmpty,
34
- getNodeVersion: reqEmpty,
35
- getSyncingStatus: reqEmpty,
36
95
  getHealth: {
37
- writeReq: (options) => ({
38
- query: options?.syncingStatus !== undefined ? { syncing_status: options.syncingStatus } : {},
39
- }),
40
- parseReq: ({ query }) => [{ syncingStatus: query.syncing_status }],
41
- schema: { query: { syncing_status: Schema.Uint } },
96
+ url: "/eth/v1/node/health",
97
+ method: "GET",
98
+ req: {
99
+ writeReq: ({ syncingStatus }) => ({ query: { syncing_status: syncingStatus } }),
100
+ parseReq: ({ query }) => ({ syncingStatus: query.syncing_status }),
101
+ schema: { query: { syncing_status: Schema.Uint } },
102
+ },
103
+ resp: EmptyResponseCodec,
42
104
  },
43
105
  };
44
106
  }
45
- export function getReturnTypes() {
46
- const stringType = new StringType();
47
- const NetworkIdentity = new ContainerType({
48
- peerId: stringType,
49
- enr: stringType,
50
- p2pAddresses: ArrayOf(stringType),
51
- discoveryAddresses: ArrayOf(stringType),
52
- metadata: ssz.altair.Metadata,
53
- }, { jsonCase: "eth2" });
54
- const PeerCount = new ContainerType({
55
- disconnected: ssz.UintNum64,
56
- connecting: ssz.UintNum64,
57
- connected: ssz.UintNum64,
58
- disconnecting: ssz.UintNum64,
59
- }, { jsonCase: "eth2" });
60
- return {
61
- //
62
- // TODO: Consider just converting the JSON case without custom types
63
- //
64
- getNetworkIdentity: ContainerData(NetworkIdentity),
65
- // All these types don't contain any BigInt nor Buffer instances.
66
- // Use jsonType() to translate the casing in a generic way.
67
- getPeers: jsonType("snake"),
68
- getPeer: jsonType("snake"),
69
- getPeerCount: ContainerData(PeerCount),
70
- getNodeVersion: jsonType("snake"),
71
- getSyncingStatus: jsonType("snake"),
72
- };
73
- }
74
107
  //# sourceMappingURL=node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/beacon/routes/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAW,GAAG,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EAGR,MAAM,EAGN,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,cAAc,EAAC,MAAM,sCAAsC,CAAC;AAqDpE,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,+CAAyB,CAAA;IACzB,mDAAwC,CAAA;IACxC,uFAA8D,CAAA;AAChE,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAmED,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC,kBAAkB,EAAE,EAAC,GAAG,EAAE,uBAAuB,EAAE,MAAM,EAAE,KAAK,EAAC;IACjE,QAAQ,EAAE,EAAC,GAAG,EAAE,oBAAoB,EAAE,MAAM,EAAE,KAAK,EAAC;IACpD,OAAO,EAAE,EAAC,GAAG,EAAE,8BAA8B,EAAE,MAAM,EAAE,KAAK,EAAC;IAC7D,YAAY,EAAE,EAAC,GAAG,EAAE,yBAAyB,EAAE,MAAM,EAAE,KAAK,EAAC;IAC7D,cAAc,EAAE,EAAC,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE,KAAK,EAAC;IAC5D,gBAAgB,EAAE,EAAC,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE,KAAK,EAAC;IAC9D,SAAS,EAAE,EAAC,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,KAAK,EAAC;CACvD,CAAC;AAcF,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,kBAAkB,EAAE,QAAQ;QAE5B,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,OAAO,IAAI,EAAE,EAAC,CAAC;YAC/C,QAAQ,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;YAC9B,MAAM,EAAE,EAAC,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,WAAW,EAAC,EAAC;SAC5E;QACD,OAAO,EAAE;YACP,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,EAAC,OAAO,EAAC,EAAC,CAAC;YAC5C,QAAQ,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACxC,MAAM,EAAE,EAAC,MAAM,EAAE,EAAC,OAAO,EAAE,MAAM,CAAC,cAAc,EAAC,EAAC;SACnD;QAED,YAAY,EAAE,QAAQ;QACtB,cAAc,EAAE,QAAQ;QACxB,gBAAgB,EAAE,QAAQ;QAC1B,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACtB,KAAK,EAAE,OAAO,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,cAAc,EAAE,OAAO,CAAC,aAAa,EAAC,CAAC,CAAC,CAAC,EAAE;aAC3F,CAAC;YACF,QAAQ,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAC,CAAC;YAC9D,MAAM,EAAE,EAAC,KAAK,EAAE,EAAC,cAAc,EAAE,MAAM,CAAC,IAAI,EAAC,EAAC;SAC/C;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACpC,MAAM,eAAe,GAAG,IAAI,aAAa,CACvC;QACE,MAAM,EAAE,UAAU;QAClB,GAAG,EAAE,UAAU;QACf,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC;QACjC,kBAAkB,EAAE,OAAO,CAAC,UAAU,CAAC;QACvC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ;KAC9B,EACD,EAAC,QAAQ,EAAE,MAAM,EAAC,CACnB,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,aAAa,CACjC;QACE,YAAY,EAAE,GAAG,CAAC,SAAS;QAC3B,UAAU,EAAE,GAAG,CAAC,SAAS;QACzB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,aAAa,EAAE,GAAG,CAAC,SAAS;KAC7B,EACD,EAAC,QAAQ,EAAE,MAAM,EAAC,CACnB,CAAC;IAEF,OAAO;QACL,EAAE;QACF,oEAAoE;QACpE,EAAE;QACF,kBAAkB,EAAE,aAAa,CAAC,eAAe,CAAC;QAClD,iEAAiE;QACjE,2DAA2D;QAC3D,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC;QAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;QAC1B,YAAY,EAAE,aAAa,CAAC,SAAS,CAAC;QACtC,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC;QACjC,gBAAgB,EAAE,QAAQ,CAAC,OAAO,CAAC;KACpC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/beacon/routes/node.ts"],"names":[],"mappings":"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"}