@lodestar/api 1.20.0-dev.c1532773c2 → 1.20.0-dev.f4460cd1d6

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 +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
@@ -0,0 +1,134 @@
1
+ import { toBase64 } from "@lodestar/utils";
2
+ export var HttpHeader;
3
+ (function (HttpHeader) {
4
+ HttpHeader["ContentType"] = "content-type";
5
+ HttpHeader["Accept"] = "accept";
6
+ HttpHeader["Authorization"] = "authorization";
7
+ })(HttpHeader || (HttpHeader = {}));
8
+ export var MediaType;
9
+ (function (MediaType) {
10
+ MediaType["json"] = "application/json";
11
+ MediaType["ssz"] = "application/octet-stream";
12
+ })(MediaType || (MediaType = {}));
13
+ export const SUPPORTED_MEDIA_TYPES = Object.values(MediaType);
14
+ function isSupportedMediaType(mediaType, supported) {
15
+ return mediaType !== null && supported.includes(mediaType);
16
+ }
17
+ export function parseContentTypeHeader(contentType) {
18
+ if (!contentType) {
19
+ return null;
20
+ }
21
+ const mediaType = contentType.split(";", 1)[0].trim().toLowerCase();
22
+ return isSupportedMediaType(mediaType, SUPPORTED_MEDIA_TYPES) ? mediaType : null;
23
+ }
24
+ export function parseAcceptHeader(accept, supported = SUPPORTED_MEDIA_TYPES) {
25
+ if (!accept) {
26
+ return null;
27
+ }
28
+ // Respect Quality Values per RFC-9110
29
+ // Acceptable mime-types are comma separated with optional whitespace
30
+ return accept
31
+ .toLowerCase()
32
+ .split(",")
33
+ .map((x) => x.trim())
34
+ .reduce((best, current) => {
35
+ // An optional `;` delimiter is used to separate the mime-type from the weight
36
+ // Normalize here, using 1 as the default qvalue
37
+ const quality = current.includes(";") ? current.split(";") : [current, "q=1"];
38
+ const mediaType = quality[0].trim();
39
+ // If the mime type isn't acceptable, move on to the next entry
40
+ if (!isSupportedMediaType(mediaType, supported)) {
41
+ return best;
42
+ }
43
+ // Otherwise, the portion after the semicolon has optional whitespace and the constant prefix "q="
44
+ const weight = quality[1].trim();
45
+ if (!weight.startsWith("q=")) {
46
+ // If the format is invalid simply move on to the next entry
47
+ return best;
48
+ }
49
+ const qvalue = +weight.replace("q=", "");
50
+ if (isNaN(qvalue) || qvalue > 1 || qvalue <= 0) {
51
+ // If we can't convert the qvalue to a valid number, move on
52
+ return best;
53
+ }
54
+ if (qvalue < best[0]) {
55
+ // This mime type is not preferred
56
+ return best;
57
+ }
58
+ // This mime type is preferred
59
+ return [qvalue, mediaType];
60
+ }, [0, null])[1];
61
+ }
62
+ export function setAuthorizationHeader(url, headers, { bearerToken }) {
63
+ if (bearerToken && !headers.has(HttpHeader.Authorization)) {
64
+ headers.set(HttpHeader.Authorization, `Bearer ${bearerToken}`);
65
+ }
66
+ if (url.username || url.password) {
67
+ if (!headers.has(HttpHeader.Authorization)) {
68
+ headers.set(HttpHeader.Authorization, `Basic ${toBase64(decodeURIComponent(`${url.username}:${url.password}`))}`);
69
+ }
70
+ // Remove the username and password from the URL
71
+ url.username = "";
72
+ url.password = "";
73
+ }
74
+ }
75
+ export function mergeHeaders(...headersList) {
76
+ const mergedHeaders = new Headers();
77
+ for (const headers of headersList) {
78
+ if (!headers) {
79
+ continue;
80
+ }
81
+ if (Array.isArray(headers)) {
82
+ for (const [key, value] of headers) {
83
+ mergedHeaders.set(key, value);
84
+ }
85
+ }
86
+ else if (headers instanceof Headers) {
87
+ for (const [key, value] of headers) {
88
+ mergedHeaders.set(key, value);
89
+ }
90
+ }
91
+ else {
92
+ for (const [key, value] of Object.entries(headers)) {
93
+ mergedHeaders.set(key, value);
94
+ }
95
+ }
96
+ }
97
+ return mergedHeaders;
98
+ }
99
+ /**
100
+ * Get header from request headers, by default an error will be thrown if the header
101
+ * is not present. The header can be marked as optional in which case the return value
102
+ * might be `undefined` but no error will be thrown if header is missing.
103
+ */
104
+ export function fromHeaders(headers, name, required = true) {
105
+ // Fastify converts all headers to lower case
106
+ const header = headers[name.toLowerCase()];
107
+ if (header === undefined && required) {
108
+ throw Error(`${name} header is required`);
109
+ }
110
+ return header;
111
+ }
112
+ /**
113
+ * Extension of Headers object returned by Fetch API
114
+ */
115
+ export class HeadersExtra extends Headers {
116
+ /**
117
+ * Get required header from response headers
118
+ */
119
+ getRequired(name) {
120
+ const header = this.get(name);
121
+ if (header === null) {
122
+ throw Error(`${name} header is required in response`);
123
+ }
124
+ return header;
125
+ }
126
+ /**
127
+ * Get optional header from response headers.
128
+ * Return default value if it does not exist
129
+ */
130
+ getOrDefault(name, defaultValue) {
131
+ return this.get(name) ?? defaultValue;
132
+ }
133
+ }
134
+ //# sourceMappingURL=headers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headers.js","sourceRoot":"","sources":["../../src/utils/headers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpStatusCode.js","sourceRoot":"","sources":["../../src/utils/httpStatusCode.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;GAGG;AACH,MAAM,CAAN,IAAY,cAqXX;AArXD,WAAY,cAAc;IACxB;;;;;;OAMG;IACH,6DAAc,CAAA;IAEd;;OAEG;IACH,mFAAyB,CAAA;IAEzB;;;;OAIG;IACH,iEAAgB,CAAA;IAEhB;;;;;OAKG;IACH,iDAAQ,CAAA;IAER;;OAEG;IACH,2DAAa,CAAA;IAEb;;;OAGG;IACH,6DAAc,CAAA;IAEd;;;;OAIG;IACH,uGAAmC,CAAA;IAEnC;;OAEG;IACH,iEAAgB,CAAA;IAEhB;;;OAGG;IACH,uEAAmB,CAAA;IAEnB;;;;OAIG;IACH,2EAAqB,CAAA;IAErB;;;OAGG;IACH,qEAAkB,CAAA;IAElB;;;OAGG;IACH,6EAAsB,CAAA;IAEtB;;;OAGG;IACH,2DAAa,CAAA;IAEb;;;;OAIG;IACH,6EAAsB,CAAA;IAEtB;;OAEG;IACH,+EAAuB,CAAA;IAEvB;;;;;;;OAOG;IACH,uDAAW,CAAA;IAEX;;;;;OAKG;IACH,+DAAe,CAAA;IAEf;;;OAGG;IACH,qEAAkB,CAAA;IAElB;;;;OAIG;IACH,+DAAe,CAAA;IAEf;;OAEG;IACH,qEAAkB,CAAA;IAElB;;;;;OAKG;IACH,iFAAwB,CAAA;IAExB;;;;OAIG;IACH,iFAAwB,CAAA;IAExB;;;OAGG;IACH,mEAAiB,CAAA;IAEjB;;;;;OAKG;IACH,qEAAkB,CAAA;IAElB;;;;OAIG;IACH,6EAAsB,CAAA;IAEtB;;;OAGG;IACH,+DAAe,CAAA;IAEf;;;OAGG;IACH,+DAAe,CAAA;IAEf;;;OAGG;IACH,iFAAwB,CAAA;IAExB;;OAEG;IACH,yEAAoB,CAAA;IAEpB;;OAEG;IACH,uGAAmC,CAAA;IAEnC;;;;OAIG;IACH,2EAAqB,CAAA;IAErB;;;OAGG;IACH,6DAAc,CAAA;IAEd;;;;;;OAMG;IACH,qDAAU,CAAA;IAEV;;OAEG;IACH,2EAAqB,CAAA;IAErB;;OAEG;IACH,mFAAyB,CAAA;IAEzB;;OAEG;IACH,+EAAuB,CAAA;IAEvB;;;;OAIG;IACH,qEAAkB,CAAA;IAElB;;;OAGG;IACH,yFAA4B,CAAA;IAE5B;;;;OAIG;IACH,uFAA2B,CAAA;IAE3B;;OAEG;IACH,iFAAwB,CAAA;IAExB;;;;OAIG;IACH,uEAAmB,CAAA;IAEnB;;OAEG;IACH,mFAAyB,CAAA;IAEzB;;OAEG;IACH,qFAA0B,CAAA;IAE1B;;OAEG;IACH,yDAAY,CAAA;IAEZ;;OAEG;IACH,+EAAuB,CAAA;IAEvB;;OAEG;IACH,6EAAsB,CAAA;IAEtB;;;;;OAKG;IACH,uFAA2B,CAAA;IAE3B;;OAEG;IACH,+EAAuB,CAAA;IAEvB;;;OAGG;IACH,2GAAqC,CAAA;IAErC;;;OAGG;IACH,uGAAmC,CAAA;IAEnC;;OAEG;IACH,uFAA2B,CAAA;IAE3B;;;OAGG;IACH,2EAAqB,CAAA;IAErB;;OAEG;IACH,mEAAiB,CAAA;IAEjB;;;OAGG;IACH,mFAAyB,CAAA;IAEzB;;OAEG;IACH,2EAAqB,CAAA;IAErB;;OAEG;IACH,iGAAgC,CAAA;IAEhC;;OAEG;IACH,2FAA6B,CAAA;IAE7B;;OAEG;IACH,qFAA0B,CAAA;IAE1B;;OAEG;IACH,uEAAmB,CAAA;IAEnB;;OAEG;IACH,qEAAkB,CAAA;IAElB;;;;OAIG;IACH,2GAAqC,CAAA;AACvC,CAAC,EArXW,cAAc,KAAd,cAAc,QAqXzB"}
@@ -1,4 +1,4 @@
1
1
  export * from "./schema.js";
