@lodestar/reqresp 1.8.0 → 1.9.0-dev.06226b5f17

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 (97) hide show
  1. package/README.md +19 -7
  2. package/lib/ReqResp.d.ts +7 -7
  3. package/lib/ReqResp.js +4 -2
  4. package/lib/ReqResp.js.map +1 -1
  5. package/lib/encoders/requestDecode.d.ts +2 -2
  6. package/lib/encoders/requestDecode.js +3 -3
  7. package/lib/encoders/requestDecode.js.map +1 -1
  8. package/lib/encoders/requestEncode.d.ts +2 -2
  9. package/lib/encoders/requestEncode.js +2 -4
  10. package/lib/encoders/requestEncode.js.map +1 -1
  11. package/lib/encoders/responseDecode.d.ts +4 -4
  12. package/lib/encoders/responseDecode.js +7 -2
  13. package/lib/encoders/responseDecode.js.map +1 -1
  14. package/lib/encoders/responseEncode.d.ts +5 -3
  15. package/lib/encoders/responseEncode.js +7 -32
  16. package/lib/encoders/responseEncode.js.map +1 -1
  17. package/lib/encodingStrategies/index.d.ts +3 -3
  18. package/lib/encodingStrategies/index.js +2 -2
  19. package/lib/encodingStrategies/index.js.map +1 -1
  20. package/lib/encodingStrategies/sszSnappy/decode.d.ts +3 -3
  21. package/lib/encodingStrategies/sszSnappy/decode.js +1 -14
  22. package/lib/encodingStrategies/sszSnappy/decode.js.map +1 -1
  23. package/lib/encodingStrategies/sszSnappy/encode.d.ts +1 -2
  24. package/lib/encodingStrategies/sszSnappy/encode.js +2 -23
  25. package/lib/encodingStrategies/sszSnappy/encode.js.map +1 -1
  26. package/lib/index.d.ts +3 -3
  27. package/lib/index.js +2 -2
  28. package/lib/index.js.map +1 -1
  29. package/lib/metrics.d.ts +2 -0
  30. package/lib/metrics.js +18 -2
  31. package/lib/metrics.js.map +1 -1
  32. package/lib/rate_limiter/ReqRespRateLimiter.d.ts +1 -1
  33. package/lib/rate_limiter/ReqRespRateLimiter.js.map +1 -1
  34. package/lib/request/errors.d.ts +9 -16
  35. package/lib/request/errors.js +10 -11
  36. package/lib/request/errors.js.map +1 -1
  37. package/lib/request/index.d.ts +4 -2
  38. package/lib/request/index.js +16 -18
  39. package/lib/request/index.js.map +1 -1
  40. package/lib/response/errors.d.ts +5 -2
  41. package/lib/response/errors.js +15 -2
  42. package/lib/response/errors.js.map +1 -1
  43. package/lib/response/index.d.ts +6 -4
  44. package/lib/response/index.js +19 -7
  45. package/lib/response/index.js.map +1 -1
  46. package/lib/types.d.ts +62 -79
  47. package/lib/types.js +0 -8
  48. package/lib/types.js.map +1 -1
  49. package/lib/utils/bufferedSource.d.ts +1 -1
  50. package/lib/utils/bufferedSource.js.map +1 -1
  51. package/lib/utils/collectExactOne.js +2 -2
  52. package/lib/utils/collectExactOne.js.map +1 -1
  53. package/lib/utils/protocolId.d.ts +2 -2
  54. package/lib/utils/protocolId.js.map +1 -1
  55. package/package.json +11 -10
  56. package/lib/protocols/BeaconBlockAndBlobsSidecarByRoot.d.ts +0 -4
  57. package/lib/protocols/BeaconBlockAndBlobsSidecarByRoot.js +0 -27
  58. package/lib/protocols/BeaconBlockAndBlobsSidecarByRoot.js.map +0 -1
  59. package/lib/protocols/BeaconBlocksByRange.d.ts +0 -5
  60. package/lib/protocols/BeaconBlocksByRange.js +0 -38
  61. package/lib/protocols/BeaconBlocksByRange.js.map +0 -1
  62. package/lib/protocols/BeaconBlocksByRoot.d.ts +0 -5
  63. package/lib/protocols/BeaconBlocksByRoot.js +0 -38
  64. package/lib/protocols/BeaconBlocksByRoot.js.map +0 -1
  65. package/lib/protocols/BlobsSidecarsByRange.d.ts +0 -4
  66. package/lib/protocols/BlobsSidecarsByRange.js +0 -27
  67. package/lib/protocols/BlobsSidecarsByRange.js.map +0 -1
  68. package/lib/protocols/Goodbye.d.ts +0 -4
  69. package/lib/protocols/Goodbye.js +0 -21
  70. package/lib/protocols/Goodbye.js.map +0 -1
  71. package/lib/protocols/LightClientBootstrap.d.ts +0 -4
  72. package/lib/protocols/LightClientBootstrap.js +0 -30
  73. package/lib/protocols/LightClientBootstrap.js.map +0 -1
  74. package/lib/protocols/LightClientFinalityUpdate.d.ts +0 -4
  75. package/lib/protocols/LightClientFinalityUpdate.js +0 -29
  76. package/lib/protocols/LightClientFinalityUpdate.js.map +0 -1
  77. package/lib/protocols/LightClientOptimisticUpdate.d.ts +0 -4
  78. package/lib/protocols/LightClientOptimisticUpdate.js +0 -29
  79. package/lib/protocols/LightClientOptimisticUpdate.js.map +0 -1
  80. package/lib/protocols/LightClientUpdatesByRange.d.ts +0 -4
  81. package/lib/protocols/LightClientUpdatesByRange.js +0 -28
  82. package/lib/protocols/LightClientUpdatesByRange.js.map +0 -1
  83. package/lib/protocols/Metadata.d.ts +0 -5
  84. package/lib/protocols/Metadata.js +0 -31
  85. package/lib/protocols/Metadata.js.map +0 -1
  86. package/lib/protocols/Ping.d.ts +0 -4
  87. package/lib/protocols/Ping.js +0 -20
  88. package/lib/protocols/Ping.js.map +0 -1
  89. package/lib/protocols/Status.d.ts +0 -4
  90. package/lib/protocols/Status.js +0 -24
  91. package/lib/protocols/Status.js.map +0 -1
  92. package/lib/protocols/index.d.ts +0 -13
  93. package/lib/protocols/index.js +0 -13
  94. package/lib/protocols/index.js.map +0 -1
  95. package/lib/protocols/utils.d.ts +0 -7
  96. package/lib/protocols/utils.js +0 -9
  97. package/lib/protocols/utils.js.map +0 -1
