@lodestar/api 1.47.0-dev.a64cdf7144 → 1.47.0-dev.aa8303e9a2

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.
@@ -21,7 +21,7 @@ declare const ForkChoiceResponseType: ContainerType<{
21
21
  parentRoot: StringType<string>;
22
22
  justifiedEpoch: import("@chainsafe/ssz").UintNumberType;
23
23
  finalizedEpoch: import("@chainsafe/ssz").UintNumberType;
24
- weight: import("@chainsafe/ssz").UintNumberType;
24
+ weight: import("@chainsafe/ssz").UintBigintType;
25
25
  validity: StringType<"invalid" | "optimistic" | "valid">;
26
26
  executionBlockHash: StringType<string>;
27
27
  }>>, unknown, unknown>;
@@ -40,7 +40,7 @@ declare const ForkChoiceResponseV2Type: ContainerType<{
40
40
  slot: import("@chainsafe/ssz").UintNumberType;
41
41
  blockRoot: StringType<string>;
42
42
  parentRoot: StringType<string>;
43
- weight: import("@chainsafe/ssz").UintNumberType;
43
+ weight: import("@chainsafe/ssz").UintBigintType;
44
44
  validity: StringType<"invalid" | "optimistic" | "valid">;
45
45
  executionBlockHash: StringType<string>;
46
46
  extraData: ContainerType<{
@@ -90,7 +90,7 @@ declare const ProtoNodeListType: import("@chainsafe/ssz").ArrayType<Type<import(
90
90
  unrealizedFinalizedEpoch: import("@chainsafe/ssz").UintNumberType;
91
91
  unrealizedFinalizedRoot: StringType<string>;
92
92
  parent: StringType<string>;
93
- weight: import("@chainsafe/ssz").UintNumberType;
93
+ weight: import("@chainsafe/ssz").UintBigintType;
94
94
  bestChild: StringType<string>;
95
95
  bestDescendant: StringType<string>;
96
96
  }>>, unknown, unknown>;
@@ -25,7 +25,7 @@ const ProtoNodeType = new ContainerType({
25
25
  unrealizedFinalizedEpoch: ssz.Epoch,
26
26
  unrealizedFinalizedRoot: stringType,
27
27
  parent: stringType,
28
- weight: ssz.Uint32,
28
+ weight: ssz.Gwei,
29
29
  bestChild: stringType,
30
30
  bestDescendant: stringType,
31
31
  }, { jsonCase: "eth2" });
@@ -40,7 +40,7 @@ const ForkChoiceNodeType = new ContainerType({
40
40
  parentRoot: stringType,
41
41
  justifiedEpoch: ssz.Epoch,
42
42
  finalizedEpoch: ssz.Epoch,
43
- weight: ssz.UintNum64,
43
+ weight: ssz.Gwei,
44
44
  validity: new StringType(),
45
45
  executionBlockHash: stringType,
46
46
  }, { jsonCase: "eth2" });
@@ -67,7 +67,7 @@ const ForkChoiceNodeV2Type = new ContainerType({
67
67
  slot: ssz.Slot,
68
68
  blockRoot: stringType,
69
69
  parentRoot: stringType,
70
- weight: ssz.UintNum64,
70
+ weight: ssz.Gwei,
71
71
  validity: new StringType(),
72
72
  executionBlockHash: stringType,
73
73
  extraData: ForkChoiceNodeV2ExtraDataType,
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/beacon/routes/debug.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/beacon/routes/debug.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/beacon/server/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAW,kBAAkB,EAAE,aAAa,EAAsB,MAAM,6BAA6B,CAAC;AAC7G,OAAO,EAAC,SAAS,EAA6C,MAAM,qBAAqB,CAAC;AAE1F,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CAgEnH;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,GAAG,MAAM,CAE/E"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/beacon/server/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAW,kBAAkB,EAAE,aAAa,EAAsB,MAAM,6BAA6B,CAAC;AAC7G,OAAO,EAAC,SAAS,EAA6C,MAAM,qBAAqB,CAAC;AAE1F,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CAuEnH;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,GAAG,MAAM,CAE/E"}
@@ -36,11 +36,15 @@ export function getRoutes(config, methods) {
36
36
  topics: req.query.topics,
37
37
  signal: controller.signal,
38
38
  onEvent: (event) => {
39
+ // Serialization is per event and must not tear down the stream. Throwing here is
40
+ // handled by the caller which logs it and keeps the subscription alive, the client
41
+ // only misses this single event instead of silently losing the whole stream.
42
+ const data = eventSerdes.toJson(event);
39
43
  try {
40
- const data = eventSerdes.toJson(event);
41
44
  res.raw.write(serializeSSEEvent({ event: event.type, data }));
42
45
  }
43
46
  catch (e) {
47
+ // The connection itself is broken, there is no way to recover it
44
48
  reject(e);
45
49
  }
46
50
  },
@@ -51,10 +55,14 @@ export function getRoutes(config, methods) {
51
55
  req.socket.once("close", () => resolve());
52
56
  req.socket.once("end", () => resolve());
53
57
  });
54
- // api.eventstream will never stop, so no need to ever call `res.raw.end();`
55
58
  }
56
59
  finally {
57
60
  controller.abort();
61
+ // Always end the response. If an error is thrown after the headers were sent, fastify can
62
+ // no longer write a status code and would leave the socket open, the client then waits
63
+ // forever on a stream that will never emit another event.
64
+ if (!res.raw.writableEnded && !res.raw.destroyed)
65
+ res.raw.end();
58
66
  }
59
67
  },
60
68
  },
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/beacon/server/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/beacon/server/events.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.47.0-dev.a64cdf7144",
14
+ "version": "1.47.0-dev.aa8303e9a2",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -74,12 +74,12 @@
74
74
  "check-readme": "pnpm exec tsx ../../scripts/check_readme.ts"