2
2
  export * from "./types.js";
3
- export { compileRouteUrlFormater, toColonNotationPath } from "./urlFormat.js";
3
+ export { compileRouteUrlFormatter, toColonNotationPath } from "./urlFormat.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
1
  export * from "./schema.js";
2
2
  export * from "./types.js";
3
- export { compileRouteUrlFormater, toColonNotationPath } from "./urlFormat.js";
3
+ export { compileRouteUrlFormatter, toColonNotationPath } from "./urlFormat.js";
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAC,uBAAuB,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAC,wBAAwB,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { ContainerType, ValueOf } from "@chainsafe/ssz";
2
+ import { ForkName } from "@lodestar/params";
3
+ import { StringType } from "@lodestar/types";
4
+ import { ResponseMetadataCodec } from "./types.js";
5
+ export declare const VersionType: ContainerType<{
6
+ /**
7
+ * Fork code name
8
+ */
9
+ version: StringType<ForkName>;
10
+ }>;
11
+ export declare const ExecutionOptimisticType: ContainerType<{
12
+ /**
13
+ * True if the response references an unverified execution payload.
14
+ * Optimistic information may be invalidated at a later time.
15
+ */
16
+ executionOptimistic: import("@chainsafe/ssz").BooleanType;
17
+ }>;
18
+ export declare const ExecutionOptimisticAndFinalizedType: ContainerType<{
19
+ /**
20
+ * True if the response references the finalized history of the chain, as determined by fork choice
21
+ */
22
+ finalized: import("@chainsafe/ssz").BooleanType;
23
+ /**
24
+ * True if the response references an unverified execution payload.
25
+ * Optimistic information may be invalidated at a later time.
26
+ */
27
+ executionOptimistic: import("@chainsafe/ssz").BooleanType;
28
+ }>;
29
+ export declare const ExecutionOptimisticAndVersionType: ContainerType<{
30
+ /**
31
+ * Fork code name
32
+ */
33
+ version: StringType<ForkName>;
34
+ /**
35
+ * True if the response references an unverified execution payload.
36
+ * Optimistic information may be invalidated at a later time.
37
+ */
38
+ executionOptimistic: import("@chainsafe/ssz").BooleanType;
39
+ }>;
40
+ export declare const ExecutionOptimisticFinalizedAndVersionType: ContainerType<{
41
+ /**
42
+ * Fork code name
43
+ */
44
+ version: StringType<ForkName>;
45
+ /**
46
+ * True if the response references the finalized history of the chain, as determined by fork choice
47
+ */
48
+ finalized: import("@chainsafe/ssz").BooleanType;
49
+ /**
50
+ * True if the response references an unverified execution payload.
51
+ * Optimistic information may be invalidated at a later time.
52
+ */
53
+ executionOptimistic: import("@chainsafe/ssz").BooleanType;
54
+ }>;
55
+ export declare const ExecutionOptimisticAndDependentRootType: ContainerType<{
56
+ /**
57
+ * The block root that this response is dependent on
58
+ */
59
+ dependentRoot: StringType<string>;
60
+ /**
61
+ * True if the response references an unverified execution payload.
62
+ * Optimistic information may be invalidated at a later time.
63
+ */
64
+ executionOptimistic: import("@chainsafe/ssz").BooleanType;
65
+ }>;
66
+ export type VersionMeta = ValueOf<typeof VersionType>;
67
+ export type ExecutionOptimisticMeta = ValueOf<typeof ExecutionOptimisticType>;
68
+ export type ExecutionOptimisticAndFinalizedMeta = ValueOf<typeof ExecutionOptimisticAndFinalizedType>;
69
+ export type ExecutionOptimisticAndVersionMeta = ValueOf<typeof ExecutionOptimisticAndVersionType>;
70
+ export type ExecutionOptimisticFinalizedAndVersionMeta = ValueOf<typeof ExecutionOptimisticFinalizedAndVersionType>;
71
+ export type ExecutionOptimisticAndDependentRootMeta = ValueOf<typeof ExecutionOptimisticAndDependentRootType>;
72
+ export declare enum MetaHeader {
73
+ Version = "Eth-Consensus-Version",
74
+ ConsensusBlockValue = "Eth-Consensus-Block-Value",
75
+ ExecutionPayloadBlinded = "Eth-Execution-Payload-Blinded",
76
+ ExecutionPayloadValue = "Eth-Execution-Payload-Value",
77
+ Finalized = "Eth-Consensus-Finalized",
78
+ DependentRoot = "Eth-Consensus-Dependent-Root",
79
+ ExecutionOptimistic = "Eth-Execution-Optimistic",
80
+ ExecutionPayloadSource = "Eth-Execution-Payload-Source"
81
+ }
82
+ export declare const ExecutionOptimisticCodec: ResponseMetadataCodec<ExecutionOptimisticMeta>;
83
+ export declare const VersionCodec: ResponseMetadataCodec<VersionMeta>;
84
+ export declare const ExecutionOptimisticAndVersionCodec: ResponseMetadataCodec<ExecutionOptimisticAndVersionMeta>;
85
+ export declare const ExecutionOptimisticAndFinalizedCodec: ResponseMetadataCodec<ExecutionOptimisticAndFinalizedMeta>;
86
+ export declare const ExecutionOptimisticFinalizedAndVersionCodec: ResponseMetadataCodec<ExecutionOptimisticFinalizedAndVersionMeta>;
87
+ export declare const ExecutionOptimisticAndDependentRootCodec: ResponseMetadataCodec<ExecutionOptimisticAndDependentRootMeta>;
88
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1,126 @@
1
+ /* eslint-disable @typescript-eslint/naming-convention */
2
+ import { ContainerType } from "@chainsafe/ssz";
3
+ import { StringType, ssz, stringType } from "@lodestar/types";
4
+ import { toBoolean } from "./serdes.js";
5
+ import { toForkName } from "./fork.js";
6
+ export const VersionType = new ContainerType({
7
+ /**
8
+ * Fork code name
9
+ */
10
+ version: new StringType(),
11
+ });
12
+ VersionType.fields.version.fromJson = (json) => {
13
+ return toForkName(stringType.fromJson(json));
14
+ };
15
+ export const ExecutionOptimisticType = new ContainerType({
16
+ /**
17
+ * True if the response references an unverified execution payload.
18
+ * Optimistic information may be invalidated at a later time.
19
+ */
20
+ executionOptimistic: ssz.Boolean,
21
+ }, { jsonCase: "eth2" });
22
+ export const ExecutionOptimisticAndFinalizedType = new ContainerType({
23
+ ...ExecutionOptimisticType.fields,
24
+ /**
25
+ * True if the response references the finalized history of the chain, as determined by fork choice
26
+ */
27
+ finalized: ssz.Boolean,
28
+ }, { jsonCase: "eth2" });
29
+ export const ExecutionOptimisticAndVersionType = new ContainerType({
30
+ ...ExecutionOptimisticType.fields,
31
+ ...VersionType.fields,
32
+ }, { jsonCase: "eth2" });
33
+ export const ExecutionOptimisticFinalizedAndVersionType = new ContainerType({
34
+ ...ExecutionOptimisticAndFinalizedType.fields,
35
+ ...VersionType.fields,
36
+ }, { jsonCase: "eth2" });
37
+ export const ExecutionOptimisticAndDependentRootType = new ContainerType({
38
+ ...ExecutionOptimisticType.fields,
39
+ /**
40
+ * The block root that this response is dependent on
41
+ */
42
+ dependentRoot: stringType,
43
+ }, { jsonCase: "eth2" });
44
+ export var MetaHeader;
45
+ (function (MetaHeader) {
46
+ MetaHeader["Version"] = "Eth-Consensus-Version";
47
+ MetaHeader["ConsensusBlockValue"] = "Eth-Consensus-Block-Value";
48
+ MetaHeader["ExecutionPayloadBlinded"] = "Eth-Execution-Payload-Blinded";
49
+ MetaHeader["ExecutionPayloadValue"] = "Eth-Execution-Payload-Value";
50
+ /* Lodestar-specific (non-standardized) headers */
51
+ MetaHeader["Finalized"] = "Eth-Consensus-Finalized";
52
+ MetaHeader["DependentRoot"] = "Eth-Consensus-Dependent-Root";
53
+ MetaHeader["ExecutionOptimistic"] = "Eth-Execution-Optimistic";
54
+ MetaHeader["ExecutionPayloadSource"] = "Eth-Execution-Payload-Source";
55
+ })(MetaHeader || (MetaHeader = {}));
56
+ export const ExecutionOptimisticCodec = {
57
+ toJson: (val) => ExecutionOptimisticType.toJson(val),
58
+ fromJson: (val) => ExecutionOptimisticType.fromJson(val),
59
+ toHeadersObject: (val) => ({
60
+ [MetaHeader.ExecutionOptimistic]: val.executionOptimistic.toString(),
61
+ }),
62
+ fromHeaders: (headers) => ({
63
+ executionOptimistic: toBoolean(headers.getOrDefault(MetaHeader.ExecutionOptimistic, "false")),
64
+ }),
65
+ };
66
+ export const VersionCodec = {
67
+ toJson: (val) => VersionType.toJson(val),
68
+ fromJson: (val) => VersionType.fromJson(val),
69
+ toHeadersObject: (val) => ({
70
+ [MetaHeader.Version]: val.version,
71
+ }),
72
+ fromHeaders: (headers) => ({
73
+ version: toForkName(headers.getRequired(MetaHeader.Version)),
74
+ }),
75
+ };
76
+ export const ExecutionOptimisticAndVersionCodec = {
77
+ toJson: (val) => ExecutionOptimisticAndVersionType.toJson(val),
78
+ fromJson: (val) => ExecutionOptimisticAndVersionType.fromJson(val),
79
+ toHeadersObject: (val) => ({
80
+ [MetaHeader.ExecutionOptimistic]: val.executionOptimistic.toString(),
81
+ [MetaHeader.Version]: val.version,
82
+ }),
83
+ fromHeaders: (headers) => ({
84
+ executionOptimistic: toBoolean(headers.getOrDefault(MetaHeader.ExecutionOptimistic, "false")),
85
+ version: toForkName(headers.getRequired(MetaHeader.Version)),
86
+ }),
87
+ };
88
+ export const ExecutionOptimisticAndFinalizedCodec = {
89
+ toJson: (val) => ExecutionOptimisticAndFinalizedType.toJson(val),
90
+ fromJson: (val) => ExecutionOptimisticAndFinalizedType.fromJson(val),
91
+ toHeadersObject: (val) => ({
92
+ [MetaHeader.ExecutionOptimistic]: val.executionOptimistic.toString(),
93
+ [MetaHeader.Finalized]: val.finalized.toString(),
94
+ }),
95
+ fromHeaders: (headers) => ({
96
+ executionOptimistic: toBoolean(headers.getOrDefault(MetaHeader.ExecutionOptimistic, "false")),
97
+ finalized: toBoolean(headers.getOrDefault(MetaHeader.Finalized, "false")),
98
+ }),
99
+ };
100
+ export const ExecutionOptimisticFinalizedAndVersionCodec = {
101
+ toJson: (val) => ExecutionOptimisticFinalizedAndVersionType.toJson(val),
102
+ fromJson: (val) => ExecutionOptimisticFinalizedAndVersionType.fromJson(val),
103
+ toHeadersObject: (val) => ({
104
+ [MetaHeader.ExecutionOptimistic]: val.executionOptimistic.toString(),
105
+ [MetaHeader.Finalized]: val.finalized.toString(),
106
+ [MetaHeader.Version]: val.version,
107
+ }),
108
+ fromHeaders: (headers) => ({
109
+ executionOptimistic: toBoolean(headers.getOrDefault(MetaHeader.ExecutionOptimistic, "false")),
110
+ finalized: toBoolean(headers.getOrDefault(MetaHeader.Finalized, "false")),
111
+ version: toForkName(headers.getRequired(MetaHeader.Version)),
112
+ }),
113
+ };
114
+ export const ExecutionOptimisticAndDependentRootCodec = {
115
+ toJson: (val) => ExecutionOptimisticAndDependentRootType.toJson(val),
116
+ fromJson: (val) => ExecutionOptimisticAndDependentRootType.fromJson(val),
117
+ toHeadersObject: (val) => ({
118
+ [MetaHeader.ExecutionOptimistic]: val.executionOptimistic.toString(),
119
+ [MetaHeader.DependentRoot]: val.dependentRoot,
120
+ }),
121
+ fromHeaders: (headers) => ({
122
+ executionOptimistic: toBoolean(headers.getOrDefault(MetaHeader.ExecutionOptimistic, "false")),
123
+ dependentRoot: headers.getRequired(MetaHeader.DependentRoot),
124
+ }),
125
+ };
126
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/utils/metadata.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,27 @@
1
- import { ReqGeneric } from "./types.js";
2
- type JsonSchema = Record<string, any>;
3
- export type SchemaDefinition<ReqType extends ReqGeneric> = {
4
- params?: {
5
- [K in keyof ReqType["params"]]: Schema;
6
- };
7
- query?: {
8
- [K in keyof ReqType["query"]]: Schema;
9
- };
10
- body?: Schema;
1
+ import { Endpoint, HeaderParams, PathParams, QueryParams } from "./types.js";
2
+ type JsonSchema = Record<string, unknown>;
3
+ type RequireSchema<T> = {
4
+ [K in keyof T]-?: Schema;
11
5
  };
6
+ export type SchemaDefinition<ReqType extends Endpoint["request"]> = (ReqType["params"] extends PathParams ? {
7
+ params: RequireSchema<ReqType["params"]>;
8
+ } : {
9
+ params?: never;
10
+ }) & (ReqType["query"] extends QueryParams ? {
11
+ query: RequireSchema<ReqType["query"]>;
12
+ } : {
13
+ query?: never;
14
+ }) & (ReqType["headers"] extends HeaderParams ? {
15
+ headers: RequireSchema<ReqType["headers"]>;
16
+ } : {
17
+ headers?: never;
18
+ }) & (ReqType extends {
19
+ body: unknown;
20
+ } ? {
21
+ body: Schema;
22
+ } : {
23
+ body?: never;
24
+ });
12
25
  export declare enum Schema {
13
26
  Uint = 0,
14
27
  UintRequired = 1,
@@ -16,13 +29,14 @@ export declare enum Schema {
16
29
  String = 3,
17
30
  StringRequired = 4,
18
31
  StringArray = 5,
19
- UintOrStringRequired = 6,
20
- UintOrStringArray = 7,
21
- Object = 8,
22
- ObjectArray = 9,
23
- AnyArray = 10,
24
- Boolean = 11
32
+ StringArrayRequired = 6,
33
+ UintOrStringRequired = 7,
34
+ UintOrStringArray = 8,
35
+ Object = 9,
36
+ ObjectArray = 10,
37
+ AnyArray = 11,
38
+ Boolean = 12
25
39
  }
26
- export declare function getFastifySchema(schemaDef: SchemaDefinition<ReqGeneric>): JsonSchema;
40
+ export declare function getFastifySchema<T extends Endpoint["request"]>(schemaDef: SchemaDefinition<T>): JsonSchema;
27
41
  export {};
28
42
  //# sourceMappingURL=schema.d.ts.map
@@ -6,12 +6,13 @@ export var Schema;
6
6
  Schema[Schema["String"] = 3] = "String";
7
7
  Schema[Schema["StringRequired"] = 4] = "StringRequired";
8
8
  Schema[Schema["StringArray"] = 5] = "StringArray";
9
- Schema[Schema["UintOrStringRequired"] = 6] = "UintOrStringRequired";
10
- Schema[Schema["UintOrStringArray"] = 7] = "UintOrStringArray";
11
- Schema[Schema["Object"] = 8] = "Object";
12
- Schema[Schema["ObjectArray"] = 9] = "ObjectArray";
13
- Schema[Schema["AnyArray"] = 10] = "AnyArray";
14
- Schema[Schema["Boolean"] = 11] = "Boolean";
9
+ Schema[Schema["StringArrayRequired"] = 6] = "StringArrayRequired";
10
+ Schema[Schema["UintOrStringRequired"] = 7] = "UintOrStringRequired";
11
+ Schema[Schema["UintOrStringArray"] = 8] = "UintOrStringArray";
12
+ Schema[Schema["Object"] = 9] = "Object";
13
+ Schema[Schema["ObjectArray"] = 10] = "ObjectArray";
14
+ Schema[Schema["AnyArray"] = 11] = "AnyArray";
15
+ Schema[Schema["Boolean"] = 12] = "Boolean";
15
16
  })(Schema || (Schema = {}));