package/README.md CHANGED
@@ -13,19 +13,31 @@ Typescript REST client for the [Ethereum Consensus API spec](https://github.com/
13
13
 
14
14
  ```typescript
15
15
  import {Libp2p} from "libp2p";
16
- import {EncodedPayloadType, ReqResp} from "@lodestar/reqresp";
17
- import {Ping} from "@lodestar/reqresp/protocols";
16
+ import {ssz} from "@lodestar/types";
17
+ import {ReqResp, ContextBytesType, Protocol, Encoding} from "@lodestar/reqresp";
18
+ import {ForkName} from "@lodestar/params";
18
19
  import {Logger} from "@lodestar/utils";
19
20
 
20
21
  async function getReqResp(libp2p: Libp2p, logger: Logger): Promise<void> {
21
22
  const reqResp = new ReqResp({libp2p, logger, metricsRegister: null});
22
23
 
23
24
  // Register a PONG handler to respond with caller's Ping request
24
- reqResp.registerProtocol(
25
- Ping(async function* (req: bigint) {
26
- yield {type: EncodedPayloadType.ssz, data: req};
27
- })
28
- );
25
+ const pingProtocol: Protocol = {
26
+ method: "ping",
27
+ version: 1,
28
+ encoding: Encoding.SSZ_SNAPPY,
29
+ contextBytes: {type: ContextBytesType.Empty},
30
+ requestSizes: ssz.phase0.Ping,
31
+ responseSizes: () => ssz.phase0.Ping,
32
+ handler: async function* (req) {
33
+ yield {
34
+ data: req.data,
35
+ fork: ForkName.phase0,
36
+ };
37
+ },
38
+ };
39
+
40
+ reqResp.registerProtocol(pingProtocol);
29
41
  }
30
42
  ```
31
43
 
package/lib/ReqResp.d.ts CHANGED
@@ -3,7 +3,7 @@ import { Libp2p } from "libp2p";
3
3
  import { Logger } from "@lodestar/utils";
4
4
  import { Metrics, MetricsRegister } from "./metrics.js";
5
5
  import { RequestError, SendRequestOpts } from "./request/index.js";
6
- import { DialOnlyProtocolDefinition, Encoding, MixedProtocolDefinition, ReqRespRateLimiterOpts, ProtocolDefinition } from "./types.js";
6
+ import { DialOnlyProtocol, Encoding, MixedProtocol, ReqRespRateLimiterOpts, Protocol, ProtocolDescriptor, ResponseIncoming } from "./types.js";
7
7
  type ProtocolID = string;
8
8
  export declare const DEFAULT_PROTOCOL_PREFIX = "/eth2/beacon_chain/req";
9
9
  export interface ReqRespProtocolModules {
@@ -45,14 +45,14 @@ export declare class ReqResp {
45
45
  *
46
46
  * Made it explicit method to avoid any developer mistake
47
47
  */
48
- registerDialOnlyProtocol<Req, Resp>(protocol: DialOnlyProtocolDefinition<Req, Resp>, opts?: ReqRespRegisterOpts): void;
48
+ registerDialOnlyProtocol(protocol: DialOnlyProtocol, opts?: ReqRespRegisterOpts): void;
49
49
  /**
50
50
  * Register protocol as supported and to libp2p.
51
51
  * async because libp2p registar persists the new protocol list in the peer-store.
52
52
  * Throws if the same protocol is registered twice.
53
53
  * Can be called at any time, no concept of started / stopped
54
54
  */
55
- registerProtocol<Req, Resp>(protocol: ProtocolDefinition<Req, Resp>, opts?: ReqRespRegisterOpts): Promise<void>;
55
+ registerProtocol(protocol: Protocol, opts?: ReqRespRegisterOpts): Promise<void>;
56
56
  /**
57
57
  * Remove protocol as supported and from libp2p.
58
58
  * async because libp2p registar persists the new protocol list in the peer-store.
@@ -67,10 +67,10 @@ export declare class ReqResp {
67
67
  getRegisteredProtocols(): ProtocolID[];
68
68
  start(): Promise<void>;
69
69
  stop(): Promise<void>;
70
- protected sendRequest<Req, Resp>(peerId: PeerId, method: string, versions: number[], encoding: Encoding, body: Req): AsyncIterable<Resp>;
70
+ sendRequest(peerId: PeerId, method: string, versions: number[], encoding: Encoding, body: Uint8Array): AsyncIterable<ResponseIncoming>;
71
71
  private getRequestHandler;
72
- protected onIncomingRequest(_peerId: PeerId, _protocol: MixedProtocolDefinition): void;
73
- protected onIncomingRequestError(_protocol: MixedProtocolDefinition<any, any>, _error: RequestError): void;
72
+ protected onIncomingRequest(_peerId: PeerId, _protocol: ProtocolDescriptor): void;
73
+ protected onIncomingRequestError(_protocol: ProtocolDescriptor, _error: RequestError): void;
74
74
  protected onOutgoingRequestError(_peerId: PeerId, _method: string, _error: RequestError): void;
75
75
  /**
76
76
  * ```
@@ -78,7 +78,7 @@ export declare class ReqResp {
78
78
  * ```
79
79
  * https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/phase0/p2p-interface.md#protocol-identification
80
80
  */
81
- protected formatProtocolID(protocol: Pick<MixedProtocolDefinition, "method" | "version" | "encoding">): string;
81
+ protected formatProtocolID(protocol: Pick<MixedProtocol, "method" | "version" | "encoding">): string;
82
82
  }
83
83
  export {};
84
84
  //# sourceMappingURL=ReqResp.d.ts.map
package/lib/ReqResp.js CHANGED
@@ -53,7 +53,7 @@ export class ReqResp {
53
53
  */
54
54
  async registerProtocol(protocol, opts) {
55
55
  const protocolID = this.formatProtocolID(protocol);
56
- const { handler: _handler, renderRequestBody: _renderRequestBody, inboundRateLimits, ...rest } = protocol;
56
+ const { handler: _handler, inboundRateLimits, ...rest } = protocol;
57
57
  this.registerDialOnlyProtocol(rest, opts);
58
58
  this.dialOnlyProtocols.set(protocolID, false);
59
59
  if (inboundRateLimits) {
@@ -90,6 +90,7 @@ export class ReqResp {
90
90
  setMaxListeners(Infinity, this.controller.signal);
91
91
  }
92
92
  async stop() {
93
+ this.rateLimiter.stop();
93
94
  this.controller.abort();
94
95
  }
95
96
  // Helper to reduce code duplication
@@ -110,7 +111,7 @@ export class ReqResp {
110
111
  protocolIDs.push(protocolID);
111
112
  }
112
113
  try {
113
- yield* sendRequest({ logger: this.logger, libp2p: this.libp2p, peerClient }, peerId, protocols, protocolIDs, body, this.controller.signal, this.opts, this.reqCount++);
114
+ yield* sendRequest({ logger: this.logger, libp2p: this.libp2p, metrics: this.metrics, peerClient }, peerId, protocols, protocolIDs, body, this.controller.signal, this.opts, this.reqCount++);
114
115
  }
115
116
  catch (e) {
116
117
  (_e = this.metrics) === null || _e === void 0 ? void 0 : _e.outgoingErrors.inc({ method });
@@ -141,6 +142,7 @@ export class ReqResp {
141
142
  try {
142
143
  await handleRequest({
143
144
  logger: this.logger,
145
+ metrics: this.metrics,
144
146
  stream,
145
147
  peerId,
146
148
  protocol: protocol,
@@ -1 +1 @@
1
- {"version":3,"file":"ReqResp.js","sourceRoot":"","sources":["../src/ReqResp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReqResp.js","sourceRoot":"","sources":["../src/ReqResp.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { Sink } from "it-stream-types";
2
2
  import { Uint8ArrayList } from "uint8arraylist";
3
- import { MixedProtocolDefinition } from "../types.js";
3
+ import { MixedProtocol } from "../types.js";
4
4
  /**
5
5
  * Consumes a stream source to read a `<request>`
6
6
  * ```bnf
7
7
  * request ::= <encoding-dependent-header> | <encoded-payload>
8
8
  * ```
9
9
  */
10
- export declare function requestDecode<Req, Resp>(protocol: MixedProtocolDefinition<Req, Resp>): Sink<Uint8Array | Uint8ArrayList, Promise<Req>>;
10
+ export declare function requestDecode(protocol: MixedProtocol): Sink<Uint8Array | Uint8ArrayList, Promise<Uint8Array>>;
11
11
  //# sourceMappingURL=requestDecode.d.ts.map
@@ -1,6 +1,6 @@
1
- import { ForkName } from "@lodestar/params";
2
1
  import { BufferedSource } from "../utils/index.js";
3
2
  import { readEncodedPayload } from "../encodingStrategies/index.js";
3
+ const EMPTY_DATA = new Uint8Array();
4
4
  /**
5
5
  * Consumes a stream source to read a `<request>`
6
6
  * ```bnf
@@ -9,10 +9,10 @@ import { readEncodedPayload } from "../encodingStrategies/index.js";
9
9
  */
10
10
  export function requestDecode(protocol) {
11
11
  return async function requestDecodeSink(source) {
12
- const type = protocol.requestType(ForkName.phase0);
12
+ const type = protocol.requestSizes;
13
13
  if (type === null) {
14
14
  // method has no body
15
- return null;
15
+ return EMPTY_DATA;
16
16
  }
17
17
  // Request has a single payload, so return immediately
18
18
  const bufferedSource = new BufferedSource(source);
@@ -1 +1 @@
1
- {"version":3,"file":"requestDecode.js","sourceRoot":"","sources":["../../src/encoders/requestDecode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAClE;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,QAA4C;IAE5C,OAAO,KAAK,UAAU,iBAAiB,CAAC,MAAM;QAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,qBAAqB;YACrB,OAAO,IAAsB,CAAC;SAC/B;QAED,sDAAsD;QACtD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAwC,CAAC,CAAC;QACpF,OAAO,kBAAkB,CAAC,cAAc,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"requestDecode.js","sourceRoot":"","sources":["../../src/encoders/requestDecode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAElE,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,QAAuB;IACnD,OAAO,KAAK,UAAU,iBAAiB,CAAC,MAAM;QAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC;QACnC,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,qBAAqB;YACrB,OAAO,UAAU,CAAC;SACnB;QAED,sDAAsD;QACtD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAwC,CAAC,CAAC;QACpF,OAAO,kBAAkB,CAAC,cAAc,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { MixedProtocolDefinition } from "../types.js";
2
+ import { MixedProtocol } from "../types.js";
3
3
  /**
4
4
  * Yields byte chunks for a `<request>`
5
5
  * ```bnf
@@ -8,5 +8,5 @@ import { MixedProtocolDefinition } from "../types.js";
8
8
  * Requests may contain no payload (e.g. /eth2/beacon_chain/req/metadata/1/)
9
9
  * if so, it would yield no byte chunks
10
10
  */
11
- export declare function requestEncode<Req>(protocol: MixedProtocolDefinition<Req>, requestBody: Req): AsyncGenerator<Buffer>;
11
+ export declare function requestEncode(protocol: MixedProtocol, requestBody: Uint8Array): AsyncGenerator<Buffer>;
12
12
  //# sourceMappingURL=requestEncode.d.ts.map
@@ -1,5 +1,3 @@
1
- import { ForkName } from "@lodestar/params";
2
- import { EncodedPayloadType } from "../types.js";
3
1
  import { writeEncodedPayload } from "../encodingStrategies/index.js";
4
2
  /**
5
3
  * Yields byte chunks for a `<request>`
@@ -10,9 +8,9 @@ import { writeEncodedPayload } from "../encodingStrategies/index.js";
10
8
  * if so, it would yield no byte chunks
11
9
  */
12
10
  export async function* requestEncode(protocol, requestBody) {
13
- const type = protocol.requestType(ForkName.phase0);
11
+ const type = protocol.requestSizes;
14
12
  if (type && requestBody !== null) {
15
- yield* writeEncodedPayload({ type: EncodedPayloadType.ssz, data: requestBody }, protocol.encoding, type);
13
+ yield* writeEncodedPayload(requestBody, protocol.encoding);
16
14
  }
17
15
  }
18
16
  //# sourceMappingURL=requestEncode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"requestEncode.js","sourceRoot":"","sources":["../../src/encoders/requestEncode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,kBAAkB,EAA0B,MAAM,aAAa,CAAC;AACxE,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,aAAa,CAClC,QAAsC,EACtC,WAAgB;IAEhB,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEnD,IAAI,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE;QAChC,KAAK,CAAC,CAAC,mBAAmB,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;KACxG;AACH,CAAC"}
1
+ {"version":3,"file":"requestEncode.js","sourceRoot":"","sources":["../../src/encoders/requestEncode.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,aAAa,CAAC,QAAuB,EAAE,WAAuB;IACnF,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC;IAEnC,IAAI,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE;QAChC,KAAK,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC5D;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Uint8ArrayList } from "uint8arraylist";
2
2
  import { ForkName } from "@lodestar/params";
3
3
  import { BufferedSource } from "../utils/index.js";
4
- import { ContextBytesFactory, MixedProtocolDefinition } from "../types.js";
4
+ import { ContextBytesFactory, MixedProtocol, ResponseIncoming } from "../types.js";
5
5
  import { RespStatus } from "../interface.js";
6
6
  /**
7
7
  * Internal helper type to signal stream ended early
@@ -17,10 +17,10 @@ declare enum StreamStatus {
17
17
  * result ::= "0" | "1" | "2" | ["128" ... "255"]
18
18
  * ```
19
19
  */
20
- export declare function responseDecode<Resp>(protocol: MixedProtocolDefinition, cbs: {
20
+ export declare function responseDecode(protocol: MixedProtocol, cbs: {
21
21
  onFirstHeader: () => void;
22
22
  onFirstResponseChunk: () => void;
23
- }): (source: AsyncIterable<Uint8Array | Uint8ArrayList>) => AsyncIterable<Resp>;
23
+ }): (source: AsyncIterable<Uint8Array | Uint8ArrayList>) => AsyncIterable<ResponseIncoming>;
24
24
  /**
25
25
  * Consumes a stream source to read a `<result>`
26
26
  * ```bnf
@@ -42,7 +42,7 @@ export declare function readErrorMessage(bufferedSource: BufferedSource): Promis
42
42
  * While `<context-bytes>` has a single type of `ForkDigest`, this function only parses the `ForkName`
43
43
  * of the `ForkDigest` or defaults to `phase0`
44
44
  */
45
- export declare function readContextBytes(contextBytes: ContextBytesFactory<unknown>, bufferedSource: BufferedSource): Promise<ForkName>;
45
+ export declare function readContextBytes(contextBytes: ContextBytesFactory, bufferedSource: BufferedSource): Promise<ForkName>;
46
46
  /**
47
47
  * Consumes a stream source to read `<context-bytes>`, where it's a fixed-width 4 byte
48
48
  */
@@ -43,8 +43,13 @@ export function responseDecode(protocol, cbs) {
43
43
  throw new ResponseError(status, errorMessage);
44
44
  }
45
45
  const forkName = await readContextBytes(protocol.contextBytes, bufferedSource);
46
- const type = protocol.responseType(forkName);
47
- yield await readEncodedPayload(bufferedSource, protocol.encoding, type);
46
+ const typeSizes = protocol.responseSizes(forkName);
47
+ const chunkData = await readEncodedPayload(bufferedSource, protocol.encoding, typeSizes);
48
+ yield {
49
+ data: chunkData,
50
+ fork: forkName,
51
+ protocolVersion: protocol.version,
52
+ };
48
53
  if (!readFirstResponseChunk) {
49
54
  cbs.onFirstResponseChunk();
50
55
  readFirstResponseChunk = true;
@@ -1 +1 @@
1
- {"version":3,"file":"responseDecode.js","sourceRoot":"","sources":["../../src/encoders/responseDecode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"responseDecode.js","sourceRoot":"","sources":["../../src/encoders/responseDecode.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { MixedProtocolDefinition, EncodedPayload, ProtocolDefinition } from "../types.js";
2
+ import { MixedProtocol, Protocol, ResponseOutgoing } from "../types.js";
3
3
  import { RpcResponseStatusError } from "../interface.js";
4
4
  /**
5
5
  * Yields byte chunks for a `<response>` with a zero response code `<result>`
@@ -10,7 +10,9 @@ import { RpcResponseStatusError } from "../interface.js";
10
10
  * ```
11
11
  * Note: `response` has zero or more chunks (denoted by `<>*`)
12
12
  */
13
- export declare function responseEncodeSuccess<Req, Resp>(protocol: ProtocolDefinition<Req, Resp>): (source: AsyncIterable<EncodedPayload<Resp>>) => AsyncIterable<Buffer>;
13
+ export declare function responseEncodeSuccess(protocol: Protocol, cbs: {
14
+ onChunk: (chunkIndex: number) => void;
15
+ }): (source: AsyncIterable<ResponseOutgoing>) => AsyncIterable<Buffer>;
14
16
  /**
15
17
  * Yields byte chunks for a `<response_chunk>` with a non-zero response code `<result>`
16
18
  * denoted as `<error_response>`
@@ -21,5 +23,5 @@ export declare function responseEncodeSuccess<Req, Resp>(protocol: ProtocolDefin
21
23
  * Only the last `<response_chunk>` is allowed to have a non-zero error code, so this
22
24
  * fn yields exactly one `<error_response>` and afterwards the stream must be terminated
23
25
  */
24
- export declare function responseEncodeError(protocol: Pick<MixedProtocolDefinition, "encoding">, status: RpcResponseStatusError, errorMessage: string): AsyncGenerator<Buffer>;
26
+ export declare function responseEncodeError(protocol: Pick<MixedProtocol, "encoding">, status: RpcResponseStatusError, errorMessage: string): AsyncGenerator<Buffer>;
25
27
  //# sourceMappingURL=responseEncode.d.ts.map
@@ -1,7 +1,6 @@
1
- import { ForkName } from "@lodestar/params";
2
1
  import { writeEncodedPayload } from "../encodingStrategies/index.js";
3
2
  import { encodeErrorMessage } from "../utils/index.js";
4
- import { ContextBytesType, EncodedPayloadType, } from "../types.js";
3
+ import { ContextBytesType } from "../types.js";
5
4
  import { RespStatus } from "../interface.js";
6
5
  /**
7
6
  * Yields byte chunks for a `<response>` with a zero response code `<result>`
@@ -12,9 +11,12 @@ import { RespStatus } from "../interface.js";
12
11
  * ```
13
12
  * Note: `response` has zero or more chunks (denoted by `<>*`)
14
13
  */
15
- export function responseEncodeSuccess(protocol) {
14
+ export function responseEncodeSuccess(protocol, cbs) {
16
15
  return async function* responseEncodeSuccessTransform(source) {
16
+ let chunkIndex = 0;
17
17
  for await (const chunk of source) {
18
+ // Postfix increment, return 0 as first chunk
19
+ cbs.onChunk(chunkIndex++);
18
20
  // <result>
19
21
  yield Buffer.from([RespStatus.SUCCESS]);
20
22
  // <context-bytes> - from altair
@@ -23,9 +25,7 @@ export function responseEncodeSuccess(protocol) {
23
25
  yield contextBytes;
24
26
  }
25
27
  // <encoding-dependent-header> | <encoded-payload>
26
- const forkName = getForkNameFromContextBytes(protocol.contextBytes, chunk);
27
- const respType = protocol.responseType(forkName);
28
- yield* writeEncodedPayload(chunk, protocol.encoding, respType);
28
+ yield* writeEncodedPayload(chunk.data, protocol.encoding);
29
29
  }
30
30
  };
31
31
  }
@@ -58,32 +58,7 @@ function getContextBytes(contextBytes, chunk) {
58
58
  return null;
59
59
  // Yield a fixed-width 4 byte chunk, set to the `ForkDigest`
60
60
  case ContextBytesType.ForkDigest:
61
- switch (chunk.type) {
62
- case EncodedPayloadType.ssz:
63
- return contextBytes.forkDigestContext.forkName2ForkDigest(contextBytes.forkFromResponse(chunk.data));
64
- case EncodedPayloadType.bytes:
65
- if (chunk.contextBytes.type !== ContextBytesType.ForkDigest) {
66
- throw Error(`Expected context bytes ForkDigest but got ${chunk.contextBytes.type}`);
67
- }
68
- return contextBytes.forkDigestContext.forkName2ForkDigest(contextBytes.forkDigestContext.getForkName(chunk.contextBytes.forkSlot));
69
- }
70
- }
71
- }
72
- function getForkNameFromContextBytes(contextBytes, chunk) {
73
- switch (contextBytes.type) {
74
- case ContextBytesType.Empty:
75
- return ForkName.phase0;
76
- // Yield a fixed-width 4 byte chunk, set to the `ForkDigest`
77
- case ContextBytesType.ForkDigest:
78
- switch (chunk.type) {
79
- case EncodedPayloadType.ssz:
80
- return contextBytes.forkFromResponse(chunk.data);
81
- case EncodedPayloadType.bytes:
82
- if (chunk.contextBytes.type !== ContextBytesType.ForkDigest) {
83
- throw Error(`Expected context bytes ForkDigest but got ${chunk.contextBytes.type}`);
84
- }
85
- return contextBytes.forkDigestContext.getForkName(chunk.contextBytes.forkSlot);
86
- }
61
+ return contextBytes.forkDigestContext.forkName2ForkDigest(chunk.fork);
87
62
  }
88
63
  }
89
64
  //# sourceMappingURL=responseEncode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"responseEncode.js","sourceRoot":"","sources":["../../src/encoders/responseEncode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"responseEncode.js","sourceRoot":"","sources":["../../src/encoders/responseEncode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAC,gBAAgB,EAAiE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAC,UAAU,EAAyB,MAAM,iBAAiB,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAkB,EAClB,GAA4C;IAE5C,OAAO,KAAK,SAAS,CAAC,CAAC,8BAA8B,CAAC,MAAM;QAC1D,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE;YAChC,6CAA6C;YAC7C,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YAE1B,WAAW;YACX,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;YAExC,gCAAgC;YAChC,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACnE,IAAI,YAAY,EAAE;gBAChB,MAAM,YAAsB,CAAC;aAC9B;YAED,kDAAkD;YAClD,KAAK,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC3D;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,mBAAmB,CACxC,QAAyC,EACzC,MAA8B,EAC9B,YAAoB;IAEpB,WAAW;IACX,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5B,+BAA+B;IAC/B,IAAI,YAAY,EAAE;QAChB,KAAK,CAAC,CAAC,kBAAkB,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC5D;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,YAAiC,EAAE,KAAuB;IACjF,QAAQ,YAAY,CAAC,IAAI,EAAE;QACzB,gBAAgB;QAChB,KAAK,gBAAgB,CAAC,KAAK;YACzB,OAAO,IAAI,CAAC;QAEd,4DAA4D;QAC5D,KAAK,gBAAgB,CAAC,UAAU;YAC9B,OAAO,YAAY,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAW,CAAC;KACnF;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { Encoding, EncodedPayload, TypeSerializer } from "../types.js";
2
+ import { Encoding, TypeSizes } from "../types.js";
3
3
  import { BufferedSource } from "../utils/index.js";
4
4
  /**
5
5
  * Consumes a stream source to read encoded header and payload as defined in the spec:
@@ -7,12 +7,12 @@ import { BufferedSource } from "../utils/index.js";
7
7
  * <encoding-dependent-header> | <encoded-payload>
8
8
  * ```
9
9
  */
10
- export declare function readEncodedPayload<T>(bufferedSource: BufferedSource, encoding: Encoding, type: TypeSerializer<T>): Promise<T>;
10
+ export declare function readEncodedPayload(bufferedSource: BufferedSource, encoding: Encoding, type: TypeSizes): Promise<Uint8Array>;
11
11
  /**
12
12
  * Yields byte chunks for encoded header and payload as defined in the spec:
13
13
  * ```
14
14
  * <encoding-dependent-header> | <encoded-payload>
15
15
  * ```
16
16
  */
17
- export declare function writeEncodedPayload<T>(chunk: EncodedPayload<T>, encoding: Encoding, serializer: TypeSerializer<T>): AsyncGenerator<Buffer>;
17
+ export declare function writeEncodedPayload(chunkData: Uint8Array, encoding: Encoding): AsyncGenerator<Buffer>;
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -25,10 +25,10 @@ export async function readEncodedPayload(bufferedSource, encoding, type) {
25
25
  * <encoding-dependent-header> | <encoded-payload>
26
26
  * ```
27
27
  */
28
- export async function* writeEncodedPayload(chunk, encoding, serializer) {
28
+ export async function* writeEncodedPayload(chunkData, encoding) {
29
29
  switch (encoding) {
30
30
  case Encoding.SSZ_SNAPPY:
31
- yield* writeSszSnappyPayload(chunk, serializer);
31
+ yield* writeSszSnappyPayload(chunkData);
32
32
  break;
33
33
  default:
34
34
  throw Error("Unsupported encoding");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/encodingStrategies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAiC,MAAM,aAAa,CAAC;AAErE,OAAO,EAAC,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAE5D,oFAAoF;AACpF,6GAA6G;AAC7G,iCAAiC;AACjC,eAAe;AAEf;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,cAA8B,EAC9B,QAAkB,EAClB,IAAuB;IAEvB,QAAQ,QAAQ,EAAE;QAChB,KAAK,QAAQ,CAAC,UAAU;YACtB,OAAO,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAEpD;YACE,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAC;KACvC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,mBAAmB,CACxC,KAAwB,EACxB,QAAkB,EAClB,UAA6B;IAE7B,QAAQ,QAAQ,EAAE;QAChB,KAAK,QAAQ,CAAC,UAAU;YACtB,KAAK,CAAC,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAChD,MAAM;QAER;YACE,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAC;KACvC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/encodingStrategies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAY,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAC,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAE5D,oFAAoF;AACpF,6GAA6G;AAC7G,iCAAiC;AACjC,eAAe;AAEf;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,cAA8B,EAC9B,QAAkB,EAClB,IAAe;IAEf,QAAQ,QAAQ,EAAE;QAChB,KAAK,QAAQ,CAAC,UAAU;YACtB,OAAO,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAEpD;YACE,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAC;KACvC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,mBAAmB,CAAC,SAAqB,EAAE,QAAkB;IAClF,QAAQ,QAAQ,EAAE;QAChB,KAAK,QAAQ,CAAC,UAAU;YACtB,KAAK,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACxC,MAAM;QAER;YACE,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAC;KACvC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { BufferedSource } from "../../utils/index.js";
2
- import { TypeSerializer } from "../../types.js";
2
+ import { TypeSizes } from "../../types.js";
3
3
  export declare const MAX_VARINT_BYTES = 10;
4
4
  /**
5
5
  * ssz_snappy encoding strategy reader.
@@ -8,12 +8,12 @@ export declare const MAX_VARINT_BYTES = 10;
8
8
  * <encoding-dependent-header> | <encoded-payload>
9
9
  * ```
10
10
  */
11
- export declare function readSszSnappyPayload<T>(bufferedSource: BufferedSource, type: TypeSerializer<T>): Promise<T>;
11
+ export declare function readSszSnappyPayload(bufferedSource: BufferedSource, type: TypeSizes): Promise<Uint8Array>;
12
12
  /**
13
13
  * Reads `<encoding-dependent-header>` for ssz-snappy.
14
14
  * encoding-header ::= the length of the raw SSZ bytes, encoded as an unsigned protobuf varint
15
15
  */
16
- export declare function readSszSnappyHeader(bufferedSource: BufferedSource, type: Pick<TypeSerializer<unknown>, "minSize" | "maxSize">): Promise<number>;
16
+ export declare function readSszSnappyHeader(bufferedSource: BufferedSource, type: TypeSizes): Promise<number>;
17
17
  /**
18
18
  * Reads `<encoded-payload>` for ssz-snappy and decompress.
19
19
  * The returned bytes can be SSZ deseralized
@@ -13,8 +13,7 @@ export const MAX_VARINT_BYTES = 10;
13
13
  */
14
14
  export async function readSszSnappyPayload(bufferedSource, type) {
15
15
  const sszDataLength = await readSszSnappyHeader(bufferedSource, type);
16
- const bytes = await readSszSnappyBody(bufferedSource, sszDataLength);
17
- return deserializeSszBody(bytes, type);
16
+ return readSszSnappyBody(bufferedSource, sszDataLength);
18
17
  }
19
18
  /**
20
19
  * Reads `<encoding-dependent-header>` for ssz-snappy.
@@ -100,16 +99,4 @@ export async function readSszSnappyBody(bufferedSource, sszDataLength) {
100
99
  // SHOULD consider invalid: An early EOF before fully reading the declared length-prefix worth of SSZ bytes
101
100
  throw new SszSnappyError({ code: SszSnappyErrorCode.SOURCE_ABORTED });
102
101
  }
103
- /**
104
- * Deseralizes SSZ body.
105
- * `isSszTree` option allows the SignedBeaconBlock type to be deserialized as a tree
106
- */
107
- function deserializeSszBody(bytes, type) {
108
- try {
109
- return type.deserialize(bytes);
110
- }
111
- catch (e) {
112
- throw new SszSnappyError({ code: SszSnappyErrorCode.DESERIALIZE_ERROR, deserializeError: e });
113
- }
114
- }
115
102
  //# sourceMappingURL=decode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../src/encodingStrategies/sszSnappy/decode.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAC,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,cAAc,EAAE,kBAAkB,EAAC,MAAM,aAAa,CAAC;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAI,cAA8B,EAAE,IAAuB;IACnG,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAEtE,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACrE,OAAO,kBAAkB,CAAI,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,cAA8B,EAC9B,IAA0D;IAE1D,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,cAAc,EAAE;QACzC,0BAA0B;QAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,SAAS;SACV;QAED,2GAA2G;QAC3G,kFAAkF;QAClF,qFAAqF;QACrF,0DAA0D;QAC1D,IAAI,aAAqB,CAAC;QAC1B,IAAI;YACF,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SAC/C;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,cAAc,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,0BAA0B,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;SAClG;QAED,0GAA0G;QAC1G,8DAA8D;QAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QACxC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,GAAG,gBAAgB,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;YACrF,MAAM,IAAI,cAAc,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,0BAA0B,EAAE,KAAK,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,CAAC,EAAC,CAAC,CAAC;SAC1G;QACD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE5B,yGAAyG;QACzG,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,aAAa,GAAG,OAAO,EAAE;YAC3B,MAAM,IAAI,cAAc,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,kBAAkB,EAAE,OAAO,EAAE,aAAa,EAAC,CAAC,CAAC;SACjG;QACD,IAAI,aAAa,GAAG,OAAO,EAAE;YAC3B,MAAM,IAAI,cAAc,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,EAAE,aAAa,EAAC,CAAC,CAAC;SAChG;QAED,OAAO,aAAa,CAAC;KACtB;IAED,MAAM,IAAI,cAAc,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,cAAc,EAAC,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,cAA8B,EAAE,aAAqB;IAC3F,MAAM,YAAY,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAClD,MAAM,gBAAgB,GAAG,IAAI,cAAc,EAAE,CAAC;IAC9C,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,cAAc,EAAE;QACzC,2GAA2G;QAC3G,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC;QAC3B,IAAI,SAAS,GAAG,aAAa,CAAC,aAAa,CAAC,EAAE;YAC5C,MAAM,IAAI,cAAc,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,mBAAmB,EAAE,SAAS,EAAE,aAAa,EAAC,CAAC,CAAC;SACpG;QAED,qCAAqC;QACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,SAAS;SACV;QAED,8FAA8F;QAC9F,IAAI;YACF,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,YAAY,KAAK,IAAI,EAAE;gBACzB,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACvC;SACF;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,cAAc,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,CAAU,EAAC,CAAC,CAAC;SACxG;QAED,gEAAgE;QAChE,IAAI,gBAAgB,CAAC,MAAM,GAAG,aAAa,EAAE;YAC3C,MAAM,IAAI,cAAc,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,cAAc,EAAE,aAAa,EAAC,CAAC,CAAC;SACpF;QAED,0CAA0C;QAC1C,IAAI,gBAAgB,CAAC,MAAM,GAAG,aAAa,EAAE;YAC3C,SAAS;SACV;QAED,sBAAsB;QACtB,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;KACpD;IAED,2GAA2G;IAC3G,MAAM,IAAI,cAAc,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,cAAc,EAAC,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAI,KAAiB,EAAE,IAAuB;IACvE,IAAI;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAChC;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,cAAc,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,CAAU,EAAC,CAAC,CAAC;KACtG;AACH,CAAC"}
1
+ {"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../src/encodingStrategies/sszSnappy/decode.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  /// <reference types="node" />
2
- import { EncodedPayload, TypeSerializer } from "../../types.js";
3
2
  /**
4
3
  * ssz_snappy encoding strategy writer.
5
4
  * Yields byte chunks for encoded header and payload as defined in the spec:
@@ -7,7 +6,7 @@ import { EncodedPayload, TypeSerializer } from "../../types.js";
7
6
  * <encoding-dependent-header> | <encoded-payload>
8
7
  * ```
9
8
  */
10
- export declare function writeSszSnappyPayload<T>(body: EncodedPayload<T>, type: TypeSerializer<T>): AsyncGenerator<Buffer>;
9
+ export declare function writeSszSnappyPayload(bodyData: Uint8Array): AsyncGenerator<Buffer>;
11
10
  /**
12
11
  * Buffered Snappy writer
13
12
  */
@@ -1,8 +1,6 @@
1
1
  import varint from "varint";
2
2
  import { source } from "stream-to-it";
3
3
  import snappy from "@chainsafe/snappy-stream";
4
- import { EncodedPayloadType } from "../../types.js";
5
- import { SszSnappyError, SszSnappyErrorCode } from "./errors.js";
6
4
  /**
7
5
  * ssz_snappy encoding strategy writer.
8
6
  * Yields byte chunks for encoded header and payload as defined in the spec:
@@ -10,9 +8,8 @@ import { SszSnappyError, SszSnappyErrorCode } from "./errors.js";
10
8
  * <encoding-dependent-header> | <encoded-payload>
11
9
  * ```
12
10
  */
13
- export async function* writeSszSnappyPayload(body, type) {
14
- const serializedBody = serializeSszBody(body, type);
15
- yield* encodeSszSnappy(serializedBody);
11
+ export async function* writeSszSnappyPayload(bodyData) {
12
+ yield* encodeSszSnappy(bodyData);
16
13
  }
17
14
  /**
18
15
  * Buffered Snappy writer
@@ -35,22 +32,4 @@ export async function* encodeSszSnappy(bytes) {
35
32
  stream.end();
36
33
  yield* source(stream);
37
34
  }
38
- /**
39
- * Returns SSZ serialized body. Wrapps errors with SszSnappyError.SERIALIZE_ERROR
40
- */
41
- function serializeSszBody(chunk, type) {
42
- switch (chunk.type) {
43
- case EncodedPayloadType.bytes:
44
- return chunk.bytes;
45
- case EncodedPayloadType.ssz: {
46
- try {
47
- const bytes = type.serialize(chunk.data);
48
- return Buffer.from(bytes.buffer, bytes.byteOffset, bytes.length);
49
- }
50
- catch (e) {
51
- throw new SszSnappyError({ code: SszSnappyErrorCode.SERIALIZE_ERROR, serializeError: e });
52
- }
53
- }
54
- }
55
- }
56
35
  //# sourceMappingURL=encode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../../src/encodingStrategies/sszSnappy/encode.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAiB,kBAAkB,EAAiB,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAC,cAAc,EAAE,kBAAkB,EAAC,MAAM,aAAa,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,qBAAqB,CAC1C,IAAuB,EACvB,IAAuB;IAEvB,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEpD,KAAK,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,eAAe,CAAC,KAAa;IAClD,sFAAsF;IACtF,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/C,wFAAwF;IACxF,kFAAkF;IAElF;;;;;;;OAOG;IACH,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAC7C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,MAAM,CAAC,GAAG,EAAE,CAAC;IACb,KAAK,CAAC,CAAC,MAAM,CAAS,MAAM,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAI,KAAwB,EAAE,IAAuB;IAC5E,QAAQ,KAAK,CAAC,IAAI,EAAE;QAClB,KAAK,kBAAkB,CAAC,KAAK;YAC3B,OAAO,KAAK,CAAC,KAAe,CAAC;QAE/B,KAAK,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI;gBACF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;aAClE;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,IAAI,cAAc,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,eAAe,EAAE,cAAc,EAAE,CAAU,EAAC,CAAC,CAAC;aAClG;SACF;KACF;AACH,CAAC"}
1
+ {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../../src/encodingStrategies/sszSnappy/encode.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,qBAAqB,CAAC,QAAoB;IAC/D,KAAK,CAAC,CAAC,eAAe,CAAC,QAAkB,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,eAAe,CAAC,KAAa;IAClD,sFAAsF;IACtF,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/C,wFAAwF;IACxF,kFAAkF;IAElF;;;;;;;OAOG;IACH,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAC7C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,MAAM,CAAC,GAAG,EAAE,CAAC;IACb,KAAK,CAAC,CAAC,MAAM,CAAS,MAAM,CAAC,CAAC;AAChC,CAAC"}
package/lib/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- export { ReqResp } from "./ReqResp.js";
1
+ export { ReqResp, ReqRespOpts } from "./ReqResp.js";
2
2
  export { getMetrics, Metrics, MetricsRegister } from "./metrics.js";
3
3
  export { Encoding as ReqRespEncoding } from "./types.js";
4
4
  export * from "./types.js";
5
5
  export * from "./interface.js";
6
- export { ResponseErrorCode, ResponseError } from "./response/errors.js";
7
- export { RequestErrorCode, RequestError, RequestErrorMetadata } from "./request/errors.js";
6
+ export * from "./response/errors.js";
7
+ export * from "./request/errors.js";
8
8
  export { collectExactOne, collectMaxResponse, formatProtocolID, parseProtocolID } from "./utils/index.js";
9
9
  //# sourceMappingURL=index.d.ts.map
package/lib/index.js CHANGED
@@ -3,7 +3,7 @@ export { getMetrics } from "./metrics.js";
3
3
  export { Encoding as ReqRespEncoding } from "./types.js"; // Expose enums renamed
4
4
  export * from "./types.js";
5
5
  export * from "./interface.js";
6
- export { ResponseErrorCode, ResponseError } from "./response/errors.js";
7
- export { RequestErrorCode, RequestError } from "./request/errors.js";
6
+ export * from "./response/errors.js";
7
+ export * from "./request/errors.js";
8
8
  export { collectExactOne, collectMaxResponse, formatProtocolID, parseProtocolID } from "./utils/index.js";
9
9
  //# sourceMappingURL=index.js.map