75
75
  },
76
76
  "dependencies": {
77
- "@chainsafe/persistent-merkle-tree": "^1.3.0",
78
- "@chainsafe/ssz": "^1.6.2",
79
- "@lodestar/config": "^1.47.0-dev.a64cdf7144",
80
- "@lodestar/params": "^1.47.0-dev.a64cdf7144",
81
- "@lodestar/types": "^1.47.0-dev.a64cdf7144",
82
- "@lodestar/utils": "^1.47.0-dev.a64cdf7144",
77
+ "@chainsafe/persistent-merkle-tree": "^1.3.1",
78
+ "@chainsafe/ssz": "^1.6.3",
79
+ "@lodestar/config": "^1.47.0-dev.aa8303e9a2",
80
+ "@lodestar/params": "^1.47.0-dev.aa8303e9a2",
81
+ "@lodestar/types": "^1.47.0-dev.aa8303e9a2",
82
+ "@lodestar/utils": "^1.47.0-dev.aa8303e9a2",
83
83
  "eventsource": "^2.0.2",
84
84
  "qs": "^6.14.2"
85
85
  },
@@ -96,5 +96,5 @@
96
96
  "api",
97
97
  "blockchain"
98
98
  ],
99
- "gitHead": "d460386e8f2c111c430f090b2d91e720e34067f8"
99
+ "gitHead": "edb78908e1631bb0d71f3b2af7885f514ed59f80"
100
100
  }
@@ -41,7 +41,7 @@ const ProtoNodeType = new ContainerType(
41
41
  unrealizedFinalizedEpoch: ssz.Epoch,
42
42
  unrealizedFinalizedRoot: stringType,
43
43
  parent: stringType,
44
- weight: ssz.Uint32,
44
+ weight: ssz.Gwei,
45
45
  bestChild: stringType,
46
46
  bestDescendant: stringType,
47
47
  },
@@ -63,7 +63,7 @@ const ForkChoiceNodeType = new ContainerType(
63
63
  parentRoot: stringType,
64
64
  justifiedEpoch: ssz.Epoch,
65
65
  finalizedEpoch: ssz.Epoch,
66
- weight: ssz.UintNum64,
66
+ weight: ssz.Gwei,
67
67
  validity: new StringType<"valid" | "invalid" | "optimistic">(),
68
68
  executionBlockHash: stringType,
69
69
  },
@@ -100,7 +100,7 @@ const ForkChoiceNodeV2Type = new ContainerType(
100
100
  slot: ssz.Slot,
101
101
  blockRoot: stringType,
102
102
  parentRoot: stringType,
103
- weight: ssz.UintNum64,
103
+ weight: ssz.Gwei,
104
104
  validity: new StringType<"valid" | "invalid" | "optimistic">(),
105
105
  executionBlockHash: stringType,
106
106
  extraData: ForkChoiceNodeV2ExtraDataType,
@@ -42,10 +42,15 @@ export function getRoutes(config: ChainForkConfig, methods: ApplicationMethods<E
42
42
  topics: req.query.topics,
43
43
  signal: controller.signal,
44
44
  onEvent: (event) => {
45
+ // Serialization is per event and must not tear down the stream. Throwing here is
46
+ // handled by the caller which logs it and keeps the subscription alive, the client
47
+ // only misses this single event instead of silently losing the whole stream.
48
+ const data = eventSerdes.toJson(event);
49
+
45
50
  try {
46
- const data = eventSerdes.toJson(event);
47
51
  res.raw.write(serializeSSEEvent({event: event.type, data}));
48
52
  } catch (e) {
53
+ // The connection itself is broken, there is no way to recover it
49
54
  reject(e);
50
55
  }
51
56
  },
@@ -58,10 +63,12 @@ export function getRoutes(config: ChainForkConfig, methods: ApplicationMethods<E
58
63
  req.socket.once("close", () => resolve());
59
64
  req.socket.once("end", () => resolve());
60
65
  });
61
-
62
- // api.eventstream will never stop, so no need to ever call `res.raw.end();`
63
66
  } finally {
64
67
  controller.abort();
68
+ // Always end the response. If an error is thrown after the headers were sent, fastify can
69
+ // no longer write a status code and would leave the socket open, the client then waits
70
+ // forever on a stream that will never emit another event.
71
+ if (!res.raw.writableEnded && !res.raw.destroyed) res.raw.end();
65
72
  }
66
73
  },
67
74
  },