16
17
  /**
17
18
  * Return JSON schema from a Schema enum. Useful to declare schemas in a succinct format
@@ -27,6 +28,7 @@ function getJsonSchemaItem(schema) {
27
28
  case Schema.StringRequired:
28
29
  return { type: "string" };
29
30
  case Schema.StringArray:
31
+ case Schema.StringArrayRequired:
30
32
  return { type: "array", items: { type: "string" } };
31
33
  case Schema.UintOrStringRequired:
32
34
  return { anyOf: [{ type: "string" }, { type: "integer" }] };
@@ -47,6 +49,7 @@ function isRequired(schema) {
47
49
  case Schema.UintRequired:
48
50
  case Schema.StringRequired:
49
51
  case Schema.UintOrStringRequired:
52
+ case Schema.StringArrayRequired:
50
53
  return true;
51
54
  default:
52
55
  return false;
@@ -75,6 +78,15 @@ export function getFastifySchema(schemaDef) {
75
78
  }
76
79
  }
77
80
  }
81
+ if (schemaDef.headers) {
82
+ schema.headers = { type: "object", required: [], properties: {} };
83
+ for (const [key, def] of Object.entries(schemaDef.headers)) {
84
+ schema.headers.properties[key] = getJsonSchemaItem(def);
85
+ if (isRequired(def)) {
86
+ schema.headers.required.push(key);
87
+ }
88
+ }
89
+ }
78
90
  return schema;
79
91
  }
80
92
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/utils/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/utils/schema.ts"],"names":[],"mappings":"AAqBA,MAAM,CAAN,IAAY,MAcX;AAdD,WAAY,MAAM;IAChB,mCAAI,CAAA;IACJ,mDAAY,CAAA;IACZ,6CAAS,CAAA;IACT,uCAAM,CAAA;IACN,uDAAc,CAAA;IACd,iDAAW,CAAA;IACX,iEAAmB,CAAA;IACnB,mEAAoB,CAAA;IACpB,6DAAiB,CAAA;IACjB,uCAAM,CAAA;IACN,kDAAW,CAAA;IACX,4CAAQ,CAAA;IACR,0CAAO,CAAA;AACT,CAAC,EAdW,MAAM,KAAN,MAAM,QAcjB;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,MAAc;IACvC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,CAAC;QACjB,KAAK,MAAM,CAAC,YAAY;YACtB,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAC,CAAC;QAEvC,KAAK,MAAM,CAAC,SAAS;YACnB,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAC,EAAC,CAAC;QAE/D,KAAK,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,MAAM,CAAC,cAAc;YACxB,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC;QAE1B,KAAK,MAAM,CAAC,WAAW,CAAC;QACxB,KAAK,MAAM,CAAC,mBAAmB;YAC7B,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAC,CAAC;QAElD,KAAK,MAAM,CAAC,oBAAoB;YAC9B,OAAO,EAAC,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC,EAAC,CAAC;QACxD,KAAK,MAAM,CAAC,iBAAiB;YAC3B,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAC,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC,EAAC,EAAC,CAAC;QAEhF,KAAK,MAAM,CAAC,MAAM;YAChB,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC;QAE1B,KAAK,MAAM,CAAC,WAAW;YACrB,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAC,CAAC;QAElD,KAAK,MAAM,CAAC,QAAQ;YAClB,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;QAEzB,KAAK,MAAM,CAAC,OAAO;YACjB,OAAO,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAChC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,YAAY,CAAC;QACzB,KAAK,MAAM,CAAC,cAAc,CAAC;QAC3B,KAAK,MAAM,CAAC,oBAAoB,CAAC;QACjC,KAAK,MAAM,CAAC,mBAAmB;YAC7B,OAAO,IAAI,CAAC;QAEd;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAgC,SAA8B;IAC5F,MAAM,MAAM,GAAsG,EAAE,CAAC;IAErH,IAAI,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,CAAC,MAAM,GAAG,EAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAC,CAAC;QAE/D,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAS,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAClE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACvD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,WAAW,GAAG,EAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAC,CAAC;QAEpE,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAS,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACjE,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC5D,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,CAAC,OAAO,GAAG,EAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAC,CAAC;QAEhE,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAS,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACnE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACxD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -23,6 +23,9 @@ export declare function fromU64Str(u64Str: U64Str): number;
23
23
  export declare function toU64Str(u64: U64): U64Str;
24
24
  export declare function fromU64StrOpt(u64Str: U64Str | undefined): U64 | undefined;
25
25
  export declare function toU64StrOpt(u64: U64 | undefined): U64Str | undefined;
26
+ export declare function toValidatorIdsStr(ids?: (string | number)[]): string[] | undefined;
27
+ export declare function fromValidatorIdsStr(ids?: string[]): (string | number)[] | undefined;
26
28
  export declare function toGraffitiHex(utf8: string): string;
27
29
  export declare function fromGraffitiHex(hex: string): string;
30
+ export declare function toBoolean(value: string): boolean;
28
31
  //# sourceMappingURL=serdes.d.ts.map
@@ -54,6 +54,12 @@ export function fromU64StrOpt(u64Str) {
54
54
  export function toU64StrOpt(u64) {
55
55
  return u64 !== undefined ? toU64Str(u64) : undefined;
56
56
  }
57
+ export function toValidatorIdsStr(ids) {
58
+ return ids?.map((id) => (typeof id === "string" ? id : toU64Str(id)));
59
+ }
60
+ export function fromValidatorIdsStr(ids) {
61
+ return ids?.map((id) => (typeof id === "string" && id.startsWith("0x") ? id : fromU64Str(id)));
62
+ }
57
63
  const GRAFFITI_HEX_LENGTH = 66;
58
64
  export function toGraffitiHex(utf8) {
59
65
  const hex = toHexString(new TextEncoder().encode(utf8));
@@ -76,4 +82,11 @@ export function fromGraffitiHex(hex) {
76
82
  return hex;
77
83
  }
78
84
  }
85
+ export function toBoolean(value) {
86
+ value = value.toLowerCase();
87
+ if (value !== "true" && value !== "false") {
88
+ throw Error(`Invalid boolean ${value}`);
89
+ }
90
+ return value === "true";
91
+ }
79
92
  //# sourceMappingURL=serdes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serdes.js","sourceRoot":"","sources":["../../src/utils/serdes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serdes.js","sourceRoot":"","sources":["../../src/utils/serdes.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { HttpErrorCodes } from "../client/httpStatusCode.js";
1
+ import { HttpErrorCodes } from "../httpStatusCode.js";
2
2
  export declare class ApiError extends Error {
3
3
  statusCode: HttpErrorCodes;
4
4
  constructor(statusCode: HttpErrorCodes, message?: string);
5
5
  }
6
- //# sourceMappingURL=errors.d.ts.map
6
+ //# sourceMappingURL=error.d.ts.map
@@ -4,4 +4,4 @@ export class ApiError extends Error {
4
4
  this.statusCode = statusCode;
5
5
  }
6
6
  }
7
- //# sourceMappingURL=errors.js.map
7
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/utils/server/error.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEjC,YAAY,UAA0B,EAAE,OAAgB;QACtD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import type * as fastify from "fastify";
2
+ import { Endpoint, JsonRequestData, RouteDefinition } from "../types.js";
3
+ import { ApplicationMethod } from "./method.js";
4
+ export type FastifyHandler<E extends Endpoint> = fastify.RouteHandlerMethod<fastify.RawServerDefault, fastify.RawRequestDefaultExpression<fastify.RawServerDefault>, fastify.RawReplyDefaultExpression<fastify.RawServerDefault>, {
5
+ Body: E["request"] extends JsonRequestData ? E["request"]["body"] : undefined;
6
+ Querystring: E["request"]["query"];
7
+ Params: E["request"]["params"];
8
+ Headers: E["request"]["headers"];
9
+ }, fastify.ContextConfigDefault>;
10
+ export declare function createFastifyHandler<E extends Endpoint>(definition: RouteDefinition<E>, method: ApplicationMethod<E>, _operationId: string): FastifyHandler<E>;
11
+ //# sourceMappingURL=handler.d.ts.map